+++ /dev/null
-// =========
-// BooksView
-
-var BooksView = (function() {
- var my = {};
-
- // ========================
- // Private member variables
- var booksModel = undefined;
-
- // ==============
- // Public Methods
-
- my.init = function(linkedBooksModel) {
- booksModel = linkedBooksModel;
-
- booksModel.listen(my);
- };
-
- // Called when the model changes
- my.notify = function () {
- var i;
- var html = '';
- var limit = BooksModel.last - BooksModel.first;
- for (i = 0; i <= limit; ++i) {
- var book = BooksModel.cache[i];
- html += bookHtml(book);
- }
-
- document.getElementById('books').innerHTML = html;
- document.getElementById('first').innerHTML = (BooksModel.first + 1);
- document.getElementById('last').innerHTML = (BooksModel.last + 1);
- document.getElementById('count').innerHTML = BooksModel.count;
- };
-
- // ===============
- // Private methods
-
- function bookHtml(book) {
- 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 onclick="displayDetails(' + book.Id + ');" '
- + ' onmouseover="ToolTip.startTooltipTimer(' + book.Id + ');"'
- + ' onmouseleave="ToolTip.stopTooltipTimer();">'
- + '<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;
- }
-
- return my;
-})();