Make it possible to create, edit, and publish a draft

This commit is contained in:
Calen Pennington
2012-10-04 14:29:24 -04:00
parent 8da3723445
commit 1a8532d8ad
9 changed files with 156 additions and 38 deletions

View File

@@ -35,9 +35,9 @@ class CMS.Views.ModuleEdit extends Backbone.View
return _metadata
cloneTemplate: (template) ->
cloneTemplate: (parent, template) ->
$.post("/clone_item", {
parent_location: @$el.parent().data('id')
parent_location: parent
template: template
}, (data) =>
@model.set(id: data.id)

View File

@@ -5,7 +5,10 @@ class CMS.Views.UnitEdit extends Backbone.View
'click .new-component-templates .new-component-template a': 'saveNewComponent'
'click .new-component-templates .cancel-button': 'closeNewComponent'
'click .new-component-button': 'showNewComponentForm'
'click .unit-actions .save-button': 'save'
'click #save-draft': 'saveDraft'
'click #delete-draft': 'deleteDraft'
'click #create-draft': 'createDraft'
'click #publish-draft': 'publishDraft'
initialize: =>
@$newComponentItem = @$('.new-component-item')
@@ -15,7 +18,6 @@ class CMS.Views.UnitEdit extends Backbone.View
@$('.components').sortable(
handle: '.drag-handle'
update: (event, ui) => @saveOrder()
)
@$('.component').each((idx, element) =>
@@ -30,6 +32,7 @@ class CMS.Views.UnitEdit extends Backbone.View
@model.components = @components()
# New component creation
showNewComponentForm: (event) =>
event.preventDefault()
@$newComponentItem.addClass('adding')
@@ -61,13 +64,16 @@ class CMS.Views.UnitEdit extends Backbone.View
@$newComponentItem.before(editor.$el)
editor.cloneTemplate($(event.currentTarget).data('location'))
editor.cloneTemplate(
@$el.data('id'),
$(event.currentTarget).data('location')
)
@closeNewComponent(event)
components: => @$('.component').map((idx, el) -> $(el).data('id')).get()
saveOrder: =>
saveDraft: =>
@model.save(
children: @components()
)
@@ -81,3 +87,24 @@ class CMS.Views.UnitEdit extends Backbone.View
@saveOrder()
)
deleteDraft: (event) ->
$.post('/delete_item', {
id: @$el.data('id')
delete_children: true
}, =>
window.location.reload()
)
createDraft: (event) ->
$.post('/create_draft', {
id: @$el.data('id')
}, =>
@$el.toggleClass('edit-state-public edit-state-draft')
)
publishDraft: (event) ->
$.post('/publish_draft', {
id: @$el.data('id')
}, =>
@$el.toggleClass('edit-state-public edit-state-draft')
)