diff options
| author | ryderr <r@okfoc.us> | 2014-11-13 12:02:48 -0500 |
|---|---|---|
| committer | ryderr <r@okfoc.us> | 2014-11-13 12:02:48 -0500 |
| commit | 61eebaa5c3ef0d839c00c4d512b402ba71f97454 (patch) | |
| tree | ce6ba3158d4debd2b433c352da7d4ec50f1679dc | |
| parent | f2b8c713c49fbad37e3d128701fb55c1cc8c9d92 (diff) | |
| parent | 28ade7d7f9e1c8e35de713a04303538140e22ea9 (diff) | |
Merge branch 'master' of github.com:okfocus/vvalls
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/_scenery.js | 1 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/resize.js | 53 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/types/_object.js | 3 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/scenery/types/text.js | 21 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/models/vec3.js | 3 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/editor/TextEditor.js | 5 | ||||
| -rwxr-xr-x | public/assets/stylesheets/app.css | 10 | ||||
| -rw-r--r-- | server/lib/util.js | 4 | ||||
| -rw-r--r-- | server/lib/views/index.js | 2 | ||||
| -rw-r--r-- | views/controls/editor/text-editor.ejs | 23 | ||||
| -rw-r--r-- | views/docs.ejs | 2 |
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> |
