|
@@ -5,6 +5,7 @@
|
|
|
#FETCH_URL = 'http://www.tvgids.nl/json/lists/programs.php'
|
|
#FETCH_URL = 'http://www.tvgids.nl/json/lists/programs.php'
|
|
|
FETCH_URL = 'programs.php'
|
|
FETCH_URL = 'programs.php'
|
|
|
HOUR_WIDTH = 200
|
|
HOUR_WIDTH = 200
|
|
|
|
|
+CHANNEL_LABEL_WIDTH = 180
|
|
|
#SCROLL_MULTIPLIER = HOUR_WIDTH
|
|
#SCROLL_MULTIPLIER = HOUR_WIDTH
|
|
|
|
|
|
|
|
#
|
|
#
|
|
@@ -43,12 +44,10 @@ Program = Backbone.Model.extend(
|
|
|
|
|
|
|
|
ChannelList = Backbone.Collection.extend(
|
|
ChannelList = Backbone.Collection.extend(
|
|
|
model: Channel
|
|
model: Channel
|
|
|
- comparator: 'id'
|
|
|
|
|
|
|
+ comparator: (a, b) -> parseInt(a.get('id')) - parseInt(b.get('id'))
|
|
|
|
|
|
|
|
initialize: (models, options) ->
|
|
initialize: (models, options) ->
|
|
|
- #_.each(CHANNELS, (props, id) => @add(_.extend({id: id}, props)))
|
|
|
|
|
@fetchVisible()
|
|
@fetchVisible()
|
|
|
- #@fetchPrograms(0)
|
|
|
|
|
|
|
|
|
|
fetch: ->
|
|
fetch: ->
|
|
|
@reset(CHANNELS)
|
|
@reset(CHANNELS)
|
|
@@ -144,6 +143,23 @@ ProgramView = Backbone.View.extend(
|
|
|
@$el.addClass('current')
|
|
@$el.addClass('current')
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+ChannelLabelView = Backbone.View.extend(
|
|
|
|
|
+ el: $('.channel-labels')
|
|
|
|
|
+
|
|
|
|
|
+ initialize: (options) ->
|
|
|
|
|
+ @listenTo(Channels, 'reset', @addChannels)
|
|
|
|
|
+ @listenTo(options.app, 'scroll', @moveTop)
|
|
|
|
|
+
|
|
|
|
|
+ addChannels: ->
|
|
|
|
|
+ @$el.empty()
|
|
|
|
|
+ Channels.each((channel) ->
|
|
|
|
|
+ @$el.append('<div class="label">' + channel.get('name') + '</div>')
|
|
|
|
|
+ , @)
|
|
|
|
|
+
|
|
|
|
|
+ moveTop: (delta) ->
|
|
|
|
|
+ @$el.css('top', (@$el.position().top - delta) + 'px')
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
AppView = Backbone.View.extend(
|
|
AppView = Backbone.View.extend(
|
|
|
el: $('#guide')
|
|
el: $('#guide')
|
|
|
|
|
|
|
@@ -155,8 +171,9 @@ AppView = Backbone.View.extend(
|
|
|
|
|
|
|
|
moveTimeline: ->
|
|
moveTimeline: ->
|
|
|
if @$el.scrollTop() != @prevScrollTop
|
|
if @$el.scrollTop() != @prevScrollTop
|
|
|
|
|
+ @trigger('scroll', @$el.scrollTop() - @prevScrollTop)
|
|
|
@prevScrollTop = @$el.scrollTop()
|
|
@prevScrollTop = @$el.scrollTop()
|
|
|
- @$('.timeline').css('top', (@$el.scrollTop() + 38) + 'px')
|
|
|
|
|
|
|
+ @$('.timeline').css('top', (@$el.scrollTop() + 37) + 'px')
|
|
|
|
|
|
|
|
initialize: ->
|
|
initialize: ->
|
|
|
@prevScrollTop = null
|
|
@prevScrollTop = null
|
|
@@ -164,13 +181,15 @@ AppView = Backbone.View.extend(
|
|
|
@listenTo(Channels, 'reset', @addChannels)
|
|
@listenTo(Channels, 'reset', @addChannels)
|
|
|
@listenTo(Settings, 'change:day', @fetchPrograms)
|
|
@listenTo(Settings, 'change:day', @fetchPrograms)
|
|
|
|
|
|
|
|
|
|
+ @labelview = new ChannelLabelView(app: @)
|
|
|
|
|
+
|
|
|
@updateIndicator()
|
|
@updateIndicator()
|
|
|
@centerIndicator()
|
|
@centerIndicator()
|
|
|
Channels.fetch()
|
|
Channels.fetch()
|
|
|
setInterval((=> @updateIndicator()), 3600000 / HOUR_WIDTH)
|
|
setInterval((=> @updateIndicator()), 3600000 / HOUR_WIDTH)
|
|
|
|
|
|
|
|
- addChannels: () ->
|
|
|
|
|
- @$('.channels').empty()
|
|
|
|
|
|
|
+ addChannels: ->
|
|
|
|
|
+ @$('.channels > .channel').remove()
|
|
|
Channels.each((channel) ->
|
|
Channels.each((channel) ->
|
|
|
view = new ChannelView(model: channel)
|
|
view = new ChannelView(model: channel)
|
|
|
view.render()
|
|
view.render()
|
|
@@ -185,7 +204,8 @@ AppView = Backbone.View.extend(
|
|
|
$(@$('.navbar .navitem')[day + 1]).addClass('active')
|
|
$(@$('.navbar .navitem')[day + 1]).addClass('active')
|
|
|
|
|
|
|
|
updateIndicator: ->
|
|
updateIndicator: ->
|
|
|
- @$('.indicator').css('left', time2px(seconds_today(Date.now())) + 'px')
|
|
|
|
|
|
|
+ left = time2px(seconds_today(Date.now())) + CHANNEL_LABEL_WIDTH - 1
|
|
|
|
|
+ @$('.indicator').css('left', left + 'px')
|
|
|
|
|
|
|
|
centerIndicator: ->
|
|
centerIndicator: ->
|
|
|
@$el.scrollLeft(@$('.indicator').position().left - @$el.width() / 2)
|
|
@$el.scrollLeft(@$('.indicator').position().left - @$el.width() / 2)
|