From d2c13b2974057a1b61509ca7ece25f2fde8d3000 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 20 Jun 2014 17:57:54 -0400 Subject: scenery uid --- public/assets/javascripts/rectangles/engine/scenery/_scenery.js | 8 ++++---- .../assets/javascripts/rectangles/engine/scenery/types/_object.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'public/assets/javascripts/rectangles') diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js index 143a4d9..74801e9 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js +++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js @@ -12,16 +12,16 @@ var Scenery = new function(){ base.resize.init() } - base.add = function(wall, media){ + base.add = function(wall, media, id){ var scene_media switch (media.type) { case 'image': - scene_media = new Scenery.types.image ({ media: media, wall: wall }) + scene_media = new Scenery.types.image ({ media: media, wall: wall, id: id }) break case 'youtube': case 'vimeo': - scene_media = new Scenery.types.video ({ media: media, wall: wall }) + scene_media = new Scenery.types.video ({ media: media, wall: wall, id: id }) break } @@ -64,7 +64,7 @@ var Scenery = new function(){ base.deserialize = function(scenery_data){ scenery_data.forEach(function(data){ var wall = Rooms.walls[data.wall_id] - var scene_media = base.add(wall, data.media) + var scene_media = base.add(wall, data.media, data.id) scene_media.deserialize(data) }) } diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js index 4367efc..05c760b 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js +++ b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js @@ -5,7 +5,7 @@ Scenery.types.base = Fiber.extend(function(base){ init: function(opt){ _.bindAll(this, 'enter', 'leave') - this.id = Scenery.uid("scenery") + this.id = opt.id || Scenery.uid("scenery") this.move = new Scenery.move (this) this.media = opt.media this.dimensions = new vec2(this.media.width, this.media.height) -- cgit v1.2.3-70-g09d2 From a61602ba2a76fa23c816454a8bd5e24c12d6899c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 20 Jun 2014 18:15:41 -0400 Subject: layouts toolbar toggles working --- .../javascripts/rectangles/engine/map/ui_editor.js | 18 ++++++++++++++--- .../javascripts/rectangles/engine/rooms/_rooms.js | 1 + .../javascripts/ui/builder/BuilderToolbar.js | 23 +++++++++++++++++----- .../assets/javascripts/ui/editor/EditorToolbar.js | 8 ++++---- views/controls/builder/toolbar.ejs | 2 +- 5 files changed, 39 insertions(+), 13 deletions(-) (limited to 'public/assets/javascripts/rectangles') diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js index 262272b..ea7a356 100644 --- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js +++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js @@ -20,6 +20,13 @@ Map.UI.Editor = function(map){ update: mousewheel, }) + base.permissions = new Permissions({ + create: true, + move: true, + resize: true, + destroy: false, + }) + // function down (e, cursor){ @@ -43,12 +50,17 @@ Map.UI.Editor = function(map){ return r.focused = r.rect.contains(cursor.x.a, cursor.y.a) }) - if (intersects.length) { + if (intersects.length && base.permissions.destroy) { + base.mouse.down = false + Rooms.remove(intersects[0]) + return + } + else if (intersects.length && (base.permissions.move || base.permissions.resize)) { base.dragging = intersects[0] - base.resizing = base.dragging.rect.nearEdge(cursor.x.a, cursor.y.a, resize_margin / map.zoom) + base.resizing = base.permissions.resize && base.dragging.rect.nearEdge(cursor.x.a, cursor.y.a, resize_margin / map.zoom) base.dragging.rect.translation.sides = base.resizing } - else { + else if (base.permissions.create) { base.creating = true } diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js index 0186e9a..48931e9 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js +++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js @@ -30,6 +30,7 @@ var Rooms = new function(){ base.remove = function(room){ delete base.list[room.id] + Rooms.clipper.update() } base.removeAll = function(){ 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 d5d3c4e..c3589db 100644 --- a/public/assets/javascripts/ui/editor/EditorToolbar.js +++ b/public/assets/javascripts/ui/editor/EditorToolbar.js @@ -31,19 +31,19 @@ var EditorToolbar = View.extend({ this.parent.mediaUpload.show() }, - resizeMedia: function(){ + resizeMedia: function(e){ var state = editor.permissions.toggle("resize") $(".inuse").removeClass("inuse") - $("[data-role='resize-media']").toggleClass("inuse", state) + $(e.currentTarget).toggleClass("inuse", state) if (state) { Scenery.resize.hide() } }, - destroyMedia: function(){ + destroyMedia: function(e){ var state = editor.permissions.toggle("destroy") $(".inuse").removeClass("inuse") - $("[data-role='destroy-media']").toggleClass("inuse", state) + $(e.currentTarget).toggleClass("inuse", state) $("body").toggleClass("destroyActive", state) }, diff --git a/views/controls/builder/toolbar.ejs b/views/controls/builder/toolbar.ejs index b55911b..98aee1e 100644 --- a/views/controls/builder/toolbar.ejs +++ b/views/controls/builder/toolbar.ejs @@ -18,7 +18,7 @@ + class="icon-ios7-trash-outline">