All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jbpm.designer.public.js.notifications.js Maven / Gradle / Ivy

There is a newer version: 7.73.0.Final
Show newest version
;(function(window, $) {
    window.notifications = (function() {
        var 
            defaults = {
                tapToDismiss: true,
                notificationClass: 'notification',
                containerId: 'notification-container',
                debug: false,
                fadeIn: 300,
                fadeOut: 1000,
                extendedTimeOut: 1000,
                iconClasses: {
                    error: 'notification-error',
                    info: 'notification-info',
                    success: 'notification-success',
                    warning: 'notification-warning'
                },
                iconClass: 'notification-info',
                positionClass: 'notification-top-right',
                timeOut: 5000, // Set timeOut to 0 to make it sticky
                titleClass: 'notification-title',
                messageClass: 'notification-message'
            },


            error = function(message, title) {
                return notify({
                    iconClass: getOptions().iconClasses.error,
                    message: message,
                    title: title
                })
            },

            getContainer = function(options) {
                var $container = $('#' + options.containerId)

                if ($container.length)
                    return $container

                $container = $('
') .attr('id', options.containerId) .addClass(options.positionClass) $container.appendTo($('body')) return $container }, getOptions = function() { return $.extend({}, defaults, notifications.options) }, info = function(message, title) { return notify({ iconClass: getOptions().iconClasses.info, message: message, title: title }) }, notify = function(map) { var options = getOptions(), iconClass = map.iconClass || options.iconClass, intervalId = null, $container = getContainer(options), $notificationElement = $('
'), $titleElement = $('
'), $messageElement = $('
'), response = { options: options, map: map } if (map.iconClass) { $notificationElement.addClass(options.notificationClass).addClass(iconClass) } if (map.title) { $titleElement.append(map.title).addClass(options.titleClass) $notificationElement.append($titleElement) } if (map.message) { $messageElement.append(map.message).addClass(options.messageClass) $notificationElement.append($messageElement) } var fadeAway = function() { if ($(':focus', $notificationElement).length > 0) return var fade = function() { return $notificationElement.fadeOut(options.fadeOut) } $.when(fade()).done(function() { if ($notificationElement.is(':visible')) { return } $notificationElement.remove() if ($container.children().length === 0) $container.remove() }) } var delayedFadeAway = function() { if (options.timeOut > 0 || options.extendedTimeOut > 0) { intervalId = setTimeout(fadeAway, options.extendedTimeOut) } } var stickAround = function() { clearTimeout(intervalId) $notificationElement.stop(true, true) .fadeIn(options.fadeIn) } $notificationElement.hide() $container.prepend($notificationElement) $notificationElement.fadeIn(options.fadeIn) if (options.timeOut > 0) { intervalId = setTimeout(fadeAway, options.timeOut) } $notificationElement.hover(stickAround, delayedFadeAway) if (options.tapToDismiss) { $notificationElement.click(fadeAway) } if (options.debug) { console.log(response) } return $notificationElement }, success = function(message, title) { return notify({ iconClass: getOptions().iconClasses.success, message: message, title: title }) }, warning = function(message, title) { return notify({ iconClass: getOptions().iconClasses.warning, message: message, title: title }) } return { error: error, info: info, options: {}, success: success, warning: warning } })() } (window, jQuery));




© 2015 - 2025 Weber Informatics LLC | Privacy Policy