summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/builder/BuilderSettings.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/builder/BuilderSettings.js')
-rw-r--r--public/assets/javascripts/ui/builder/BuilderSettings.js44
1 files changed, 34 insertions, 10 deletions
diff --git a/public/assets/javascripts/ui/builder/BuilderSettings.js b/public/assets/javascripts/ui/builder/BuilderSettings.js
index a7a0555..0eb5dfa 100644
--- a/public/assets/javascripts/ui/builder/BuilderSettings.js
+++ b/public/assets/javascripts/ui/builder/BuilderSettings.js
@@ -6,6 +6,7 @@ var BuilderSettings = FormView.extend({
updateAction: "/api/layouts/edit",
events: {
+ "keydown [name=name]": 'enterSubmit',
"click [data-role='save-layout']": 'save',
},
@@ -13,21 +14,36 @@ var BuilderSettings = FormView.extend({
this.parent = opt.parent
this.__super__.initialize.call(this)
+ this.$id = this.$("[name=_id]")
+ this.$csrf = this.$("[name=_csrf]")
this.$name = this.$("[name=name]")
- this.$newName = this.$("[name=new_name]")
this.$privacy = this.$("[name=privacy]")
},
load: function(data){
+ this.$id.val(data._id)
this.$name.val(data.name)
- this.$newName.val(data.name)
- this.$privacy.find("[value=" + data.privacy + "]").prop('checked', true);
+ this.$privacy.find("[value=" + data.privacy + "]").prop('checked', true)
+
+ console.log(data)
+ data.rooms && Rooms.deserialize(data.rooms)
+ data.startPosition && scene.camera.move(data.startPosition)
+
+ this.action = data.isNew ? this.createAction : this.updateAction
},
toggle: function(){
this.$el.toggleClass("active")
},
-
+
+ enterSubmit: function (e) {
+ e.stopPropagation()
+ var base = this
+ if (e.keyCode == 13) {
+ setTimeout(this.save.bind(this), 100)
+ }
+ },
+
validate: function(){
var errors = []
var name = this.$name.val()
@@ -52,15 +68,23 @@ var BuilderSettings = FormView.extend({
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))
+ fd.append( "_csrf", this.$csrf.val() )
+ fd.append( "_id", this.$id.val() )
+ fd.append( "name", this.$name.val() )
+ fd.append( "privacy", this.$privacy.val() )
+ fd.append( "rooms", JSON.stringify( Rooms.serialize() ) )
+ fd.append( "startPosition", JSON.stringify( app.position(scene.camera) ) )
+ fd.append( "thumbnail", dataUriToBlob(map.canvas.toDataURL()) )
return fd
},
- success: function(){
+ success: function(data){
+ console.log(data)
+ this.$id.val(data._id)
+ this.$name.val(data.name)
+ this.action = this.updateAction
+
+ window.history.pushState(null, document.title, "/builder/" + data.slug)
},
})