1 (function($, rf) { 2 3 rf.ui = rf.ui || {}; 4 5 // Constructor definition 6 rf.ui.NotifyMessage = function(componentId, options, notifyOptions) { 7 // call constructor of parent class 8 $super.constructor.call(this, componentId, options, defaultOptions); 9 this.notifyOptions = notifyOptions; 10 }; 11 12 // Extend component class and add protected methods from parent class to our container 13 rf.ui.Base.extend(rf.ui.NotifyMessage); 14 15 // define super class link 16 var $super = rf.ui.NotifyMessage.$super; 17 18 var defaultOptions = { 19 showSummary:true, 20 level:0, 21 isMessages: false, 22 globalOnly: false 23 }; 24 25 26 var onMessage = function (event, element, data) { 27 var sourceId = data.sourceId; 28 var message = data.message; 29 if (!this.options.forComponentId) { 30 if (!this.options.globalOnly && message) { 31 renderMessage.call(this, sourceId, message); 32 } 33 } else if (this.options.forComponentId === sourceId) { 34 renderMessage.call(this, sourceId, message); 35 } 36 } 37 38 var renderMessage = function(index, message) { 39 if (message && message.severity >= this.options.level) { 40 showNotification.call(this, message); 41 } 42 } 43 44 var showNotification = function(message) { 45 rf.ui.Notify($.extend({}, this.notifyOptions, { 46 'summary': this.options.showSummary ? message.summary : undefined, 47 'detail': this.options.showDetail ? message.detail : undefined, 48 'severity': message.severity 49 })); 50 } 51 52 var bindEventHandlers = function () { 53 rf.Event.bind(window.document, rf.Event.MESSAGE_EVENT_TYPE + this.namespace, onMessage, this); 54 }; 55 56 $.extend(rf.ui.NotifyMessage.prototype, { 57 name: "NotifyMessage", 58 __bindEventHandlers: bindEventHandlers, 59 60 destroy : function() { 61 rf.Event.unbind(window.document, rf.Event.MESSAGE_EVENT_TYPE + this.namespace); 62 $super.destroy.call(this); 63 } 64 }); 65 66 })(RichFaces.jQuery, window.RichFaces || (window.RichFaces = {}));