count: 0,
first: 0,
ids: [],
- last: 0,
+ last: (-1),
+ pageSize: 100
}
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() {
.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()
})
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];
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) {
function bookHtml(book) {
console.log('bookHtml(): ', book);
- var result = '<div class="book"><table><tr><td><a href="/book/' + book.Id + '">'
- + '<img class="cover-thumb" src="/download/' + book.CoverId + '"/></a></td>'
- + '<td><span class="popup">' + book.Description + '</span></td>'
- + '</tr></table></div>';
+ var result = '<div class="book">'
+ + '<table>'
+ + '<tr>'
+ + '<td><a href="/book/' + book.Id + '">';
+ if (0 == book.CoverId) {
+ result += '(No cover available)'
+ } else {
+ result += '<img class="cover-thumb" src="/download/' + book.CoverId + '"/>'
+ }
+ result += '</a></td>'
+ + '<td>'
+ + '<p><b>' + book.Title + '</b></p>'
+ + '<p>'
+ + '<i>' + book.AuthorReading + '</i>';
+ if (typeof(book.SeriesName) !== 'undefined' && book.SeriesName.length > 0) {
+ result += '<br/><i>' + book.SeriesName + ' ' + book.Volume + '</i>';
+ }
+ result += '</p>'
+ + '</td>'
+ + '</tr>'
+ + '</table>'
+ + '</div>';
return result;
}