2024-10-10
This commit is contained in:
122
web/bsadmin/assets/js/lib/jsgrid/jsgrid.load-strategies.js
Normal file
122
web/bsadmin/assets/js/lib/jsgrid/jsgrid.load-strategies.js
Normal file
@@ -0,0 +1,122 @@
|
||||
(function(jsGrid, $, undefined) {
|
||||
|
||||
function DirectLoadingStrategy(grid) {
|
||||
this._grid = grid;
|
||||
}
|
||||
|
||||
DirectLoadingStrategy.prototype = {
|
||||
|
||||
firstDisplayIndex: function() {
|
||||
var grid = this._grid;
|
||||
return grid.option("paging") ? (grid.option("pageIndex") - 1) * grid.option("pageSize") : 0;
|
||||
},
|
||||
|
||||
lastDisplayIndex: function() {
|
||||
var grid = this._grid;
|
||||
var itemsCount = grid.option("data").length;
|
||||
|
||||
return grid.option("paging")
|
||||
? Math.min(grid.option("pageIndex") * grid.option("pageSize"), itemsCount)
|
||||
: itemsCount;
|
||||
},
|
||||
|
||||
itemsCount: function() {
|
||||
return this._grid.option("data").length;
|
||||
},
|
||||
|
||||
openPage: function(index) {
|
||||
this._grid.refresh();
|
||||
},
|
||||
|
||||
loadParams: function() {
|
||||
return {};
|
||||
},
|
||||
|
||||
sort: function() {
|
||||
this._grid._sortData();
|
||||
this._grid.refresh();
|
||||
return $.Deferred().resolve().promise();
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this._grid.refresh();
|
||||
return $.Deferred().resolve().promise();
|
||||
},
|
||||
|
||||
finishLoad: function(loadedData) {
|
||||
this._grid.option("data", loadedData);
|
||||
},
|
||||
|
||||
finishInsert: function(insertedItem) {
|
||||
var grid = this._grid;
|
||||
grid.option("data").push(insertedItem);
|
||||
grid.refresh();
|
||||
},
|
||||
|
||||
finishDelete: function(deletedItem, deletedItemIndex) {
|
||||
var grid = this._grid;
|
||||
grid.option("data").splice(deletedItemIndex, 1);
|
||||
grid.reset();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
function PageLoadingStrategy(grid) {
|
||||
this._grid = grid;
|
||||
this._itemsCount = 0;
|
||||
}
|
||||
|
||||
PageLoadingStrategy.prototype = {
|
||||
|
||||
firstDisplayIndex: function() {
|
||||
return 0;
|
||||
},
|
||||
|
||||
lastDisplayIndex: function() {
|
||||
return this._grid.option("data").length;
|
||||
},
|
||||
|
||||
itemsCount: function() {
|
||||
return this._itemsCount;
|
||||
},
|
||||
|
||||
openPage: function(index) {
|
||||
this._grid.loadData();
|
||||
},
|
||||
|
||||
loadParams: function() {
|
||||
var grid = this._grid;
|
||||
return {
|
||||
pageIndex: grid.option("pageIndex"),
|
||||
pageSize: grid.option("pageSize")
|
||||
};
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
return this._grid.loadData();
|
||||
},
|
||||
|
||||
sort: function() {
|
||||
return this._grid.loadData();
|
||||
},
|
||||
|
||||
finishLoad: function(loadedData) {
|
||||
this._itemsCount = loadedData.itemsCount;
|
||||
this._grid.option("data", loadedData.data);
|
||||
},
|
||||
|
||||
finishInsert: function(insertedItem) {
|
||||
this._grid.search();
|
||||
},
|
||||
|
||||
finishDelete: function(deletedItem, deletedItemIndex) {
|
||||
this._grid.search();
|
||||
}
|
||||
};
|
||||
|
||||
jsGrid.loadStrategies = {
|
||||
DirectLoadingStrategy: DirectLoadingStrategy,
|
||||
PageLoadingStrategy: PageLoadingStrategy
|
||||
};
|
||||
|
||||
}(jsGrid, jQuery));
|
||||
Reference in New Issue
Block a user