summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorryderr <r@okfoc.us>2014-11-13 12:02:48 -0500
committerryderr <r@okfoc.us>2014-11-13 12:02:48 -0500
commit61eebaa5c3ef0d839c00c4d512b402ba71f97454 (patch)
treece6ba3158d4debd2b433c352da7d4ec50f1679dc
parentf2b8c713c49fbad37e3d128701fb55c1cc8c9d92 (diff)
parent28ade7d7f9e1c8e35de713a04303538140e22ea9 (diff)
Merge branch 'master' of github.com:okfocus/vvalls
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/_scenery.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/resize.js53
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/_object.js3
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/text.js21
-rw-r--r--public/assets/javascripts/rectangles/models/vec3.js3
-rw-r--r--public/assets/javascripts/ui/editor/TextEditor.js5
-rwxr-xr-xpublic/assets/stylesheets/app.css10
-rw-r--r--server/lib/util.js4
-rw-r--r--server/lib/views/index.js2
-rw-r--r--views/controls/editor/text-editor.ejs23
-rw-r--r--views/docs.ejs2
11 files changed, 88 insertions, 39 deletions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
index 8ca00d3..436712a 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/_scenery.js
@@ -29,6 +29,7 @@ var Scenery = new function(){
case 'text':
scene_media = new Scenery.types.text (opt)
+ scene_media.focused = true
break
}
base.list[scene_media.id] = scene_media
diff --git a/public/assets/javascripts/rectangles/engine/scenery/resize.js b/public/assets/javascripts/rectangles/engine/scenery/resize.js
index e424829..5af7f3f 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/resize.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/resize.js
@@ -6,7 +6,7 @@ Scenery.resize = new function(){
var obj
var x, y, z, bounds
var dragging = false
- var naturalDimension, dimension, position, scale
+ var naturalDimension, naturalDimensionCopy, dimension, position, scale
var oldState
var dots = [], dot, selected_dot
@@ -143,6 +143,11 @@ Scenery.resize = new function(){
dimension = obj.dimensions
position = new vec3(obj.mx.x, obj.mx.y, obj.mx.z)
oldState = obj.serialize()
+
+ if (obj.type == "text") {
+ naturalDimensionCopy = naturalDimension.clone()
+ positionCopy = position.clone()
+ }
document.body.classList.add("dragging")
}
@@ -163,15 +168,23 @@ Scenery.resize = new function(){
mag = y_sign * mag * sign(height)
}
- obj.set_scale( ( dimension.a + mag ) / naturalDimension.a )
+ if (obj.type == "text") {
+ obj.mx.width = obj.media.width = naturalDimension.a = naturalDimensionCopy.a + (mag * 2)
+ obj.mx.height = obj.media.height = naturalDimension.b = naturalDimensionCopy.b + (mag * 2)
+ dimension.a = naturalDimension.a * obj.scale
+ dimension.b = naturalDimension.b * obj.scale
+ }
+ else {
+ obj.set_scale( ( dimension.a + mag ) / naturalDimension.a )
+ }
- if (selected_dot.side & LEFT_RIGHT) {
- obj.mx.x = position.a + cos(rotationY) * mag/2 * (x_sign)
- obj.mx.z = position.c + sin(rotationY) * mag/2 * (x_sign)
- }
- if (selected_dot.side & TOP_BOTTOM) {
- obj.mx.y = position.b - mag/2 * y_sign
- }
+ if (selected_dot.side & LEFT_RIGHT) {
+ obj.mx.x = position.a + cos(rotationY) * mag/2 * (x_sign)
+ obj.mx.z = position.c + sin(rotationY) * mag/2 * (x_sign)
+ }
+ if (selected_dot.side & TOP_BOTTOM) {
+ obj.mx.y = position.b - mag/2 * y_sign
+ }
base.move_dots()
@@ -181,11 +194,26 @@ Scenery.resize = new function(){
function up (e, cursor){
if (! dragging) return
dragging = false
- selected_dot = null
if (! editor.permissions.resize) { return }
- obj.scale = obj.mx.ops.scale = obj.mx.scale
- obj.dimensions.assign(obj.naturalDimensions).mul(obj.scale)
+ if (obj.type == "text") {
+ var newHeight = $(obj.mx.inner).height()
+ if (selected_dot.side & BOTTOM) {
+ obj.mx.y = position.b + (naturalDimensionCopy.b - newHeight) / 2 * obj.scale
+ }
+ else {
+ obj.mx.y = dots[0].y - newHeight/2*obj.scale
+ }
+ obj.mx.height = obj.media.height = naturalDimension.b = newHeight
+ dimension.a = naturalDimension.a * obj.scale
+ dimension.b = naturalDimension.b * obj.scale
+ base.move_dots()
+ }
+ else {
+ obj.scale = obj.mx.ops.scale = obj.mx.scale
+ obj.dimensions.assign(obj.naturalDimensions).mul(obj.scale)
+ }
+
UndoStack.push({
type: 'update-scenery',
undo: oldState,
@@ -196,6 +224,7 @@ Scenery.resize = new function(){
Minotaur.watch( app.router.editorView.settings )
document.body.classList.remove("dragging")
+ selected_dot = null
}
}
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
index 51d1b88..cd3f981 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/_object.js
@@ -116,6 +116,9 @@ Scenery.types.base = Fiber.extend(function(base){
},
remove: function(){
+ if (this.removed) return
+ this.removed = true
+
UndoStack.push({
type: 'destroy-scenery',
undo: this.serialize(),
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/text.js b/public/assets/javascripts/rectangles/engine/scenery/types/text.js
index dd1385f..6e11da2 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/text.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/text.js
@@ -13,26 +13,7 @@ Scenery.types.text = Scenery.types.base.extend(function(base){
this.build()
this.bind()
-
- if (opt.data) {
- if (opt.wall) {
- var position = opt.wall.mxToPosition(opt.data.position)
- opt.index = opt.wall.surface.index_for_x( position.a, 0 )
- }
- this.set_wall(opt)
- this.deserialize(opt.data)
- }
- else {
- this.set_wall(opt)
- 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)
- }
- }
+ this.place(opt)
},
build: function(){
diff --git a/public/assets/javascripts/rectangles/models/vec3.js b/public/assets/javascripts/rectangles/models/vec3.js
index 4e00b0c..c44dfe6 100644
--- a/public/assets/javascripts/rectangles/models/vec3.js
+++ b/public/assets/javascripts/rectangles/models/vec3.js
@@ -15,6 +15,9 @@ vec3.prototype.sub = function(v){
this.c -= v.c
return this
}
+vec3.prototype.clone = function(){
+ return new vec3(this.a, this.b, this.c)
+}
// input: mat4 projection matrix
vec3.prototype.apply_projection = function (m) {
diff --git a/public/assets/javascripts/ui/editor/TextEditor.js b/public/assets/javascripts/ui/editor/TextEditor.js
index 33b5386..2949943 100644
--- a/public/assets/javascripts/ui/editor/TextEditor.js
+++ b/public/assets/javascripts/ui/editor/TextEditor.js
@@ -75,11 +75,13 @@ var TextEditor = FormView.extend({
if (this.tainted) {
Minotaur.watch( app.router.editorView.settings )
}
-
if (this.scenery.mx) {
this.scenery.mx.bound = false
this.scenery.mx.el.classList.remove("picked")
}
+ if (! this.scenery.media || ! this.scenery.media.description || this.scenery.media.description == "") {
+ this.scenery.remove()
+ }
}
this.tainted = false
this.scenery = null
@@ -143,6 +145,7 @@ var TextEditor = FormView.extend({
destroy: function(){
this.tainted = false
this.scenery.remove()
+ this.hide()
},
})
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index 3039d6c..9924b33 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -633,7 +633,7 @@ iframe.embed {
border-top:1px solid black;
}
-.footer a, .footer span{
+.footer a, .footer span {
margin: 15px;
font-weight: 300;
font-size: 13px;
@@ -643,6 +643,12 @@ iframe.embed {
text-decoration:underline;
}
+.docs .content.doc-privacy p,
+.docs .content.doc-terms p {
+ font-size: 15px;
+ line-height: 25px;
+ font-weight: 300;
+}
/* PROFILE PAGE */
.profilePic {
@@ -990,7 +996,9 @@ border-left: 1px solid black;
pointer-events: none;
}
.mx-text {
+/*
overflow: hidden;
+ */
}
.mx-text .inner {
width: 100%;
diff --git a/server/lib/util.js b/server/lib/util.js
index 791d3e2..0a71cb7 100644
--- a/server/lib/util.js
+++ b/server/lib/util.js
@@ -30,7 +30,9 @@ util.capitalizeWord = function (s) {
util.escapeRegExp = function (s) {
return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
}
-
+util.htmlize = function(s) {
+ return ("<p>" + s.replace(/\n/g,"</p><p>") + "</p>").replace(/<p><\/p>/, "<br>")
+}
util.cleanQuery = function (query) {
var update = _.extend({}, query);
diff --git a/server/lib/views/index.js b/server/lib/views/index.js
index 6e3b449..b3a15c2 100644
--- a/server/lib/views/index.js
+++ b/server/lib/views/index.js
@@ -130,7 +130,7 @@ var views = module.exports = {
}
res.render('docs', {
doc: doc,
- content: marked(doc.body),
+ content: util.htmlize(doc.body),
isNew: false
})
})
diff --git a/views/controls/editor/text-editor.ejs b/views/controls/editor/text-editor.ejs
index 3a367d5..c30cb67 100644
--- a/views/controls/editor/text-editor.ejs
+++ b/views/controls/editor/text-editor.ejs
@@ -7,19 +7,38 @@
<div class="setting">
<select name="font-family">
+ <option>Baskerville</option>
+ <option>Brush Script</option>
+ <option>Chicago</option>
+ <option>Comic Sans</option>
+ <option>Cooper</option>
+ <option>Courier New</option>
+ <option>Didot</option>
+ <option>Futura</option>
+ <option>Georgia</option>
+ <option>Gill Sans</option>
<option>Helvetica</option>
- <option>Times New Roman</option>
<option>Lato</option>
- <option></option>
+ <option>Lucida Grande</option>
+ <option>Menlo</option>
+ <option>Palatino</option>
+ <option>Papyrus</option>
+ <option>Tahoma</option>
+ <option>Times New Roman</option>
+ <option>Zapfino</option>
</select>
<select name="font-size">
+ <option value="6">6pt</option>
+ <option value="8">8pt</option>
<option value="9">9pt</option>
<option value="10">10pt</option>
<option value="12">12pt</option>
<option value="16">16pt</option>
<option value="24">24pt</option>
<option value="36">36pt</option>
+ <option value="48">48pt</option>
<option value="72">72pt</option>
+ <option value="96">96pt</option>
</select>
<select name="text-align">
<option value="left">Left</option>
diff --git a/views/docs.ejs b/views/docs.ejs
index 741cff7..b3ead82 100644
--- a/views/docs.ejs
+++ b/views/docs.ejs
@@ -11,7 +11,7 @@
[[ if (! isNew) { ]]
<h1>[[- doc.displayName ]]</h1>
- <div class="content">
+ <div class="content doc-[[- doc.name]]">
[[- content ]]
</div>