diff options
33 files changed, 254 insertions, 93 deletions
diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index f3da470..b4eb9e6 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"); @@ -15,9 +10,6 @@ else { $("html").addClass("desktop"); } -$(function(){ - new WOW().init() -}) var scene, cam, map; diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js index dc9660b..2c231ae 100644 --- a/public/assets/javascripts/mx/extensions/mx.movements.js +++ b/public/assets/javascripts/mx/extensions/mx.movements.js @@ -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/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 873348f..3f342a1 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) }, @@ -96,6 +109,9 @@ MX.Youtube = MX.Object3D.extend({ if (this.media.mute) { this.mute() } + else { + this.unmute() + } this.seek( this.media.keyframe || 0 ) }, 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) } 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 7d148cf..12705d3 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(){ @@ -22,18 +22,9 @@ Scenery.move = function(base){ } function down (e, cursor){ - if (e.target != base.mx.el) return; + 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 } @@ -45,6 +36,7 @@ Scenery.move = function(base){ return } dragging = true + moved = false x = base.mx.x y = base.mx.y z = base.mx.z @@ -59,6 +51,8 @@ Scenery.move = function(base){ function drag (e, cursor){ if (! dragging) return + + moved = true var flipX = base.wall.side & (FRONT | RIGHT) @@ -89,21 +83,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/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/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 3deb764..6ad9e0d 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 @@ -20,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) @@ -33,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 @@ -49,13 +53,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/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/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/_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/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js index b96943e..2b29961 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", @@ -15,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", @@ -81,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/public/assets/javascripts/ui/editor/MediaEditor.js b/public/assets/javascripts/ui/editor/MediaEditor.js index 9b81db1..db5878f 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,11 @@ var MediaEditor = FormView.extend({ destroy: function(){ var scenery = this.scenery this.hide() - 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() }, }) 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) { 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/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() + + }, }) 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", 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() { diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index edd3928..90454be 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; } @@ -21,6 +24,10 @@ body{ overflow-x:hidden; } +body.editing{ + overflow:hidden; +} + ::-moz-selection { color: white; background: black; @@ -776,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; @@ -1107,7 +1129,7 @@ border-left: 1px solid black; width: 55px; } -.menu span:hover{ +.desktop .menu span:hover{ color:white; background:black; cursor:pointer; @@ -1129,7 +1151,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; @@ -1738,17 +1760,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 { @@ -2316,11 +2350,16 @@ 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; + -webkit-transition:0.2s background; + -moz-transition:0.2s background; + transition:0.2s background; + position: relative; + z-index: 5; +} + +.loading .hero .circle { + opacity:0; } .desktop .hero .circle:hover { @@ -2786,6 +2825,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..cd17382 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -10,17 +10,25 @@ <span class="ion-ios7-navigate-outline"></span> <span id="startText">Set Startpoint</span> <span id="moveText">Move to Desired Point <span class="done">done</span></span> - <span id="confirmText">Startpoint Confirmed</span> + <span id="confirmText">Set Startpoint</span> </a> - <a href="#" class="modalLink" id="goText"><span>(go there)</span></span> + <a href="#" class="modalLink" id="goText"><span><u>view current</u></span></span> </div> + <div class="setting"> <a href="#" class="modalLink" data-role='show-collaborators'> <span class="ion-ios7-plus-outline"></span> Add Collaborators </a> </div> - + + <div class="setting"> + <a href="#" class="modalLink" data-role='toggle-map'> + <span class="ion-map"></span> + Edit map + </a> + </div> + <div class="setting"> <input type="text" name="name" placeholder="room name"> </div> diff --git a/views/home.ejs b/views/home.ejs index 85a235b..0a55336 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -15,7 +15,7 @@ <div class="hero" style="background-image:url(http://okfocus.s3.amazonaws.com/images/vvalls-video-still1.jpg)"> <div class="holder"> - <span class="circle wow bounceInDown"> + <span class="circle"> <span class="videoTitle">Create 3D Rooms</span><br> <span class="ion-ios7-play"></span><br> <span class="videoTitle">Watch video.</span> @@ -26,29 +26,29 @@ <h1>What's VValls For?</h1> <div class="projectList about"> - <div class="item wow bounceInLeft"> + <div class="item"> <div class="rap"> <span style="background-image:url(http://okfocus.s3.amazonaws.com/images/hangart1.gif)"> </span> <span> <h3>Plan Your Art Show</h3> - <words>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.</words> + <words>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.</words> </span> </div> </div> - <div class="item wow bounceInRight"> + <div class="item"> <div class="rap"> <span style="background-image:url(http://dump.fm/images/20100904/1283618382861-dumpfm-timb-paperrad.paranoia.gif)"> </span> <span> <h3>Defy The Status Quo</h3> - <words>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.</words> + <words>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.</words> </span> </div> </div> - <div class="item wow bounceInLeft"> + <div class="item"> <div class="rap"> <span style="background-image:url(http://33.media.tumblr.com/tumblr_m0an31XPpF1qbhp9xo1_1280.jpg)"> </span> 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 @@ <br><br> <span> - you are signed in as → + signed in as → <a href="/profile/[[- user.username ]]"><b>[[- user.displayName ]]</b></a> [[ if (user.isStaff) { ]] <a href="/staff">Staff Area</a> 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 @@ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <link href='/assets/stylesheets/ionicons.css' rel='stylesheet' type='text/css'> <link href='/assets/stylesheets/app.css' rel='stylesheet' type='text/css'> - <link href='/assets/stylesheets/animate.css' rel='stylesheet' type='text/css'> + <!--<link href='/assets/stylesheets/animate.css' rel='stylesheet' type='text/css'>--> <link href='/assets/stylesheets/chardinjs.css' rel='stylesheet' type='text/css'> <!--[if lt IE 9]> <style> diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index af16099..3e61a5a 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -7,7 +7,7 @@ <script type="text/javascript" src="/assets/javascripts/vendor/tube.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/loader.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/polyfill.js"></script> -<script type="text/javascript" src="/assets/javascripts/vendor/wow.js"></script> +<!--<script type="text/javascript" src="/assets/javascripts/vendor/wow.js"></script>--> <script type="text/javascript" src="/assets/javascripts/vendor/chardinjs.min.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/sha1.js"></script> <script type="text/javascript" src="/assets/javascripts/vendor/dataUriToBlob.js"></script> 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 @@ </h2> [[ if (isOwnProfile) { ]] - <h2> - You don't have any projects yet. - </h2> - <h2> - <a href="#"class="btn" data-role="new-project-modal">Create a New Project</a> - </h2> + <h2> + You don't have any projects yet. + </h2> + <h2> + <a href="#"class="btn" data-role="new-project-modal">Create a New Project</a> + </h2> + [[ } else { ]] + <h2><a href="/" class="homeLink">Learn more about VValls</a></h2> + <h3>This person has no projects.</h3> [[ } ]] - </div> [[ } ]] </div> 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 ]] </div> + +<!-- + <div id="minimap" class="vvbox" data-intro="Mini-map shows your position and orientation in a room. Navigate with WASD keys or drag here." data-position="top"> + <span class="el"></span> + </div> + --> </div> [[ } ]] |
