summaryrefslogtreecommitdiff
path: root/public/assets/javascripts
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-19 18:12:12 -0400
committerJules Laplace <jules@okfoc.us>2014-06-19 18:12:12 -0400
commit3adb2d4dcb071579b97182bb3ee65c2610619ce9 (patch)
treede02f1382ba8d83ddd9b7269161aa819bb43fd3c /public/assets/javascripts
parent615e285aba96554d0e29063d7491645810cb08b8 (diff)
saving projects
Diffstat (limited to 'public/assets/javascripts')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js8
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/image.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/video.js36
-rw-r--r--public/assets/javascripts/ui/SiteRouter.js4
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js20
-rw-r--r--public/assets/javascripts/ui/editor/EditorView.js14
6 files changed, 73 insertions, 10 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 8fea9b5..0d6c267 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -74,6 +74,14 @@ var Rooms = new function(){
Rooms.clipper.update()
}
+ base.serializeWalls = function(){
+ return []
+ }
+
+ base.deserializeWalls = function(walls_data){
+ return []
+ }
+
base.uid = (function(){
var id = 0
return function(s){
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
index d9bc1e5..98b26f4 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
@@ -1,6 +1,5 @@
Scenery.types.image = Scenery.types.base.extend(function(base){
-console.log("IM", base.serialize)
var exports = {
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
index e69de29..b34e55c 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
@@ -0,0 +1,36 @@
+
+Scenery.types.video = Scenery.types.base.extend(function(base){
+
+ var exports = {
+
+ init: function(opt){
+ base.init.call(this, opt)
+ this.scale = this.media.scale = 300 / max(300, this.media.width)
+
+ this.build()
+ this.bind()
+ this.set_wall()
+ this.recenter()
+ },
+
+ build: function(){
+ this.mx = new MX.Image({
+ src: this.media.url,
+ y: this.scale * this.media.height/2,
+ backface: false,
+ })
+ scene.add( this.mx )
+ },
+
+ serialize: function(){
+ var data = base.serialize.call(this)
+ return data
+ },
+
+ deserialize: function(data){
+ this.mx.move(data.position)
+ },
+ }
+
+ return exports
+})
diff --git a/public/assets/javascripts/ui/SiteRouter.js b/public/assets/javascripts/ui/SiteRouter.js
index 3bd783b..f0c5530 100644
--- a/public/assets/javascripts/ui/SiteRouter.js
+++ b/public/assets/javascripts/ui/SiteRouter.js
@@ -87,12 +87,12 @@ var SiteRouter = Router.extend({
this.editorView.loadLayout(layout)
},
- projectEditor: function(e, layout){
+ projectEditor: function(e, name){
app.mode.editor = true
app.launch()
this.editorView = new EditorView()
- this.editorView.loadLayout(name)
+ this.editorView.load(name)
},
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index 1e70dbb..58a37b8 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -21,16 +21,27 @@ var EditorSettings = FormView.extend({
this.$id = this.$("[name=_id]")
this.$csrf = this.$("[name=_csrf]")
this.$name = this.$("[name=name]")
+ this.$description = this.$("[name=description]")
this.$privacy = this.$("[name=privacy]")
},
load: function(data){
this.action = data.isNew ? this.createAction : this.updateAction
- },
-
- loadLayout: function(data){
+
data.rooms && Rooms.deserialize(data.rooms)
data.startPosition && scene.camera.move(data.startPosition)
+
+ if (! data.isNew) {
+ console.log(data)
+
+ 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")
+
+ console.log(data.media)
+ data.media && Scenery.deserialize(data.media)
+ }
},
clone: function(){
@@ -104,9 +115,10 @@ var EditorSettings = FormView.extend({
fd.append( "_csrf", this.$csrf.val() )
fd.append( "_id", this.$id.val() )
fd.append( "name", this.$name.val() )
+ fd.append( "description", this.$description.val() )
fd.append( "privacy", this.$privacy.filter(":checked").val() == "private" )
fd.append( "rooms", JSON.stringify( Rooms.serialize() ) )
-// fd.append( "walls", JSON.stringify( Rooms.serialize() ) )
+ 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()) )
diff --git a/public/assets/javascripts/ui/editor/EditorView.js b/public/assets/javascripts/ui/editor/EditorView.js
index 8422619..d4969c1 100644
--- a/public/assets/javascripts/ui/editor/EditorView.js
+++ b/public/assets/javascripts/ui/editor/EditorView.js
@@ -2,7 +2,7 @@
var EditorView = View.extend({
el: "#editorView",
- projecttAction: "/api/projects/",
+ projectAction: "/api/projects/",
layoutAction: "/api/layouts/",
events: {
@@ -18,17 +18,25 @@ var EditorView = View.extend({
},
load: function(name){
+ name = sanitize(name)
+ $.get(this.projectAction + name, $.proxy(this.ready, this))
},
loadLayout: function(layout){
layout = sanitize(layout)
- $.get(this.layoutAction + layout, $.proxy(this.ready, this))
+ $.get(this.layoutAction + layout, $.proxy(this.readyLayout, this))
},
ready: function(data){
$("#map").hide()
- this.settings.loadLayout(data)
+ this.settings.load(data)
},
+
+ readyLayout: function(data){
+ data.isNew = true
+ this.ready(data)
+ }
+
})