this.inherited(arguments);
this.initAutoEnv();
this.attr('structure', this._compileStructure());
- this.setStore(this.buildAutoStore());
+ this.store = this.buildAutoStore();
this.cachedQueryOpts = {};
this._showing_create_pane = false;
+ this.pageNum = 1;
+ this.origLimit = this.displayLimit;
+
if(this.showColumnPicker) {
if(!this.columnPickerPrefix) {
href : 'javascript:void(0);',
onclick : function() {
self.cachedQueryOpts.offset = self.displayOffset -= self.displayLimit;
- if(self.displayOffset < 0)
+ if(self.displayOffset < 0) {
self.cachedQueryOpts.offset = self.displayOffset = 0;
+ self.pageNum = 1;
+ } else {
+ self.pageNum--;
+ }
self.refresh();
}
});
- var forw = dojo.create('a', {
+ this.forw = dojo.create('a', {
innerHTML : 'Next', // TODO i18n
style : 'padding-right:6px;',
href : 'javascript:void(0);',
});
dojo.place(this.paginator.domNode, this.domNode, 'before');
+ self.pageNum++;
dojo.place(back, this.paginator.domNode);
- dojo.place(forw, this.paginator.domNode);
+ dojo.place(this.forw, this.paginator.domNode);
if(this.showLoadFilter) {
dojo.require('openils.widget.PCrudFilterDialog');
var dialog = new openils.widget.PCrudFilterDialog({fmClass:self.fmClass})
dialog.onApply = function(filter) {
self.resetStore();
- self.loadAll(self.cachedQueryOpts, filter);
+ self.pageNum = 1;
+ self.cachedQueryOpts.offset = self.displayOffset = 0;
+ if (filter.toSource() != "({})")
+ self.loadAll(self.cachedQueryOpts, filter)
+ else
+ self.loadAll(self.cachedQueryOpts, self.query);
};
dialog.startup();
dialog.show();
style:'height:16px;width:16px;'
});
dojo.place(this.loadProgressIndicator, this.paginator.domNode);
+
+ // Limit Selector
+ this.limitSelect = dojo.create('div', {
+ innerHTML : "Limit ("+self.displayLimit+"): ", // TODO i18n
+ style : 'padding-left:60px;display:inline;',
+ });
+ dojo.place(this.limitSelect, this.paginator.domNode);
+
+ this.limit = dojo.create('a', {
+ innerHTML : this.origLimit,
+ style : 'padding-right:6px;',
+ href : 'javascript:void(0);',
+ onclick : function() {
+ self.changeLimit(1);
+ }
+ });
+ dojo.place(this.limit, this.paginator.domNode);
+
+ this.limit2 = dojo.create('a', {
+ innerHTML : this.origLimit*2,
+ style : 'padding-right:6px;',
+ href : 'javascript:void(0);',
+ onclick : function() {
+ self.changeLimit(2);
+ }
+ });
+ dojo.place(this.limit2, this.paginator.domNode);
+
+ this.limit20 = dojo.create('a', {
+ innerHTML : this.origLimit*20,
+ style : 'padding-right:6px;',
+ href : 'javascript:void(0);',
+ onclick : function() {
+ self.changeLimit(20);
+ }
+ });
+ dojo.place(this.limit20, this.paginator.domNode);
+
+ // page number
+ this.page = dojo.create('div', {
+ innerHTML : 'Page: 0', // TODO i18n
+ style : 'padding-left:60px;display:inline;',
+ });
+ dojo.place(this.page, this.paginator.domNode);
}
},
},
resetStore : function() {
- this.setStore(this.buildAutoStore());
+ this.store = this.buildAutoStore();
},
refresh : function() {
);
opts = dojo.mixin(opts, {
async : true,
+ self.setStore(self.store);
+ if (self.rowCount < self.displayLimit)
+ dojo.style(self.forw, 'visibility', 'hidden');
+ else
+ dojo.style(self.forw, 'visibility', 'visible');
+
+ dojo.attr(self.page, "innerHTML", "Page: "+self.pageNum);
streaming : true,
onresponse : function(r) {
var item = openils.Util.readResponse(r);
if(self.loadProgressIndicator)
dojo.style(self.loadProgressIndicator, 'visibility', 'hidden');
}
+ },
+
+ changeLimit : function(multiplier) {
+ var self = this;
+ self.resetStore();
+ self.cachedQueryOpts.offset = self.displayOffset = 0;
+ self.cachedQueryOpts.limit = self.displayLimit = self.origLimit*multiplier;
+ if(self.dataLoader)
+ self.dataLoader()
+ else
+ self.loadAll(self.cachedQueryOpts, self.cachedQuerySearch);
+ self.pageNum=1;
+ dojo.attr(self.limitSelect, "innerHTML", "Limit ("+self.displayLimit+"): ");
});
this.cachedQuerySearch = search;