PagingAbility¶
-
class
webix.
PagingAbility
()¶ Pagingability mixin
Referenced by¶
- views
proto()
,resizearea()
.
External references¶
Code¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | webix.PagingAbility = {
pager_setter:function(pager){
if (typeof pager == "string"){
var ui_pager = webix.$$(pager);
if (!ui_pager){
this.$blockRender = true;
webix.delay(function(){
var obj = webix.$$(pager);
this._settings.pager = this.pager_setter(obj);
var s = obj._settings;
s.count = this.data._count_pager_total(s.level);
obj.refresh();
this.$blockRender = false;
this.render();
}, this);
return null;
}
pager = ui_pager;
}
function check_pager_sizes(repeat){
if (pager.config.autosize && this.getVisibleCount){
var count = this.getVisibleCount();
if (isNaN(count)){
pager.config.size = 1;
webix.delay(check_pager_sizes, this, [true]);
} else if (count != pager.config.size){
pager.config.size = count;
pager.refresh();
if (repeat === true)
this.refresh();
}
}
var s = this._settings.pager;
//initial value of pager = -1, waiting for real value
if (s.page == -1) return false;
this.data.$min = this._count_pager_index(0, s.page*s.size); //affect data.getRange
this.data.$max = this._count_pager_index(this.data.$min, s.size);
this.data.$pagesize = this.data.$max - this.data.$min;
return true;
}
this.attachEvent("onBeforeRender",check_pager_sizes);
if (!pager.$view){
pager.view = "pager";
pager = webix.ui(pager);
}
this._pager = pager;
pager.$master = this;
this.data.attachEvent("onStoreUpdated", function(){
var s = pager._settings;
s.count = this._count_pager_total(s.level);
pager.refresh();
});
this.data._count_pager_total = this._count_pager_total;
return pager._settings;
},
_count_pager_total:function(level){
if (level && level !== 0){
var count = 0;
this.each(function(obj){
if (obj.$level == level) count++;
});
return count;
} else
return this.count();
},
_count_pager_index:function(start, count){
var s = this._settings.pager;
if (s.level && s.level !== 0){
var end = start;
var max = this.data.order.length;
if (count)
while (end < max){
if (this.data.getItem(this.data.order[end]).$level == s.level){
if (count === 0)
break;
else
count--;
}
end++;
}
return end;
} else
return start+count;
},
setPage:function(value){
if (this._pager)
this._pager.select(value);
},
getPage:function(){
return this._pager._settings.page;
},
getPager:function(){
return this._pager;
}
};
/*
Behavior: AutoTooltip - links tooltip to data driven item
*/
/*
UI: Tooltip
@export
show
hide
*/
|