summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/_scenery.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/move.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/resize.js27
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/_object.js26
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/image.js9
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/video.js9
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js10
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js13
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js2
-rw-r--r--public/assets/javascripts/ui/site/EditProfileModal.js9
-rwxr-xr-xpublic/assets/stylesheets/app.css2
-rw-r--r--server/lib/api/profile.js2
-rw-r--r--views/partials/edit-profile.ejs5
-rw-r--r--views/projects/list-projects.ejs14
14 files changed, 94 insertions, 37 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
index d34e299..69e9ba7 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
@@ -48,7 +48,7 @@ var Scenery = new function(){
base.find = function(id){
return base.list[id] || null
}
-
+
base.remove = function(id){
var scene_media = base.list[id]
delete base.list[id]
diff --git a/public/assets/javascripts/rectangles/engine/scenery/move.js b/public/assets/javascripts/rectangles/engine/scenery/move.js
index 981eb68..7d148cf 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/move.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/move.js
@@ -88,7 +88,6 @@ Scenery.move = function(base){
}
function up (e, cursor){
- console.log(dragging, oldState)
if (! dragging || ! oldState) return
dragging = false
diff --git a/public/assets/javascripts/rectangles/engine/scenery/resize.js b/public/assets/javascripts/rectangles/engine/scenery/resize.js
index 2ba84a1..893237c 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/resize.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/resize.js
@@ -57,35 +57,32 @@ Scenery.resize = new function(){
// move all the dots to the object's current position
base.move_dots = function(){
- x = obj.mx.x + sin(rotationY) * dot_distance_from_picture
- y = obj.mx.y
- z = obj.mx.z - cos(rotationY) * dot_distance_from_picture
+ var x = obj.mx.x + sin(rotationY) * dot_distance_from_picture
+ var y = obj.mx.y
+ var z = obj.mx.z - cos(rotationY) * dot_distance_from_picture
dots.forEach(function(dot){
- base.move_dot(dot)
+ base.move_dot(dot, { x: x, y: y, z: z })
})
}
// move a dot .. to the initial position of the image
- base.move_dot = function(dot){
- dot.x = x
- dot.y = y
- dot.z = z
-
+ base.move_dot = function(dot, pos){
if (dot.side & TOP) {
- dot.y += obj.mx.height * obj.mx.scale / 2
+ pos.y += obj.dimensions.b / 2
}
if (dot.side & BOTTOM) {
- dot.y -= obj.mx.height * obj.mx.scale / 2
+ pos.y -= obj.dimensions.b / 2
}
if (dot.side & LEFT) {
- dot.x -= cos(rotationY) * (obj.mx.width * obj.mx.scale) / 2
- dot.z -= sin(rotationY) * (obj.mx.width * obj.mx.scale) / 2
+ pos.x -= cos(rotationY) * (obj.dimensions.a) / 2
+ pos.z -= sin(rotationY) * (obj.dimensions.a) / 2
}
if (dot.side & RIGHT) {
- dot.x += cos(rotationY) * (obj.mx.width * obj.mx.scale) / 2
- dot.z += sin(rotationY) * (obj.mx.width * obj.mx.scale) / 2
+ pos.x += cos(rotationY) * (obj.dimensions.a) / 2
+ pos.z += sin(rotationY) * (obj.dimensions.a) / 2
}
+ dot.move(pos)
}
// pick a new object to focus on and show the dots
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
index 5eed53e..4e5e2c5 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
@@ -33,11 +33,33 @@ Scenery.types.base = Fiber.extend(function(base){
var center = this.bounds.center()
center.a -= this.dimensions.a / 2
center.b -= this.dimensions.b / 2
- var mx_position = this.wall.positionToMx( center, this.dimensions )
- this.mx.move(mx_position)
this.position.assign(center)
},
+ translateTo: function (position){
+ var flipX = this.wall.side & (FRONT | RIGHT)
+ var delta = position.clone().subVec(this.position)
+ delta.a -= this.dimensions.a/2
+ delta.b -= this.dimensions.b/2
+
+ if (flipX) { delta.a *= -1 }
+
+ var new_bounds = this.wall.surface.translate( this.bounds, this.dimensions, this.position, delta )
+
+ this.position.b += delta.b
+
+ switch (this.wall.side) {
+ case FRONT:
+ case BACK:
+ this.position.a += delta.a * cos(wall_rotation[this.wall.side])
+ break
+ case LEFT:
+ case RIGHT:
+ this.position.a += delta.a * sin(wall_rotation[this.wall.side])
+ break
+ }
+ },
+
bind: function(){
this.move.bind()
$(this.mx.el).bind({
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
index d2fa3ab..aa43341 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
@@ -22,7 +22,14 @@ Scenery.types.image = Scenery.types.base.extend(function(base){
}
else {
this.set_wall(opt)
- this.bounds && this.recenter()
+ if (this.bounds) {
+ this.recenter()
+ if (opt.position) {
+ this.translateTo(opt.position)
+ }
+ var mx_position = this.wall.positionToMx( this.position, this.dimensions )
+ this.mx.move(mx_position)
+ }
}
},
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
index 76f32ac..2ef6ec3 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
@@ -21,7 +21,14 @@ Scenery.types.video = Scenery.types.base.extend(function(base){
}
else {
this.set_wall(opt)
- this.bounds && this.recenter()
+ if (this.bounds) {
+ this.recenter()
+ if (opt.position) {
+ this.translateTo(opt.position)
+ }
+ var mx_position = this.wall.positionToMx( this.position, this.dimensions )
+ this.mx.move(mx_position)
+ }
}
},
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index a5a832e..49613c3 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -63,6 +63,16 @@
this.b /= n
return this
}
+ vec2.prototype.addVec = function(v){
+ this.a += v.a
+ this.b += v.b
+ return this
+ }
+ vec2.prototype.subVec = function(v){
+ this.a -= v.a
+ this.b -= v.b
+ return this
+ }
vec2.prototype.zero = function(){
this.a = this.b = 0
}
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index fdf54f0..fdc8d8c 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -53,7 +53,6 @@
/*
mousemove: function(e){
var offset = offsetFromPoint(e, mx.el)
- var shouldFlip = base.side & (RIGHT | FRONT)
if (offset) {
var pos = base.mxOffsetToPosition( offset, index )
@@ -69,10 +68,18 @@
},
*/
mousedown: function(e){
- if (Scenery.nextMedia) {
+ if (Scenery.nextText) {
+ }
+ else if (Scenery.nextMedia) {
+ var offset = offsetFromPoint(e, mx.el)
+ if (! offset) { return }
+
+ var pos = base.mxOffsetToPosition( offset, index )
+
var scenery = Scenery.addNextToWall({
wall: base,
- index: index
+ index: index,
+ position: pos,
})
// scenery was not placed
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index eb0d044..fd251b7 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -93,7 +93,7 @@ var EditorSettings = FormView.extend({
},
clear: function(){
- Rooms.removeAll()
+ Scenery.removeAll()
},
destroy: function(){
diff --git a/public/assets/javascripts/ui/site/EditProfileModal.js b/public/assets/javascripts/ui/site/EditProfileModal.js
index b023923..d0e5d05 100644
--- a/public/assets/javascripts/ui/site/EditProfileModal.js
+++ b/public/assets/javascripts/ui/site/EditProfileModal.js
@@ -3,11 +3,14 @@ var EditProfileModal = ModalFormView.extend({
el: ".mediaDrawer.editProfile",
action: "/api/profile",
method: "put",
+
+ events: {
+ "click [data-role='changePasswordToggle']": 'togglePasswordFields'
+ },
load: function(){
this.reset()
$.get("/api/profile", function(data){
- console.log(data)
for (var i in data) {
this.$("[name='" + i + "']").val(data[i])
@@ -25,6 +28,10 @@ var EditProfileModal = ModalFormView.extend({
this.show()
}.bind(this))
},
+
+ togglePasswordFields: function(){
+ this.$("[data-role='changePasswordFields']").toggleClass("hidden")
+ },
validate: function(){
var errors = []
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index f230c93..5aca224 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -1909,6 +1909,8 @@ form li textarea {
-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);
}
.desktop .hero .circle:hover {
diff --git a/server/lib/api/profile.js b/server/lib/api/profile.js
index fdd1bde..996505f 100644
--- a/server/lib/api/profile.js
+++ b/server/lib/api/profile.js
@@ -10,6 +10,8 @@ var _ = require('lodash'),
var profile = {
show: function(req, res){
User.findOne({ _id: req.user._id }, function(err, user){
+ user = user.toObject()
+ delete user.password
res.json(err || user)
})
},
diff --git a/views/partials/edit-profile.ejs b/views/partials/edit-profile.ejs
index a39f856..5775ca5 100644
--- a/views/partials/edit-profile.ejs
+++ b/views/partials/edit-profile.ejs
@@ -59,11 +59,10 @@
<br>
<br><img id="load_avatar">
</li>
-
<li class="section_break">
- <h3 class="link">Change Password</h3>
+ <h3 class="link" data-role="changePasswordToggle">Change Password</h3>
</li>
- <div class="hidden">
+ <div class="hidden" data-role="changePasswordFields">
<li>
<label class="description" for="profile_old_password">Old Password:</label>
<div>
diff --git a/views/projects/list-projects.ejs b/views/projects/list-projects.ejs
index ed8463f..a12f237 100644
--- a/views/projects/list-projects.ejs
+++ b/views/projects/list-projects.ejs
@@ -14,15 +14,13 @@
<img src="[[- media.media.url ]]">
[[ }) ]]
</span>
-
- <a href="/project/[[- project.slug ]]/edit"><div class="editBtn">edit</div></a>
-
+
<div class="holder">
- [[ if (String(user._id) == String(project.user_id)) { ]]
- <a href="/project/[[- project.slug ]]/edit" class="roomName">
- [[- project.name ]]<br>
- [[- project.date ]]
- </a>
+ [[ if (String(user._id) == String(project.user_id)) { ]]
+ <a href="/project/[[- project.slug ]]/edit">
+ [[- project.name ]]<br>
+ [[- project.date ]]
+ </a>
[[ } else { ]]
<a href="/project/[[- project.slug ]]" class="roomName">
[[- project.name ]]<br>