/** * Copyright JS Foundation and other contributors, http://js.foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ RED.notifications = (function() { /* If RED.notifications.hide is set to true, all notifications will be hidden. This is to help with UI testing in certain cases and not intended for the end-user. // Example usage for a modal dialog with buttons var myNotification = RED.notify("This is the message to display",{ modal: true, fixed: true, type: 'warning', // 'compact', 'success', 'warning', 'error' buttons: [ { text: "cancel", click: function(e) { myNotification.close(); } }, { text: "okay", class:"primary", click: function(e) { myNotification.close(); } } ] }); */ var persistentNotifications = {}; var currentNotifications = []; var c = 0; function notify(msg,type,fixed,timeout) { var options = {}; if (type !== null && typeof type === 'object') { options = type; fixed = options.fixed; timeout = options.timeout; type = options.type; } if (options.id && persistentNotifications.hasOwnProperty(options.id)) { persistentNotifications[options.id].update(msg,options); return persistentNotifications[options.id]; } if (options.modal) { $("#red-ui-full-shade").show(); } if (currentNotifications.length > 4) { var ll = currentNotifications.length; for (var i = 0;ll > 4 && i parentWidth) { var margin = -(options.width-parentWidth)/2; $(n).css({ width: options.width+"px", marginLeft: margin+"px" }) } } n.style.display = "none"; if (typeof msg === "string") { if (!/

/i.test(msg)) { msg = "

"+msg+"

"; } n.innerHTML = msg; } else { $(n).append(msg); } if (options.buttons) { var buttonSet = $('
').appendTo(n) options.buttons.forEach(function(buttonDef) { var b = $('