(एक विशिष्ट संदेश गंभीरता से चिपचिपा चिपकने के लिए)। प्राइमफेस (6.1) इस कार्यक्षमता की पेशकश नहीं करता है, लेकिन growl JavaScript हैक करना बहुत आसान है। विशेष रूप से, bindEvents
समारोह में वे जाँच लें कि sticky
कॉन्फ़िगर किया गया था और के आधार पर:
//hide the message after given time if not sticky
if(!sticky) {
this.setRemovalTimeout(message);
}
तो, आप (ओवरराइड) bindEvents
समारोह प्रोटोटाइप सकता है और संदेश गंभीरता के आधार पर sticky
निर्धारित किया है।
PrimeFaces.widget.Growl.prototype.bindEvents = function(message) {
var _self = this,
sticky = this.cfg.sticky;
// Start hack
if (!sticky) {
// Your rule
}
...
तुम भी renderMessage
प्रोटोटाइप और bindEvents
को पैरामीटर के रूप गंभीरता जोड़ सकते हैं। मैंने एक त्वरित हैक का उपयोग करना चुना और className
से इसे पढ़ा।
मैं इन उपयोगिता कार्यों को जोड़ दिया है:
if (!sticky) {
sticky = getSeverityIndex(getSeverity(message[0])) >= getSeverityIndex("error");
}
मैं GitHub पर एक पुल अनुरोध जहां न्यूनतम गंभीरता को निर्धारित कर सकते हैं बना सकता है:
var SEVERITIES = [ "info", "warn", "error", "fatal" ];
function getSeverity(domNode) {
// HACK Severity can be found in the className after the last - character.
var severity = domNode.className;
return severity.substring(severity.lastIndexOf("-") + 1);
}
function getSeverityIndex(severityString) {
return SEVERITIES.indexOf(severityString);
}
अब आप निम्नलिखित की जांच का उपयोग कर सकते p:growl
घटक पर stickSeverity
विशेषता का उपयोग करके मालिश करें।
यहां पूर्ण जावास्क्रिप्ट हैक (प्राइमफेस 6 है।1):
var SEVERITIES = [ "info", "warn", "error", "fatal" ];
function getSeverity(domNode) {
// HACK Severity can be found in the className after the last - character.
var severity = domNode.className;
return severity.substring(severity.lastIndexOf("-") + 1);
}
function getSeverityIndex(severityString) {
return SEVERITIES.indexOf(severityString);
}
PrimeFaces.widget.Growl.prototype.bindEvents = function(message) {
var _self = this,
sticky = this.cfg.sticky;
// Start customization
if (!sticky) {
sticky = getSeverityIndex(getSeverity(message[0])) >= getSeverityIndex("error");
}
// End customization
message.mouseover(function() {
var msg = $(this);
//visuals
if(!msg.is(':animated')) {
msg.find('div.ui-growl-icon-close:first').show();
}
})
.mouseout(function() {
//visuals
$(this).find('div.ui-growl-icon-close:first').hide();
});
//remove message on click of close icon
message.find('div.ui-growl-icon-close').click(function() {
_self.removeMessage(message);
//clear timeout if removed manually
if(!sticky) {
clearTimeout(message.data('timeout'));
}
});
//hide the message after given time if not sticky
if(!sticky) {
this.setRemovalTimeout(message);
}
}
वर्तमान में आप कर सकते हैं। वास्तव में, ऐसा लगता है कि यह एक समय के लिए उपलब्ध है http://stackoverflow.com/questions/20465674/is-possible-use-tow-growls-in-one-page – SJuan76