summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/editor/EditorSettings.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/editor/EditorSettings.js')
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js29
1 files changed, 25 insertions, 4 deletions
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index d6a79fb..e9239e4 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -5,7 +5,7 @@ var EditorSettings = FormView.extend({
createAction: "/api/project/new",
updateAction: "/api/project/edit",
destroyAction: "/api/project/destroy",
-
+
events: {
"keydown": 'stopPropagation',
"keydown [name=name]": 'enterSubmit',
@@ -32,13 +32,17 @@ var EditorSettings = FormView.extend({
data.rooms && Rooms.deserialize(data.rooms)
data.startPosition && scene.camera.move(data.startPosition)
- if (! data.isNew) {
+ if (data.isNew) {
+ this.$name.val( "Room " + moment().format("DD/MM/YYYY ha") )
+ }
+ else {
// console.log(data)
+ this.thumbnailIsStale()
this.$id.val( data._id )
this.$name.val( data.name )
this.$description.val( data.description )
- data.privacy && this.$privacy.find("[value=" + data.privacy + "]").prop('checked', "checked")
+ data.privacy && this.$privacy.find("[value=" + data.privacy + "]").prop("checked", "checked")
data.media && Scenery.deserialize(data.media)
}
@@ -121,15 +125,32 @@ var EditorSettings = FormView.extend({
fd.append( "walls", JSON.stringify( Rooms.serializeWalls() ) )
fd.append( "media", JSON.stringify( Scenery.serialize() ) )
fd.append( "startPosition", JSON.stringify( app.position(scene.camera) ) )
- fd.append( "thumbnail", dataUriToBlob(map.canvas.toDataURL()) )
+
+ if (this.thumbnailIsStale()) {
+ fd.append( "thumbnail", dataUriToBlob(map.canvas.toDataURL()) )
+ }
return fd
},
+ thumbnailState: null,
+ thumbnailIsStale: function(){
+ var newState = JSON.stringify( Rooms.serialize() )
+
+ if (newState !== this.thumbnailState) {
+ this.thumbnailState = newState
+ return true
+ }
+ return false
+ },
+
success: function(data){
this.$id.val(data._id)
this.$name.val(data.name)
this.action = this.updateAction
+ Minotaur.unwatch(this)
+ Minotaur.hide()
+
window.history.pushState(null, document.title, "/project/" + data.slug + "/edit")
},