From a49023a991c62595fc5c449729be4cc313ff66a7 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 3 Nov 2014 16:59:45 -0500 Subject: fix undo scenery create/destroy --- .../javascripts/rectangles/engine/scenery/move.js | 31 +++++++++++++--------- .../rectangles/engine/scenery/resize.js | 2 +- .../javascripts/rectangles/engine/scenery/undo.js | 6 +++-- .../javascripts/rectangles/util/undostack.js | 1 + public/assets/javascripts/ui/editor/MediaEditor.js | 14 +++++++++- 5 files changed, 37 insertions(+), 17 deletions(-) diff --git a/public/assets/javascripts/rectangles/engine/scenery/move.js b/public/assets/javascripts/rectangles/engine/scenery/move.js index 7d148cf..3ae4993 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/move.js +++ b/public/assets/javascripts/rectangles/engine/scenery/move.js @@ -2,7 +2,7 @@ Scenery.move = function(base){ var x, y, z, position, dimension, bounds - var dragging = false + var dragging = false, moved = false var oldState this.bind = function(){ @@ -45,6 +45,7 @@ Scenery.move = function(base){ return } dragging = true + moved = false x = base.mx.x y = base.mx.y z = base.mx.z @@ -59,6 +60,8 @@ Scenery.move = function(base){ function drag (e, cursor){ if (! dragging) return + + moved = true var flipX = base.wall.side & (FRONT | RIGHT) @@ -89,21 +92,23 @@ Scenery.move = function(base){ function up (e, cursor){ if (! dragging || ! oldState) return - - dragging = false - document.body.classList.remove("dragging") + + if (moved) { + UndoStack.push({ + type: 'update-scenery', + undo: oldState, + redo: base.serialize(), + }) - UndoStack.push({ - type: 'update-scenery', - undo: oldState, - redo: base.serialize(), - }) + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) + } - // TODO: watch individual scenery object here - Minotaur.watch( app.router.editorView.settings ) - + dragging = moved = false oldState = null - } + document.body.classList.remove("dragging") + + } function switch_wall (e, target, cursor){ if (! dragging) return diff --git a/public/assets/javascripts/rectangles/engine/scenery/resize.js b/public/assets/javascripts/rectangles/engine/scenery/resize.js index 0ce976e..e424829 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/resize.js +++ b/public/assets/javascripts/rectangles/engine/scenery/resize.js @@ -88,8 +88,8 @@ Scenery.resize = new function(){ // pick a new object to focus on and show the dots base.show = function(new_object) { // if (obj === new_object) return + if (! new_object) return obj = new_object - base.add_dots() base.rotate_dots() base.move_dots() diff --git a/public/assets/javascripts/rectangles/engine/scenery/undo.js b/public/assets/javascripts/rectangles/engine/scenery/undo.js index 3deb764..998f7c6 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/undo.js +++ b/public/assets/javascripts/rectangles/engine/scenery/undo.js @@ -4,12 +4,13 @@ type: "create-scenery", undo: function(state){ Scenery.remove(state.id) + Scenery.resize.hide() // TODO: watch individual scenery object here Minotaur.watch( app.router.editorView.settings ) }, redo: function(state){ - Scenery.deserialize([ state ]) + var scenery = Scenery.deserialize([ state ]) Scenery.resize.show( scenery ) // TODO: watch individual scenery object here @@ -49,13 +50,14 @@ { type: "destroy-scenery", undo: function(state){ - Scenery.deserialize([ state ]) + var scenery = Scenery.deserialize([ state ]) Scenery.resize.show( scenery ) // TODO: watch individual scenery object here Minotaur.watch( app.router.editorView.settings ) }, redo: function(state){ + Scenery.resize.hide() Scenery.remove(state.id) // TODO: watch individual scenery object here diff --git a/public/assets/javascripts/rectangles/util/undostack.js b/public/assets/javascripts/rectangles/util/undostack.js index 959e3d1..040a4eb 100644 --- a/public/assets/javascripts/rectangles/util/undostack.js +++ b/public/assets/javascripts/rectangles/util/undostack.js @@ -10,6 +10,7 @@ this.pointer++ this.stack[this.pointer] = action this.purge() + this.debug && console.log("push", action.type) } UndoStack.prototype.purge = function(){ if (this.stack.length-1 == this.pointer) return diff --git a/public/assets/javascripts/ui/editor/MediaEditor.js b/public/assets/javascripts/ui/editor/MediaEditor.js index 9b81db1..9a3c355 100644 --- a/public/assets/javascripts/ui/editor/MediaEditor.js +++ b/public/assets/javascripts/ui/editor/MediaEditor.js @@ -161,7 +161,7 @@ var MediaEditor = FormView.extend({ unbind: function(){ if (this.scenery) { - if (this.tainted) { + if (this.tainted && this.scenery.media) { this.scenery.media.title = this.$name.val() this.scenery.media.description = this.$description.val() Minotaur.watch( app.router.editorView.settings ) @@ -178,8 +178,20 @@ var MediaEditor = FormView.extend({ destroy: function(){ var scenery = this.scenery this.hide() + + UndoStack.push({ + type: 'destroy-scenery', + undo: scenery.serialize(), + redo: { id: scenery.id }, + }) + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) + Scenery.remove(scenery.id) Scenery.resize.hide() + this.tainted = false + this.scenery = null }, }) -- cgit v1.2.3-70-g09d2 From 3f90aca295fc206f25b41e4c219a62171dbed650 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 13:48:48 -0500 Subject: fix weird click issue with youtube --- public/assets/javascripts/mx/primitives/mx.youtube.js | 13 +++++++++++++ .../javascripts/rectangles/engine/scenery/_scenery.js | 2 +- public/assets/javascripts/rectangles/engine/scenery/move.js | 3 ++- public/assets/javascripts/ui/reader/ShareView.js | 7 ++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/public/assets/javascripts/mx/primitives/mx.youtube.js b/public/assets/javascripts/mx/primitives/mx.youtube.js index 873348f..8511173 100644 --- a/public/assets/javascripts/mx/primitives/mx.youtube.js +++ b/public/assets/javascripts/mx/primitives/mx.youtube.js @@ -34,9 +34,22 @@ MX.Youtube = MX.Object3D.extend({ preload.style.width = this.media.width + "px" preload.style.height = this.media.height + "px" preload.style.pointerEvents = "none" + preload.style.position = "absolute" + preload.style.top = "0" + preload.style.left = "0" + preload.style.zIndex = "1" preload.className = "preload" this.el.appendChild(preload) + var overlay = this.overlay = document.createElement("div") + overlay.style.width = "100%" + overlay.style.height = "100%" + overlay.style.position = "absolute" + overlay.style.top = "0" + overlay.style.left = "0" + overlay.style.zIndex = "2" + overlay.className = "overlay" + this.el.appendChild(overlay) this.defer(uid) }, diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js index 3d3067f..24c2602 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js +++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js @@ -6,7 +6,7 @@ var Scenery = new function(){ base.list = {} base.nextMedia = null - base.mouse = new mouse ({ use_offset: false }) + base.mouse = new mouse ({ use_offset: false, mousedownUsesCapture: true }) base.init = function(){ base.resize.init() diff --git a/public/assets/javascripts/rectangles/engine/scenery/move.js b/public/assets/javascripts/rectangles/engine/scenery/move.js index 3ae4993..13580a8 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/move.js +++ b/public/assets/javascripts/rectangles/engine/scenery/move.js @@ -22,7 +22,8 @@ Scenery.move = function(base){ } function down (e, cursor){ - if (e.target != base.mx.el) return; + console.log(e.target, base.mx.overlay) + if (e.target != base.mx.el && (e.target != base.mx.overlay)) return; if (editor.permissions.destroy) { UndoStack.push({ type: 'destroy-scenery', diff --git a/public/assets/javascripts/ui/reader/ShareView.js b/public/assets/javascripts/ui/reader/ShareView.js index 35c23ca..4e5f832 100644 --- a/public/assets/javascripts/ui/reader/ShareView.js +++ b/public/assets/javascripts/ui/reader/ShareView.js @@ -22,6 +22,11 @@ var ShareView = View.extend({ var msg = $(".roomName").html() + " on VValls" var url = "https://twitter.com/home?status=" + encodeURIComponent(window.location.origin + window.location.pathname + " " + msg); window.open(url, "_blank") - } + }, + + embed: function (e) { + e.preventDefault() + + }, }) -- cgit v1.2.3-70-g09d2 From 9cb3a0a7ce2a6660a776e1bd48053ca963eb7b92 Mon Sep 17 00:00:00 2001 From: ryderr Date: Tue, 4 Nov 2014 13:56:14 -0500 Subject: disable wow js in mobile --- public/assets/javascripts/app.js | 4 +--- public/assets/stylesheets/app.css | 17 ++++++++++------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index f3da470..5e339ea 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -13,11 +13,9 @@ else if ($.browser.msie || ! has3d()) { } else { $("html").addClass("desktop"); + new WOW().init() } -$(function(){ - new WOW().init() -}) var scene, cam, map; diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index edd3928..7c18e37 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -8,6 +8,9 @@ } body,textarea,input { font-family: 'Lato', sans-serif; +} + +.mobile input { -webkit-appearance: none; } @@ -1107,7 +1110,7 @@ border-left: 1px solid black; width: 55px; } -.menu span:hover{ +.desktop .menu span:hover{ color:white; background:black; cursor:pointer; @@ -1129,7 +1132,7 @@ border-left: 1px solid black; content: "\f12a" !important; } -.menu span:hover:after{ +.desktop .menu span:hover:after{ content: attr(data-info); position: absolute; color: black; @@ -2316,11 +2319,11 @@ form li textarea { display: inline-block; padding: 60px 20px; border-radius: 230px; - -webkit-transition:0.2s all; - -moz-transition:0.2s all; - transition:0.2s all; - -webkit-transform: translate3d(0,-999px,0); - transform: translate3d(0,-999px,0); + opacity:1; +} + +.loading .hero .circle { + opacity:0; } .desktop .hero .circle:hover { -- cgit v1.2.3-70-g09d2 From 401b592e687e0d530eb01cd671adec0a70bac2b8 Mon Sep 17 00:00:00 2001 From: ryderr Date: Tue, 4 Nov 2014 14:00:34 -0500 Subject: transition --- public/assets/stylesheets/app.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 7c18e37..3fa7ee0 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -2320,6 +2320,9 @@ form li textarea { padding: 60px 20px; border-radius: 230px; opacity:1; + -webkit-transition:0.2s background; + -moz-transition:0.2s background; + transition:0.2s background; } .loading .hero .circle { -- cgit v1.2.3-70-g09d2 From 94f25dc59aa1066321a23a5c2f00521dea87fbc0 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 14:05:10 -0500 Subject: backspace shortcut to delete scenery --- .../javascripts/mx/extensions/mx.movements.js | 11 +++++- .../javascripts/rectangles/engine/scenery/move.js | 12 +------ .../rectangles/engine/scenery/types/_object.js | 39 +++++++++++++++++----- public/assets/javascripts/ui/editor/MediaEditor.js | 13 ++------ public/assets/javascripts/ui/editor/TextEditor.js | 6 ++-- 5 files changed, 46 insertions(+), 35 deletions(-) diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js index dc9660b..1ba33c9 100644 --- a/public/assets/javascripts/mx/extensions/mx.movements.js +++ b/public/assets/javascripts/mx/extensions/mx.movements.js @@ -62,7 +62,7 @@ MX.Movements = function (cam) { }, keydown: function (e) { - // console.log(e.keyCode) + console.log(e.keyCode) if (locked || e.altKey || e.metaKey || e.ctrlKey) { return } @@ -155,6 +155,15 @@ MX.Movements = function (cam) { app.controller.toolbar.toggleMap() } break + + case 8: // backspace + e.preventDefault() + if (app.controller.mediaEditor.scenery) { + app.controller.mediaEditor.scenery.remove() + } + else if (app.controller.textEditor.scenery) { + app.controller.textEditor.scenery.remove() + } } }, diff --git a/public/assets/javascripts/rectangles/engine/scenery/move.js b/public/assets/javascripts/rectangles/engine/scenery/move.js index 13580a8..12705d3 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/move.js +++ b/public/assets/javascripts/rectangles/engine/scenery/move.js @@ -22,19 +22,9 @@ Scenery.move = function(base){ } function down (e, cursor){ - console.log(e.target, base.mx.overlay) if (e.target != base.mx.el && (e.target != base.mx.overlay)) return; if (editor.permissions.destroy) { - UndoStack.push({ - type: 'destroy-scenery', - undo: base.serialize(), - redo: { id: base.id }, - }) - - // TODO: watch individual scenery object here - Minotaur.watch( app.router.editorView.settings ) - - Scenery.remove(base.id) + base.remove() return } diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js index 4e5e2c5..10ba2b0 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js +++ b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js @@ -62,20 +62,43 @@ Scenery.types.base = Fiber.extend(function(base){ bind: function(){ this.move.bind() - $(this.mx.el).bind({ - mouseenter: this.enter, - mouseleave: this.leave, - }) +// $(this.mx.el).bind({ +// mouseenter: this.enter, +// mouseleave: this.leave, +// }) }, unbind: function(){ this.move.unbind() - $(this.mx.el).unbind({ - mouseenter: this.enter, - mouseleave: this.leave, - }) +// $(this.mx.el).unbind({ +// mouseenter: this.enter, +// mouseleave: this.leave, +// }) }, + remove: function(){ + UndoStack.push({ + type: 'destroy-scenery', + undo: this.serialize(), + redo: { id: this.id }, + }) + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) + + Scenery.remove(this.id) + + Scenery.resize.hide() + if (app.controller.mediaEditor) { + app.controller.mediaEditor.tainted = false + app.controller.mediaEditor.hide() + } + if (app.controller.textEditor) { + app.controller.textEditor.tainted = false + app.controller.textEditor.hide() + } + }, + destroy: function(){ this.unbind() scene.remove(this.mx) diff --git a/public/assets/javascripts/ui/editor/MediaEditor.js b/public/assets/javascripts/ui/editor/MediaEditor.js index 9a3c355..db5878f 100644 --- a/public/assets/javascripts/ui/editor/MediaEditor.js +++ b/public/assets/javascripts/ui/editor/MediaEditor.js @@ -179,17 +179,8 @@ var MediaEditor = FormView.extend({ var scenery = this.scenery this.hide() - UndoStack.push({ - type: 'destroy-scenery', - undo: scenery.serialize(), - redo: { id: scenery.id }, - }) - - // TODO: watch individual scenery object here - Minotaur.watch( app.router.editorView.settings ) - - Scenery.remove(scenery.id) - Scenery.resize.hide() + scenery.remove() + this.tainted = false this.scenery = null }, diff --git a/public/assets/javascripts/ui/editor/TextEditor.js b/public/assets/javascripts/ui/editor/TextEditor.js index b559ba5..51077af 100644 --- a/public/assets/javascripts/ui/editor/TextEditor.js +++ b/public/assets/javascripts/ui/editor/TextEditor.js @@ -136,10 +136,8 @@ var TextEditor = FormView.extend({ }, destroy: function(){ - var scenery = this.scenery - this.hide() - Scenery.remove(scenery.id) - Scenery.resize.hide() + this.tainted = false + this.scenery.remove() }, }) -- cgit v1.2.3-70-g09d2 From 9acdfee187cff9131e1add9e74a0eecb002ed1b5 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 14:17:26 -0500 Subject: dont bind hover events on mobile --- public/assets/javascripts/mx/extensions/mx.movements.js | 2 +- public/assets/javascripts/ui/lib/View.js | 5 ++++- public/assets/javascripts/ui/site/ProjectList.js | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js index 1ba33c9..2c231ae 100644 --- a/public/assets/javascripts/mx/extensions/mx.movements.js +++ b/public/assets/javascripts/mx/extensions/mx.movements.js @@ -62,7 +62,7 @@ MX.Movements = function (cam) { }, keydown: function (e) { - console.log(e.keyCode) + // console.log(e.keyCode) if (locked || e.altKey || e.metaKey || e.ctrlKey) { return } diff --git a/public/assets/javascripts/ui/lib/View.js b/public/assets/javascripts/ui/lib/View.js index d94e6db..3c65131 100644 --- a/public/assets/javascripts/ui/lib/View.js +++ b/public/assets/javascripts/ui/lib/View.js @@ -60,7 +60,10 @@ var View = (function($, _){ var eventName = match[1], selector = match[2]; method = _.bind(method, this); eventName += '.delegateEvents' + this._id; - if (selector === '') { + if (is_mobile && (selector === 'mouseenter' || selector === 'mouseleave')) { + continue + } + else if (selector === '') { this.$el.on(eventName, method); } else { this.$el.on(eventName, selector, method); diff --git a/public/assets/javascripts/ui/site/ProjectList.js b/public/assets/javascripts/ui/site/ProjectList.js index 27c8aca..076a674 100644 --- a/public/assets/javascripts/ui/site/ProjectList.js +++ b/public/assets/javascripts/ui/site/ProjectList.js @@ -1,5 +1,5 @@ var projectListTimeout = null -window.fuck = 'suck' + var ProjectList = View.extend({ el: ".projectList", -- cgit v1.2.3-70-g09d2 From 21bd8c5bed4e74681d6d628744c3a59fec517c15 Mon Sep 17 00:00:00 2001 From: ryderr Date: Tue, 4 Nov 2014 14:38:54 -0500 Subject: flood message and overflow issue --- public/assets/stylesheets/app.css | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 3fa7ee0..730ead2 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -24,6 +24,10 @@ body{ overflow-x:hidden; } +body.editing{ + overflow:hidden; +} + ::-moz-selection { color: white; background: black; @@ -1741,17 +1745,29 @@ input[type="range"]::-webkit-slider-thumb { .floodMessage { display: none; animation: flicker 0.2s infinite; + -webkit-animation: flicker 0.2s infinite; + -moz-animation: flicker 0.2s infinite; color: black; float: left; margin: 10px 5px 5px 5px; - font-size: 13px; - font-weight: 300; + font-size: 10px; text-align: center; + font-weight:600; + color:red; + text-transform:uppercase; + text-align:left; +} +.floodMessage:before { + content:"CLICK ON WALL OR "; } @keyframes flicker { - 49% { color: black; } - 50% { color: red; } - 100% { color: red; } + 50% { opacity:0.7; } +} +@-webkit-keyframes flicker { + 50% { opacity:0.7; } +} +@-moz-keyframes flicker { + 50% { opacity:0.7; } } #color-picker { @@ -2310,6 +2326,7 @@ form li textarea { display: table; background-size: cover; background-position: center; + background-attachment: fixed; margin-top: 63px; } .hero .circle { -- cgit v1.2.3-70-g09d2 From 00778a168b7314039e95e856f6d41e05d0dbc4e4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 14:44:02 -0500 Subject: fix resize undo --- public/assets/javascripts/app.js | 5 ----- .../assets/javascripts/rectangles/engine/scenery/types/image.js | 1 + .../assets/javascripts/rectangles/engine/scenery/types/text.js | 2 ++ .../assets/javascripts/rectangles/engine/scenery/types/video.js | 1 + public/assets/javascripts/rectangles/engine/scenery/undo.js | 9 ++++++--- public/assets/javascripts/rectangles/models/vec2.js | 6 +++++- public/assets/javascripts/vendor/polyfill.js | 5 +++++ 7 files changed, 20 insertions(+), 9 deletions(-) diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 5e339ea..0488f11 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -1,9 +1,4 @@ -var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); -var is_ipad = (navigator.userAgent.match(/iPad/i)); -var is_android = (navigator.userAgent.match(/Android/i)) -var is_mobile = is_iphone || is_ipad || is_android; - if (is_mobile) { // window.location.href = "mobile.html" $("html").addClass("mobile"); diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js index 10fc917..848f8d4 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js +++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js @@ -55,6 +55,7 @@ Scenery.types.image = Scenery.types.base.extend(function(base){ this.mx.move(data.position) this.mx.ops.width = data.dimensions.a this.mx.ops.height = data.dimensions.b + this.dimensions.deserialize(data.dimensions) }, } diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/text.js b/public/assets/javascripts/rectangles/engine/scenery/types/text.js index a10a332..dd1385f 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/types/text.js +++ b/public/assets/javascripts/rectangles/engine/scenery/types/text.js @@ -68,7 +68,9 @@ Scenery.types.text = Scenery.types.base.extend(function(base){ this.mx.move(data.position) this.mx.ops.width = data.dimensions.a this.mx.ops.height = data.dimensions.b + this.dimensions.deserialize(data.dimensions) }, + } return exports diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js index a669a90..d83cc63 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js +++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js @@ -117,6 +117,7 @@ Scenery.types.video = Scenery.types.base.extend(function(base){ this.mx.move(data.position) this.mx.ops.width = data.dimensions.a this.mx.ops.height = data.dimensions.b + this.dimensions.deserialize(data.dimensions) }, } diff --git a/public/assets/javascripts/rectangles/engine/scenery/undo.js b/public/assets/javascripts/rectangles/engine/scenery/undo.js index 998f7c6..6ad9e0d 100644 --- a/public/assets/javascripts/rectangles/engine/scenery/undo.js +++ b/public/assets/javascripts/rectangles/engine/scenery/undo.js @@ -21,9 +21,10 @@ type: "update-scenery", undo: function(state){ var scenery = Scenery.find(state.id) + var wall = Walls.find( state.wall_id ) scenery.deserialize(state) - scenery.set_wall(Walls.find( state.wall_id )) + scenery.set_wall({ wall: wall }) if (editor.permissions.resize) { Scenery.resize.show(scenery) @@ -34,13 +35,15 @@ }, redo: function(state){ var scenery = Scenery.find(state.id) + var wall = Walls.find( state.wall_id ) + scenery.deserialize(state) - scenery.set_wall(Walls.find( state.wall_id )) + scenery.set_wall({ wall: wall }) if (editor.permissions.resize) { Scenery.resize.show(scenery) - Scenery.resize.rotate_dots() Scenery.resize.move_dots() + Scenery.resize.rotate_dots() } // TODO: watch individual scenery object here diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js index f28df54..14d0e6b 100644 --- a/public/assets/javascripts/rectangles/models/vec2.js +++ b/public/assets/javascripts/rectangles/models/vec2.js @@ -206,7 +206,11 @@ return "[" + this.a + " " + this.b + "]" } vec2.prototype.serialize = function(){ - return [ ~~this.a, ~~this.b ] + return [ round(this.a), round(this.b) ] + } + vec2.prototype.deserialize = function(data){ + this.a = data[0] + this.b = data[1] } vec2.prototype.quantize = function(n){ n = n || 10 diff --git a/public/assets/javascripts/vendor/polyfill.js b/public/assets/javascripts/vendor/polyfill.js index f97e438..8e4b9dc 100644 --- a/public/assets/javascripts/vendor/polyfill.js +++ b/public/assets/javascripts/vendor/polyfill.js @@ -52,6 +52,11 @@ function has3d(){ return browser; })( navigator.userAgent ); +// Naive useragent detection pattern +var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); +var is_ipad = (navigator.userAgent.match(/iPad/i)); +var is_android = (navigator.userAgent.match(/Android/i)) +var is_mobile = is_iphone || is_ipad || is_android; // rAF shim (function() { -- cgit v1.2.3-70-g09d2 From 43b211e416fb7154079586de7b75807bd1a5ac28 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 15:00:00 -0500 Subject: use minotaur --- public/assets/javascripts/ui/editor/EditorSettings.js | 2 ++ public/assets/javascripts/ui/lib/FormView.js | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js index b96943e..de60b53 100644 --- a/public/assets/javascripts/ui/editor/EditorSettings.js +++ b/public/assets/javascripts/ui/editor/EditorSettings.js @@ -5,6 +5,8 @@ var EditorSettings = FormView.extend({ createAction: "/api/project/new", updateAction: "/api/project/edit", destroyAction: "/api/project/destroy", + + useMinotaur: true, events: { "mousedown": "stopPropagation", diff --git a/public/assets/javascripts/ui/lib/FormView.js b/public/assets/javascripts/ui/lib/FormView.js index 17b748a..b3a4c71 100644 --- a/public/assets/javascripts/ui/lib/FormView.js +++ b/public/assets/javascripts/ui/lib/FormView.js @@ -1,6 +1,7 @@ var FormView = View.extend({ method: "post", + useMinotaur: false, events: { "submit form": "save" @@ -88,8 +89,15 @@ var FormView = View.extend({ processData: false, contentType: false, }) + + if (this.useMinotaur) { + Minotaur.show() + } request.done($.proxy(function (response) { + if (this.useMinotaur) { + Minotaur.hide() + } if (response.error) { var errors = [] for (var key in response.error.errors) { -- cgit v1.2.3-70-g09d2 From 5df29b91f28f9557bd7dcd3d27969b06890610ec Mon Sep 17 00:00:00 2001 From: ryderr Date: Tue, 4 Nov 2014 15:35:45 -0500 Subject: removing fixed bg cuz its played --- public/assets/stylesheets/app.css | 1 - 1 file changed, 1 deletion(-) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 730ead2..c190f35 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -2326,7 +2326,6 @@ form li textarea { display: table; background-size: cover; background-position: center; - background-attachment: fixed; margin-top: 63px; } .hero .circle { -- cgit v1.2.3-70-g09d2 From 3d8490dacba1b3020b9e1dd926ce99edfee48375 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 15:44:45 -0500 Subject: toggle map link in settings --- public/assets/javascripts/ui/editor/EditorSettings.js | 6 ++++++ views/controls/editor/settings.ejs | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js index de60b53..2b29961 100644 --- a/public/assets/javascripts/ui/editor/EditorSettings.js +++ b/public/assets/javascripts/ui/editor/EditorSettings.js @@ -17,6 +17,7 @@ var EditorSettings = FormView.extend({ "click [data-role='clone-project']": 'clone', "click [data-role='clear-project']": 'clear', "click [data-role='destroy-project']": 'destroy', + "click [data-role='toggle-map']": 'toggleMap', "click #startText": "setStartPosition", "click #moveText": "confirmStartPosition", "click #confirmText": "setStartPosition", @@ -83,6 +84,11 @@ var EditorSettings = FormView.extend({ this.parent.collaborators.show() }, + toggleMap: function(e){ + e.preventDefault() + app.controller.toolbar.toggleMap() + }, + clone: function(e){ e.preventDefault() diff --git a/views/controls/editor/settings.ejs b/views/controls/editor/settings.ejs index 8443abb..197ad43 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -14,13 +14,21 @@ (go there) + - + + +
-- cgit v1.2.3-70-g09d2 From 3d22e7ad8320ae120586ec1ad26e11016598c821 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 15:46:37 -0500 Subject: user has no projects --- public/assets/stylesheets/app.css | 15 +++++++++++++++ views/profile.ejs | 16 +++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index c190f35..7b8dd26 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -783,6 +783,21 @@ iframe.embed { .profilepage .about h2:nth-child(2){ margin:34px 0; } +.profilepage .about h2 a.homeLink { + background: white; + border: 1px solid black; + padding: 10px; +} +.profilepage .about h2 a.homeLink:hover { + background: black; + border: 1px solid black; + color: white; +} +.profilepage .about h3 { + font-size: 13px; + font-weight: 300; + text-align: center; +} .about { background-color: #ffffff;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyODkuNScgaGVpZ2h0PScyODkuNScgdmlld0JveD0nMCAwIDI4OS41IDI4OS41Jz4KCTxkZWZzPgoJCTxwYXR0ZXJuIGlkPSdibHVlc3RyaXBlJyBwYXR0ZXJuVW5pdHM9J3VzZXJTcGFjZU9uVXNlJyB4PScwJyB5PScwJyB3aWR0aD0nNTcuOScgaGVpZ2h0PSc1Ny45JyB2aWV3Qm94PScwIDAgMTE1LjggMTE1LjgnID4KCQk8cmVjdCB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJyBmaWxsPScjZmZmZmZmJy8+CgkJCTxwYXRoIGQ9J00xLDFoMTE1Ljh2MTE1LjhoLTExNS44di0xMTUuOCcgZmlsbC1vcGFjaXR5PScwJyBzdHJva2Utd2lkdGg9JzAuOCcgc3Ryb2tlLWRhc2hhcnJheT0nMCwxLDEnIHN0cm9rZT0nI2NjY2NjYycvPgoJCTwvcGF0dGVybj4gCgkJPGZpbHRlciBpZD0nZnV6eicgeD0nMCcgeT0nMCc+CgkJCTxmZVR1cmJ1bGVuY2UgdHlwZT0ndHVyYnVsZW5jZScgcmVzdWx0PSd0JyBiYXNlRnJlcXVlbmN5PScuMiAuMycgbnVtT2N0YXZlcz0nNScgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPgoJCQk8ZmVDb2xvck1hdHJpeCB0eXBlPSdzYXR1cmF0ZScgaW49J3QnIHZhbHVlcz0nMCcvPgoJCTwvZmlsdGVyPgoJPC9kZWZzPgoJPHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsbD0ndXJsKCNibHVlc3RyaXBlKScvPgo8cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjZnV6eiknIG9wYWNpdHk9JzAnLz4KPC9zdmc+Cg=='); background-attachment: fixed; diff --git a/views/profile.ejs b/views/profile.ejs index 1be0702..272deb7 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -58,14 +58,16 @@ [[ if (isOwnProfile) { ]] -

- You don't have any projects yet. -

-

- Create a New Project -

+

+ You don't have any projects yet. +

+

+ Create a New Project +

+ [[ } else { ]] +

Learn more about VValls

+

This person has no projects.

[[ } ]] - [[ } ]] -- cgit v1.2.3-70-g09d2 From f4da7634e36cfca43e5bda916bfe1ce7b76950b8 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 16:53:31 -0500 Subject: mobile view links should NOT take you to the editing view --- public/assets/javascripts/ui/_router.js | 9 +++++---- views/reader.ejs | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/public/assets/javascripts/ui/_router.js b/public/assets/javascripts/ui/_router.js index d5a8e7f..7337357 100644 --- a/public/assets/javascripts/ui/_router.js +++ b/public/assets/javascripts/ui/_router.js @@ -73,12 +73,13 @@ var SiteRouter = Router.extend({ this.route() - /* if (is_mobile) { - $(".topLinks").hide() - $(".share").hide() + // $(".topLinks").hide() + // $(".share").hide() + $('.projectItem').each(function(){ + this.href = this.href.replace(/\/edit$/, "") + }) } - */ $("body").removeClass("loading") }, diff --git a/views/reader.ejs b/views/reader.ejs index b110ffd..e86bab1 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -16,6 +16,12 @@ [[ include controls/reader/about-room ]] [[ include controls/reader/media-player ]] + + [[ } ]] -- cgit v1.2.3-70-g09d2 From 91019438dab626c2760fb2e7b5e2203e88785caf Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 17:02:01 -0500 Subject: layout editor autosaves --- .../assets/javascripts/rectangles/engine/map/ui_editor.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js index 1ab9c73..c838b8b 100644 --- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js +++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js @@ -70,6 +70,9 @@ Map.UI.Editor = function(map){ Rooms.remove(room) app.tube("builder-destroy-room", room) + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) return } else if (intersects.length) { @@ -178,6 +181,9 @@ Map.UI.Editor = function(map){ Rooms.rebuild() app.tube("builder-pick-room", room) + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) } } if (base.resizing || base.dragging) { @@ -196,6 +202,9 @@ Map.UI.Editor = function(map){ redo: base.dragging.copy() }) Rooms.rebuild() + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) } var intersects = Rooms.filter(function(r){ @@ -231,6 +240,10 @@ Map.UI.Editor = function(map){ redo: intersects[0].copy() }) Rooms.rebuild() + + // TODO: watch individual scenery object here + Minotaur.watch( app.router.editorView.settings ) + wheelState = null }, 250) } -- cgit v1.2.3-70-g09d2 From 4adaca22b5cafba9dcfd8fd147d44797ad267a77 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 4 Nov 2014 17:04:20 -0500 Subject: copy --- views/home.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/home.ejs b/views/home.ejs index 85a235b..bc54250 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -32,7 +32,7 @@

Plan Your Art Show

- Whether you're and artist or curator, VValls makes visualizing art within a physical space much easier. With VValls you can build 3D rooms and put your add art to the walls. Map out how your next gallery show will look without having to drill into sheetrock. + Whether you're an artist or curator, VValls makes visualizing art within a physical space much easier. With VValls you can build 3D rooms and add art to the walls. Map out how your next gallery show will look without having to nail into sheetrock.
@@ -43,7 +43,7 @@

Defy The Status Quo

- There is no platform on the internet quite like VValls. Built using advanced HTML5 techniques, VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms. + There is no platform on the internet quite like VValls. Built using advanced HTML5 techniques, VValls opens up the possibilities of expression online. Go crazy, make otherworldly rooms.
-- cgit v1.2.3-70-g09d2 From 80c731a0d0f10db6891364ecd0cf3afcee288cb1 Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 5 Nov 2014 11:33:51 -0500 Subject: copy --- public/assets/javascripts/app.js | 1 - public/assets/stylesheets/app.css | 6 ++++++ views/controls/editor/settings.ejs | 4 ++-- views/home.ejs | 10 +++++----- views/partials/footer.ejs | 2 +- views/partials/meta.ejs | 2 +- views/partials/scripts.ejs | 2 +- 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 0488f11..b4eb9e6 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -8,7 +8,6 @@ else if ($.browser.msie || ! has3d()) { } else { $("html").addClass("desktop"); - new WOW().init() } diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index c190f35..2303d3e 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -2339,6 +2339,8 @@ form li textarea { -webkit-transition:0.2s background; -moz-transition:0.2s background; transition:0.2s background; + position: relative; + z-index: 5; } .loading .hero .circle { @@ -2808,6 +2810,10 @@ a[data-role="forgot-password"] { .footer { padding:50px 0 120px 0; } + .videoModal .ion-ios7-close-empty { + right: 10px; + top: 20px; + } } @media screen and (orientation:portrait) { diff --git a/views/controls/editor/settings.ejs b/views/controls/editor/settings.ejs index 8443abb..0d8f325 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -10,9 +10,9 @@ Set Startpoint Move to Desired Point done - Startpoint Confirmed + Set Startpoint - (go there) + view current
diff --git a/views/home.ejs b/views/home.ejs index 85a235b..56ac3f9 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -15,7 +15,7 @@
- + Create 3D Rooms

Watch video. @@ -26,7 +26,7 @@

What's VValls For?

-
+
@@ -37,18 +37,18 @@
-
+

Defy The Status Quo

- There is no platform on the internet quite like VValls. Built using advanced HTML5 techniques, VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms. + There is no platform on the internet quite like VValls. VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms.
-
+
diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index 3ee4afc..f44b611 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -11,7 +11,7 @@

- you are signed in as → + signed in as → [[- user.displayName ]] [[ if (user.isStaff) { ]]
Staff Area diff --git a/views/partials/meta.ejs b/views/partials/meta.ejs index c50fc01..f1b6f48 100644 --- a/views/partials/meta.ejs +++ b/views/partials/meta.ejs @@ -30,7 +30,7 @@ - + -- cgit v1.2.3-70-g09d2 From 38721a909cf2fe2e809f08445c94321d8635c1c9 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 5 Nov 2014 12:39:16 -0500 Subject: make video default at full volume and play from beginning --- public/assets/javascripts/mx/primitives/mx.video.js | 5 +++++ public/assets/javascripts/mx/primitives/mx.vimeo.js | 3 +++ public/assets/javascripts/mx/primitives/mx.youtube.js | 3 +++ 3 files changed, 11 insertions(+) diff --git a/public/assets/javascripts/mx/primitives/mx.video.js b/public/assets/javascripts/mx/primitives/mx.video.js index 12d3dcb..333e1d2 100644 --- a/public/assets/javascripts/mx/primitives/mx.video.js +++ b/public/assets/javascripts/mx/primitives/mx.video.js @@ -45,6 +45,9 @@ MX.Video = MX.Object3D.extend({ if (this.media.mute) { this.mute() } + else { + this.unmute() + } if (this.media.autoplay) { this.play() @@ -74,11 +77,13 @@ MX.Video = MX.Object3D.extend({ mute: function(){ this.player.muted = true + this.player.volume = 0 this.muted = true }, unmute: function(){ this.player.muted = false + this.player.volume = 0.8 this.muted = false }, diff --git a/public/assets/javascripts/mx/primitives/mx.vimeo.js b/public/assets/javascripts/mx/primitives/mx.vimeo.js index 4922519..e71b105 100644 --- a/public/assets/javascripts/mx/primitives/mx.vimeo.js +++ b/public/assets/javascripts/mx/primitives/mx.vimeo.js @@ -62,6 +62,9 @@ MX.Vimeo = MX.Object3D.extend({ if (this.media.mute) { this.mute() } + else { + this.unmute() + } this.seek( this.media.keyframe || 0 ) diff --git a/public/assets/javascripts/mx/primitives/mx.youtube.js b/public/assets/javascripts/mx/primitives/mx.youtube.js index 8511173..3f342a1 100644 --- a/public/assets/javascripts/mx/primitives/mx.youtube.js +++ b/public/assets/javascripts/mx/primitives/mx.youtube.js @@ -109,6 +109,9 @@ MX.Youtube = MX.Object3D.extend({ if (this.media.mute) { this.mute() } + else { + this.unmute() + } this.seek( this.media.keyframe || 0 ) }, -- cgit v1.2.3-70-g09d2