//>>built // wrapped by build app define("dojox/widget/UpgradeBar", ["dijit","dojo","dojox","dojo/require!dojo/window,dojo/fx,dojo/cookie,dijit/_Widget,dijit/_Templated"], function(dijit,dojo,dojox){ dojo.provide("dojox.widget.UpgradeBar"); dojo.require("dojo.window"); dojo.require("dojo.fx"); dojo.require("dojo.cookie"); dojo.require("dijit._Widget"); dojo.require("dijit._Templated"); dojo.experimental("dojox.widget.UpgradeBar"); dojo.declare("dojox.widget.UpgradeBar", [dijit._Widget, dijit._Templated], { // summary: // Shows a bar at the top of the screen when the user is to // be notified that they should upgrade their browser or a // plugin. // // description: // You can insert custom validations to trigger the UpgradeBar // to display. An evaluation of 'true' shows the bar (as this // version *is* less than it should be). Multiple validations // may be checked, although only the first in the list will be // displayed. // Markup and programmatic are supported. Markup is a little // cleaner, since a majority of the parameters are the HTML // snippets to be displayed. In markup, the validate code should // be an expression that will evaluate to true or false. This // expression is wrapped in a try/catch, so if it blows up, it // is assumed to be true and trigger the bar. // In programmtic, a function should be used that returns true // or false. You would need to use your own try/catch in that. // // example: See tests for examples. // // notifications: Array // An array of objects that hold the criteria for upgrades. // message: String // The message to display in the bar. Can be HTML. // validate:Function // The expression to evaluate to determine if the // bar should show or not. Should be a simple expression // if used in HTML: // |
// |
notifications:[], // // buttonCancel:String // The HTML tip show when hovering over the close button. buttonCancel:"Close for now", // // noRemindButton:String // The text link shown that when clicked, permanently dismisses // the message (sets a cookie). If this string is blank, this // link is not displayed. noRemindButton:"Don't Remind Me Again", templateString: dojo.cache("dojox.widget", "UpgradeBar/UpgradeBar.html", "
\n\t
message
\n\t
${noRemindButton}
\n\t\n
"), constructor: function(props, node){ if(!props.notifications && node){ // From markup. Create the notifications Array from the // srcRefNode children. dojo.forEach(node.childNodes, function(n){ if(n.nodeType==1){ var val = dojo.attr(n, "validate"); this.notifications.push({ message:n.innerHTML, validate:function(){ // the function that fires to determine if the // bar shows or not. var evals = true; try{ evals = dojo.eval(val); }catch(e){ /* squelch. it's true.*/ } return evals; } }); } }, this); } }, checkNotifications: function(){ // summary: // Internal. Go through the notifications Array // and check for any that evaluate to true. // tags: // private // if(!this.notifications.length){ // odd. why use the bar but not set any notifications? return; } for(var i=0;i