META-INF.resources.org.richfaces.notify.js Maven / Gradle / Ivy
The newest version!
(function($, rf) {
rf.ui = rf.ui || {};
var defaultOptions = {
styleClass: '',
nonblocking: false,
nonblockingOpacity: 0.2,
showHistory: false,
animationSpeed: 'slow',
opacity: '1',
showShadow: false,
showCloseButton: true,
appearAnimation: 'fade',
hideAnimation: 'fade',
sticky: false,
stayTime: 8000,
delay: 0
};
var defaultStackId = "org.richfaces.notifyStack.default";
var events = "click dblclick keydown keypress keyup mousedown mousemove mouseout mouseover mouseup";
var propertyTranslation = {
'summary':'pnotify_title',
'detail': 'pnotify_text',
'styleClass': 'pnotify_addclass',
'nonblocking': 'pnotify_nonblock',
'nonblockingOpacity': 'pnotify_nonblock_opacity',
'showHistory': 'pnotify_history',
'animation': 'pnotify_animation',
'appearAnimation': 'effect_in',
'hideAnimation': 'effect_out',
'animationSpeed': 'pnotify_animate_speed',
'opacity': 'pnotify_opacity',
'showShadow': 'pnotify_shadow',
'showCloseButton': 'pnotify_closer',
'sticky': 'pnotify_hide',
'stayTime': 'pnotify_delay'
};
var severityClasses = ["rf-ntf-inf", "rf-ntf-wrn", "rf-ntf-err", "rf-ntf-ftl"];
var translateProperties = function(target, source, translation) {
for (var attr in source) {
if (source.hasOwnProperty(attr)) {
var targetAttr = translation[attr] != null ? translation[attr] : attr;
target[targetAttr] = source[attr];
if (target[targetAttr] instanceof Object) {
target[targetAttr] = $.extend({}, target[targetAttr], translation);
}
}
}
return target;
};
var getDefaultStack = function() {
if (!document.getElementById(defaultStackId)) {
var stackElement = $('');
$('body').append(stackElement);
new rf.ui.NotifyStack(defaultStackId);
}
return getStack(defaultStackId);
};
var getStack = function(stackId) {
if (!stackId) {
return getDefaultStack();
}
return rf.component(stackId).getStack();
};
var array_remove = function(array, from, to) {
var rest = array.slice((to || from) + 1 || array.length);
array.length = from < 0 ? array.length + from : from;
return array.push.apply(array, rest);
};
/**
* Backing object for notifications
*
* @memberOf! RichFaces.ui
* @constructs RichFaces.ui.Notify
*
* @param options
*/
rf.ui.Notify = function(options) {
var options = $.extend({}, defaultOptions, options);
if (typeof options.severity == "number") {
var severity = severityClasses[options.severity];
options.styleClass = options.styleClass ? severity + " " + options.styleClass : severity;
}
options.showCloseButton = options.sticky || options.showCloseButton;
var pnotifyOptions = translateProperties({}, options, propertyTranslation);
var display = function() {
var stack = getStack(options.stackId);
pnotifyOptions.pnotify_stack = stack;
pnotifyOptions.pnotify_addclass += ' rf-ntf-pos-' + stack.position;
pnotifyOptions.pnotify_after_close = function(pnotify) {
var index = $.inArray(pnotify, stack.notifications);
if (index >= 0) {
array_remove(stack.notifications, index);
}
}
var pnotify = $.pnotify(pnotifyOptions);
pnotify.on(events, function(e) {
if (options['on' + e.type]) {
options['on' + e.type].call(this, e);
}
});
if (options.style) {
pnotify.attr('style', pnotify.attr('style') + options.style)
}
if (options.title) {
pnotify.attr('title', options.title)
}
stack.addNotification(pnotify);
}
if (options.sticky !== null) {
pnotifyOptions.pnotify_hide = !options.sticky;
}
$(document).ready(function() {
if (options.delay) {
setTimeout(function() {
display();
}, options.delay);
} else {
display();
}
});
};
})(RichFaces.jQuery, RichFaces);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy