diff options
Diffstat (limited to 'public/assets/javascripts/ui/builder/BuilderSettings.js')
| -rw-r--r-- | public/assets/javascripts/ui/builder/BuilderSettings.js | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/public/assets/javascripts/ui/builder/BuilderSettings.js b/public/assets/javascripts/ui/builder/BuilderSettings.js index 051bbf4..66bf84b 100644 --- a/public/assets/javascripts/ui/builder/BuilderSettings.js +++ b/public/assets/javascripts/ui/builder/BuilderSettings.js @@ -4,10 +4,14 @@ var BuilderSettings = FormView.extend({ createAction: "/api/layouts/new", updateAction: "/api/layouts/edit", + destroyAction: "/api/layouts/destroy", events: { "keydown [name=name]": 'enterSubmit', "click [data-role='save-layout']": 'save', + "click [data-role='clone-layout']": 'clone', + "click [data-role='clear-layout']": 'clear', + "click [data-role='destroy-layout']": 'destroy', }, initialize: function(opt){ @@ -30,6 +34,40 @@ var BuilderSettings = FormView.extend({ this.action = data.isNew ? this.createAction : this.updateAction }, + + clone: function(){ + var names = this.$name.val().split(" ") + if ( ! isNaN(Number( names[names.length-1] )) ) { + names[names.length-1] = Number( names[names.length-1] ) + 1 + } + else { + names.push("2") + } + + this.$id.val('new') + this.$name.val( names.join(" ") ) + this.action = this.createAction + + window.history.pushState(null, document.title, "/builder/new") + }, + + clear: function(){ + Rooms.removeAll() + }, + + destroy: function(){ + var msg = "Are you sure you want to delete the layout " + sanitize(this.$name.val()) + "?" + ConfirmModal.confirm(msg, $.proxy(function(){ + $.ajax({ + url: this.destroyAction, + type: "delete", + data: { _id: this.$id.val(), _csrf: this.$csrf.val() }, + success: function(data){ + window.location.href = "/builder" + } + }) + }, this)) + }, toggle: function(){ this.$el.toggleClass("active") @@ -39,7 +77,7 @@ var BuilderSettings = FormView.extend({ e.stopPropagation() var base = this if (e.keyCode == 13) { - setTimeout(this.save.bind(this), 100) + setTimeout(function(){ base.save(e) }, 100) } }, @@ -67,7 +105,6 @@ var BuilderSettings = FormView.extend({ serialize: function(){ map.draw.render() - var fd = new FormData() fd.append( "_csrf", this.$csrf.val() ) fd.append( "_id", this.$id.val() ) |
