summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/mx/extensions/mx.movements.js15
-rw-r--r--public/assets/javascripts/ui/editor/MediaEditor.js1
-rw-r--r--public/assets/javascripts/ui/editor/MediaViewer.js18
-rw-r--r--public/assets/javascripts/ui/editor/WallpaperPicker.js10
-rw-r--r--public/assets/javascripts/ui/reader/ReaderView.js3
-rw-r--r--public/assets/javascripts/ui/reader/Tracker.js108
-rwxr-xr-xpublic/assets/stylesheets/app.css2
-rw-r--r--views/partials/scripts.ejs1
8 files changed, 137 insertions, 21 deletions
diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js
index 669a7f4..c02c285 100644
--- a/public/assets/javascripts/mx/extensions/mx.movements.js
+++ b/public/assets/javascripts/mx/extensions/mx.movements.js
@@ -99,7 +99,20 @@ MX.Movements = function (cam) {
break
case 27: // esc
- map.toggle()
+ if (Scenery.nextMedia) {
+ Scenery.nextMedia = null
+ app.tube('cancel-scenery')
+ }
+ else if (Scenery.nextWallpaper) {
+ Scenery.nextWallpaper = null
+ app.tube('cancel-wallpaper')
+ }
+ else if (app.controller && app.controller.mediaViewer && app.controller.mediaViewer.$el.hasClass("active")) {
+ app.controller.mediaViewer.hide()
+ }
+ else {
+ map && map.toggle && map.toggle()
+ }
break
}
})
diff --git a/public/assets/javascripts/ui/editor/MediaEditor.js b/public/assets/javascripts/ui/editor/MediaEditor.js
index eaa3134..59fdc70 100644
--- a/public/assets/javascripts/ui/editor/MediaEditor.js
+++ b/public/assets/javascripts/ui/editor/MediaEditor.js
@@ -181,6 +181,7 @@ var MediaEditor = FormView.extend({
var scenery = this.scenery
this.hide()
Scenery.remove(scenery.id)
+ Scenery.resize.hide()
}.bind(this))
},
diff --git a/public/assets/javascripts/ui/editor/MediaViewer.js b/public/assets/javascripts/ui/editor/MediaViewer.js
index 15245cf..0ac6755 100644
--- a/public/assets/javascripts/ui/editor/MediaViewer.js
+++ b/public/assets/javascripts/ui/editor/MediaViewer.js
@@ -136,19 +136,6 @@ var MediaViewer = ModalView.extend({
return
}
-// else {
-// this.picked = {}
-// this.picked.media = media
-// this.picked.image = image
-// }
-// },
-//
-// drag: function(e){
-// if (! this.pickedMedia) return
-// var media = this.picked.media
-// var image = this.picked.image
-// this.picked = null
-
this.hide()
var $ants = $('.ants');
@@ -156,8 +143,6 @@ var MediaViewer = ModalView.extend({
Scenery.nextMedia = media
-// console.log(media.type)
-
switch (media.type) {
case "video":
$floatingImg.attr('src', '/assets/img/playbutton.png')
@@ -185,12 +170,13 @@ var MediaViewer = ModalView.extend({
$floatingImg.attr('src', '')
$(window).off('mousemove', _followCursor)
$(window).off('mousedown', _hideCursor)
+ app.off('cancel-scenery', _hideCursor)
$floatingImg.parent().removeClass('edit')
}
$(window).on('mousemove', _followCursor)
$(window).on('mousedown', _hideCursor)
+ app.on('cancel-scenery', _hideCursor)
$ants.addClass('edit')
_followCursor(e)
},
-
})
diff --git a/public/assets/javascripts/ui/editor/WallpaperPicker.js b/public/assets/javascripts/ui/editor/WallpaperPicker.js
index 0dd2921..3756e88 100644
--- a/public/assets/javascripts/ui/editor/WallpaperPicker.js
+++ b/public/assets/javascripts/ui/editor/WallpaperPicker.js
@@ -97,11 +97,15 @@ var WallpaperPicker = UploadView.extend({
left: (e.pageX + 10) + 'px',
});
}
- $(window).on('mousemove', _followCursor)
- $(window).one('click', function () {
+ function _hideCursor (e) {
$(window).off('mousemove', _followCursor)
+ $(window).off('click', _hideCursor)
+ app.off('cancel-wallpaper', _hideCursor)
$floatingSwatch.removeClass("scissors").hide()
- });
+ }
+ $(window).on('mousemove', _followCursor)
+ $(window).one('click', _hideCursor);
+ app.on('cancel-wallpaper', _hideCursor)
$floatingSwatch.show()
_followCursor(e);
})
diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js
index d80f225..c43dc9c 100644
--- a/public/assets/javascripts/ui/reader/ReaderView.js
+++ b/public/assets/javascripts/ui/reader/ReaderView.js
@@ -15,6 +15,9 @@ var ReaderView = View.extend({
if (window.location.search.indexOf("noui") !== -1) {
$(".logo,.topLinks,#editorView").hide()
}
+ else {
+ this.tracker = new Tracker ()
+ }
if (window.location.search.indexOf("mute") !== -1) {
app.muted = true
}
diff --git a/public/assets/javascripts/ui/reader/Tracker.js b/public/assets/javascripts/ui/reader/Tracker.js
new file mode 100644
index 0000000..7d9d936
--- /dev/null
+++ b/public/assets/javascripts/ui/reader/Tracker.js
@@ -0,0 +1,108 @@
+var Tracker = Fiber.extend(function(base){
+
+ var exports = {
+ init: function(opt){
+ this.wall_id = null
+ this.scenery_id = null
+ this.clicks = 0
+
+ this.wallTimer = new Timer ()
+ this.roomTimer = new Timer ()
+ this.sceneryTimer = new Timer ()
+
+ this.events = []
+
+ this.bind()
+ this.trackPageview()
+ },
+
+ bind: function () {
+ //
+ window.addEventListener("click", this.trackClick.bind(this), true)
+ },
+
+ trackPageview: function(opt){
+ this.events.push([ "view" ])
+ },
+
+ //
+ // how long they spend in front of each wall
+
+ trackChangeWall: function(opt){
+ var duration = this.wallTimer.currentTime()
+ if (this.wall_id && duration > 5000) {
+ this.events.push([ "wall", this.wall_id, duration ])
+ }
+ this.wall_id = opt.wall.id
+ this.wallTimer.start()
+ },
+
+ //
+ // how long the user spends on each item they click
+
+ pickScenery: function(opt){
+ this.sceneryTimer.start()
+ this.scenery_id = opt.scenery.id
+ },
+
+ trackScenery: function(){
+ var duration = this.sceneryTimer.currentTime()
+ if (this.scenery_id && duration > 5000) {
+ this.events.push([ "scenery", this.scenery_id, duration ])
+ }
+ this.scenery_id = null
+ this.sceneryTimer.reset()
+ },
+
+ //
+ // how long they spend in the room
+
+ trackChangeRoom: function(opt){
+ var duration = this.roomTimer.currentTime()
+ if (this.room_id && duration > 5000) {
+ this.events.push([ "room", this.room_id, duration ])
+ }
+ this.room_id = opt.room.id
+ this.roomTimer.start()
+ },
+
+ //
+ // how many clicks per room
+
+ trackClick: function(opt){
+ console.log("track click")
+ this.clicks += 1
+ },
+
+ save: function () {
+ },
+
+ }
+
+ return exports
+})
+
+
+var Timer = Fiber.extend(function(base){
+ var exports = {
+
+ init: function(opt){
+ this.time = 0
+ },
+
+ reset: function(){
+ this.time = 0
+ },
+
+ start: function(){
+ this.time = Date.now()
+ },
+
+ currentTime: function(){
+ return this.time ? Date.now() - this.time : 0
+ },
+
+ }
+})
+
+
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index 16ad216..115321f 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -1914,7 +1914,7 @@ a[data-role="forgot-password"] {
position: fixed;
right: 0px;
bottom: 10px;
- padding-right:10px;
+ padding: 3px 10px 3px 4px;
background:rgba(255,255,255,0.1);
z-index: 2;
}
diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs
index e0dd0f5..11512b9 100644
--- a/views/partials/scripts.ejs
+++ b/views/partials/scripts.ejs
@@ -102,6 +102,7 @@
<script type="text/javascript" src="/assets/javascripts/ui/reader/ReaderView.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/reader/MediaPlayer.js"></script>
+<script type="text/javascript" src="/assets/javascripts/ui/reader/Tracker.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/_router.js"></script>