21b6d19942d3bd3956634660af187eca5c02fa16
[ReadingsJQM.git] / js / app / BooksList.coffee
1
2 slug_in_url = /([a-z0-9-]+)[/]?$/
3
4 class Readings.Book
5   constructor: (record) ->
6     @url = record.url
7     @href = record.href
8     @cover = record.cover
9     @author = record.author
10     @title = record.title
11     @slug = slug_in_url.exec(@href)[1]
12
13   render: ->
14     "<li><a href=\"reader.html?slug=#{@slug}\">#{@title}</a></li>"
15
16   group: ->
17     @author
18
19
20 $.fn.Readings.BookList = (category, tag) ->
21   this.each ->
22     $('[data-role=header] h1').text tag.name
23     list = $('[data-role=listview]', this)
24     $.ajax
25       url: "#{tag.href}books/"
26       #url: Readings.config.get('wlurl') + "/api/#{category}"
27       contentType: "json"
28       success: (data) ->
29         console.log(data)
30         books = $.map data, (rec) -> new Readings.Book(rec)
31         list.empty()
32         last_separator = null
33         show_separator = !(category == 'authors')
34
35         for b in books
36           # throw a separator in for some categories
37           if show_separator
38             separator = t.group()
39             if last_separator != separator
40               list.append "<li data-role=\"list-divider\">#{separator}</li>"
41               last_separator = separator
42
43           list.append b.render()
44           list.listview 'refresh'