My colleague Paul Thaden just posted Creating a Popup Message Box for Oracle JET Forms which uses Oracle JET's Offcanvas functionality. While not exactly "toast," that was my first thought when I saw it. I really like the toast/growl notification concept and have been wondering how to add this type of notification to an Oracle JET project. Let's take Paul's work and convert it into a growl-like (or toast) notification complete with timeout. We will start with this modified version of Paul's jsFiddle. This fiddle displays a notification message when you change the selected browser.
Paul already explained the whole inner-wrapper
/outer-wrapper
thing so I won't repeat it here. Mainly I want to focus on styling the oj-offcanvas-top
element (named toast
) so that it floats on the right side of the page and then disappears after a specified period of time. Here is the only CSS we need:
#toast { /* Make the message look pretty */ border: 1px solid #0572ce; box-shadow: 0 1px 3px #777; /* set the location of the toast message */ left: auto; right: 10px; width: 200px; /* z-index required to overlay oj form controls */ z-index: 1; }
Next we refactor the ojSelect optionChange
event handler from the prior jsFiddle to close the notification message after a specified interval:
var closeToast = function() { return oj.OffcanvasUtils.close(toastOptions); }; self.browserChangedHandler = function (event, data) { if (data.option == "value") { oj.OffcanvasUtils.open(toastOptions); window.setTimeout(closeToast, 5*1000); } };
Here is the jsFiddle example. Select a browser and watch the message appear and then disappear.
That is nice for a "Transaction saved" type of message, but let's get dramatic and make this look like a real growl notification. With a little bit of CSS, we can turn that Offcanvas notification into something like this:
And here is the jsFiddle:
No comments:
Post a Comment