DaQuirm/nexus

View on GitHub
demos/todo-list/static/src/views/todoitem-view.coffee

Summary

Maintainability
Test Coverage
TodoList.views.TodoItemView = (item) ->
    nxt.Element 'li',
      nxt.Binding(item.selected, (selected) ->
        nxt.Class 'selected', selected
      ),
      nxt.Binding(item.done, (done) ->
        nxt.Class 'done', done
      ),
      nxt.Binding(item.status, (updating) ->
        nxt.Class 'updating', updating is nx.AsyncStatus.LOADING
      ),
      nxt.Element('time',
        nxt.Binding(item.date, (date) -> nxt.Text (new Date date).toDateString()))
      nxt.Element('div',
        nxt.Attr('class', 'task'),
        nxt.Binding(item.selected, (selected) ->
          nxt.Attr 'contenteditable', "#{selected}"
        ),
        nxt.Binding(item.task, nxt.Text)
      ),
      nxt.Element('a',
        nxt.Attr('class','status-link'),
        nxt.Binding(item.done, (done) ->
          if done then nxt.Text 'Undone!' else nxt.Text 'Done!'
        ),
      ),
      nxt.Element('a',
        nxt.Attr('class','delete-link'),
        nxt.Text('Delete')
      )
      nxt.Binding(item.status, (value) ->
        if value is nx.AsyncStatus.LOADING
          nxt.Element('div'
            nxt.Attr('class', 'updating-cover'),
            nxt.Text('Updating')
          )
      )