Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / widget / UpgradeBar.js @ 12

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
}