Commit 73e8fadd authored by Paul Miller's avatar Paul Miller

Improve styling in Chaplin app.

parent 39172bce
...@@ -10,12 +10,12 @@ module.exports = class Application extends Chaplin.Application ...@@ -10,12 +10,12 @@ module.exports = class Application extends Chaplin.Application
# Create additional mediator properties # Create additional mediator properties
# ------------------------------------- # -------------------------------------
initMediator: -> initMediator: ->
# Create a user property
mediator.user = null
# Add additional application-specific properties and methods # Add additional application-specific properties and methods
mediator.todos = new Todos() mediator.todos = new Todos()
# If todos are fetched from server, we will need to wait
# for them.
mediator.todos.fetch()
# Seal the mediator # Seal the mediator
super super
start: ->
# If todos are fetched from server, we will need to wait for them.
mediator.todos.fetch()
super
HeaderView = require 'views/header-view' HeaderView = require '../views/header-view'
FooterView = require 'views/footer-view' FooterView = require '../views/footer-view'
TodosView = require 'views/todos-view' TodosView = require '../views/todos-view'
mediator = require 'mediator' mediator = require 'mediator'
module.exports = class IndexController extends Chaplin.Controller module.exports = class IndexController extends Chaplin.Controller
......
View = require './base/view' View = require './base/view'
template = require './templates/footer'
module.exports = class FooterView extends View module.exports = class FooterView extends View
autoRender: true autoRender: true
...@@ -9,7 +8,7 @@ module.exports = class FooterView extends View ...@@ -9,7 +8,7 @@ module.exports = class FooterView extends View
listen: listen:
'todos:filter mediator': 'updateFilterer' 'todos:filter mediator': 'updateFilterer'
'all collection': 'renderCounter' 'all collection': 'renderCounter'
template: template template: require './templates/footer'
render: -> render: ->
super super
......
View = require './base/view' View = require './base/view'
template = require './templates/header'
module.exports = class HeaderView extends View module.exports = class HeaderView extends View
autoRender: true autoRender: true
el: '#header' el: '#header'
events: events:
'keypress #new-todo': 'createOnEnter' 'keypress #new-todo': 'createOnEnter'
template: template template: require './templates/header'
createOnEnter: (event) => createOnEnter: (event) ->
ENTER_KEY = 13 ENTER_KEY = 13
title = $(event.currentTarget).val().trim() title = $(event.currentTarget).val().trim()
return if event.keyCode isnt ENTER_KEY or not title return if event.keyCode isnt ENTER_KEY or not title
......
View = require './base/view' View = require './base/view'
template = require './templates/todo'
module.exports = class TodoView extends View module.exports = class TodoView extends View
events: events:
...@@ -7,25 +6,25 @@ module.exports = class TodoView extends View ...@@ -7,25 +6,25 @@ module.exports = class TodoView extends View
'dblclick label': 'edit' 'dblclick label': 'edit'
'keypress .edit': 'save' 'keypress .edit': 'save'
'blur .edit': 'save' 'blur .edit': 'save'
'click .destroy': 'destroy' 'click .destroy': 'clear'
listen: listen:
'change model': 'render' 'change model': 'render'
template: template template: require './templates/todo'
tagName: 'li' tagName: 'li'
destroy: => clear: ->
@model.destroy() @model.destroy()
toggle: => toggle: ->
@model.toggle().save() @model.toggle().save()
edit: => edit: ->
@$el.addClass 'editing' @$el.addClass 'editing'
@$('.edit').focus() @$('.edit').focus()
save: (event) => save: (event) ->
ENTER_KEY = 13 ENTER_KEY = 13
title = $(event.currentTarget).val().trim() title = $(event.currentTarget).val().trim()
return @model.destroy() unless title return @model.destroy() unless title
......
CollectionView = require './base/collection-view' CollectionView = require './base/collection-view'
template = require './templates/todos'
TodoView = require './todo-view'
module.exports = class TodosView extends CollectionView module.exports = class TodosView extends CollectionView
container: '#main' container: '#main'
events: events:
'click #toggle-all': 'toggleCompleted' 'click #toggle-all': 'toggleCompleted'
itemView: TodoView itemView: require './todo-view'
listSelector: '#todo-list' listSelector: '#todo-list'
listen: listen:
'all collection': 'renderCheckbox' 'all collection': 'renderCheckbox'
'todos:clear mediator': 'clear' 'todos:clear mediator': 'clear'
template: template template: require './templates/todos'
render: => render: ->
super super
@renderCheckbox() @renderCheckbox()
renderCheckbox: => renderCheckbox: ->
@$('#toggle-all').prop 'checked', @collection.allAreCompleted() @$('#toggle-all').prop 'checked', @collection.allAreCompleted()
@$el.toggle(@collection.length isnt 0) @$el.toggle(@collection.length isnt 0)
toggleCompleted: (event) => toggleCompleted: (event) ->
isChecked = event.currentTarget.checked isChecked = event.currentTarget.checked
@collection.each (todo) -> todo.save completed: isChecked @collection.each (todo) -> todo.save completed: isChecked
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment