X-Git-Url: http://jaekl.net/gitweb/?p=quanweb.git;a=blobdiff_plain;f=app%2Flib.js;h=50086d0db6c12fda13f253e31f41edbf7489a164;hp=5e2ecf830b6ec52330446cf61f0dae3dd6ca06d8;hb=2df0b2d1b40d59b36cb0964f1bbfb5247b55178a;hpb=23d77d1681abb3361f68c56bf0a78481ea479248 diff --git a/app/lib.js b/app/lib.js index 5e2ecf8..50086d0 100644 --- a/app/lib.js +++ b/app/lib.js @@ -7,7 +7,33 @@ g_state = { first: 0, ids: [], last: (-1), - pageSize: 100 + pageSize: 9 +} + +function adjustPos(setting) { + var value = parseInt(setting) + + if (g_state.first === value) { + // No change + return; + } + + var maxFirst = g_state.count - g_state.pageSize; + + if (value < 0) { + g_state.first = 0; + } else if (value > maxFirst) { + g_state.first = maxFirst; + } else { + g_state.first = value; + } + + g_state.last = g_state.first + g_state.pageSize - 1; + if (g_state.last >= g_state.count) { + g_state.last = g_state.count - 1; + } + + refreshData(); } function constructSearchUrl() { @@ -42,28 +68,20 @@ function constructSearchUrl() { function onNext() { if (g_state.last < (g_state.count - 1)) { - g_state.first += g_state.pageSize; - g_state.last += g_state.pageSize; - if (g_state.last >= g_state.count) { - g_state.last = g_state.count - 1; - } - - refreshData(); + adjustPos(g_state.first + g_state.pageSize); } } function onPrev() { if (g_state.first > 0) { - g_state.first -= g_state.pageSize; - if (g_state.first < 0) { - g_state.first = 0; - } - g_state.last = g_state.first + g_state.pageSize; - - refreshData(); + adjustPos(g_state.first - g_state.pageSize); } } +function onSlide(value) { + adjustPos(value); +} + function onSearch() { console.log('onSearch()'); @@ -78,12 +96,13 @@ function onSearch() { console.log('JSON response: ', jsonValue); g_state.ids = jsonValue g_state.count = g_state.ids.length; - g_state.first = 0 - g_state.last = (g_state.ids.length) - 1; - if (g_state.last > g_state.pageSize) { - g_state.last = g_state.pageSize; - } - refreshData() + g_state.first = (-1) + + var elem = document.getElementById('slider'); + elem.max = g_state.count; + elem.value = '0' + + adjustPos(0); }) .catch(err => { var msg = 'Error fetching JSON from URL: ' + url + ': ' + err + ':' + err.stack;