diff options
Diffstat (limited to 'public/assets/javascripts/ui/builder/BuilderSettings.js')
| -rw-r--r-- | public/assets/javascripts/ui/builder/BuilderSettings.js | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/public/assets/javascripts/ui/builder/BuilderSettings.js b/public/assets/javascripts/ui/builder/BuilderSettings.js index 004c1c4..a7a0555 100644 --- a/public/assets/javascripts/ui/builder/BuilderSettings.js +++ b/public/assets/javascripts/ui/builder/BuilderSettings.js @@ -1,20 +1,66 @@ -var BuilderSettings = View.extend({ +var BuilderSettings = FormView.extend({ el: "#builderSettings", + + createAction: "/api/layouts/new", + updateAction: "/api/layouts/edit", events: { + "click [data-role='save-layout']": 'save', + }, + + initialize: function(opt){ + this.parent = opt.parent + this.__super__.initialize.call(this) + + this.$name = this.$("[name=name]") + this.$newName = this.$("[name=new_name]") + this.$privacy = this.$("[name=privacy]") }, - initialize: function(){ + load: function(data){ + this.$name.val(data.name) + this.$newName.val(data.name) + this.$privacy.find("[value=" + data.privacy + "]").prop('checked', true); }, toggle: function(){ this.$el.toggleClass("active") }, - save: function(){ - var data = Rooms.serialize() - console.log(data) - } + validate: function(){ + var errors = [] + var name = this.$name.val() + if (! name || ! name.length) { + errors.push("Layout needs a name.") + } + if (Rooms.count() == 0) { + errors.push("Please add some rooms by drawing boxes.") + } + return errors + }, + + showErrors: function(errors){ + var $errors = $("<span>") + errors.forEach(function(err){ + var $row = $("<div>") + $row.html(err) + $errors.append( $row ) + }) + ErrorModal.alert($errors) + }, + + serialize: function(){ + var fd = new FormData() + fd.append("name", this.$name.val()) + fd.append("new_name", this.$newName.val()) + fd.append("privacy", this.$privacy.val()) + fd.append("rooms", Rooms.serialize()) + fd.append("startPosition", app.position(scene.camera)) + return fd + }, + + success: function(){ + }, }) |
