You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
2 years ago
|
/**
|
||
|
* @class Ext.ux.SlidingPager
|
||
|
* @extends Object
|
||
|
* Plugin for PagingToolbar which replaces the textfield input with a slider
|
||
|
* @constructor
|
||
|
* Create a new ItemSelector
|
||
|
* @param {Object} config Configuration options
|
||
|
*/
|
||
|
Ext.define('Ext.ux.SlidingPager', {
|
||
|
requires: [
|
||
|
'Ext.slider.Single',
|
||
|
'Ext.slider.Tip'
|
||
|
],
|
||
|
|
||
|
constructor : function(config) {
|
||
|
if (config) {
|
||
|
Ext.apply(this, config);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
init : function(pbar){
|
||
|
var idx = pbar.items.indexOf(pbar.child("#inputItem")),
|
||
|
slider;
|
||
|
|
||
|
Ext.each(pbar.items.getRange(idx - 2, idx + 2), function(c){
|
||
|
c.hide();
|
||
|
});
|
||
|
|
||
|
slider = Ext.create('Ext.slider.Single', {
|
||
|
width: 114,
|
||
|
minValue: 1,
|
||
|
maxValue: 1,
|
||
|
hideLabel: true,
|
||
|
tipText: function(thumb) {
|
||
|
return Ext.String.format('Page <b>{0}</b> of <b>{1}</b>', thumb.value, thumb.slider.maxValue);
|
||
|
},
|
||
|
listeners: {
|
||
|
changecomplete: function(s, v){
|
||
|
pbar.store.loadPage(v);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
pbar.insert(idx + 1, slider);
|
||
|
|
||
|
pbar.on({
|
||
|
change: function(pb, data){
|
||
|
slider.setMaxValue(data.pageCount);
|
||
|
slider.setValue(data.currentPage);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|