diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-06-19 18:12:12 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-06-19 18:12:12 -0400 |
| commit | 3adb2d4dcb071579b97182bb3ee65c2610619ce9 (patch) | |
| tree | de02f1382ba8d83ddd9b7269161aa819bb43fd3c /public/assets/javascripts | |
| parent | 615e285aba96554d0e29063d7491645810cb08b8 (diff) | |
saving projects
Diffstat (limited to 'public/assets/javascripts')
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) + } + }) |
