Skip to content

Instantly share code, notes, and snippets.

@alappe
Created July 19, 2012 11:59
Show Gist options
  • Save alappe/3143376 to your computer and use it in GitHub Desktop.
Save alappe/3143376 to your computer and use it in GitHub Desktop.
No events…
# View for the collection of log entries.
namespace 'TimeLog.View', (exports) ->
class exports.Logs extends Backbone.View
el: jQuery 'ul.logs'
paper: false
events:
'keydown input.log-new': 'addOnEnter'
'keyup input.log-new': 'addOnEnter'
initialize: ->
console.log 'Initialize LogsView'
@template = _.template top.TimeLog.Templates.Logs
@collection.on 'reset', @render, @
@collection.on 'sync', @render, @
@collection.on 'change', @render, @
render: ->
@$el.html @template
@collection.each @renderLog
@renderMonthChart()
@renderSum @collection
# FIXME TODO -> events!
#console.log (jQuery '.date')
(jQuery '.basic > div').on 'dblclick', @startEdit
(jQuery '.basic > div').on 'blur', @saveEdit
@input = jQuery '.log-new'
@input.focus()
# Replace me by @events:
@input.on 'keydown', @addOnEnter
@
startEdit: (ev) ->
# not important for this example…
saveEdit: (ev) =>
# not important for this example…
renderLog: (log) =>
view = new top.TimeLog.View.Log
model: log
@$el.append view.render().el
@
renderSum: (logs) ->
sum = 0.0
logs.map (log) ->
sum += parseFloat log.get 'time'
(jQuery 'span.sum').html "#{sum}h"
# Render the chart FIXME: clean this up
renderMonthChart: ->
# not important for this example…
addOnEnter: (ev) =>
# not important for this example…
namespace 'TimeLog.View', (exports) ->
class exports.Log extends Backbone.View
tagName: 'li'
events:
'click .date': 'lala'
initialize: ->
console.log 'Initialize LogView'
@template = _.template top.TimeLog.Templates.Log
@model.bind 'change', @render
render: =>
(jQuery @el).html (@template @model.toJSON())
@
lala: ->
console.log 'editable…'
namespace 'TimeLog.Templates', (exports) ->
exports.Log = """
<div class="date"><%= date %></div> |
<div ><%= time %></div> |
<div ><%= ticket %></div>
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment