X-Git-Url: http://jaekl.net/gitweb/?p=quanweb.git;a=blobdiff_plain;f=js%2FPagingController.js;fp=js%2FPagingController.js;h=d5edea4559f32273740bd6dc64f21b73c6fc50db;hp=0000000000000000000000000000000000000000;hb=ea10c37dd0cf10799d4e2c3e265f5e0e108a8023;hpb=5799f40be84ede60b75c4bced2b0b14b827aa81e diff --git a/js/PagingController.js b/js/PagingController.js new file mode 100644 index 0000000..d5edea4 --- /dev/null +++ b/js/PagingController.js @@ -0,0 +1,45 @@ +// ================ +// PagingController + +var PagingController = (function() { + var my = {}; + + var booksModel = undefined; + + // ============== + // Public Methods + + my.init = function(linkedBooksModel) { + booksModel = linkedBooksModel; + }; + + my.adjustPos = function (setting) { + var value = parseInt(setting); + + if (booksModel.first === value) { + // No change + return; + } + + var maxFirst = Math.max(0, booksModel.count - booksModel.pageSize); + + if (value < 0) { + booksModel.first = 0; + } else if (value > maxFirst) { + booksModel.first = maxFirst; + } else { + booksModel.first = value; + } + + booksModel.last = booksModel.first + booksModel.pageSize - 1; + if (booksModel.last >= booksModel.count) { + booksModel.last = booksModel.count - 1; + } + + document.getElementById('slider').value = setting; + + booksModel.refreshData(); + }; + + return my; +})();