X-Git-Url: http://jaekl.net/gitweb/?p=quanweb.git;a=blobdiff_plain;f=app%2Flib.js;h=5e2ecf830b6ec52330446cf61f0dae3dd6ca06d8;hp=7175471c084b4822b8f479e84b91858c78d079e8;hb=23d77d1681abb3361f68c56bf0a78481ea479248;hpb=ca96e0b6276f6efe56b102ad8286a2534d6e264b diff --git a/app/lib.js b/app/lib.js index 7175471..5e2ecf8 100644 --- a/app/lib.js +++ b/app/lib.js @@ -6,7 +6,8 @@ g_state = { count: 0, first: 0, ids: [], - last: 0, + last: (-1), + pageSize: 100 } function constructSearchUrl() { @@ -40,9 +41,27 @@ 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(); + } } 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(); + } } function onSearch() { @@ -58,10 +77,11 @@ function onSearch() { .then((jsonValue) => { 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 > 100) { - g_state.last = 100; + if (g_state.last > g_state.pageSize) { + g_state.last = g_state.pageSize; } refreshData() }) @@ -78,7 +98,7 @@ function refreshData() { var i; var url = '/info/?ids='; for (i = g_state.first; i <= g_state.last; ++i) { - if (i > 0) { + if (i > g_state.first) { url += ','; } url += g_state.ids[i]; @@ -102,12 +122,16 @@ function refreshData() { function refreshLayout() { var i; var html = ''; - for (i = g_state.first; i <= g_state.last; ++i) { + var limit = g_state.last - g_state.first; + for (i = 0; i <= limit; ++i) { var book = g_state.cache[i]; html += bookHtml(book); } document.getElementById('books').innerHTML = html; + document.getElementById('first').innerHTML = (g_state.first + 1); + document.getElementById('last').innerHTML = (g_state.last + 1); + document.getElementById('count').innerHTML = g_state.count; } function report(message) { @@ -116,10 +140,28 @@ function report(message) { function bookHtml(book) { console.log('bookHtml(): ', book); - var result = '
' - + '' - + '
' - + '' + book.Description + '
'; + var result = '
' + + '' + + '' + + '' + + '' + + '' + + '
'; + if (0 == book.CoverId) { + result += '(No cover available)' + } else { + result += '' + } + result += '' + + '

' + book.Title + '

' + + '

' + + '' + book.AuthorReading + ''; + if (typeof(book.SeriesName) !== 'undefined' && book.SeriesName.length > 0) { + result += '
' + book.SeriesName + ' ' + book.Volume + ''; + } + result += '

' + + '
' + + '
'; return result; }