root / trunk / web / dojo / dojox / widget / UpgradeBar.js @ 9
History | View | Annotate | Download (3.61 KB)
1 |
/*
|
---|---|
2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
4 |
see: http://dojotoolkit.org/license for details
|
5 |
*/
|
6 |
|
7 |
|
8 |
if(!dojo._hasResource["dojox.widget.UpgradeBar"]){ |
9 |
dojo._hasResource["dojox.widget.UpgradeBar"]=true; |
10 |
dojo.provide("dojox.widget.UpgradeBar");
|
11 |
dojo.require("dojo.window");
|
12 |
dojo.require("dojo.fx");
|
13 |
dojo.require("dojo.cookie");
|
14 |
dojo.require("dijit._Widget");
|
15 |
dojo.require("dijit._Templated");
|
16 |
dojo.experimental("dojox.widget.UpgradeBar");
|
17 |
dojo.declare("dojox.widget.UpgradeBar",[dijit._Widget,dijit._Templated],{notifications:[],buttonCancel:"Close for now",noRemindButton:"Don't Remind Me Again",templateString:dojo.cache("dojox.widget","UpgradeBar/UpgradeBar.html","<div class=\"dojoxUpgradeBar\">\n\t<div class=\"dojoxUpgradeBarMessage\" dojoAttachPoint=\"messageNode\">message</div>\n\t<div class=\"dojoxUpgradeBarReminderButton\" dojoAttachPoint=\"dontRemindButtonNode\" dojoAttachEvent=\"onclick:_onDontRemindClick\">${noRemindButton}</div>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dojoxUpgradeBarCloseIcon\" dojoAttachEvent=\"onclick: hide, onmouseenter: _onCloseEnter, onmouseleave: _onCloseLeave\" title=\"${buttonCancel}\"></span>\n</div>\n"),constructor:function(_1,_2){ |
18 |
if(!_1.notifications&&_2){
|
19 |
dojo.forEach(_2.childNodes,function(n){
|
20 |
if(n.nodeType==1){ |
21 |
var _3=dojo.attr(n,"validate"); |
22 |
this.notifications.push({message:n.innerHTML,validate:function(){ |
23 |
var _4=true; |
24 |
try{
|
25 |
_4=dojo.eval(_3); |
26 |
} |
27 |
catch(e){
|
28 |
} |
29 |
return _4;
|
30 |
}}); |
31 |
} |
32 |
},this);
|
33 |
} |
34 |
},checkNotifications:function(){ |
35 |
if(!this.notifications.length){ |
36 |
return;
|
37 |
} |
38 |
for(var i=0;i<this.notifications.length;i++){ |
39 |
var _5=this.notifications[i].validate(); |
40 |
if(_5){
|
41 |
this.notify(this.notifications[i].message); |
42 |
break;
|
43 |
} |
44 |
} |
45 |
},postCreate:function(){ |
46 |
this.inherited(arguments); |
47 |
if(this.domNode.parentNode){ |
48 |
dojo.style(this.domNode,"display","none"); |
49 |
} |
50 |
dojo.mixin(this.attributeMap,{message:{node:"messageNode",type:"innerHTML"}}); |
51 |
if(!this.noRemindButton){ |
52 |
dojo.destroy(this.dontRemindButtonNode);
|
53 |
} |
54 |
if(dojo.isIE==6){ |
55 |
var _6=this; |
56 |
var _7=function(){ |
57 |
var v=dojo.window.getBox();
|
58 |
dojo.style(_6.domNode,"width",v.w+"px"); |
59 |
}; |
60 |
this.connect(window,"resize",function(){ |
61 |
_7(); |
62 |
}); |
63 |
_7(); |
64 |
} |
65 |
dojo.addOnLoad(this,"checkNotifications"); |
66 |
},notify:function(_8){ |
67 |
if(dojo.cookie("disableUpgradeReminders")){ |
68 |
return;
|
69 |
} |
70 |
if(!this.domNode.parentNode||!this.domNode.parentNode.innerHTML){ |
71 |
document.body.appendChild(this.domNode);
|
72 |
} |
73 |
dojo.style(this.domNode,"display",""); |
74 |
if(_8){
|
75 |
this.set("message",_8); |
76 |
} |
77 |
},show:function(){ |
78 |
this._bodyMarginTop=dojo.style(dojo.body(),"marginTop"); |
79 |
this._size=dojo.contentBox(this.domNode).h; |
80 |
dojo.style(this.domNode,{display:"block",height:0,opacity:0}); |
81 |
if(!this._showAnim){ |
82 |
this._showAnim=dojo.fx.combine([dojo.animateProperty({node:dojo.body(),duration:500,properties:{marginTop:this._bodyMarginTop+this._size}}),dojo.animateProperty({node:this.domNode,duration:500,properties:{height:this._size,opacity:1}})]); |
83 |
} |
84 |
this._showAnim.play();
|
85 |
},hide:function(){ |
86 |
if(!this._hideAnim){ |
87 |
this._hideAnim=dojo.fx.combine([dojo.animateProperty({node:dojo.body(),duration:500,properties:{marginTop:this._bodyMarginTop}}),dojo.animateProperty({node:this.domNode,duration:500,properties:{height:0,opacity:0}})]); |
88 |
dojo.connect(this._hideAnim,"onEnd",this,function(){ |
89 |
dojo.style(this.domNode,"display","none"); |
90 |
}); |
91 |
} |
92 |
this._hideAnim.play();
|
93 |
},_onDontRemindClick:function(){ |
94 |
dojo.cookie("disableUpgradeReminders",true,{expires:3650}); |
95 |
this.hide();
|
96 |
},_onCloseEnter:function(){ |
97 |
dojo.addClass(this.closeButtonNode,"dojoxUpgradeBarCloseIcon-hover"); |
98 |
},_onCloseLeave:function(){ |
99 |
dojo.removeClass(this.closeButtonNode,"dojoxUpgradeBarCloseIcon-hover"); |
100 |
}}); |
101 |
} |