100 lines
2.2 KiB
CoffeeScript
100 lines
2.2 KiB
CoffeeScript
|
|
|
|
|
|
DataLogger = new Backbone.Marionette.Application()
|
|
|
|
TagModel = Backbone.Model.extend({
|
|
urlRoot: "/api/tags"
|
|
})
|
|
|
|
TagCollection = Backbone.Collection.extend({
|
|
model: TagModel
|
|
url: "/api/tags"
|
|
})
|
|
|
|
TagView = Backbone.Marionette.ItemView.extend(
|
|
template: "#tagView"
|
|
)
|
|
|
|
NoTagView = Backbone.Marionette.ItemView.extend(
|
|
template: "#noUserView"
|
|
)
|
|
|
|
TagsView = Backbone.Marionette.CollectionView.extend(
|
|
itemView: TagView
|
|
emptyView: NoTagView
|
|
)
|
|
|
|
FormView = Backbone.Marionette.ItemView.extend(
|
|
template: "#formView"
|
|
events:
|
|
'click button': 'createNewTag'
|
|
ui:
|
|
name: "#name"
|
|
tag: "#tag"
|
|
createNewTag: () ->
|
|
this.collection.add(
|
|
name: this.ui.name.val()
|
|
tag: this.ui.tag.val()
|
|
)
|
|
this.ui.name.val("")
|
|
this.ui.tag.val("")
|
|
)
|
|
|
|
DataLogger.addRegions(
|
|
form: "#form"
|
|
list: "#list"
|
|
)
|
|
|
|
DataLogger.addInitializer () ->
|
|
DataLogger.tags = new TagCollection();
|
|
DataLogger.form.show(new FormView(
|
|
collection: DataLogger.tags
|
|
))
|
|
DataLogger.list.show(new TagsView(
|
|
collection: DataLogger.tags
|
|
))
|
|
|
|
DataLogger.start()
|
|
|
|
TagViewOld = Backbone.View.extend {
|
|
tagName: "li"
|
|
template: _.template("<p><%= name %></p>")
|
|
events:
|
|
"click": "console.log('clicked')"
|
|
initialize: () ->
|
|
_.bindAll(this, "render")
|
|
this.render()
|
|
render: () ->
|
|
this.el.innerHTML = this.template(this.model.toJSON())
|
|
this
|
|
}
|
|
|
|
AppView = Backbone.View.extend {
|
|
el: $("#container")
|
|
initialize: () ->
|
|
_.bindAll(this, "render")
|
|
this.render(new TagModel())
|
|
render: (item) ->
|
|
view = new TagView({model: item})
|
|
this.el.append(view.render().el)
|
|
}
|
|
|
|
getAllTags = (callback) ->
|
|
new TagModel().fetch({
|
|
success: (collection, response) ->
|
|
d = response.objects
|
|
delete response.objects
|
|
metadata = response
|
|
callback
|
|
data: d
|
|
metadata: metadata
|
|
})
|
|
|
|
getTag = (tagid, callback) ->
|
|
new TagModel({id: tagid}).fetch({
|
|
success: (collection, response) ->
|
|
callback
|
|
data: response
|
|
})
|