1
0
Fork 0
mirror of synced 2024-08-04 04:52:03 +12:00
appwrite/public/scripts/views/paging/next.js

49 lines
1.3 KiB
JavaScript

(function(window) {
window.ls.container.get("view").add({
selector: "data-paging-next",
controller: function(element, container, expression, env) {
let paths = [];
let limit = env.PAGING_LIMIT;
let check = function() {
let offset = parseInt(
expression.parse(element.dataset["offset"]) || "0"
);
paths = paths.concat(expression.getPaths());
let total = parseInt(expression.parse(element.dataset["total"]) || "0");
paths = paths.concat(expression.getPaths());
if (offset + limit >= total) {
element.disabled = true;
} else {
const newOffset = offset + limit;
element.disabled = false;
element.value = 'limit(' + limit + '),offset(' + newOffset + ')';
if(element.dataset['pagingDesc'] !== undefined) {
element.value += ',orderDesc(\'\')';
}
try {
element.parentElement.querySelector('input[name="offset"]').value = newOffset;
} catch(err) {} // Initial load can fail
}
};
check();
for (let i = 0; i < paths.length; i++) {
let path = paths[i].split(".");
while (path.length) {
container.bind(element, path.join("."), check);
path.pop();
}
}
}
});
})(window);