diff options
Diffstat (limited to 'public/assets/javascripts/ui')
| -rw-r--r-- | public/assets/javascripts/ui/_router.js (renamed from public/assets/javascripts/ui/SiteRouter.js) | 10 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/builder/BuilderToolbar.js | 23 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/editor/EditorToolbar.js | 36 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/reader/ReaderView.js | 28 |
4 files changed, 85 insertions, 12 deletions
diff --git a/public/assets/javascripts/ui/SiteRouter.js b/public/assets/javascripts/ui/_router.js index 3a6b589..6d41d5b 100644 --- a/public/assets/javascripts/ui/SiteRouter.js +++ b/public/assets/javascripts/ui/_router.js @@ -91,8 +91,14 @@ var SiteRouter = Router.extend({ app.mode.editor = true app.launch() - this.editorView = new EditorView() - this.editorView.load(name) + if ($(".aboutRoom").length) { + this.readerView = new ReaderView() + this.readerView.load(name) + } + else { + this.editorView = new EditorView() + this.editorView.load(name) + } }, diff --git a/public/assets/javascripts/ui/builder/BuilderToolbar.js b/public/assets/javascripts/ui/builder/BuilderToolbar.js index 4ca2e6c..df98ab0 100644 --- a/public/assets/javascripts/ui/builder/BuilderToolbar.js +++ b/public/assets/javascripts/ui/builder/BuilderToolbar.js @@ -6,7 +6,7 @@ var BuilderToolbar = View.extend({ "click [data-role='toggle-map-view']": 'toggleMap', "click [data-role='toggle-layout-settings']": 'toggleSettings', "click [data-role='undo']": 'undo', - "click [data-role='draw-mode']": 'draw', + "click [data-role='create-mode']": 'create', "click [data-role='resize-mode']": 'resize', "click [data-role='move-mode']": 'move', "click [data-role='destroy-mode']": 'destroy', @@ -14,6 +14,7 @@ var BuilderToolbar = View.extend({ initialize: function(opt){ this.parent = opt.parent + map.ui.permissions.toggle() }, toggleMap: function(){ @@ -27,16 +28,28 @@ var BuilderToolbar = View.extend({ undo: function(){ }, - draw: function(){ + create: function(e){ + var state = map.ui.permissions.toggle("create") + $(".inuse").removeClass("inuse") + $(e.currentTarget).toggleClass("inuse", state) }, - resize: function(){ + resize: function(e){ + var state = map.ui.permissions.toggle("resize") + $(".inuse").removeClass("inuse") + $(e.currentTarget).toggleClass("inuse", state) }, - move: function(){ + move: function(e){ + var state = map.ui.permissions.toggle("move") + $(".inuse").removeClass("inuse") + $(e.currentTarget).toggleClass("inuse", state) }, - destroy: function(){ + destroy: function(e){ + var state = map.ui.permissions.toggle("destroy") + $(".inuse").removeClass("inuse") + $(e.currentTarget).toggleClass("inuse", state) }, }) diff --git a/public/assets/javascripts/ui/editor/EditorToolbar.js b/public/assets/javascripts/ui/editor/EditorToolbar.js index 5382187..210ef6c 100644 --- a/public/assets/javascripts/ui/editor/EditorToolbar.js +++ b/public/assets/javascripts/ui/editor/EditorToolbar.js @@ -29,10 +29,28 @@ var EditorToolbar = View.extend({ openMediaViewer: function(){ this.parent.mediaViewer.show() this.parent.mediaUpload.show() + this.resetMode() }, - resizeMedia: function(){ - var state = editor.permissions.toggle("resize") + resetMode: function(){ + this.resizeMedia(false) + this.destroyMedia(false) + }, + + resetControls: function(){ + this.parent.wallpaperPicker.hide() + this.parent.lightControl.hide() + }, + + resizeMedia: function(e, state){ + if (! state && typeof e == "boolean") { + state = e + editor.permissions.assign("resize", state) + } + else { + state = editor.permissions.toggle("resize") + } + ! state && editor.permissions.assign("move", true) $(".inuse").removeClass("inuse") $("[data-role='resize-media']").toggleClass("inuse", state) if (state) { @@ -40,11 +58,18 @@ var EditorToolbar = View.extend({ } }, - destroyMedia: function(){ - var state = editor.permissions.toggle("destroy") + destroyMedia: function(e, state){ + if (! state && typeof e == "boolean") { + state = e + editor.permissions.assign("destroy", state) + } + else { + state = editor.permissions.toggle("destroy") + } + ! state && editor.permissions.assign("move", true) $(".inuse").removeClass("inuse") $("[data-role='destroy-media']").toggleClass("inuse", state) - $("body").toggleClass("destroyActive", state) + $("body").toggleClass("destroyActive", state) }, toggleWallpaper: function(){ @@ -62,6 +87,7 @@ var EditorToolbar = View.extend({ var editor = new function(){ this.permissions = new Permissions({ + 'move': true, 'resize': false, 'destroy': false, }) diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js new file mode 100644 index 0000000..001d097 --- /dev/null +++ b/public/assets/javascripts/ui/reader/ReaderView.js @@ -0,0 +1,28 @@ + +var ReaderView = View.extend({ + el: "#readerView", + + projectAction: "/api/projects/", + + events: { + }, + + initialize: function(){ + }, + + load: function(name){ + name = sanitize(name) + $.get(this.projectAction + name, $.proxy(this.ready, this)) + }, + + ready: function(data){ + $("#map").hide() + + data.rooms && Rooms.deserialize(data.rooms) + data.media && Scenery.deserialize(data.media) + data.startPosition && scene.camera.move(data.startPosition) + + editor.permissions.clear() + } + +}) |
