X-Git-Url: https://git.mdrn.pl/ReadingsJQM.git/blobdiff_plain/c956fba7332f45e9abab07b2b8ac417b0f6514c8..bdd9d26375a6489d7ff8eac944e29b0789f04a20:/js/app/BooksList.js diff --git a/js/app/BooksList.js b/js/app/BooksList.js new file mode 100644 index 0000000..4f61927 --- /dev/null +++ b/js/app/BooksList.js @@ -0,0 +1,66 @@ +// Generated by CoffeeScript 1.3.3 +(function() { + var slug_in_url; + + slug_in_url = /([a-z0-9-]+)[/]?$/; + + Readings.Book = (function() { + + function Book(record) { + this.url = record.url; + this.href = record.href; + this.cover = record.cover; + this.author = record.author; + this.title = record.title; + this.slug = slug_in_url.exec(this.href)[1]; + } + + Book.prototype.render = function() { + return "
  • " + this.title + "
  • "; + }; + + Book.prototype.group = function() { + return this.author; + }; + + return Book; + + })(); + + $.fn.Readings.BookList = function(category, tag) { + return this.each(function() { + var list; + $('[data-role=header] h1').text(tag.name); + list = $('[data-role=listview]', this); + return $.ajax({ + url: "" + tag.href + "books/", + contentType: "json", + success: function(data) { + var b, books, last_separator, separator, show_separator, _i, _len, _results; + console.log(data); + books = $.map(data, function(rec) { + return new Readings.Book(rec); + }); + list.empty(); + last_separator = null; + show_separator = !(category === 'authors'); + _results = []; + for (_i = 0, _len = books.length; _i < _len; _i++) { + b = books[_i]; + if (show_separator) { + separator = t.group(); + if (last_separator !== separator) { + list.append("
  • " + separator + "
  • "); + last_separator = separator; + } + } + list.append(b.render()); + _results.push(list.listview('refresh')); + } + return _results; + } + }); + }); + }; + +}).call(this);