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]") }, 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") }, 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 = $("") errors.forEach(function(err){ var $row = $("
") $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(){ }, })