349 lines
12 KiB
JavaScript
349 lines
12 KiB
JavaScript
//>>built
|
|
require({cache:{"url:dojox/widget/Pager/Pager.html":"<div dojoAttachPoint=\"pagerContainer\" tabIndex=\"0\" dojoAttachEvent=\"onkeypress: _handleKey, onfocus: _a11yStyle, onblur:_a11yStyle\" class=\"${orientation}PagerContainer\">\n <div class=\"pagerContainer\">\n\t\t<div dojoAttachPoint=\"pagerContainerStatus\" class=\"${orientation}PagerStatus\"></div>\n\t\t<div dojoAttachPoint=\"pagerContainerView\" class=\"${orientation}PagerView\">\n\t\t <div dojoAttachPoint=\"pagerItemContainer\"><ul dojoAttachPoint=\"pagerItems\" class=\"pagerItems\"></ul></div>\n\t\t</div>\n\t\t<div dojoAttachPoint=\"pagerContainerPager\" class=\"${orientation}PagerPager\">\n\t\t\t<div tabIndex=\"0\" dojoAttachPoint=\"pagerNext\" class=\"pagerIconContainer\" dojoAttachEvent=\"onclick: _pagerNext\"><img dojoAttachPoint=\"pagerIconNext\" src=\"${iconNext}\" alt=\"Next\" /></div>\n\t\t\t<div tabIndex=\"0\" dojoAttachPoint=\"pagerPrevious\" class=\"pagerIconContainer\" dojoAttachEvent=\"onclick: _pagerPrevious\"><img dojoAttachPoint=\"pagerIconPrevious\" src=\"${iconPrevious}\" alt=\"Previous\" /></div>\n\t\t</div>\n </div>\n\t<div dojoAttachPoint=\"containerNode\" style=\"display:none\"></div>\n</div>"}});
|
|
define("dojox/widget/Pager",["dojo/aspect","dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/fx","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dijit/_WidgetBase","dijit/_TemplatedMixin","./PagerItem","dojo/text!./Pager/Pager.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,fx,_a,_b,_c,on,_d,_e,_f,_10){
|
|
_a.experimental("dojox.widget.Pager");
|
|
return _3("dojox.widget.Pager",[_d,_e],{templateString:_10,iconPrevious:"",iconNext:"",iconPage:require.toUrl("dojox/widget/Pager/images/pageInactive.png"),iconPageActive:require.toUrl("dojox/widget/Pager/images/pageActive.png"),store:null,orientation:"horizontal",statusPos:"leading",pagerPos:"center",duration:500,itemSpace:2,resizeChildren:true,itemClass:_f,itemsPage:3,postMixInProperties:function(){
|
|
var h=(this.orientation=="horizontal");
|
|
_c.mixin(this,{_totalPages:0,_currentPage:1,dirClass:"pager"+(h?"Horizontal":"Vertical"),iconNext:require.toUrl("dojox/widget/Pager/images/"+(h?"h":"v")+"Next.png"),iconPrevious:require.toUrl("dojox/widget/Pager/images/"+(h?"h":"v")+"Previous.png")});
|
|
},postCreate:function(){
|
|
this.inherited(arguments);
|
|
this.store.fetch({onComplete:_c.hitch(this,"_init")});
|
|
},_a11yStyle:function(e){
|
|
_6.toggle(e.target,"pagerFocus",(e.type=="focus"));
|
|
},_handleKey:function(e){
|
|
var key=(e.charCode==_b.SPACE?_b.SPACE:e.keyCode);
|
|
switch(key){
|
|
case _b.UP_ARROW:
|
|
case _b.RIGHT_ARROW:
|
|
case 110:
|
|
case 78:
|
|
e.preventDefault();
|
|
this._pagerNext();
|
|
break;
|
|
case _b.DOWN_ARROW:
|
|
case _b.LEFT_ARROW:
|
|
case 112:
|
|
case 80:
|
|
e.preventDefault();
|
|
this._pagerPrevious();
|
|
break;
|
|
case _b.ENTER:
|
|
switch(e.target){
|
|
case this.pagerNext:
|
|
this._pagerNext();
|
|
break;
|
|
case this.pagerPrevious:
|
|
this._pagerPrevious();
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
},_init:function(_11){
|
|
this.items=_11;
|
|
this._renderPages();
|
|
this._renderStatus();
|
|
this._renderPager();
|
|
},generatePagerItem:function(_12,cnt){
|
|
var _13=this.itemClass,_14=(typeof _13=="string"?_c.getObject(_13):_13);
|
|
var _15=_7.create("div",{innerHTML:_12.content});
|
|
return new _14({id:this.id+"-item-"+(cnt+1)},_15);
|
|
},_renderPages:function(){
|
|
var pcv=this.pagerContainerView,_16=(this.orientation=="horizontal");
|
|
if(_16){
|
|
var _17=_8.getMarginBox(this.pagerContainerPager).h,_18=_8.getMarginBox(this.pagerContainerStatus).h;
|
|
if(this.pagerPos!="center"){
|
|
var _19=_17+_18;
|
|
}else{
|
|
var _19=_18;
|
|
var _1a=this.pagerIconNext.width,_1b=_9.get(pcv,"width"),_1c=_1b-(2*_1a);
|
|
_9.set(pcv,{width:_1c+"px",marginLeft:this.pagerIconNext.width+"px",marginRight:this.pagerIconNext.width+"px"});
|
|
}
|
|
var _1d=_9.get(this.pagerContainer,"height")-_19;
|
|
_9.set(this.pagerContainerView,"height",_1d+"px");
|
|
var _1e=Math.floor(_9.get(pcv,"width")/this.itemsPage);
|
|
if(this.statusPos=="trailing"){
|
|
if(this.pagerPos!="center"){
|
|
_9.set(pcv,"marginTop",_17+"px");
|
|
}
|
|
_9.set(pcv,"marginBottom",_18+"px");
|
|
}else{
|
|
_9.set(pcv,"marginTop",_18+"px");
|
|
if(this.pagerPos!="center"){
|
|
_9.set(pcv,"marginTop",_17+"px");
|
|
}
|
|
}
|
|
}else{
|
|
var _1f=_8.getMarginBox(this.pagerContainerPager).w,_20=_8.getMarginBox(this.pagerContainerStatus).w,_21=_9.get(this.pagerContainer,"width");
|
|
if(this.pagerPos!="center"){
|
|
var _22=_1f+_20;
|
|
}else{
|
|
var _22=_20,_23=this.pagerIconNext.height,_24=_9.get(pcv,"height"),_25=_24-(2*_23);
|
|
_9.set(pcv,{height:_25+"px",marginTop:this.pagerIconNext.height+"px",marginBottom:this.pagerIconNext.height+"px"});
|
|
}
|
|
var _26=_9.get(this.pagerContainer,"width")-_22;
|
|
_9.set(pcv,"width",_26+"px");
|
|
var _1e=Math.floor(_9.get(pcv,"height")/this.itemsPage);
|
|
if(this.statusPos=="trailing"){
|
|
if(this.pagerPos!="center"){
|
|
_9.set(pcv,"marginLeft",_1f+"px");
|
|
}
|
|
_9.set(pcv,"marginRight",_20+"px");
|
|
}else{
|
|
_9.set(pcv,"marginLeft",_20+"px");
|
|
if(this.pagerPos!="center"){
|
|
_9.set(pcv,"marginRight",_1f+"px");
|
|
}
|
|
}
|
|
}
|
|
var _27="padding"+(_16?"Left":"Top"),_28="padding"+(_16?"Right":"Bottom");
|
|
_2.forEach(this.items,function(_29,cnt){
|
|
var _2a=this.generatePagerItem(_29,cnt),_2b={};
|
|
this.pagerItems.appendChild(_2a.domNode);
|
|
_2b[(_16?"width":"height")]=(_1e-this.itemSpace)+"px";
|
|
var p=(_16?"height":"width");
|
|
_2b[p]=_9.get(pcv,p)+"px";
|
|
_9.set(_2a.containerNode,_2b);
|
|
if(this.resizeChildren){
|
|
_2a.resizeChildren();
|
|
}
|
|
_2a.parseChildren();
|
|
_9.set(_2a.domNode,"position","absolute");
|
|
if(cnt<this.itemsPage){
|
|
var pos=(cnt)*_1e,_2c=(_16?"left":"top"),dir=(_16?"top":"left");
|
|
_9.set(_2a.domNode,dir,"0px");
|
|
_9.set(_2a.domNode,_2c,pos+"px");
|
|
}else{
|
|
_9.set(_2a.domNode,"top","-1000px");
|
|
_9.set(_2a.domNode,"left","-1000px");
|
|
}
|
|
_9.set(_2a.domNode,_28,(this.itemSpace/2)+"px");
|
|
_9.set(_2a.domNode,_27,(this.itemSpace/2)+"px");
|
|
},this);
|
|
},_renderPager:function(){
|
|
var tcp=this.pagerContainerPager,_2d="0px",_2e=(this.orientation=="horizontal");
|
|
if(_2e){
|
|
if(this.statusPos=="center"){
|
|
}else{
|
|
if(this.statusPos=="trailing"){
|
|
_9.set(tcp,"top",_2d);
|
|
}else{
|
|
_9.set(tcp,"bottom",_2d);
|
|
}
|
|
}
|
|
_9.set(this.pagerNext,"right",_2d);
|
|
_9.set(this.pagerPrevious,"left",_2d);
|
|
}else{
|
|
if(this.statusPos=="trailing"){
|
|
_9.set(tcp,"left",_2d);
|
|
}else{
|
|
_9.set(tcp,"right",_2d);
|
|
}
|
|
_9.set(this.pagerNext,"bottom",_2d);
|
|
_9.set(this.pagerPrevious,"top",_2d);
|
|
}
|
|
},_renderStatus:function(){
|
|
this._totalPages=Math.ceil(this.items.length/this.itemsPage);
|
|
this.iconWidth=0;
|
|
this.iconHeight=0;
|
|
this.iconsLoaded=0;
|
|
this._iconConnects=[];
|
|
for(var i=1;i<=this._totalPages;i++){
|
|
var _2f=new Image();
|
|
var _30=i;
|
|
on(_2f,"click",_c.hitch(this,"_pagerSkip",_30));
|
|
this._iconConnects[_30]=on(_2f,"load",_c.hitch(this,function(_31){
|
|
this.iconWidth+=_2f.width;
|
|
this.iconHeight+=_2f.height;
|
|
this.iconsLoaded++;
|
|
if(this._totalPages==this.iconsLoaded){
|
|
if(this.orientation=="horizontal"){
|
|
if(this.statusPos=="trailing"){
|
|
if(this.pagerPos=="center"){
|
|
var _32=_9.get(this.pagerContainer,"height"),_33=_9.get(this.pagerContainerStatus,"height");
|
|
_9.set(this.pagerContainerPager,"top",((_32/2)-(_33/2))+"px");
|
|
}
|
|
_9.set(this.pagerContainerStatus,"bottom","0px");
|
|
}else{
|
|
if(this.pagerPos=="center"){
|
|
var _32=_9.get(this.pagerContainer,"height"),_33=_9.get(this.pagerContainerStatus,"height");
|
|
_9.set(this.pagerContainerPager,"bottom",((_32/2)-(_33/2))+"px");
|
|
}
|
|
_9.set(this.pagerContainerStatus,"top","0px");
|
|
}
|
|
var _34=(_9.get(this.pagerContainer,"width")/2)-(this.iconWidth/2);
|
|
_9.set(this.pagerContainerStatus,"paddingLeft",_34+"px");
|
|
}else{
|
|
if(this.statusPos=="trailing"){
|
|
if(this.pagerPos=="center"){
|
|
var _35=_9.get(this.pagerContainer,"width"),_36=_9.get(this.pagerContainerStatus,"width");
|
|
_9.set(this.pagerContainerPager,"left",((_35/2)-(_36/2))+"px");
|
|
}
|
|
_9.set(this.pagerContainerStatus,"right","0px");
|
|
}else{
|
|
if(this.pagerPos=="center"){
|
|
var _35=_9.get(this.pagerContainer,"width"),_36=_9.get(this.pagerContainerStatus,"width");
|
|
_9.set(this.pagerContainerPager,"right",((_35/2)-(_36/2))+"px");
|
|
}
|
|
_9.set(this.pagerContainerStatus,"left","0px");
|
|
}
|
|
var _34=(_9.get(this.pagerContainer,"height")/2)-(this.iconHeight/2);
|
|
_9.set(this.pagerContainerStatus,"paddingTop",_34+"px");
|
|
}
|
|
}
|
|
this._iconConnects[_31].remove();
|
|
},_30));
|
|
if(i==this._currentPage){
|
|
_2f.src=this.iconPageActive;
|
|
}else{
|
|
_2f.src=this.iconPage;
|
|
}
|
|
var _30=i;
|
|
_6.add(_2f,this.orientation+"PagerIcon");
|
|
_5.set(_2f,"id",this.id+"-status-"+i);
|
|
this.pagerContainerStatus.appendChild(_2f);
|
|
if(this.orientation=="vertical"){
|
|
_9.set(_2f,"display","block");
|
|
}
|
|
}
|
|
},_pagerSkip:function(_37){
|
|
if(this._currentPage==_37){
|
|
return;
|
|
}else{
|
|
var _38;
|
|
var _39;
|
|
if(_37<this._currentPage){
|
|
_38=this._currentPage-_37;
|
|
_39=(this._totalPages+_37)-this._currentPage;
|
|
}else{
|
|
_38=(this._totalPages+this._currentPage)-_37;
|
|
_39=_37-this._currentPage;
|
|
}
|
|
var b=(_39>_38);
|
|
this._toScroll=(b?_38:_39);
|
|
var cmd=(b?"_pagerPrevious":"_pagerNext"),_3a=_1.after(this,"onScrollEnd",_c.hitch(this,function(){
|
|
this._toScroll--;
|
|
if(this._toScroll<1){
|
|
_3a.remove();
|
|
}else{
|
|
this[cmd]();
|
|
}
|
|
}),true);
|
|
this[cmd]();
|
|
}
|
|
},_pagerNext:function(){
|
|
if(this._anim){
|
|
return;
|
|
}
|
|
var _3b=[];
|
|
for(var i=this._currentPage*this.itemsPage;i>(this._currentPage-1)*this.itemsPage;i--){
|
|
if(!_4.byId(this.id+"-item-"+i)){
|
|
continue;
|
|
}
|
|
var _3c=_4.byId(this.id+"-item-"+i);
|
|
var _3d=_8.getMarginBox(_3c);
|
|
if(this.orientation=="horizontal"){
|
|
var _3e=_3d.l-(this.itemsPage*_3d.w);
|
|
_3b.push(fx.slideTo({node:_3c,left:_3e,duration:this.duration}));
|
|
}else{
|
|
var _3e=_3d.t-(this.itemsPage*_3d.h);
|
|
_3b.push(fx.slideTo({node:_3c,top:_3e,duration:this.duration}));
|
|
}
|
|
}
|
|
var _3f=this._currentPage;
|
|
if(this._currentPage==this._totalPages){
|
|
this._currentPage=1;
|
|
}else{
|
|
this._currentPage++;
|
|
}
|
|
var cnt=this.itemsPage;
|
|
for(var i=this._currentPage*this.itemsPage;i>(this._currentPage-1)*this.itemsPage;i--){
|
|
if(_4.byId(this.id+"-item-"+i)){
|
|
var _3c=_4.byId(this.id+"-item-"+i);
|
|
var _3d=_8.getMarginBox(_3c);
|
|
if(this.orientation=="horizontal"){
|
|
var _40=(_9.get(this.pagerContainerView,"width")+((cnt-1)*_3d.w))-1;
|
|
_9.set(_3c,"left",_40+"px");
|
|
_9.set(_3c,"top","0px");
|
|
var _3e=_40-(this.itemsPage*_3d.w);
|
|
_3b.push(fx.slideTo({node:_3c,left:_3e,duration:this.duration}));
|
|
}else{
|
|
_40=(_9.get(this.pagerContainerView,"height")+((cnt-1)*_3d.h))-1;
|
|
_9.set(_3c,"top",_40+"px");
|
|
_9.set(_3c,"left","0px");
|
|
var _3e=_40-(this.itemsPage*_3d.h);
|
|
_3b.push(fx.slideTo({node:_3c,top:_3e,duration:this.duration}));
|
|
}
|
|
}
|
|
cnt--;
|
|
}
|
|
this._anim=fx.combine(_3b);
|
|
var _41=_1.after(this._anim,"onEnd",_c.hitch(this,function(){
|
|
delete this._anim;
|
|
this.onScrollEnd();
|
|
_41.remove();
|
|
}),true);
|
|
this._anim.play();
|
|
_4.byId(this.id+"-status-"+_3f).src=this.iconPage;
|
|
_4.byId(this.id+"-status-"+this._currentPage).src=this.iconPageActive;
|
|
},_pagerPrevious:function(){
|
|
if(this._anim){
|
|
return;
|
|
}
|
|
var _42=[];
|
|
for(var i=this._currentPage*this.itemsPage;i>(this._currentPage-1)*this.itemsPage;i--){
|
|
if(!_4.byId(this.id+"-item-"+i)){
|
|
continue;
|
|
}
|
|
var _43=_4.byId(this.id+"-item-"+i);
|
|
var _44=_8.getMarginBox(_43);
|
|
if(this.orientation=="horizontal"){
|
|
var _45=_9.get(_43,"left")+(this.itemsPage*_44.w);
|
|
_42.push(fx.slideTo({node:_43,left:_45,duration:this.duration}));
|
|
}else{
|
|
var _45=_9.get(_43,"top")+(this.itemsPage*_44.h);
|
|
_42.push(fx.slideTo({node:_43,top:_45,duration:this.duration}));
|
|
}
|
|
}
|
|
var _46=this._currentPage;
|
|
if(this._currentPage==1){
|
|
this._currentPage=this._totalPages;
|
|
}else{
|
|
this._currentPage--;
|
|
}
|
|
var cnt=this.itemsPage;
|
|
var j=1;
|
|
for(var i=this._currentPage*this.itemsPage;i>(this._currentPage-1)*this.itemsPage;i--){
|
|
if(_4.byId(this.id+"-item-"+i)){
|
|
var _43=_4.byId(this.id+"-item-"+i),_44=_8.getMarginBox(_43);
|
|
if(this.orientation=="horizontal"){
|
|
var _47=-(j*_44.w)+1;
|
|
_9.set(_43,"left",_47+"px");
|
|
_9.set(_43,"top","0px");
|
|
var _45=((cnt-1)*_44.w);
|
|
_42.push(fx.slideTo({node:_43,left:_45,duration:this.duration}));
|
|
var _45=_47+(this.itemsPage*_44.w);
|
|
_42.push(fx.slideTo({node:_43,left:_45,duration:this.duration}));
|
|
}else{
|
|
_47=-((j*_44.h)+1);
|
|
_9.set(_43,"top",_47+"px");
|
|
_9.set(_43,"left","0px");
|
|
var _45=((cnt-1)*_44.h);
|
|
_42.push(fx.slideTo({node:_43,top:_45,duration:this.duration}));
|
|
}
|
|
}
|
|
cnt--;
|
|
j++;
|
|
}
|
|
this._anim=fx.combine(_42);
|
|
var _48=_1.after(this._anim,"onEnd",_c.hitch(this,function(){
|
|
delete this._anim;
|
|
this.onScrollEnd();
|
|
_48.remove();
|
|
}),true);
|
|
this._anim.play();
|
|
_4.byId(this.id+"-status-"+_46).src=this.iconPage;
|
|
_4.byId(this.id+"-status-"+this._currentPage).src=this.iconPageActive;
|
|
},onScrollEnd:function(){
|
|
}});
|
|
});
|