RANGER-316 : Use bootstrap notify instead of pines notify Signed-off-by: Velmurugan Periasamy <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/e039b7ca Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/e039b7ca Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/e039b7ca Branch: refs/heads/master Commit: e039b7ca45ee566af5decf18830417fa2af55e3c Parents: 4435b43 Author: Gautam Borad <[email protected]> Authored: Fri Mar 20 00:06:31 2015 +0530 Committer: Velmurugan Periasamy <[email protected]> Committed: Thu Mar 19 15:29:40 2015 -0400 ---------------------------------------------------------------------- LICENSE.txt | 2 + security-admin/src/main/webapp/index.html | 4 +- .../bootstrap-notify/css/bootstrap-notify.css | 31 + .../bootstrap-notify/js/bootstrap-notify.js | 97 ++ .../pines-notify/css/jquery.pnotify.default.css | 83 -- .../css/jquery.pnotify.default.icons.css | 21 - .../bower/pines-notify/js/jquery.pnotify.js | 912 ------------------- .../bower/pines-notify/js/jquery.pnotify.min.js | 40 - security-admin/src/main/webapp/scripts/Init.js | 9 +- .../src/main/webapp/scripts/utils/XAUtils.js | 62 +- 10 files changed, 177 insertions(+), 1084 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/LICENSE.txt ---------------------------------------------------------------------- diff --git a/LICENSE.txt b/LICENSE.txt index 2d7ad44..fdc24f4 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -503,3 +503,5 @@ OTHER DEALINGS IN THE SOFTWARE. This product includes Bootstrap Datepicker (http://www.eyecon.ro/bootstrap-datepicker - Apache License - 2.0), Copyright 2012 Stefan Petre. This product includes bootstrap-transition.js v2.3.2 (http://twbs.github.com/bootstrap/javascript.html#transitions - Apache License - 2.0), Copyright 2013 Twitter, Inc. This product includes Select2 3.4.3 (http://ivaynberg.github.io/select2/ - Apache License - 2.0), Copyright 2012 Igor Vaynberg. +This product includes bootstrap-notify v1.0 (http://goodybag.github.io/bootstrap-notify/ - Apache License - 2.0), Copyright 2012 Goodybag, Inc. +. http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/index.html ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/index.html b/security-admin/src/main/webapp/index.html index f4145a5..91c0931 100644 --- a/security-admin/src/main/webapp/index.html +++ b/security-admin/src/main/webapp/index.html @@ -37,7 +37,7 @@ <link href="libs/bower/backgrid-paginator/css/backgrid-paginator.css" media="all" rel="stylesheet" type="text/css" > <link href="libs/bower/backgrid-filter/css/backgrid-filter.css" media="all" rel="stylesheet" type="text/css" > <link href="libs/bower/select2/select2.css" media="all" rel="stylesheet" type="text/css" > - <link href="libs/bower/pines-notify/css/jquery.pnotify.default.css" rel="stylesheet"> + <link href="libs/bower/bootstrap-notify/css/bootstrap-notify.css" rel="stylesheet"> <link href="libs/bower/tag-it/css/jquery.tagit.css" rel="stylesheet"> <link href="libs/other/datepicker/css/datepicker.css" media="all" rel="stylesheet" type="text/css"> <link href="libs/bower/x-editable/css/bootstrap-editable.css" media="all" rel="stylesheet" type="text/css"> @@ -73,7 +73,7 @@ <section id="r_breadcrumbs" class="row-fluid"> </section> - + <div class='notifications top-right ranger-notifications'></div> <section id="r_content" class="row-fluid" style="min-height: 450px;"> http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/bootstrap-notify/css/bootstrap-notify.css ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/bootstrap-notify/css/bootstrap-notify.css b/security-admin/src/main/webapp/libs/bower/bootstrap-notify/css/bootstrap-notify.css new file mode 100644 index 0000000..7473f78 --- /dev/null +++ b/security-admin/src/main/webapp/libs/bower/bootstrap-notify/css/bootstrap-notify.css @@ -0,0 +1,31 @@ +.notifications { + position: fixed; + z-index: 9999; +} + +/* Positioning */ +.notifications.top-right { + right: 10px; + top: 25px; +} + +.notifications.top-left { + left: 10px; + top: 25px; +} + +.notifications.bottom-left { + left: 10px; + bottom: 25px; +} + +.notifications.bottom-right { + right: 10px; + bottom: 25px; +} + +/* Notification Element */ +.notifications > div { + position: relative; + margin: 5px 0px; +} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/bootstrap-notify/js/bootstrap-notify.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/bootstrap-notify/js/bootstrap-notify.js b/security-admin/src/main/webapp/libs/bower/bootstrap-notify/js/bootstrap-notify.js new file mode 100644 index 0000000..e58c6c5 --- /dev/null +++ b/security-admin/src/main/webapp/libs/bower/bootstrap-notify/js/bootstrap-notify.js @@ -0,0 +1,97 @@ +/** + * bootstrap-notify.js v1.0 + * -- + * Copyright 2012 Goodybag, Inc. + * -- + * 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. + */ + +(function ($) { + var Notification = function (element, options) { + // Element collection + this.$element = $(element); + this.$note = $('<div class="alert"></div>'); + this.options = $.extend(true, {}, $.fn.notify.defaults, options); + + // Setup from options + if(this.options.transition) { + if(this.options.transition == 'fade') + this.$note.addClass('in').addClass(this.options.transition); + else + this.$note.addClass(this.options.transition); + } else + this.$note.addClass('fade').addClass('in'); + + if(this.options.type) + this.$note.addClass('alert-' + this.options.type); + else + this.$note.addClass('alert-success'); + + if(!this.options.message && this.$element.data("message") !== '') // dom text + this.$note.html(this.$element.data("message")); + else + if(typeof this.options.message === 'object') { + if(this.options.message.html) + this.$note.html(this.options.message.html); + else if(this.options.message.text) + this.$note.text(this.options.message.text); + } else + this.$note.html(this.options.message); + + if(this.options.closable) { + var link = $('<a class="close pull-right" href="#">×</a>'); + $(link).on('click', $.proxy(onClose, this)); + this.$note.prepend(link); + } + + return this; + }; + + var onClose = function() { + this.options.onClose(); + $(this.$note).remove(); + this.options.onClosed(); + return false; + }; + + Notification.prototype.show = function () { + if(this.options.fadeOut.enabled) + this.$note.delay(this.options.fadeOut.delay || 3000).fadeOut('slow', $.proxy(onClose, this)); + + this.$element.append(this.$note); + this.$note.alert(); + }; + + Notification.prototype.hide = function () { + if(this.options.fadeOut.enabled) + this.$note.delay(this.options.fadeOut.delay || 3000).fadeOut('slow', $.proxy(onClose, this)); + else onClose.call(this); + }; + + $.fn.notify = function (options) { + return new Notification(this, options); + }; + + $.fn.notify.defaults = { + type: 'success', + closable: true, + transition: 'fade', + fadeOut: { + enabled: true, + delay: 3000 + }, + message: null, + onClose: function () {}, + onClosed: function () {} + } +})(window.jQuery); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.css ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.css b/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.css deleted file mode 100644 index de1068a..0000000 --- a/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.css +++ /dev/null @@ -1,83 +0,0 @@ -/* -Document : jquery.pnotify.default.css -Created on : Nov 23, 2009, 3:14:10 PM -Author : Hunter Perrin -Version : 1.2.0 -Link : http://pinesframework.org/pnotify/ -Description: - Default styling for Pines Notify jQuery plugin. -*/ -/* -- Notice */ -.ui-pnotify { -top: 25px; -right: 25px; -position: absolute; -height: auto; -/* Ensures notices are above everything */ -z-index: 9999; -} -/* Hides position: fixed from IE6 */ -html > body .ui-pnotify { -position: fixed; -} -.ui-pnotify .ui-pnotify-shadow { --webkit-box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); --moz-box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); -box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); -} -.ui-pnotify-container { -background-position: 0 0; -padding: .8em; -height: 100%; -margin: 0; -} -.ui-pnotify-sharp { --webkit-border-radius: 0; --moz-border-radius: 0; -border-radius: 0; -} -.ui-pnotify-closer, .ui-pnotify-sticker { -float: right; -margin-left: .2em; -} -.ui-pnotify-title { -display: block; -margin-bottom: .4em; -} -.ui-pnotify-text { -display: block; -} -.ui-pnotify-icon, .ui-pnotify-icon span { -display: block; -float: left; -margin-right: .2em; -} -/* -- History Pulldown */ -.ui-pnotify-history-container { -position: absolute; -top: 0; -right: 18px; -width: 70px; -border-top: none; -padding: 0; --webkit-border-top-left-radius: 0; --moz-border-top-left-radius: 0; -border-top-left-radius: 0; --webkit-border-top-right-radius: 0; --moz-border-top-right-radius: 0; -border-top-right-radius: 0; -/* Ensures history container is above notices. */ -z-index: 10000; -} -.ui-pnotify-history-container .ui-pnotify-history-header { -padding: 2px; -} -.ui-pnotify-history-container button { -cursor: pointer; -display: block; -width: 100%; -} -.ui-pnotify-history-container .ui-pnotify-history-pulldown { -display: block; -margin: 0 auto; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.icons.css ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.icons.css b/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.icons.css deleted file mode 100644 index 08df996..0000000 --- a/security-admin/src/main/webapp/libs/bower/pines-notify/css/jquery.pnotify.default.icons.css +++ /dev/null @@ -1,21 +0,0 @@ -/* -Document : jquery.pnotify.default.icons.css -Created on : Nov 24, 2009, 2:58:21 PM -Author : Hunter Perrin -Version : 1.2.0 -Link : http://pinesframework.org/pnotify/ -Description: - Pines Icon styling for Pines Notify. -*/ - -.ui-pnotify .picon { -background-color: transparent; -background-repeat: no-repeat; -background-position: center center; -width: 17px; -height: 17px; -} -.ui-pnotify-title { -line-height: 17px; -min-height: 17px; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.js b/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.js deleted file mode 100644 index f72893d..0000000 --- a/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.js +++ /dev/null @@ -1,912 +0,0 @@ -/* - * jQuery Pines Notify (pnotify) Plugin 1.2.0 - * - * http://pinesframework.org/pnotify/ - * Copyright (c) 2009-2012 Hunter Perrin - * - * Triple license under the GPL, LGPL, and MPL: - * http://www.gnu.org/licenses/gpl.html - * http://www.gnu.org/licenses/lgpl.html - * http://www.mozilla.org/MPL/MPL-1.1.html - */ - -(function($) { - var history_handle_top, - timer, - body, - jwindow = $(window), - styling = { - jqueryui: { - container: "ui-widget ui-widget-content ui-corner-all", - notice: "ui-state-highlight", - // (The actual jQUI notice icon looks terrible.) - notice_icon: "ui-icon ui-icon-info", - info: "", - info_icon: "ui-icon ui-icon-info", - success: "ui-state-default", - success_icon: "ui-icon ui-icon-circle-check", - error: "ui-state-error", - error_icon: "ui-icon ui-icon-alert", - closer: "ui-icon ui-icon-close", - pin_up: "ui-icon ui-icon-pin-w", - pin_down: "ui-icon ui-icon-pin-s", - hi_menu: "ui-state-default ui-corner-bottom", - hi_btn: "ui-state-default ui-corner-all", - hi_btnhov: "ui-state-hover", - hi_hnd: "ui-icon ui-icon-grip-dotted-horizontal" - }, - bootstrap: { - container: "alert", - notice: "", - notice_icon: "icon-exclamation-sign", - info: "alert-info", - info_icon: "icon-info-sign", - success: "alert-success", - success_icon: "icon-ok-sign", - error: "alert-error", - error_icon: "icon-warning-sign", - closer: "icon-remove", - pin_up: "icon-pause", - pin_down: "icon-play", - hi_menu: "well", - hi_btn: "btn", - hi_btnhov: "", - hi_hnd: "icon-chevron-down" - } - }; - // Set global variables. - var do_when_ready = function(){ - body = $("body"); - jwindow = $(window); - // Reposition the notices when the window resizes. - jwindow.bind('resize', function(){ - if (timer) - clearTimeout(timer); - timer = setTimeout($.pnotify_position_all, 10); - }); - }; - if (document.body) - do_when_ready(); - else - $(do_when_ready); - $.extend({ - pnotify_remove_all: function () { - var notices_data = jwindow.data("pnotify"); - /* POA: Added null-check */ - if (notices_data && notices_data.length) { - $.each(notices_data, function(){ - if (this.pnotify_remove) - this.pnotify_remove(); - }); - } - }, - pnotify_position_all: function () { - // This timer is used for queueing this function so it doesn't run - // repeatedly. - if (timer) - clearTimeout(timer); - timer = null; - // Get all the notices. - var notices_data = jwindow.data("pnotify"); - if (!notices_data || !notices_data.length) - return; - // Reset the next position data. - $.each(notices_data, function(){ - var s = this.opts.stack; - if (!s) return; - s.nextpos1 = s.firstpos1; - s.nextpos2 = s.firstpos2; - s.addpos2 = 0; - s.animation = true; - }); - $.each(notices_data, function(){ - this.pnotify_position(); - }); - }, - pnotify: function(options) { - // Stores what is currently being animated (in or out). - var animating; - - // Build main options. - var opts; - if (typeof options != "object") { - opts = $.extend({}, $.pnotify.defaults); - opts.text = options; - } else { - opts = $.extend({}, $.pnotify.defaults, options); - } - // Translate old pnotify_ style options. - for (var i in opts) { - if (typeof i == "string" && i.match(/^pnotify_/)) - opts[i.replace(/^pnotify_/, "")] = opts[i]; - } - - if (opts.before_init) { - if (opts.before_init(opts) === false) - return null; - } - - // This keeps track of the last element the mouse was over, so - // mouseleave, mouseenter, etc can be called. - var nonblock_last_elem; - // This is used to pass events through the notice if it is non-blocking. - var nonblock_pass = function(e, e_name){ - pnotify.css("display", "none"); - var element_below = document.elementFromPoint(e.clientX, e.clientY); - pnotify.css("display", "block"); - var jelement_below = $(element_below); - var cursor_style = jelement_below.css("cursor"); - pnotify.css("cursor", cursor_style != "auto" ? cursor_style : "default"); - // If the element changed, call mouseenter, mouseleave, etc. - if (!nonblock_last_elem || nonblock_last_elem.get(0) != element_below) { - if (nonblock_last_elem) { - dom_event.call(nonblock_last_elem.get(0), "mouseleave", e.originalEvent); - dom_event.call(nonblock_last_elem.get(0), "mouseout", e.originalEvent); - } - dom_event.call(element_below, "mouseenter", e.originalEvent); - dom_event.call(element_below, "mouseover", e.originalEvent); - } - dom_event.call(element_below, e_name, e.originalEvent); - // Remember the latest element the mouse was over. - nonblock_last_elem = jelement_below; - }; - - // Get our styling object. - var styles = styling[opts.styling]; - - // Create our widget. - // Stop animation, reset the removal timer, and show the close - // button when the user mouses over. - var pnotify = $("<div />", { - "class": "ui-pnotify "+opts.addclass, - "css": {"display": "none"}, - "mouseenter": function(e){ - if (opts.nonblock) e.stopPropagation(); - if (opts.mouse_reset && animating == "out") { - // If it's animating out, animate back in really quickly. - pnotify.stop(true); - animating = "in"; - pnotify.css("height", "auto").animate({"width": opts.width, "opacity": opts.nonblock ? opts.nonblock_opacity : opts.opacity}, "fast"); - } - if (opts.nonblock) { - // If it's non-blocking, animate to the other opacity. - pnotify.animate({"opacity": opts.nonblock_opacity}, "fast"); - } - // Stop the close timer. - if (opts.hide && opts.mouse_reset) pnotify.pnotify_cancel_remove(); - // Show the buttons. - if (opts.sticker && !opts.nonblock) pnotify.sticker.trigger("pnotify_icon").css("visibility", "visible"); - if (opts.closer && !opts.nonblock) pnotify.closer.css("visibility", "visible"); - }, - "mouseleave": function(e){ - if (opts.nonblock) e.stopPropagation(); - nonblock_last_elem = null; - pnotify.css("cursor", "auto"); - // Animate back to the normal opacity. - if (opts.nonblock && animating != "out") - pnotify.animate({"opacity": opts.opacity}, "fast"); - // Start the close timer. - if (opts.hide && opts.mouse_reset) pnotify.pnotify_queue_remove(); - // Hide the buttons. - if (opts.sticker_hover) - pnotify.sticker.css("visibility", "hidden"); - if (opts.closer_hover) - pnotify.closer.css("visibility", "hidden"); - $.pnotify_position_all(); - }, - "mouseover": function(e){ - if (opts.nonblock) e.stopPropagation(); - }, - "mouseout": function(e){ - if (opts.nonblock) e.stopPropagation(); - }, - "mousemove": function(e){ - if (opts.nonblock) { - e.stopPropagation(); - nonblock_pass(e, "onmousemove"); - } - }, - "mousedown": function(e){ - if (opts.nonblock) { - e.stopPropagation(); - e.preventDefault(); - nonblock_pass(e, "onmousedown"); - } - }, - "mouseup": function(e){ - if (opts.nonblock) { - e.stopPropagation(); - e.preventDefault(); - nonblock_pass(e, "onmouseup"); - } - }, - "click": function(e){ - if (opts.nonblock) { - e.stopPropagation(); - nonblock_pass(e, "onclick"); - } - }, - "dblclick": function(e){ - if (opts.nonblock) { - e.stopPropagation(); - nonblock_pass(e, "ondblclick"); - } - } - }); - pnotify.opts = opts; - // Create a container for the notice contents. - pnotify.container = $("<div />", {"class": styles.container+" ui-pnotify-container "+(opts.type == "error" ? styles.error : (opts.type == "info" ? styles.info : (opts.type == "success" ? styles.success : styles.notice)))}) - .appendTo(pnotify); - if (opts.cornerclass != "") - pnotify.container.removeClass("ui-corner-all").addClass(opts.cornerclass); - // Create a drop shadow. - if (opts.shadow) - pnotify.container.addClass("ui-pnotify-shadow"); - - // The current version of Pines Notify. - pnotify.pnotify_version = "1.2.0"; - - // This function is for updating the notice. - pnotify.pnotify = function(options) { - // Update the notice. - var old_opts = opts; - if (typeof options == "string") - opts.text = options; - else - opts = $.extend({}, opts, options); - // Translate old pnotify_ style options. - for (var i in opts) { - if (typeof i == "string" && i.match(/^pnotify_/)) - opts[i.replace(/^pnotify_/, "")] = opts[i]; - } - pnotify.opts = opts; - // Update the corner class. - if (opts.cornerclass != old_opts.cornerclass) - pnotify.container.removeClass("ui-corner-all").addClass(opts.cornerclass); - // Update the shadow. - if (opts.shadow != old_opts.shadow) { - if (opts.shadow) - pnotify.container.addClass("ui-pnotify-shadow"); - else - pnotify.container.removeClass("ui-pnotify-shadow"); - } - // Update the additional classes. - if (opts.addclass === false) - pnotify.removeClass(old_opts.addclass); - else if (opts.addclass !== old_opts.addclass) - pnotify.removeClass(old_opts.addclass).addClass(opts.addclass); - // Update the title. - if (opts.title === false) - pnotify.title_container.slideUp("fast"); - else if (opts.title !== old_opts.title) { - if (opts.title_escape) - pnotify.title_container.text(opts.title).slideDown(200); - else - pnotify.title_container.html(opts.title).slideDown(200); - } - // Update the text. - if (opts.text === false) { - pnotify.text_container.slideUp("fast"); - } else if (opts.text !== old_opts.text) { - if (opts.text_escape) - pnotify.text_container.text(opts.text).slideDown(200); - else - pnotify.text_container.html(opts.insert_brs ? String(opts.text).replace(/\n/g, "<br />") : opts.text).slideDown(200); - } - // Update values for history menu access. - pnotify.pnotify_history = opts.history; - pnotify.pnotify_hide = opts.hide; - // Change the notice type. - if (opts.type != old_opts.type) - pnotify.container.removeClass(styles.error+" "+styles.notice+" "+styles.success+" "+styles.info).addClass(opts.type == "error" ? styles.error : (opts.type == "info" ? styles.info : (opts.type == "success" ? styles.success : styles.notice))); - if (opts.icon !== old_opts.icon || (opts.icon === true && opts.type != old_opts.type)) { - // Remove any old icon. - pnotify.container.find("div.ui-pnotify-icon").remove(); - if (opts.icon !== false) { - // Build the new icon. - $("<div />", {"class": "ui-pnotify-icon"}) - .append($("<span />", {"class": opts.icon === true ? (opts.type == "error" ? styles.error_icon : (opts.type == "info" ? styles.info_icon : (opts.type == "success" ? styles.success_icon : styles.notice_icon))) : opts.icon})) - .prependTo(pnotify.container); - } - } - // Update the width. - if (opts.width !== old_opts.width) - pnotify.animate({width: opts.width}); - // Update the minimum height. - if (opts.min_height !== old_opts.min_height) - pnotify.container.animate({minHeight: opts.min_height}); - // Update the opacity. - if (opts.opacity !== old_opts.opacity) - pnotify.fadeTo(opts.animate_speed, opts.opacity); - // Update the sticker and closer buttons. - if (!opts.closer || opts.nonblock) - pnotify.closer.css("display", "none"); - else - pnotify.closer.css("display", "block"); - if (!opts.sticker || opts.nonblock) - pnotify.sticker.css("display", "none"); - else - pnotify.sticker.css("display", "block"); - // Update the sticker icon. - pnotify.sticker.trigger("pnotify_icon"); - // Update the hover status of the buttons. - if (opts.sticker_hover) - pnotify.sticker.css("visibility", "hidden"); - else if (!opts.nonblock) - pnotify.sticker.css("visibility", "visible"); - if (opts.closer_hover) - pnotify.closer.css("visibility", "hidden"); - else if (!opts.nonblock) - pnotify.closer.css("visibility", "visible"); - // Update the timed hiding. - if (!opts.hide) - pnotify.pnotify_cancel_remove(); - else if (!old_opts.hide) - pnotify.pnotify_queue_remove(); - pnotify.pnotify_queue_position(); - return pnotify; - }; - - // Position the notice. dont_skip_hidden causes the notice to - // position even if it's not visible. - pnotify.pnotify_position = function(dont_skip_hidden){ - // Get the notice's stack. - var s = pnotify.opts.stack; - if (!s) return; - if (!s.nextpos1) - s.nextpos1 = s.firstpos1; - if (!s.nextpos2) - s.nextpos2 = s.firstpos2; - if (!s.addpos2) - s.addpos2 = 0; - var hidden = pnotify.css("display") == "none"; - // Skip this notice if it's not shown. - if (!hidden || dont_skip_hidden) { - var curpos1, curpos2; - // Store what will need to be animated. - var animate = {}; - // Calculate the current pos1 value. - var csspos1; - switch (s.dir1) { - case "down": - csspos1 = "top"; - break; - case "up": - csspos1 = "bottom"; - break; - case "left": - csspos1 = "right"; - break; - case "right": - csspos1 = "left"; - break; - } - curpos1 = parseInt(pnotify.css(csspos1)); - if (isNaN(curpos1)) - curpos1 = 0; - // Remember the first pos1, so the first visible notice goes there. - if (typeof s.firstpos1 == "undefined" && !hidden) { - s.firstpos1 = curpos1; - s.nextpos1 = s.firstpos1; - } - // Calculate the current pos2 value. - var csspos2; - switch (s.dir2) { - case "down": - csspos2 = "top"; - break; - case "up": - csspos2 = "bottom"; - break; - case "left": - csspos2 = "right"; - break; - case "right": - csspos2 = "left"; - break; - } - curpos2 = parseInt(pnotify.css(csspos2)); - if (isNaN(curpos2)) - curpos2 = 0; - // Remember the first pos2, so the first visible notice goes there. - if (typeof s.firstpos2 == "undefined" && !hidden) { - s.firstpos2 = curpos2; - s.nextpos2 = s.firstpos2; - } - // Check that it's not beyond the viewport edge. - if ((s.dir1 == "down" && s.nextpos1 + pnotify.height() > jwindow.height()) || - (s.dir1 == "up" && s.nextpos1 + pnotify.height() > jwindow.height()) || - (s.dir1 == "left" && s.nextpos1 + pnotify.width() > jwindow.width()) || - (s.dir1 == "right" && s.nextpos1 + pnotify.width() > jwindow.width()) ) { - // If it is, it needs to go back to the first pos1, and over on pos2. - s.nextpos1 = s.firstpos1; - s.nextpos2 += s.addpos2 + (typeof s.spacing2 == "undefined" ? 25 : s.spacing2); - s.addpos2 = 0; - } - // Animate if we're moving on dir2. - if (s.animation && s.nextpos2 < curpos2) { - switch (s.dir2) { - case "down": - animate.top = s.nextpos2+"px"; - break; - case "up": - animate.bottom = s.nextpos2+"px"; - break; - case "left": - animate.right = s.nextpos2+"px"; - break; - case "right": - animate.left = s.nextpos2+"px"; - break; - } - } else - pnotify.css(csspos2, s.nextpos2+"px"); - // Keep track of the widest/tallest notice in the column/row, so we can push the next column/row. - switch (s.dir2) { - case "down": - case "up": - if (pnotify.outerHeight(true) > s.addpos2) - s.addpos2 = pnotify.height(); - break; - case "left": - case "right": - if (pnotify.outerWidth(true) > s.addpos2) - s.addpos2 = pnotify.width(); - break; - } - // Move the notice on dir1. - if (s.nextpos1) { - // Animate if we're moving toward the first pos. - if (s.animation && (curpos1 > s.nextpos1 || animate.top || animate.bottom || animate.right || animate.left)) { - switch (s.dir1) { - case "down": - animate.top = s.nextpos1+"px"; - break; - case "up": - animate.bottom = s.nextpos1+"px"; - break; - case "left": - animate.right = s.nextpos1+"px"; - break; - case "right": - animate.left = s.nextpos1+"px"; - break; - } - } else - pnotify.css(csspos1, s.nextpos1+"px"); - } - // Run the animation. - if (animate.top || animate.bottom || animate.right || animate.left) - pnotify.animate(animate, {duration: 500, queue: false}); - // Calculate the next dir1 position. - switch (s.dir1) { - case "down": - case "up": - s.nextpos1 += pnotify.height() + (typeof s.spacing1 == "undefined" ? 25 : s.spacing1); - break; - case "left": - case "right": - s.nextpos1 += pnotify.width() + (typeof s.spacing1 == "undefined" ? 25 : s.spacing1); - break; - } - } - }; - - // Queue the positiona all function so it doesn't run repeatedly and - // use up resources. - pnotify.pnotify_queue_position = function(milliseconds){ - if (timer) - clearTimeout(timer); - if (!milliseconds) - milliseconds = 10; - timer = setTimeout($.pnotify_position_all, milliseconds); - }; - - // Display the notice. - pnotify.pnotify_display = function() { - // If the notice is not in the DOM, append it. - if (!pnotify.parent().length) - pnotify.appendTo(body); - // Run callback. - if (opts.before_open) { - if (opts.before_open(pnotify) === false) - return; - } - // Try to put it in the right position. - if (opts.stack.push != "top") - pnotify.pnotify_position(true); - // First show it, then set its opacity, then hide it. - if (opts.animation == "fade" || opts.animation.effect_in == "fade") { - // If it's fading in, it should start at 0. - pnotify.show().fadeTo(0, 0).hide(); - } else { - // Or else it should be set to the opacity. - if (opts.opacity != 1) - pnotify.show().fadeTo(0, opts.opacity).hide(); - } - pnotify.animate_in(function(){ - if (opts.after_open) - opts.after_open(pnotify); - - pnotify.pnotify_queue_position(); - - // Now set it to hide. - if (opts.hide) - pnotify.pnotify_queue_remove(); - }); - }; - - // Remove the notice. - pnotify.pnotify_remove = function() { - if (pnotify.timer) { - window.clearTimeout(pnotify.timer); - pnotify.timer = null; - } - // Run callback. - if (opts.before_close) { - if (opts.before_close(pnotify) === false) - return; - } - pnotify.animate_out(function(){ - if (opts.after_close) { - if (opts.after_close(pnotify) === false) - return; - } - pnotify.pnotify_queue_position(); - // If we're supposed to remove the notice from the DOM, do it. - if (opts.remove) - pnotify.detach(); - }); - }; - - // Animate the notice in. - pnotify.animate_in = function(callback){ - // Declare that the notice is animating in. (Or has completed animating in.) - animating = "in"; - var animation; - if (typeof opts.animation.effect_in != "undefined") - animation = opts.animation.effect_in; - else - animation = opts.animation; - if (animation == "none") { - pnotify.show(); - callback(); - } else if (animation == "show") - pnotify.show(opts.animate_speed, callback); - else if (animation == "fade") - pnotify.show().fadeTo(opts.animate_speed, opts.opacity, callback); - else if (animation == "slide") - pnotify.slideDown(opts.animate_speed, callback); - else if (typeof animation == "function") - animation("in", callback, pnotify); - else - pnotify.show(animation, (typeof opts.animation.options_in == "object" ? opts.animation.options_in : {}), opts.animate_speed, callback); - }; - - // Animate the notice out. - pnotify.animate_out = function(callback){ - // Declare that the notice is animating out. (Or has completed animating out.) - animating = "out"; - var animation; - if (typeof opts.animation.effect_out != "undefined") - animation = opts.animation.effect_out; - else - animation = opts.animation; - if (animation == "none") { - pnotify.hide(); - callback(); - } else if (animation == "show") - pnotify.hide(opts.animate_speed, callback); - else if (animation == "fade") - pnotify.fadeOut(opts.animate_speed, callback); - else if (animation == "slide") - pnotify.slideUp(opts.animate_speed, callback); - else if (typeof animation == "function") - animation("out", callback, pnotify); - else - pnotify.hide(animation, (typeof opts.animation.options_out == "object" ? opts.animation.options_out : {}), opts.animate_speed, callback); - }; - - // Cancel any pending removal timer. - pnotify.pnotify_cancel_remove = function() { - if (pnotify.timer) - window.clearTimeout(pnotify.timer); - }; - - // Queue a removal timer. - pnotify.pnotify_queue_remove = function() { - // Cancel any current removal timer. - pnotify.pnotify_cancel_remove(); - pnotify.timer = window.setTimeout(function(){ - pnotify.pnotify_remove(); - }, (isNaN(opts.delay) ? 0 : opts.delay)); - }; - - // Provide a button to close the notice. - pnotify.closer = $("<div />", { - "class": "ui-pnotify-closer", - "css": {"cursor": "pointer", "visibility": opts.closer_hover ? "hidden" : "visible"}, - "click": function(){ - pnotify.pnotify_remove(); - pnotify.sticker.css("visibility", "hidden"); - pnotify.closer.css("visibility", "hidden"); - } - }) - .append($("<span />", {"class": styles.closer})) - .appendTo(pnotify.container); - if (!opts.closer || opts.nonblock) - pnotify.closer.css("display", "none"); - - // Provide a button to stick the notice. - pnotify.sticker = $("<div />", { - "class": "ui-pnotify-sticker", - "css": {"cursor": "pointer", "visibility": opts.sticker_hover ? "hidden" : "visible"}, - "click": function(){ - opts.hide = !opts.hide; - if (opts.hide) - pnotify.pnotify_queue_remove(); - else - pnotify.pnotify_cancel_remove(); - $(this).trigger("pnotify_icon"); - } - }) - .bind("pnotify_icon", function(){ - $(this).children().removeClass(styles.pin_up+" "+styles.pin_down).addClass(opts.hide ? styles.pin_up : styles.pin_down); - }) - .append($("<span />", {"class": styles.pin_up})) - .appendTo(pnotify.container); - if (!opts.sticker || opts.nonblock) - pnotify.sticker.css("display", "none"); - - // Add the appropriate icon. - if (opts.icon !== false) { - $("<div />", {"class": "ui-pnotify-icon"}) - .append($("<span />", {"class": opts.icon === true ? (opts.type == "error" ? styles.error_icon : (opts.type == "info" ? styles.info_icon : (opts.type == "success" ? styles.success_icon : styles.notice_icon))) : opts.icon})) - .prependTo(pnotify.container); - } - - // Add a title. - pnotify.title_container = $("<h4 />", { - "class": "ui-pnotify-title" - }) - .appendTo(pnotify.container); - if (opts.title === false) - pnotify.title_container.hide(); - else if (opts.title_escape) - pnotify.title_container.text(opts.title); - else - pnotify.title_container.html(opts.title); - - // Add text. - pnotify.text_container = $("<div />", { - "class": "ui-pnotify-text" - }) - .appendTo(pnotify.container); - if (opts.text === false) - pnotify.text_container.hide(); - else if (opts.text_escape) - pnotify.text_container.text(opts.text); - else - pnotify.text_container.html(opts.insert_brs ? String(opts.text).replace(/\n/g, "<br />") : opts.text); - - // Set width and min height. - if (typeof opts.width == "string") - pnotify.css("width", opts.width); - if (typeof opts.min_height == "string") - pnotify.container.css("min-height", opts.min_height); - - // The history variable controls whether the notice gets redisplayed - // by the history pull down. - pnotify.pnotify_history = opts.history; - // The hide variable controls whether the history pull down should - // queue a removal timer. - pnotify.pnotify_hide = opts.hide; - - // Add the notice to the notice array. - var notices_data = jwindow.data("pnotify"); - if (notices_data == null || typeof notices_data != "object") - notices_data = []; - if (opts.stack.push == "top") - notices_data = $.merge([pnotify], notices_data); - else - notices_data = $.merge(notices_data, [pnotify]); - jwindow.data("pnotify", notices_data); - // Now position all the notices if they are to push to the top. - if (opts.stack.push == "top") - pnotify.pnotify_queue_position(1); - - // Run callback. - if (opts.after_init) - opts.after_init(pnotify); - - if (opts.history) { - // If there isn't a history pull down, create one. - var history_menu = jwindow.data("pnotify_history"); - if (typeof history_menu == "undefined") { - history_menu = $("<div />", { - "class": "ui-pnotify-history-container "+styles.hi_menu, - "mouseleave": function(){ - history_menu.animate({top: "-"+history_handle_top+"px"}, {duration: 100, queue: false}); - } - }) - .append($("<div />", {"class": "ui-pnotify-history-header", "text": "Redisplay"})) - .append($("<button />", { - "class": "ui-pnotify-history-all "+styles.hi_btn, - "text": "All", - "mouseenter": function(){ - $(this).addClass(styles.hi_btnhov); - }, - "mouseleave": function(){ - $(this).removeClass(styles.hi_btnhov); - }, - "click": function(){ - // Display all notices. (Disregarding non-history notices.) - $.each(notices_data, function(){ - if (this.pnotify_history) { - if (this.is(":visible")) { - if (this.pnotify_hide) - this.pnotify_queue_remove(); - } else if (this.pnotify_display) - this.pnotify_display(); - } - }); - return false; - } - })) - .append($("<button />", { - "class": "ui-pnotify-history-last "+styles.hi_btn, - "text": "Last", - "mouseenter": function(){ - $(this).addClass(styles.hi_btnhov); - }, - "mouseleave": function(){ - $(this).removeClass(styles.hi_btnhov); - }, - "click": function(){ - // Look up the last history notice, and display it. - var i = -1; - var notice; - do { - if (i == -1) - notice = notices_data.slice(i); - else - notice = notices_data.slice(i, i+1); - if (!notice[0]) - break; - i--; - } while (!notice[0].pnotify_history || notice[0].is(":visible")); - if (!notice[0]) - return false; - if (notice[0].pnotify_display) - notice[0].pnotify_display(); - return false; - } - })) - .appendTo(body); - - // Make a handle so the user can pull down the history tab. - var handle = $("<span />", { - "class": "ui-pnotify-history-pulldown "+styles.hi_hnd, - "mouseenter": function(){ - history_menu.animate({top: "0"}, {duration: 100, queue: false}); - } - }) - .appendTo(history_menu); - - // Get the top of the handle. - history_handle_top = handle.offset().top + 2; - // Hide the history pull down up to the top of the handle. - history_menu.css({top: "-"+history_handle_top+"px"}); - // Save the history pull down. - jwindow.data("pnotify_history", history_menu); - } - } - - // Mark the stack so it won't animate the new notice. - opts.stack.animation = false; - - // Display the notice. - pnotify.pnotify_display(); - - return pnotify; - } - }); - - // Some useful regexes. - var re_on = /^on/, - re_mouse_events = /^(dbl)?click$|^mouse(move|down|up|over|out|enter|leave)$|^contextmenu$/, - re_ui_events = /^(focus|blur|select|change|reset)$|^key(press|down|up)$/, - re_html_events = /^(scroll|resize|(un)?load|abort|error)$/; - // Fire a DOM event. - var dom_event = function(e, orig_e){ - var event_object; - e = e.toLowerCase(); - if (document.createEvent && this.dispatchEvent) { - // FireFox, Opera, Safari, Chrome - e = e.replace(re_on, ''); - if (e.match(re_mouse_events)) { - // This allows the click event to fire on the notice. There is - // probably a much better way to do it. - $(this).offset(); - event_object = document.createEvent("MouseEvents"); - event_object.initMouseEvent( - e, orig_e.bubbles, orig_e.cancelable, orig_e.view, orig_e.detail, - orig_e.screenX, orig_e.screenY, orig_e.clientX, orig_e.clientY, - orig_e.ctrlKey, orig_e.altKey, orig_e.shiftKey, orig_e.metaKey, orig_e.button, orig_e.relatedTarget - ); - } else if (e.match(re_ui_events)) { - event_object = document.createEvent("UIEvents"); - event_object.initUIEvent(e, orig_e.bubbles, orig_e.cancelable, orig_e.view, orig_e.detail); - } else if (e.match(re_html_events)) { - event_object = document.createEvent("HTMLEvents"); - event_object.initEvent(e, orig_e.bubbles, orig_e.cancelable); - } - if (!event_object) return; - this.dispatchEvent(event_object); - } else { - // Internet Explorer - if (!e.match(re_on)) e = "on"+e; - event_object = document.createEventObject(orig_e); - this.fireEvent(e, event_object); - } - }; - - $.pnotify.defaults = { - // The notice's title. - title: false, - // Whether to escape the content of the title. (Not allow HTML.) - title_escape: false, - // The notice's text. - text: false, - // Whether to escape the content of the text. (Not allow HTML.) - text_escape: false, - // What styling classes to use. (Can be either jqueryui or bootstrap.) - styling: "bootstrap", - // Additional classes to be added to the notice. (For custom styling.) - addclass: "", - // Class to be added to the notice for corner styling. - cornerclass: "", - // Create a non-blocking notice. It lets the user click elements underneath it. - nonblock: false, - // The opacity of the notice (if it's non-blocking) when the mouse is over it. - nonblock_opacity: .2, - // Display a pull down menu to redisplay previous notices, and place the notice in the history. - history: true, - // Width of the notice. - width: "300px", - // Minimum height of the notice. It will expand to fit content. - min_height: "16px", - // Type of the notice. "notice", "info", "success", or "error". - type: "notice", - // Set icon to true to use the default icon for the selected style/type, false for no icon, or a string for your own icon class. - icon: true, - // The animation to use when displaying and hiding the notice. "none", "show", "fade", and "slide" are built in to jQuery. Others require jQuery UI. Use an object with effect_in and effect_out to use different effects. - animation: "fade", - // Speed at which the notice animates in and out. "slow", "def" or "normal", "fast" or number of milliseconds. - animate_speed: "slow", - // Opacity of the notice. - opacity: 1, - // Display a drop shadow. - shadow: true, - // Provide a button for the user to manually close the notice. - closer: true, - // Only show the closer button on hover. - closer_hover: true, - // Provide a button for the user to manually stick the notice. - sticker: true, - // Only show the sticker button on hover. - sticker_hover: true, - // After a delay, remove the notice. - hide: true, - // Delay in milliseconds before the notice is removed. - delay: 8000, - // Reset the hide timer if the mouse moves over the notice. - mouse_reset: true, - // Remove the notice's elements from the DOM after it is removed. - remove: true, - // Change new lines to br tags. - insert_brs: true, - // The stack on which the notices will be placed. Also controls the direction the notices stack. - stack: {"dir1": "down", "dir2": "left", "push": "bottom", "spacing1": 25, "spacing2": 25} - }; -})(jQuery); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.min.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.min.js b/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.min.js deleted file mode 100644 index 8017939..0000000 --- a/security-admin/src/main/webapp/libs/bower/pines-notify/js/jquery.pnotify.min.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * jQuery Pines Notify (pnotify) Plugin 1.2.0 - * - * http://pinesframework.org/pnotify/ - * Copyright (c) 2009-2012 Hunter Perrin - * - * Triple license under the GPL, LGPL, and MPL: - * http://www.gnu.org/licenses/gpl.html - * http://www.gnu.org/licenses/lgpl.html - * http://www.mozilla.org/MPL/MPL-1.1.html - */ -(function(d){var q,j,r,i=d(window),u={jqueryui:{container:"ui-widget ui-widget-content ui-corner-all",notice:"ui-state-highlight",notice_icon:"ui-icon ui-icon-info",info:"",info_icon:"ui-icon ui-icon-info",success:"ui-state-default",success_icon:"ui-icon ui-icon-circle-check",error:"ui-state-error",error_icon:"ui-icon ui-icon-alert",closer:"ui-icon ui-icon-close",pin_up:"ui-icon ui-icon-pin-w",pin_down:"ui-icon ui-icon-pin-s",hi_menu:"ui-state-default ui-corner-bottom",hi_btn:"ui-state-default ui-corner-all", -hi_btnhov:"ui-state-hover",hi_hnd:"ui-icon ui-icon-grip-dotted-horizontal"},bootstrap:{container:"alert",notice:"",notice_icon:"icon-exclamation-sign",info:"alert-info",info_icon:"icon-info-sign",success:"alert-success",success_icon:"icon-ok-sign",error:"alert-error",error_icon:"icon-warning-sign",closer:"icon-remove",pin_up:"icon-pause",pin_down:"icon-play",hi_menu:"well",hi_btn:"btn",hi_btnhov:"",hi_hnd:"icon-chevron-down"}},s=function(){r=d("body");i=d(window);i.bind("resize",function(){j&&clearTimeout(j); -j=setTimeout(d.pnotify_position_all,10)})};document.body?s():d(s);d.extend({pnotify_remove_all:function(){var e=i.data("pnotify");e&&e.length&&d.each(e,function(){this.pnotify_remove&&this.pnotify_remove()})},pnotify_position_all:function(){j&&clearTimeout(j);j=null;var e=i.data("pnotify");e&&e.length&&(d.each(e,function(){var d=this.opts.stack;if(d)d.nextpos1=d.firstpos1,d.nextpos2=d.firstpos2,d.addpos2=0,d.animation=true}),d.each(e,function(){this.pnotify_position()}))},pnotify:function(e){var g, -a;typeof e!="object"?(a=d.extend({},d.pnotify.defaults),a.text=e):a=d.extend({},d.pnotify.defaults,e);for(var p in a)typeof p=="string"&&p.match(/^pnotify_/)&&(a[p.replace(/^pnotify_/,"")]=a[p]);if(a.before_init&&a.before_init(a)===false)return null;var k,o=function(a,c){b.css("display","none");var f=document.elementFromPoint(a.clientX,a.clientY);b.css("display","block");var e=d(f),g=e.css("cursor");b.css("cursor",g!="auto"?g:"default");if(!k||k.get(0)!=f)k&&(n.call(k.get(0),"mouseleave",a.originalEvent), -n.call(k.get(0),"mouseout",a.originalEvent)),n.call(f,"mouseenter",a.originalEvent),n.call(f,"mouseover",a.originalEvent);n.call(f,c,a.originalEvent);k=e},f=u[a.styling],b=d("<div />",{"class":"ui-pnotify "+a.addclass,css:{display:"none"},mouseenter:function(l){a.nonblock&&l.stopPropagation();a.mouse_reset&&g=="out"&&(b.stop(true),g="in",b.css("height","auto").animate({width:a.width,opacity:a.nonblock?a.nonblock_opacity:a.opacity},"fast"));a.nonblock&&b.animate({opacity:a.nonblock_opacity},"fast"); -a.hide&&a.mouse_reset&&b.pnotify_cancel_remove();a.sticker&&!a.nonblock&&b.sticker.trigger("pnotify_icon").css("visibility","visible");a.closer&&!a.nonblock&&b.closer.css("visibility","visible")},mouseleave:function(l){a.nonblock&&l.stopPropagation();k=null;b.css("cursor","auto");a.nonblock&&g!="out"&&b.animate({opacity:a.opacity},"fast");a.hide&&a.mouse_reset&&b.pnotify_queue_remove();a.sticker_hover&&b.sticker.css("visibility","hidden");a.closer_hover&&b.closer.css("visibility","hidden");d.pnotify_position_all()}, -mouseover:function(b){a.nonblock&&b.stopPropagation()},mouseout:function(b){a.nonblock&&b.stopPropagation()},mousemove:function(b){a.nonblock&&(b.stopPropagation(),o(b,"onmousemove"))},mousedown:function(b){a.nonblock&&(b.stopPropagation(),b.preventDefault(),o(b,"onmousedown"))},mouseup:function(b){a.nonblock&&(b.stopPropagation(),b.preventDefault(),o(b,"onmouseup"))},click:function(b){a.nonblock&&(b.stopPropagation(),o(b,"onclick"))},dblclick:function(b){a.nonblock&&(b.stopPropagation(),o(b,"ondblclick"))}}); -b.opts=a;b.container=d("<div />",{"class":f.container+" ui-pnotify-container "+(a.type=="error"?f.error:a.type=="info"?f.info:a.type=="success"?f.success:f.notice)}).appendTo(b);a.cornerclass!=""&&b.container.removeClass("ui-corner-all").addClass(a.cornerclass);a.shadow&&b.container.addClass("ui-pnotify-shadow");b.pnotify_version="1.2.0";b.pnotify=function(l){var c=a;typeof l=="string"?a.text=l:a=d.extend({},a,l);for(var e in a)typeof e=="string"&&e.match(/^pnotify_/)&&(a[e.replace(/^pnotify_/,"")]= -a[e]);b.opts=a;a.cornerclass!=c.cornerclass&&b.container.removeClass("ui-corner-all").addClass(a.cornerclass);a.shadow!=c.shadow&&(a.shadow?b.container.addClass("ui-pnotify-shadow"):b.container.removeClass("ui-pnotify-shadow"));a.addclass===false?b.removeClass(c.addclass):a.addclass!==c.addclass&&b.removeClass(c.addclass).addClass(a.addclass);a.title===false?b.title_container.slideUp("fast"):a.title!==c.title&&(a.title_escape?b.title_container.text(a.title).slideDown(200):b.title_container.html(a.title).slideDown(200)); -a.text===false?b.text_container.slideUp("fast"):a.text!==c.text&&(a.text_escape?b.text_container.text(a.text).slideDown(200):b.text_container.html(a.insert_brs?String(a.text).replace(/\n/g,"<br />"):a.text).slideDown(200));b.pnotify_history=a.history;b.pnotify_hide=a.hide;a.type!=c.type&&b.container.removeClass(f.error+" "+f.notice+" "+f.success+" "+f.info).addClass(a.type=="error"?f.error:a.type=="info"?f.info:a.type=="success"?f.success:f.notice);if(a.icon!==c.icon||a.icon===true&&a.type!=c.type)b.container.find("div.ui-pnotify-icon").remove(), -a.icon!==false&&d("<div />",{"class":"ui-pnotify-icon"}).append(d("<span />",{"class":a.icon===true?a.type=="error"?f.error_icon:a.type=="info"?f.info_icon:a.type=="success"?f.success_icon:f.notice_icon:a.icon})).prependTo(b.container);a.width!==c.width&&b.animate({width:a.width});a.min_height!==c.min_height&&b.container.animate({minHeight:a.min_height});a.opacity!==c.opacity&&b.fadeTo(a.animate_speed,a.opacity);!a.closer||a.nonblock?b.closer.css("display","none"):b.closer.css("display","block"); -!a.sticker||a.nonblock?b.sticker.css("display","none"):b.sticker.css("display","block");b.sticker.trigger("pnotify_icon");a.sticker_hover?b.sticker.css("visibility","hidden"):a.nonblock||b.sticker.css("visibility","visible");a.closer_hover?b.closer.css("visibility","hidden"):a.nonblock||b.closer.css("visibility","visible");a.hide?c.hide||b.pnotify_queue_remove():b.pnotify_cancel_remove();b.pnotify_queue_position();return b};b.pnotify_position=function(a){var c=b.opts.stack;if(c){if(!c.nextpos1)c.nextpos1= -c.firstpos1;if(!c.nextpos2)c.nextpos2=c.firstpos2;if(!c.addpos2)c.addpos2=0;var d=b.css("display")=="none";if(!d||a){var f,e={},g;switch(c.dir1){case "down":g="top";break;case "up":g="bottom";break;case "left":g="right";break;case "right":g="left"}a=parseInt(b.css(g));isNaN(a)&&(a=0);if(typeof c.firstpos1=="undefined"&&!d)c.firstpos1=a,c.nextpos1=c.firstpos1;var h;switch(c.dir2){case "down":h="top";break;case "up":h="bottom";break;case "left":h="right";break;case "right":h="left"}f=parseInt(b.css(h)); -isNaN(f)&&(f=0);if(typeof c.firstpos2=="undefined"&&!d)c.firstpos2=f,c.nextpos2=c.firstpos2;if(c.dir1=="down"&&c.nextpos1+b.height()>i.height()||c.dir1=="up"&&c.nextpos1+b.height()>i.height()||c.dir1=="left"&&c.nextpos1+b.width()>i.width()||c.dir1=="right"&&c.nextpos1+b.width()>i.width())c.nextpos1=c.firstpos1,c.nextpos2+=c.addpos2+(typeof c.spacing2=="undefined"?25:c.spacing2),c.addpos2=0;if(c.animation&&c.nextpos2<f)switch(c.dir2){case "down":e.top=c.nextpos2+"px";break;case "up":e.bottom=c.nextpos2+ -"px";break;case "left":e.right=c.nextpos2+"px";break;case "right":e.left=c.nextpos2+"px"}else b.css(h,c.nextpos2+"px");switch(c.dir2){case "down":case "up":if(b.outerHeight(true)>c.addpos2)c.addpos2=b.height();break;case "left":case "right":if(b.outerWidth(true)>c.addpos2)c.addpos2=b.width()}if(c.nextpos1)if(c.animation&&(a>c.nextpos1||e.top||e.bottom||e.right||e.left))switch(c.dir1){case "down":e.top=c.nextpos1+"px";break;case "up":e.bottom=c.nextpos1+"px";break;case "left":e.right=c.nextpos1+"px"; -break;case "right":e.left=c.nextpos1+"px"}else b.css(g,c.nextpos1+"px");(e.top||e.bottom||e.right||e.left)&&b.animate(e,{duration:500,queue:false});switch(c.dir1){case "down":case "up":c.nextpos1+=b.height()+(typeof c.spacing1=="undefined"?25:c.spacing1);break;case "left":case "right":c.nextpos1+=b.width()+(typeof c.spacing1=="undefined"?25:c.spacing1)}}}};b.pnotify_queue_position=function(a){j&&clearTimeout(j);a||(a=10);j=setTimeout(d.pnotify_position_all,a)};b.pnotify_display=function(){b.parent().length|| -b.appendTo(r);a.before_open&&a.before_open(b)===false||(a.stack.push!="top"&&b.pnotify_position(true),a.animation=="fade"||a.animation.effect_in=="fade"?b.show().fadeTo(0,0).hide():a.opacity!=1&&b.show().fadeTo(0,a.opacity).hide(),b.animate_in(function(){a.after_open&&a.after_open(b);b.pnotify_queue_position();a.hide&&b.pnotify_queue_remove()}))};b.pnotify_remove=function(){if(b.timer)window.clearTimeout(b.timer),b.timer=null;a.before_close&&a.before_close(b)===false||b.animate_out(function(){a.after_close&& -a.after_close(b)===false||(b.pnotify_queue_position(),a.remove&&b.detach())})};b.animate_in=function(d){g="in";var c;c=typeof a.animation.effect_in!="undefined"?a.animation.effect_in:a.animation;c=="none"?(b.show(),d()):c=="show"?b.show(a.animate_speed,d):c=="fade"?b.show().fadeTo(a.animate_speed,a.opacity,d):c=="slide"?b.slideDown(a.animate_speed,d):typeof c=="function"?c("in",d,b):b.show(c,typeof a.animation.options_in=="object"?a.animation.options_in:{},a.animate_speed,d)};b.animate_out=function(d){g= -"out";var c;c=typeof a.animation.effect_out!="undefined"?a.animation.effect_out:a.animation;c=="none"?(b.hide(),d()):c=="show"?b.hide(a.animate_speed,d):c=="fade"?b.fadeOut(a.animate_speed,d):c=="slide"?b.slideUp(a.animate_speed,d):typeof c=="function"?c("out",d,b):b.hide(c,typeof a.animation.options_out=="object"?a.animation.options_out:{},a.animate_speed,d)};b.pnotify_cancel_remove=function(){b.timer&&window.clearTimeout(b.timer)};b.pnotify_queue_remove=function(){b.pnotify_cancel_remove();b.timer= -window.setTimeout(function(){b.pnotify_remove()},isNaN(a.delay)?0:a.delay)};b.closer=d("<div />",{"class":"ui-pnotify-closer",css:{cursor:"pointer",visibility:a.closer_hover?"hidden":"visible"},click:function(){b.pnotify_remove();b.sticker.css("visibility","hidden");b.closer.css("visibility","hidden")}}).append(d("<span />",{"class":f.closer})).appendTo(b.container);(!a.closer||a.nonblock)&&b.closer.css("display","none");b.sticker=d("<div />",{"class":"ui-pnotify-sticker",css:{cursor:"pointer",visibility:a.sticker_hover? -"hidden":"visible"},click:function(){a.hide=!a.hide;a.hide?b.pnotify_queue_remove():b.pnotify_cancel_remove();d(this).trigger("pnotify_icon")}}).bind("pnotify_icon",function(){d(this).children().removeClass(f.pin_up+" "+f.pin_down).addClass(a.hide?f.pin_up:f.pin_down)}).append(d("<span />",{"class":f.pin_up})).appendTo(b.container);(!a.sticker||a.nonblock)&&b.sticker.css("display","none");a.icon!==false&&d("<div />",{"class":"ui-pnotify-icon"}).append(d("<span />",{"class":a.icon===true?a.type=="error"? -f.error_icon:a.type=="info"?f.info_icon:a.type=="success"?f.success_icon:f.notice_icon:a.icon})).prependTo(b.container);b.title_container=d("<h4 />",{"class":"ui-pnotify-title"}).appendTo(b.container);a.title===false?b.title_container.hide():a.title_escape?b.title_container.text(a.title):b.title_container.html(a.title);b.text_container=d("<div />",{"class":"ui-pnotify-text"}).appendTo(b.container);a.text===false?b.text_container.hide():a.text_escape?b.text_container.text(a.text):b.text_container.html(a.insert_brs? -String(a.text).replace(/\n/g,"<br />"):a.text);typeof a.width=="string"&&b.css("width",a.width);typeof a.min_height=="string"&&b.container.css("min-height",a.min_height);b.pnotify_history=a.history;b.pnotify_hide=a.hide;var h=i.data("pnotify");if(h==null||typeof h!="object")h=[];h=a.stack.push=="top"?d.merge([b],h):d.merge(h,[b]);i.data("pnotify",h);a.stack.push=="top"&&b.pnotify_queue_position(1);a.after_init&&a.after_init(b);if(a.history){var m=i.data("pnotify_history");typeof m=="undefined"&&(m= -d("<div />",{"class":"ui-pnotify-history-container "+f.hi_menu,mouseleave:function(){m.animate({top:"-"+q+"px"},{duration:100,queue:false})}}).append(d("<div />",{"class":"ui-pnotify-history-header",text:"Redisplay"})).append(d("<button />",{"class":"ui-pnotify-history-all "+f.hi_btn,text:"All",mouseenter:function(){d(this).addClass(f.hi_btnhov)},mouseleave:function(){d(this).removeClass(f.hi_btnhov)},click:function(){d.each(h,function(){this.pnotify_history&&(this.is(":visible")?this.pnotify_hide&& -this.pnotify_queue_remove():this.pnotify_display&&this.pnotify_display())});return false}})).append(d("<button />",{"class":"ui-pnotify-history-last "+f.hi_btn,text:"Last",mouseenter:function(){d(this).addClass(f.hi_btnhov)},mouseleave:function(){d(this).removeClass(f.hi_btnhov)},click:function(){var a=-1,b;do{b=a==-1?h.slice(a):h.slice(a,a+1);if(!b[0])break;a--}while(!b[0].pnotify_history||b[0].is(":visible"));if(!b[0])return false;b[0].pnotify_display&&b[0].pnotify_display();return false}})).appendTo(r), -q=d("<span />",{"class":"ui-pnotify-history-pulldown "+f.hi_hnd,mouseenter:function(){m.animate({top:"0"},{duration:100,queue:false})}}).appendTo(m).offset().top+2,m.css({top:"-"+q+"px"}),i.data("pnotify_history",m))}a.stack.animation=false;b.pnotify_display();return b}});var t=/^on/,v=/^(dbl)?click$|^mouse(move|down|up|over|out|enter|leave)$|^contextmenu$/,w=/^(focus|blur|select|change|reset)$|^key(press|down|up)$/,x=/^(scroll|resize|(un)?load|abort|error)$/,n=function(e,g){var a,e=e.toLowerCase(); -document.createEvent&&this.dispatchEvent?(e=e.replace(t,""),e.match(v)?(d(this).offset(),a=document.createEvent("MouseEvents"),a.initMouseEvent(e,g.bubbles,g.cancelable,g.view,g.detail,g.screenX,g.screenY,g.clientX,g.clientY,g.ctrlKey,g.altKey,g.shiftKey,g.metaKey,g.button,g.relatedTarget)):e.match(w)?(a=document.createEvent("UIEvents"),a.initUIEvent(e,g.bubbles,g.cancelable,g.view,g.detail)):e.match(x)&&(a=document.createEvent("HTMLEvents"),a.initEvent(e,g.bubbles,g.cancelable)),a&&this.dispatchEvent(a)): -(e.match(t)||(e="on"+e),a=document.createEventObject(g),this.fireEvent(e,a))};d.pnotify.defaults={title:false,title_escape:false,text:false,text_escape:false,styling:"bootstrap",addclass:"",cornerclass:"",nonblock:false,nonblock_opacity:0.2,history:true,width:"300px",min_height:"16px",type:"notice",icon:true,animation:"fade",animate_speed:"slow",opacity:1,shadow:true,closer:true,closer_hover:true,sticker:true,sticker_hover:true,hide:true,delay:8E3,mouse_reset:true,remove:true,insert_brs:true,stack:{dir1:"down", -dir2:"left",push:"bottom",spacing1:25,spacing2:25}}})(jQuery); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/scripts/Init.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/Init.js b/security-admin/src/main/webapp/scripts/Init.js index 9aee396..a8acd0d 100644 --- a/security-admin/src/main/webapp/scripts/Init.js +++ b/security-admin/src/main/webapp/scripts/Init.js @@ -74,8 +74,10 @@ 'bootstrap-datepicker' : { deps: ['bootstrap'] } , - - pnotify : { deps: ['jquery'], exports: 'pnotify' }, + + 'bootstrap-notify' : { + deps: ['jquery','bootstrap'], + }, moment : { deps: ['jquery'], exports: 'moment' }, 'localstorage' :{ deps : ['backbone','underscore','jquery'] @@ -126,13 +128,14 @@ 'Backbone.BootstrapModal' : '../libs/bower/backbone.bootstrap-modal/js/backbone.bootstrap-modal', 'bootstrap-editable' : '../libs/bower/x-editable/js/bootstrap-editable', 'bootstrap-datepicker' : '../libs/other/datepicker/js/bootstrap-datepicker', + 'bootstrap-notify' : '../libs/bower/bootstrap-notify/js/bootstrap-notify', + 'jquery.cookie' : '../libs/other/jquery-cookie/js/jquery.cookie', 'jquery-toggles' : '../libs/bower/jquery-toggles/js/toggles.min', 'tag-it' : '../libs/bower/tag-it/js/tag-it', 'select2' : '../libs/bower/select2/select2', 'bootbox' : '../libs/bower/bootbox/js/bootbox', - 'pnotify' : '../libs/bower/pines-notify/js/jquery.pnotify.min', 'moment' : '../libs/bower/moment/js/moment-with-langs.min', 'visualsearch' : '../libs/other/visualsearch/js/visualsearch', 'globalize' : '../libs/bower/globalize/lib/globalize', http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e039b7ca/security-admin/src/main/webapp/scripts/utils/XAUtils.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js index 97e1081..d540110 100644 --- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js +++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js @@ -25,7 +25,7 @@ define(function(require) { var XAEnums = require('utils/XAEnums'); var localization = require('utils/XALangSupport'); var XAUtils = {}; - require('pnotify'); + require('bootstrap-notify'); // /////////////////////////////////////////////////////// // Enum utility methods @@ -154,40 +154,56 @@ define(function(require) { /** * Notify Info the given title / text - * @param {string} title - The title * @param {string} text - The text + * @param {string} type - The type + * @param {object} text - Plugin options */ - XAUtils.notifyInfo = function(title, text) { - $.pnotify({ - pnotify_title : title, - pnotify_text : text - }); + XAUtils.notifyInfo = function(type, text, options) { + var html = '<div style="width: 245px;"><div style="min-height: 16px;"><div><span class="icon-exclamation-sign"></span>\ + </div><h4 style="margin-top: -19px;margin-left: 15px;">Info</h4><div>'+text+'</div></div></div>'; + if(_.isUndefined(options)){ + options = { + message: { html: html, text: text }, + type:'info' + }; + } + $('.top-right').notify(options).show(); }; /** - * Notify Error the given title / text - * @param {string} title - The title + * Notify Info the given title / text * @param {string} text - The text + * @param {string} type - The type + * @param {object} text - Plugin options */ - XAUtils.notifyError = function(title, text) { - $.pnotify({ - pnotify_title : title, - pnotify_text : text, - pnotify_type : 'error' - }); + XAUtils.notifyError = function(type, text, options) { + var html = '<div style="width: 245px;"><div style="min-height: 16px;"><div><span class="icon-warning-sign"></span>\ + </div><h4 style="margin-top: -19px;margin-left: 15px;">Error</h4><div>'+text+'</div></div></div>'; + if(_.isUndefined(options)){ + options = { + message: { html: html, text: text }, + type:'error' + }; + } + $('.top-right').notify(options).show(); }; /** - * Notify Success the given title / text - * @param {string} title - The title + * Notify Info the given title / text * @param {string} text - The text + * @param {string} type - The type + * @param {object} text - Plugin options */ - XAUtils.notifySuccess = function(title, text) { - $.pnotify({ - pnotify_title : title, - pnotify_text : text, - pnotify_type : 'success' - }); + XAUtils.notifySuccess = function(type, text, options) { + var html = '<div style="width: 245px;"><div style="min-height: 16px;"><div><span class="icon-ok-sign"></span>\ + </div><h4 style="margin-top: -19px;margin-left: 15px;">Success</h4><div>'+text+'</div></div></div>'; + if(_.isUndefined(options)){ + options = { + message: { html:html}, + type:'success', + }; + } + $('.top-right').notify(options).show(); };
