class Readings.Tag
constructor: (record, @category) ->
@href = record.href
@name = record.name
#@url = record.url
@slug = $.grep(@href.split('/'), (e) -> e != "")
render: ->
"
#{@name}"
group: ->
if @category == 'authors'
# last word, first letter
@name.split(' ').slice(-1)[0][0].toUpperCase()
else
@name[0].toUpperCase()
$.fn.Readings.list = (opts) ->
# category
# url
# mapper
# title
# filter
# mapper (rec) -> obj
this.each ->
$('[data-role=header] h1').text opts.title
list = $('[data-role=listview]', this)
if !opts.filter
$(".ui-listview-filter").hide()
$.ajax
url: opts.url
contentType: "json"
success: (data) ->
objs = $.map data, opts.mapper
list.empty()
last_divider = null
for obj in objs
# throw a divider in for some categories
if opts.dividers
divider = obj.group()
if last_divider != divider
list.append "#{divider}"
last_divider = divider
list.append obj.render()
list.listview 'refresh'
$.fn.Readings.TagList = (category) ->
this.each ->
$('[data-role=header] h1').text Readings.config.get('categories')[category]
list = $('[data-role=listview]', this)
if Readings.config.get('show_filter').indexOf(category) < 0
$(".ui-listview-filter").hide()
$.ajax
url: Readings.config.get('wlurl') + "/api/#{category}"
contentType: "json"
success: (data) ->
tags = $.map data, (rec) -> new Readings.Tag(rec, category)
list.empty()
last_separator = null
show_separator = Readings.config.get('show_dividers').indexOf(category) >= 0
for t in tags
# throw a separator in for some categories
if show_separator
separator = t.group()
if last_separator != separator
list.append "#{separator}"
last_separator = separator
list.append t.render()
list.listview 'refresh'