summaryrefslogtreecommitdiff
path: root/public/assets/javascripts
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-10 21:07:55 -0400
committerJules Laplace <jules@okfoc.us>2014-10-10 21:07:55 -0400
commit6177755e842ca3028833bc98ba0e97e6874b27fb (patch)
tree7bbe15aa18c497e256f3bbc6e89316221659137a /public/assets/javascripts
parentb35bda803440233b68389603bbaced53f8bb18ba (diff)
parentbc63a639bbd224adfc8012b100c1b277e2774afb (diff)
merge
Diffstat (limited to 'public/assets/javascripts')
-rw-r--r--public/assets/javascripts/mx/extensions/mx.movements.js2
-rw-r--r--public/assets/javascripts/rectangles/_env.js5
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_editor.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_minimap.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js19
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_walls.js13
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/builder.js5
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/clipper.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/undo.js12
-rw-r--r--public/assets/javascripts/rectangles/models/surface.js2
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js2
-rw-r--r--public/assets/javascripts/ui/builder/BuilderInfo.js11
-rw-r--r--public/assets/javascripts/ui/builder/BuilderSettings.js1
-rw-r--r--public/assets/javascripts/ui/builder/BuilderToolbar.js1
-rw-r--r--public/assets/javascripts/ui/builder/BuilderView.js5
-rw-r--r--public/assets/javascripts/ui/editor/Collaborators.js1
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js8
-rw-r--r--public/assets/javascripts/ui/editor/EditorToolbar.js50
-rw-r--r--public/assets/javascripts/ui/editor/EditorView.js7
-rw-r--r--public/assets/javascripts/ui/editor/LightControl.js34
-rw-r--r--public/assets/javascripts/ui/editor/MediaUpload.js2
-rw-r--r--public/assets/javascripts/ui/editor/MediaViewer.js1
-rw-r--r--public/assets/javascripts/ui/editor/Presets.js59
-rw-r--r--public/assets/javascripts/ui/editor/TextEditor.js1
-rw-r--r--public/assets/javascripts/ui/lib/Router.js1
-rw-r--r--public/assets/javascripts/ui/site/LayoutsModal.js7
-rw-r--r--public/assets/javascripts/ui/site/ProjectList.js28
27 files changed, 180 insertions, 102 deletions
diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js
index 065c93b..0ce03db 100644
--- a/public/assets/javascripts/mx/extensions/mx.movements.js
+++ b/public/assets/javascripts/mx/extensions/mx.movements.js
@@ -113,7 +113,7 @@ MX.Movements = function (cam) {
app.controller.mediaViewer.hide()
}
else {
- map && map.toggle && map.toggle()
+ app.controller.toolbar.toggleMap()
}
break
}
diff --git a/public/assets/javascripts/rectangles/_env.js b/public/assets/javascripts/rectangles/_env.js
index 4b14a21..ecde3ca 100644
--- a/public/assets/javascripts/rectangles/_env.js
+++ b/public/assets/javascripts/rectangles/_env.js
@@ -17,14 +17,15 @@ environment.init = function(){
scene.camera.radius = 20
}
- app.movements.gravity(true)
-
Rooms.init()
+ Walls.init()
Scenery.init()
scene.update()
environment.update()
+ app.movements.gravity(true)
+
var minimap_el = document.querySelector("#minimap .el")
if (minimap_el) {
window.minimap = new Map ({
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
index 02218ed..3c3347b 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
@@ -213,7 +213,7 @@ Map.UI.Editor = function(map){
undo: wheelState,
redo: intersects[0].copy()
})
- Rooms.clipper.update()
+ Rooms.rebuild()
wheelState = null
}, 500)
}
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_minimap.js b/public/assets/javascripts/rectangles/engine/map/ui_minimap.js
index d7280b9..fabbdb9 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_minimap.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_minimap.js
@@ -7,7 +7,6 @@ Map.UI.Minimap = function(map){
base.creating = base.dragging = base.resizing = false
-/*
base.mouse = new mouse({
el: map.el,
down: down,
@@ -16,7 +15,6 @@ Map.UI.Minimap = function(map){
up: up,
rightclick: rightclick,
})
-*/
base.wheel = new wheel({
el: map.el,
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 3603f0c..b901a25 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -59,18 +59,19 @@
height: 500
})
base.add(room)
+ Rooms.rebuild()
return room
}
base.remove = function(room){
delete base.list[room.id]
- Rooms.clipper.update()
+ Rooms.rebuild()
}
base.removeAll = function(){
base.list = {}
base.regions = []
- Rooms.clipper.update()
+ Rooms.rebuild()
}
base.count = function(){
@@ -88,6 +89,16 @@
base.values = function(){
return _.values(base.list)
}
+
+ base.rebuild = function(walls_data){
+ walls_data = walls_data || Walls.serialize()
+ Rooms.clipper.update()
+ Rooms.builder.rebuild()
+ Rooms.grouper.build()
+ Walls.paint()
+ Walls.deserialize(walls_data)
+ app.tube("rooms-built")
+ }
base.serialize = function(){
var rooms = base.map(function(room){
@@ -96,7 +107,7 @@
return rooms
}
- base.deserialize = function(rooms_data){
+ base.deserialize = function(rooms_data, walls_data){
rooms_data.forEach(function(data){
if (! data || ! data.rect) return
var rect = new Rect(data.rect.x[0], data.rect.y[0], data.rect.x[1], data.rect.y[1])
@@ -107,7 +118,7 @@
})
base.add(room)
})
- Rooms.clipper.update()
+ Rooms.rebuild(walls_data)
}
base.report = function(){
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_walls.js b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
index 7ff472d..0da3b9a 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_walls.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
@@ -38,6 +38,15 @@
base.floors = []
base.lookup = {}
base.colors = {}
+
+ base.init = function(){
+ base.colors = {
+ wall: app.defaults.colors.wall.slice(),
+ outline: app.defaults.colors.outline.slice(),
+ floor: app.defaults.colors.floor.slice(),
+ ceiling: app.defaults.colors.ceiling.slice(),
+ }
+ }
base.first = function(){
for (var i in base.list) {
@@ -90,7 +99,7 @@
base.values = function(){
return _.values(base.lookup)
}
-
+
base.serialize = function(){
var data = []
base.forEach(function(wall){
@@ -104,7 +113,6 @@
if (! wall_data) { return }
var wall = base.lookup[ wall_data.id ]
if (! wall) {
- console.log(wall_data);
return
}
wall.deserialize( wall_data )
@@ -118,6 +126,7 @@
var ceilingColor = rgb_string(Walls.colors.ceiling)
Walls.list.forEach(function(wall){
wall.outline(wallColor, outlineColor)
+ // TODO: SET WALLPAPER HERE
})
Rooms.forEach(function(room){
room.setFloorColor(floorColor)
diff --git a/public/assets/javascripts/rectangles/engine/rooms/builder.js b/public/assets/javascripts/rectangles/engine/rooms/builder.js
index 6a89158..4619eb1 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/builder.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/builder.js
@@ -32,19 +32,16 @@
var els = []
base.init = function(){
- base.bind()
+ // base.bind()
}
base.bind = function(){
- app.on("clip", base.rebuild.bind(base))
}
base.rebuild = function(){
if (window.scene) {
base.clear()
base.build()
- Rooms.grouper.build()
- app.tube("rooms-built")
}
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
index 0382758..df83cc8 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
@@ -38,7 +38,6 @@
base.update = function(){
base.solve_rects()
- app.tube("clip")
}
var regions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/undo.js b/public/assets/javascripts/rectangles/engine/scenery/undo.js
index 57a0886..bee8c49 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/undo.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/undo.js
@@ -69,11 +69,11 @@
type: "create-room",
undo: function(room){
Rooms.remove(room)
- Rooms.clipper.update()
+ Rooms.rebuild()
},
redo: function(room){
Rooms.add(new Room(room))
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
},
@@ -83,14 +83,14 @@
var room = Rooms.list[state.id]
room.rect.assign( state.rect )
room.height = state.height
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
redo: function(state){
var room = Rooms.list[state.id]
room.rect.assign( state.rect )
room.height = state.height
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
},
@@ -98,12 +98,12 @@
type: "destroy-room",
undo: function(room){
Rooms.add(new Room(room))
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
redo: function(room){
Rooms.remove(room)
- Rooms.clipper.update()
+ Rooms.rebuild()
},
},
diff --git a/public/assets/javascripts/rectangles/models/surface.js b/public/assets/javascripts/rectangles/models/surface.js
index c85682a..3a6c449 100644
--- a/public/assets/javascripts/rectangles/models/surface.js
+++ b/public/assets/javascripts/rectangles/models/surface.js
@@ -108,7 +108,7 @@
this.clamp_delta( this.bounds, dimension, position, delta )
var new_delta = delta.clone()
- if (this.clamp_delta(old_bounds, dimension, position, new_delta).eq(delta)) {
+ if (old_bounds && this.clamp_delta(old_bounds, dimension, position, new_delta).eq(delta)) {
return old_bounds
}
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index fcb2f5e..7ff9015 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -114,6 +114,8 @@
// TODO: watch individual scenery object here
Minotaur.watch( app.router.editorView.settings )
+
+ app.controller.pickWall(base, pos)
}
else {
app.controller.pickWall(base, pos)
diff --git a/public/assets/javascripts/ui/builder/BuilderInfo.js b/public/assets/javascripts/ui/builder/BuilderInfo.js
index e6b7e97..0bf2338 100644
--- a/public/assets/javascripts/ui/builder/BuilderInfo.js
+++ b/public/assets/javascripts/ui/builder/BuilderInfo.js
@@ -3,6 +3,7 @@ var BuilderInfo = View.extend({
el: "#builderInfo",
events: {
+ "mousedown": "stopPropagation",
"keydown": 'stopPropagation',
"change [name=x]": 'changeX',
"change [name=y]": 'changeY',
@@ -66,27 +67,27 @@ var BuilderInfo = View.extend({
changeWidth: function(e){
e.stopPropagation()
this.room.rect.x.setLength( this.$width.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeDepth: function(e){
e.stopPropagation()
this.room.rect.y.setLength( this.$depth.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeHeight: function(e){
e.stopPropagation()
this.room.height = this.$height.unitVal()
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeX: function(e){
e.stopPropagation()
this.room.rect.x.setPosition( this.$x.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeY: function(e){
e.stopPropagation()
this.room.rect.y.setPosition( this.$y.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeUnits: function(){
app.units = this.$units.val()
diff --git a/public/assets/javascripts/ui/builder/BuilderSettings.js b/public/assets/javascripts/ui/builder/BuilderSettings.js
index 7ae6294..fe67e9b 100644
--- a/public/assets/javascripts/ui/builder/BuilderSettings.js
+++ b/public/assets/javascripts/ui/builder/BuilderSettings.js
@@ -7,6 +7,7 @@ var BuilderSettings = FormView.extend({
destroyAction: "/api/layout/destroy",
events: {
+ "mousedown": "stopPropagation",
"keydown": 'stopPropagation',
"keydown [name=name]": 'enterSubmit',
"click [data-role='save-layout']": 'clickSave',
diff --git a/public/assets/javascripts/ui/builder/BuilderToolbar.js b/public/assets/javascripts/ui/builder/BuilderToolbar.js
index 2eb7590..6c218be 100644
--- a/public/assets/javascripts/ui/builder/BuilderToolbar.js
+++ b/public/assets/javascripts/ui/builder/BuilderToolbar.js
@@ -3,6 +3,7 @@ var BuilderToolbar = View.extend({
el: "#builderToolbar",
events: {
+ "mousedown": "stopPropagation",
"click [data-role='toggle-map-view']": 'toggleMap',
"click [data-role='toggle-layout-settings']": 'toggleSettings',
"click [data-role='undo']": 'undo',
diff --git a/public/assets/javascripts/ui/builder/BuilderView.js b/public/assets/javascripts/ui/builder/BuilderView.js
index 81dce52..a89111f 100644
--- a/public/assets/javascripts/ui/builder/BuilderView.js
+++ b/public/assets/javascripts/ui/builder/BuilderView.js
@@ -12,11 +12,6 @@ var BuilderView = View.extend({
this.toolbar = new BuilderToolbar ({ parent: this })
this.settings = new BuilderSettings ({ parent: this })
this.lightControl = new LightControl ({ parent: this })
-
- app.on("rooms-built", function(){
- Walls.paint()
- })
-
},
load: function(name){
diff --git a/public/assets/javascripts/ui/editor/Collaborators.js b/public/assets/javascripts/ui/editor/Collaborators.js
index 452ad15..b57510d 100644
--- a/public/assets/javascripts/ui/editor/Collaborators.js
+++ b/public/assets/javascripts/ui/editor/Collaborators.js
@@ -9,6 +9,7 @@ var Collaborators = ModalFormView.extend({
destroyAction: function(){ return "/api/collaborator/" + this.parent.data.slug + "/destroy" },
events: {
+ "mousedown": "stopPropagation",
"keydown [name=email]": "enterSubmit",
"click [data-role=destroy-collaborator]": "destroy",
},
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index 0c08369..89040e1 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -7,6 +7,7 @@ var EditorSettings = FormView.extend({
destroyAction: "/api/project/destroy",
events: {
+ "mousedown": "stopPropagation",
"keydown": 'stopPropagation',
"keydown [name=name]": 'enterSubmit',
"click [data-role='show-collaborators']": 'showCollaborators',
@@ -31,8 +32,7 @@ var EditorSettings = FormView.extend({
this.action = data.isNew ? this.createAction : this.updateAction
this.parent.data = data
- data.rooms && Rooms.deserialize(data.rooms)
- data.walls && Walls.deserialize(data.walls)
+ data.rooms && Rooms.deserialize(data.rooms, data.walls)
data.startPosition && scene.camera.move(data.startPosition)
if (data.colors && data.colors.wall) {
@@ -65,10 +65,6 @@ var EditorSettings = FormView.extend({
data.media && Scenery.deserialize(data.media)
}
-
- app.on("rooms-built", function(){
- Walls.paint()
- })
},
showCollaborators: function(e){
diff --git a/public/assets/javascripts/ui/editor/EditorToolbar.js b/public/assets/javascripts/ui/editor/EditorToolbar.js
index 49decc2..8a707ec 100644
--- a/public/assets/javascripts/ui/editor/EditorToolbar.js
+++ b/public/assets/javascripts/ui/editor/EditorToolbar.js
@@ -7,8 +7,8 @@ var EditorToolbar = View.extend({
"click [data-role='toggle-map-view']": 'toggleMap',
"click [data-role='toggle-project-settings']": 'toggleSettings',
"click [data-role='open-media-viewer']": 'openMediaViewer',
-// "click [data-role='resize-media']": 'resizeMedia',
- "click [data-role='destroy-media']": 'destroyMedia',
+ "click [data-role='toggle-presets']": 'togglePresets',
+// "click [data-role='destroy-media']": 'destroyMedia',
"click [data-role='toggle-wallpaper-panel']": 'toggleWallpaper',
"click [data-role='toggle-light-control']": 'toggleLightControl',
"click [data-role='toggle-text-editor']": 'toggleTextEditor',
@@ -19,13 +19,18 @@ var EditorToolbar = View.extend({
},
toggleMap: function(){
- map.toggle()
- // $("#minimap").toggleClass("hide");
+ var state = ! $("[data-role='toggle-map-view']").hasClass("inuse")
+ this.resetControls()
+ $("[data-role='toggle-map-view']").toggleClass("inuse", state)
+ map.toggle(state)
+ $("#minimap").toggleClass("hide", state)
+ this.parent.info.toggle(state)
},
toggleSettings: function(){
// this.resetMode()
this.parent.textEditor.hide()
+ this.parent.presets.hide()
this.parent.lightControl.hide()
this.parent.wallpaperPicker.hide()
this.parent.mediaEditor.hide()
@@ -52,6 +57,7 @@ var EditorToolbar = View.extend({
$(".inuse").removeClass("inuse")
this.parent.textEditor.hide()
this.parent.wallpaperPicker.hide()
+ this.parent.presets.hide()
this.parent.lightControl.hide()
this.parent.settings.hide()
},
@@ -62,28 +68,6 @@ var EditorToolbar = View.extend({
editor.permissions.add("resize")
editor.permissions.remove("destroy")
},
-
-// resizeMedia: function(e, state){
-// this.resetControls()
-// 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) {
-// if (this.parent.mediaEditor.scenery) {
-// Scenery.resize.show( this.parent.mediaEditor.scenery )
-// }
-// }
-// else {
-// Scenery.resize.hide()
-// }
-// },
destroyMedia: function(e, state){
this.resetControls()
@@ -113,6 +97,7 @@ var EditorToolbar = View.extend({
this.parent.lightControl.hide()
this.parent.textEditor.hide()
this.parent.settings.hide()
+ this.parent.presets.hide()
this.parent.wallpaperPicker.toggle(state)
},
@@ -124,6 +109,7 @@ var EditorToolbar = View.extend({
this.parent.wallpaperPicker.hide()
this.parent.textEditor.hide()
this.parent.settings.hide()
+ this.parent.presets.hide()
this.parent.lightControl.toggle(state)
},
@@ -135,9 +121,21 @@ var EditorToolbar = View.extend({
this.parent.wallpaperPicker.hide()
this.parent.lightControl.hide()
this.parent.settings.hide()
+ this.parent.presets.hide()
this.parent.textEditor.toggle(state)
},
+ togglePresets: function(){
+ var state = ! $("[data-role='toggle-presets']").hasClass("inuse")
+ this.resetMode()
+ $("[data-role='toggle-presets']").toggleClass("inuse", state)
+ this.parent.mediaEditor.hide()
+ this.parent.wallpaperPicker.hide()
+ this.parent.textEditor.hide()
+ this.parent.settings.hide()
+ this.parent.lightControl.hide()
+ this.parent.presets.toggle(state)
+ },
})
var editor = new function(){
diff --git a/public/assets/javascripts/ui/editor/EditorView.js b/public/assets/javascripts/ui/editor/EditorView.js
index f60b149..6aff601 100644
--- a/public/assets/javascripts/ui/editor/EditorView.js
+++ b/public/assets/javascripts/ui/editor/EditorView.js
@@ -11,6 +11,7 @@ var EditorView = View.extend({
initialize: function(){
this.toolbar = new EditorToolbar ({ parent: this })
this.settings = new EditorSettings ({ parent: this })
+ this.info = new BuilderInfo ({ parent: this })
this.mediaViewer = new MediaViewer ({ parent: this })
this.mediaUpload = new MediaUpload ({ parent: this })
this.mediaEditor = new MediaEditor ({ parent: this })
@@ -18,6 +19,7 @@ var EditorView = View.extend({
this.lightControl = new LightControl ({ parent: this })
this.textEditor = new TextEditor ({ parent: this })
this.collaborators = new Collaborators ({ parent: this })
+ this.presets = new Presets ({ parent: this })
},
load: function(name){
@@ -26,6 +28,11 @@ var EditorView = View.extend({
},
loadLayout: function(layout){
+ if (layout == "empty") {
+ this.readyLayout({})
+ this.toolbar.toggleMap()
+ return
+ }
layout = sanitize(layout)
$.get(this.layoutAction + layout, this.readyLayout.bind(this))
},
diff --git a/public/assets/javascripts/ui/editor/LightControl.js b/public/assets/javascripts/ui/editor/LightControl.js
index 51e6be7..3eb2861 100644
--- a/public/assets/javascripts/ui/editor/LightControl.js
+++ b/public/assets/javascripts/ui/editor/LightControl.js
@@ -10,7 +10,6 @@ var LightControl = View.extend({
"input #brightness-control": "updateBrightness",
"input #outline-hue": "updateShadow",
"input #wall-hue": "updateShadow",
- "click .presets span": "selectPreset",
},
initialize: function(){
@@ -115,39 +114,6 @@ var LightControl = View.extend({
this.setMode(mode)
},
- presets: {
- wireframe: {
- wall: [255,255,255],
- outline: [0,0,0],
- floor: [246,246,246],
- ceiling: [255,255,255],
- },
- shaded: {
- wall: [205,205,204],
- outline: [0,0,0],
- floor: [109,116,106],
- ceiling: [159,163,157],
- },
- pfunk: {
- wall: [255,63,78],
- outline: [255,246,0],
- floor: [255,255,0],
- ceiling: [225,118,252],
- },
- inverse: {
- wall: [0,0,0],
- outline: [0,230,255],
- floor: [0,0,0],
- ceiling: [0,0,0],
- },
- },
- selectPreset: function(e){
- var preset = $(e.currentTarget).data('preset')
- if (! this.presets[preset]) return
- this.load(this.presets[preset])
- $(e.currentTarget).addClass('active')
- },
-
beginBrightness: function(){
this.begin()
$(window).one("mouseup", this.finalize.bind(this))
diff --git a/public/assets/javascripts/ui/editor/MediaUpload.js b/public/assets/javascripts/ui/editor/MediaUpload.js
index 3f425c3..fddfefc 100644
--- a/public/assets/javascripts/ui/editor/MediaUpload.js
+++ b/public/assets/javascripts/ui/editor/MediaUpload.js
@@ -6,6 +6,7 @@ var MediaUpload = UploadView.extend({
uploadAction: "/api/media/upload",
events: {
+ 'mousedown': "stopPropagation",
"keydown .url": "enterSubmit",
},
@@ -56,6 +57,7 @@ var MediaUpload = UploadView.extend({
console.log(media)
this.parent.mediaViewer.add(media, this.parent.mediaViewer.$myMedia)
this.parent.mediaViewer.$deleteMedia.show()
+ this.parent.mediaViewer.$noMedia.hide()
},
beforeUpload: function(){
diff --git a/public/assets/javascripts/ui/editor/MediaViewer.js b/public/assets/javascripts/ui/editor/MediaViewer.js
index 1414e16..c18fb49 100644
--- a/public/assets/javascripts/ui/editor/MediaViewer.js
+++ b/public/assets/javascripts/ui/editor/MediaViewer.js
@@ -6,6 +6,7 @@ var MediaViewer = ModalView.extend({
loaded: false,
events: {
+ 'mousedown': "stopPropagation",
'click .foundToggle': "foundToggle",
'click .userToggle': "userToggle",
'click #deleteMedia': "deleteArmed",
diff --git a/public/assets/javascripts/ui/editor/Presets.js b/public/assets/javascripts/ui/editor/Presets.js
new file mode 100644
index 0000000..a7e92b6
--- /dev/null
+++ b/public/assets/javascripts/ui/editor/Presets.js
@@ -0,0 +1,59 @@
+var Presets = View.extend({
+ el: "#presets",
+
+ events: {
+ "click .presets span": "selectPreset",
+ },
+
+ presets: {
+ wireframe: {
+ wall: [255,255,255],
+ outline: [0,0,0],
+ floor: [246,246,246],
+ ceiling: [255,255,255],
+ },
+ shaded: {
+ wall: [205,205,204],
+ outline: [0,0,0],
+ floor: [109,116,106],
+ ceiling: [159,163,157],
+ },
+ pfunk: {
+ wall: [255,63,78],
+ outline: [255,246,0],
+ floor: [255,255,0],
+ ceiling: [225,118,252],
+ },
+ inverse: {
+ wall: [0,0,0],
+ outline: [255,255,255],
+ floor: [0,0,0],
+ ceiling: [0,0,0],
+ },
+ },
+
+ initialize: function(opt){
+ this.parent = opt.parent
+ },
+
+ toggle: function(state){
+ this.$el.toggleClass("active", state);
+ },
+
+ show: function(){
+ this.toggle(true)
+ },
+
+ hide: function(){
+ this.toggle(false)
+ },
+
+ selectPreset: function(e){
+ var preset = $(e.currentTarget).data('preset')
+ if (! this.presets[preset]) return
+ this.parent.lightControl.load(this.presets[preset])
+ this.$(".active").removeClass('active')
+ $(e.currentTarget).addClass('active')
+ },
+
+}) \ No newline at end of file
diff --git a/public/assets/javascripts/ui/editor/TextEditor.js b/public/assets/javascripts/ui/editor/TextEditor.js
index 0aa5aad..c8879b3 100644
--- a/public/assets/javascripts/ui/editor/TextEditor.js
+++ b/public/assets/javascripts/ui/editor/TextEditor.js
@@ -92,6 +92,7 @@ var TextEditor = FormView.extend({
this.unbind()
}
+ this.parent.settings.hide()
Scenery.resize.show(scenery)
Scenery.hovering = true
diff --git a/public/assets/javascripts/ui/lib/Router.js b/public/assets/javascripts/ui/lib/Router.js
index 0b6385c..28905b2 100644
--- a/public/assets/javascripts/ui/lib/Router.js
+++ b/public/assets/javascripts/ui/lib/Router.js
@@ -16,6 +16,7 @@ var Router = View.extend({
if (pathname in routes) {
this[this.routes[pathname]](null)
+ return
}
if (path[path.length-1] == null) {
diff --git a/public/assets/javascripts/ui/site/LayoutsModal.js b/public/assets/javascripts/ui/site/LayoutsModal.js
index 99db2a3..5974fc3 100644
--- a/public/assets/javascripts/ui/site/LayoutsModal.js
+++ b/public/assets/javascripts/ui/site/LayoutsModal.js
@@ -112,6 +112,7 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
action: "/api/layout",
events: {
+ "click [data-role='create-new-layout']": 'createNewLayout',
"click .templates span": 'choose',
"submit form": 'choose',
},
@@ -128,6 +129,10 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
var layout = $(e.currentTarget).data("slug")
if (! layout || ! layout.length) return
window.location.pathname = "/project/new/" + layout
- }
+ },
+
+ createNewLayout: function(){
+ window.location.pathname = "/project/new/empty"
+ },
})
diff --git a/public/assets/javascripts/ui/site/ProjectList.js b/public/assets/javascripts/ui/site/ProjectList.js
index ebb0a96..27c8aca 100644
--- a/public/assets/javascripts/ui/site/ProjectList.js
+++ b/public/assets/javascripts/ui/site/ProjectList.js
@@ -1,14 +1,17 @@
var projectListTimeout = null
+window.fuck = 'suck'
var ProjectList = View.extend({
el: ".projectList",
events: {
+ "click .viewMore": 'viewMore',
"mouseenter .room": 'enter',
"mouseleave .room": 'leave',
},
initialize: function(){
+ this.$viewMore = this.$(".viewMore")
this.$(".images").each(function(){
$divs = $(this).children("div")
$divs.hide()
@@ -41,7 +44,30 @@ var ProjectList = View.extend({
$divs.eq(index).hide()
$divs.eq(nextIndex).show()
$images.data("index", nextIndex)
- }
+ },
+
+ viewMore: function(e){
+ e.preventDefault()
+ var criteria = {}
+ criteria.offset = this.$(".projectItem").length
+ if (window.location.pathname == "/" || window.location.pathname.match("/home")) {
+ criteria.home = 1
+ }
+ else {
+ criteria.user_id = this.$(".projectItem").first().data("userid")
+ }
+
+ $.get("/api/project/paginate", criteria, function(data){
+ var offset = this.$viewMore.offset()
+ var $data = $(data)
+ var $els = $data.find(".projectItem")
+ $els.insertBefore( this.$viewMore )
+ if (! $data.find(".viewMore").length) {
+ this.$viewMore.hide()
+ }
+ $("body,html").animate({ scrollTop: offset.top - 80 }, 300)
+ }.bind(this))
+ },
/*
spinOn: function(e){