summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-10 18:20:22 -0400
committerJules Laplace <jules@okfoc.us>2015-08-10 18:20:22 -0400
commit71c3a4a02c7c46533aec836ef30a0d0ffa96399b (patch)
treecd8d6a7339cae86c7161ae116bd22d73f3793599
parent18e8ca03b90f124968400ccc742744c3ed01547a (diff)
layout stuff
-rw-r--r--public/assets/javascripts/mx/extensions/mx.movements.js6
-rw-r--r--public/assets/javascripts/mx/primitives/mx.image.js3
-rw-r--r--public/assets/javascripts/rectangles/engine/map/tools/ortho.js26
-rw-r--r--public/assets/javascripts/rectangles/engine/map/tools/polyline.js24
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/shapelist.js1
-rw-r--r--public/assets/javascripts/ui/lib/Toolbar.js22
-rw-r--r--public/assets/javascripts/ui/site/StaffView.js26
-rw-r--r--public/assets/test/ortho3.html38
-rw-r--r--public/assets/test/ortho4.html261
-rw-r--r--server/lib/middleware.js2
-rw-r--r--server/lib/schemas/Media.js1
-rw-r--r--server/lib/views/staff.js3
-rw-r--r--views/staff/_layouts.ejs2
-rw-r--r--views/staff/layouts/show.ejs4
14 files changed, 352 insertions, 67 deletions
diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js
index fa59908..9ed8790 100644
--- a/public/assets/javascripts/mx/extensions/mx.movements.js
+++ b/public/assets/javascripts/mx/extensions/mx.movements.js
@@ -162,13 +162,13 @@ MX.Movements = function (cam) {
case 8: // backspace
e.preventDefault()
- if (app.controller.sculptureEditor.sculpture) {
+ if (app.controller.sculptureEditor && app.controller.sculptureEditor.sculpture) {
app.controller.sculptureEditor.sculpture.remove()
}
- else if (app.controller.mediaEditor.scenery) {
+ else if (app.controller.mediaEditor && app.controller.mediaEditor.scenery) {
app.controller.mediaEditor.scenery.remove()
}
- else if (app.controller.textEditor.scenery) {
+ else if (app.controller.textEditor && app.controller.textEditor.scenery) {
app.controller.textEditor.scenery.remove()
}
}
diff --git a/public/assets/javascripts/mx/primitives/mx.image.js b/public/assets/javascripts/mx/primitives/mx.image.js
index 64de4b2..f9de141 100644
--- a/public/assets/javascripts/mx/primitives/mx.image.js
+++ b/public/assets/javascripts/mx/primitives/mx.image.js
@@ -17,7 +17,7 @@ MX.Image = MX.Object3D.extend({
this.el.style.backgroundRepeat = 'no-repeat'
- this.load(ops)
+ ops.src && this.load(ops)
},
load: function(ops){
@@ -64,7 +64,6 @@ MX.Image = MX.Object3D.extend({
if (recenter) {
ctx.restore()
}
-
},
})
diff --git a/public/assets/javascripts/rectangles/engine/map/tools/ortho.js b/public/assets/javascripts/rectangles/engine/map/tools/ortho.js
index be3d707..ef41096 100644
--- a/public/assets/javascripts/rectangles/engine/map/tools/ortho.js
+++ b/public/assets/javascripts/rectangles/engine/map/tools/ortho.js
@@ -12,11 +12,11 @@ var OrthoPolylineTool = MapTool.extend(function (base) {
if (map.ui.placing) {
// close polyline or cancel
map.ui.placing = false
- if (line.points.length > 2) {
- line.build()
+ if (shapes.workline.points.length > 2) {
+ shapes.workline.build()
}
else {
- line.reset()
+ shapes.workline.reset()
}
return
}
@@ -29,24 +29,24 @@ var OrthoPolylineTool = MapTool.extend(function (base) {
// compare to initial point
var p = last_point.clone()
if (map.ui.placing) {
- if (line.lastPoint().eq(p)) {
+ if (shapes.workline.lastPoint().eq(p)) {
return
}
- else if (line.canCloseWith(p)) {
- line.close()
- line.build()
+ else if (shapes.workline.canCloseWith(p)) {
+ shapes.workline.close()
+ shapes.workline.build()
map.ui.placing = false
}
else {
- line.add(p)
+ shapes.workline.add(p)
prev_point = p
horizontal = ! horizontal
}
}
else {
map.ui.placing = true
- line = new Polyline ()
- line.add(p)
+ shapes.workline = new Polyline ()
+ shapes.workline.add(p)
first_point = prev_point = p
horizontal = false
}
@@ -55,7 +55,7 @@ var OrthoPolylineTool = MapTool.extend(function (base) {
last_point.a = cursor.x.a
last_point.b = cursor.y.a
if (map.ui.placing) {
- if (line.points.length == 1) {
+ if (shapes.workline.points.length == 1) {
var x = abs(prev_point.a - last_point.a)
var y = abs(prev_point.b - last_point.b)
if (x > y) {
@@ -86,7 +86,7 @@ var OrthoPolylineTool = MapTool.extend(function (base) {
}
}
- if (line.canCloseWith(last_point)) {
+ if (shapes.workline.canCloseWith(last_point)) {
document.body.style.cursor = "pointer"
last_point.assign(first_point)
cursor.x.a = cursor.x.b = last_point.a
@@ -107,7 +107,7 @@ var OrthoPolylineTool = MapTool.extend(function (base) {
}
}
exports.cancel = function(){
- if (map.ui.placing) { line.reset() }
+ if (map.ui.placing) { shapes.workline.reset() }
first_point = null
map.ui.placing = false
}
diff --git a/public/assets/javascripts/rectangles/engine/map/tools/polyline.js b/public/assets/javascripts/rectangles/engine/map/tools/polyline.js
index 559aea8..1ab86f6 100644
--- a/public/assets/javascripts/rectangles/engine/map/tools/polyline.js
+++ b/public/assets/javascripts/rectangles/engine/map/tools/polyline.js
@@ -9,11 +9,11 @@ var PolylineTool = MapTool.extend(function (base) {
if (map.ui.placing) {
// close polyline or cancel
map.ui.placing = false
- if (line.points.length > 2) {
- line.build()
+ if (shapes.workline.points.length > 2) {
+ shapes.workline.build()
}
else {
- line.reset()
+ shapes.workline.reset()
}
return
}
@@ -24,27 +24,27 @@ var PolylineTool = MapTool.extend(function (base) {
// compare to initial point
var p = last_point.clone()
if (map.ui.placing) {
- if (line.canCloseWith(p)) {
- line.close()
- line.build()
+ if (shapes.workline.canCloseWith(p)) {
+ shapes.workline.close()
+ shapes.workline.build()
map.ui.placing = false
}
else {
- line.add(p)
+ shapes.workline.add(p)
}
}
else {
map.ui.placing = true
- line = new Polyline ()
- line.add(p)
+ shapes.workline = new Polyline ()
+ shapes.workline.add(p)
}
}
exports.move = function(e, cursor){
last_point.a = cursor.x.a
last_point.b = cursor.y.a
- if (map.ui.placing && line.canCloseWith(last_point)) {
+ if (map.ui.placing && shapes.workline.canCloseWith(last_point)) {
document.body.style.cursor = "pointer"
- last_point.assign(line.points[0])
+ last_point.assign(shapes.workline.points[0])
cursor.x.a = cursor.x.b = last_point.a
cursor.y.a = cursor.y.b = last_point.b
return
@@ -62,7 +62,7 @@ var PolylineTool = MapTool.extend(function (base) {
}
}
exports.cancel = function(){
- if (map.ui.placing) { line.reset() }
+ if (map.ui.placing) { shapes.workline.reset() }
map.ui.placing = false
}
return exports
diff --git a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js
index 00e1a4e..932ce36 100644
--- a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js
+++ b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js
@@ -2,6 +2,7 @@ var ShapeList = Fiber.extend(function(base){
var exports = {}
exports.init = function(){
this.shapes = []
+ this.workline = null
}
exports.add = function(shape){
this.shapes.push(shape)
diff --git a/public/assets/javascripts/ui/lib/Toolbar.js b/public/assets/javascripts/ui/lib/Toolbar.js
new file mode 100644
index 0000000..a9ce51c
--- /dev/null
+++ b/public/assets/javascripts/ui/lib/Toolbar.js
@@ -0,0 +1,22 @@
+var Toolbar = Fiber.extend(function(base){
+ var exports = {}
+ exports.init = function(rapper){
+ this.rapper = (typeof rapper == "string") ? $(rapper)[0] : rapper
+ this.tools = {}
+ this.els = {}
+ }
+ exports.add = function(role, fn){
+ var self = this
+ this.tools[role] = fn
+ this.els[role] = $("[data-role=" + role + "]", self.rapper)
+ this.els[role].click(function(){
+ $(".active", self.rapper).removeClass('active')
+ $(this).addClass('active')
+ fn()
+ })
+ }
+ exports.pick = function(role){
+ this.els[role].trigger("click")
+ }
+ return exports
+}) \ No newline at end of file
diff --git a/public/assets/javascripts/ui/site/StaffView.js b/public/assets/javascripts/ui/site/StaffView.js
index 0398f71..59649e3 100644
--- a/public/assets/javascripts/ui/site/StaffView.js
+++ b/public/assets/javascripts/ui/site/StaffView.js
@@ -4,11 +4,13 @@ var StaffView = View.extend({
events: {
"click #toggle-staff": "toggleStaff",
"click #toggle-featured": "toggleFeatured",
+ "click #toggle-stock": "toggleStock",
},
initialize: function() {
this.$toggleStaff = $("#toggle-staff")
this.$toggleFeatured = $("#toggle-featured")
+ this.$toggleStock = $("#toggle-stock")
this.$mediaEmbed = $("#media-embed")
if (this.$toggleStaff.length && this.$toggleStaff.data().isstaff) {
this.$toggleStaff.html("Is Staff")
@@ -16,6 +18,9 @@ var StaffView = View.extend({
if (this.$toggleFeatured.length && this.$toggleFeatured.data().featured) {
this.$toggleFeatured.html("Featured Project")
}
+ if (this.$toggleStock.length && this.$toggleStock.data().stock) {
+ this.$toggleStock.html("Layout is Stock")
+ }
if (this.$mediaEmbed.length) {
var media = this.$mediaEmbed.data()
this.$mediaEmbed.html( Parser.tag( media ) )
@@ -67,6 +72,25 @@ var StaffView = View.extend({
$("#isFeaturedProject").html(data.state ? "yes" : "no")
}.bind(this)
})
- },
+ },
+
+ toggleStock: function(){
+ console.log("stock")
+ var state = ! this.$toggleStock.data().stock
+ $.ajax({
+ type: "put",
+ dataType: "json",
+ url: window.location.href + "/stock",
+ data: {
+ state: state,
+ _csrf: $("#_csrf").val(),
+ },
+ success: function(data){
+ this.$toggleStock.data("stock", data.state)
+ this.$toggleStock.html(data.state ? "Stock Layout" : "Make this layout Stock")
+ $("#isStockLayout").html(data.state ? "yes" : "no")
+ }.bind(this)
+ })
+ },
})
diff --git a/public/assets/test/ortho3.html b/public/assets/test/ortho3.html
index ef5732c..f41a0ba 100644
--- a/public/assets/test/ortho3.html
+++ b/public/assets/test/ortho3.html
@@ -80,6 +80,7 @@ body {
<script src="/assets/javascripts/rectangles/engine/map/tools/position.js"></script>
<script src="/assets/javascripts/rectangles/engine/shapes/shapelist.js"></script>
<script src="/assets/javascripts/rectangles/engine/shapes/polyline.js"></script>
+<script src="/assets/javascripts/ui/lib/Toolbar.js"></script>
<script>
var app = window.app || {}
@@ -112,7 +113,6 @@ $(window).resize(function(){
})
var wall_height = 180
-var line
var shapes = new ShapeList
var ctx = map.draw.ctx
var last_point = new vec2 (0,0)
@@ -121,30 +121,6 @@ $("#url").on("input", function(){
floorplan.load({ src: this.value })
})
-
-var Toolbar = Fiber.extend(function(base){
- var exports = {}
- exports.init = function(rapper){
- this.rapper = (typeof rapper == "string") ? $(rapper)[0] : rapper
- this.tools = {}
- this.els = {}
- }
- exports.add = function(role, fn){
- var self = this
- this.tools[role] = fn
- this.els[role] = $("[data-role=" + role + "]", self.rapper)
- this.els[role].click(function(){
- $(".active", self.rapper).removeClass('active')
- $(this).addClass('active')
- fn()
- })
- }
- exports.pick = function(role){
- this.els[role].trigger("click")
- }
- return exports
-})
-
var PerspectiveToolbar = new Toolbar (".persp-hud")
PerspectiveToolbar.add("orbit-mode", function(){
controls.toggle(true)
@@ -174,8 +150,8 @@ OrthographicToolbar.add("ortho-polyline-mode", function(){
OrthographicToolbar.add("eraser-mode", function(){
map.ui.set_tool("eraser")
})
-// OrthographicToolbar.pick("ortho-polyline-mode")
-OrthographicToolbar.pick("eraser-mode")
+OrthographicToolbar.pick("ortho-polyline-mode")
+// OrthographicToolbar.pick("eraser-mode")
document.addEventListener('DOMContentLoaded', build)
@@ -230,7 +206,7 @@ function build () {
})
controls.init()
- line = new Polyline ()
+ var line = new Polyline ()
line.add( new vec2(-100,100) )
line.add( new vec2(100,100) )
line.add( new vec2(100,-100) )
@@ -260,10 +236,10 @@ function animate(t){
map.draw.coords()
- if (line) {
- line.draw(map.draw.ctx)
+ if (shapes.workline) {
+ shapes.workline.draw(map.draw.ctx)
if (map.ui.placing && last_point) {
- line.draw_line( map.draw.ctx, last_point )
+ shapes.workline.draw_line( map.draw.ctx, last_point )
}
}
diff --git a/public/assets/test/ortho4.html b/public/assets/test/ortho4.html
new file mode 100644
index 0000000..b434efb
--- /dev/null
+++ b/public/assets/test/ortho4.html
@@ -0,0 +1,261 @@
+<link href='/assets/stylesheets/ionicons.css' rel='stylesheet' type='text/css'>
+<style type="text/css">
+html,body{width:100%;height:100%;margin:0;padding:0;}
+body {
+ font-family: Menlo, monospace;
+ overflow: hidden;
+}
+#perspective {
+ position: absolute;
+ left:0%;
+ top:0px
+}
+#orthographic {
+ position: absolute;
+ left:50%;
+ top:0px
+}
+.hud {
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 10px;
+ background: white;
+}
+.ortho-hud {
+ left: 50%;
+ border-left: 1px solid black;
+}
+#url { width: 300px }
+.hud span { color: #888; cursor: pointer; }
+.hud span.active { color: #000; }
+</style>
+
+<div id="perspective"></div>
+<div id="orthographic"></div>
+
+<div class="hud persp-hud">
+ <input type="text" id="url" placeholder="paste an image URL here!">
+ <span class="ion-ionic active" data-role="orbit-mode"></span>
+ <span class="ion-archive" data-role="keyboard-mode"></span>
+</div>
+
+<div class="hud ortho-hud">
+ <span class="ion-navigate" data-role="arrow-mode"></span>
+ <span class="ion-ios-pulse active" data-role="polyline-mode"></span>
+ <span class="ion-ios-grid-view-outline" data-role="ortho-polyline-mode"></span>
+ <span class="ion-scissors" data-role="eraser-mode"></span>
+</div>
+
+<div class="mediaDrawer fixed animate blueprintUpload">
+ <span class="close">X</span>
+ <div class="box">
+
+ <h2>Upload A Room Image</h2>
+
+ </div>
+</div>
+
+<script src="/assets/javascripts/util.js"></script>
+<script src="/assets/javascripts/defaults.js"></script>
+<script src="/assets/javascripts/vendor/bower_components/jquery/dist/jquery.min.js"></script>
+<script src="/assets/javascripts/vendor/bower_components/lodash/lodash.min.js"></script>
+<script src="/assets/javascripts/vendor/bower_components/hidpi-canvas/dist/hidpi-canvas.js"></script>
+<script src="/assets/javascripts/vendor/bower_components/fiber/src/fiber.min.js"></script>
+<script src="/assets/javascripts/vendor/polyfill.js"></script>
+<script src="/assets/javascripts/vendor/tube.js"></script>
+<script src="/assets/javascripts/mx/mx.js"></script>
+<script src="/assets/javascripts/mx/extensions/mx.scene.js"></script>
+<script src="/assets/javascripts/mx/extensions/mx.orbitCamera.js"></script>
+<script src="/assets/javascripts/mx/extensions/mx.movements.js"></script>
+<script src="/assets/javascripts/mx/primitives/mx.grid.js"></script>
+<script src="/assets/javascripts/mx/primitives/mx.image.js"></script>
+<script src="/assets/javascripts/mx/primitives/mx.point.js"></script>
+<script src="/assets/javascripts/mx/primitives/mx.polyline.js"></script>
+<script src="/assets/javascripts/rectangles/util/constants.js"></script>
+<script src="/assets/javascripts/rectangles/util/coords.js"></script>
+<script src="/assets/javascripts/rectangles/util/mouse.js"></script>
+<script src="/assets/javascripts/rectangles/util/wheel.js"></script>
+<script src="/assets/javascripts/rectangles/models/vec2.js"></script>
+<script src="/assets/javascripts/rectangles/models/rect.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/_map.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/draw.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/ui/ortho.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/_base.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/arrow.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/eraser.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/ortho.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/polyline.js"></script>
+<script src="/assets/javascripts/rectangles/engine/map/tools/position.js"></script>
+<script src="/assets/javascripts/rectangles/engine/shapes/shapelist.js"></script>
+<script src="/assets/javascripts/rectangles/engine/shapes/polyline.js"></script>
+<script src="/assets/javascripts/ui/lib/View.js"></script>
+<script src="/assets/javascripts/ui/lib/ModalView.js"></script>
+<script src="/assets/javascripts/ui/lib/Parser.js"></script>
+<script src="/assets/javascripts/ui/lib/Toolbar.js"></script>
+
+<script>
+var app = window.app || {}
+app.tube = new Tube ()
+app.on = function(){ app.tube.on.apply(app.tube, arguments) }
+app.off = function(){ app.tube.off.apply(app.tube, arguments) }
+
+var scene, map, controls
+
+map = new Map ({
+ type: "ortho",
+ el: document.querySelector("#orthographic"),
+ width: window.innerWidth/2,
+ height: window.innerHeight,
+ zoom: -2,
+ zoom_min: -6.2,
+ zoom_max: 1,
+})
+map.ui.add_tool("arrow", new ArrowTool)
+map.ui.add_tool("polyline", new PolylineTool)
+map.ui.add_tool("ortho-polyline", new OrthoPolylineTool)
+map.ui.add_tool("eraser", new EraserTool)
+map.ui.add_tool("position", new PositionTool)
+
+map.ui.placing = false
+
+$(window).resize(function(){
+ scene.width = window.innerWidth/2
+ map.canvas.width = map.dimensions.a = window.innerWidth/2
+})
+
+var wall_height = 180
+var shapes = new ShapeList
+var ctx = map.draw.ctx
+var last_point = new vec2 (0,0)
+
+$("#url").on("input", function(){
+ floorplan.load({ src: this.value })
+})
+
+var PerspectiveToolbar = new Toolbar (".persp-hud")
+PerspectiveToolbar.add("orbit-mode", function(){
+ controls.toggle(true)
+ movements.lock()
+})
+PerspectiveToolbar.add("keyboard-mode", function(){
+ controls.toggle(false)
+ movements.unlock()
+ movements.gravity(true)
+ cam.rotationX = 0
+ cam.rotationY = -cam.rotationY
+ cam.x = 0
+ cam.y = viewHeight + 100
+ cam.z = 0
+})
+
+var OrthographicToolbar = new Toolbar (".ortho-hud")
+OrthographicToolbar.add("arrow-mode", function(){
+ map.ui.set_tool("arrow")
+})
+OrthographicToolbar.add("polyline-mode", function(){
+ map.ui.set_tool("polyline")
+})
+OrthographicToolbar.add("ortho-polyline-mode", function(){
+ map.ui.set_tool("ortho-polyline")
+})
+OrthographicToolbar.add("eraser-mode", function(){
+ map.ui.set_tool("eraser")
+})
+OrthographicToolbar.pick("ortho-polyline-mode")
+
+
+document.addEventListener('DOMContentLoaded', build)
+function build () {
+ scene = new MX.Scene().addTo("#perspective")
+ scene.camera.radius = 20
+
+ viewHeight = 100
+
+ scene.width = window.innerWidth/2
+ scene.height = window.innerHeight
+ scene.perspective = window.innerHeight
+
+ cam = scene.camera
+ movements = new MX.Movements(cam, viewHeight)
+ movements.init()
+ movements.lock()
+ movements.velocity(8)
+ app.on("move", function(pos){
+ cam.x = pos.x
+ cam.y = pos.y
+ cam.z = pos.z
+ })
+
+ floorplan = new MX.Image({
+ src: "https://s3.amazonaws.com/luckyplop/fbf4295da80f1f66c5e4a248f2ea3e1ce7a22c3d.jpg",
+ keepImage: true,
+ rotationX: -PI/2,
+ rotationY: PI,
+ })
+ scene.add(floorplan)
+
+ // recenter perspective view by rightclicking map
+ floorplan.el.addEventListener("contextmenu", function(e){
+ e.preventDefault()
+ var offset = offsetFromPoint(e, this)
+ var x = (offset.left - 0.5) * floorplan.width * floorplan.scale
+ var z = (offset.top - 0.5) * floorplan.height * floorplan.scale
+ controls.opt.center.x = -x
+ controls.opt.center.y = 0
+ controls.opt.center.z = -z
+ }, true)
+
+ scene.update()
+
+ controls = new MX.OrbitCamera({
+ el: scene.el,
+ radius: 3000,
+ radiusRange: [ 10, 10000 ],
+ rotationX: PI/4,
+ rotationY: PI/2,
+ })
+ controls.init()
+
+ animate(0)
+}
+var last_t = 0
+function animate(t){
+ requestAnimationFrame(animate)
+
+ var dt = t - last_t
+ last_t = t
+
+ map.update(t)
+
+ movements.update(dt)
+ controls.update()
+ scene.update()
+
+ map.draw.ctx.save()
+ map.draw.translate()
+
+ floorplan.draw(map.draw.ctx, true)
+
+ map.draw.coords()
+
+ if (shapes.workline) {
+ shapes.workline.draw(map.draw.ctx)
+ if (map.ui.placing && last_point) {
+ shapes.workline.draw_line( map.draw.ctx, last_point )
+ }
+ }
+
+ shapes.forEach(function(shape){
+ shape.draw(map.draw.ctx)
+ })
+
+ ctx.strokeStyle = "#f00";
+ map.draw.x_at(0,0)
+ map.draw.mouse(map.ui.mouse.cursor)
+ map.draw.camera(scene.camera)
+
+ map.draw.ctx.restore()
+}
+
+</script> \ No newline at end of file
diff --git a/server/lib/middleware.js b/server/lib/middleware.js
index 94c4acd..04cb330 100644
--- a/server/lib/middleware.js
+++ b/server/lib/middleware.js
@@ -114,7 +114,7 @@ var middleware = {
console.error(err)
req.layout = null
}
- else if (! project) {
+ else if (! layout) {
req.layout = null
}
else {
diff --git a/server/lib/schemas/Media.js b/server/lib/schemas/Media.js
index 8247467..f37fb12 100644
--- a/server/lib/schemas/Media.js
+++ b/server/lib/schemas/Media.js
@@ -42,6 +42,7 @@ var MediaSchema = new mongoose.Schema({
mute: { type: Boolean, default: false },
keyframe: { type: Number, default: 0.0 },
tag: { type: String, default: "" },
+ scale: { type: Number, default: 1.0 },
widthDimension: { type: Number },
heightDimension: { type: Number },
diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js
index a3d5bea..43330e2 100644
--- a/server/lib/views/staff.js
+++ b/server/lib/views/staff.js
@@ -6,6 +6,7 @@ var User = require('../schemas/User'),
Collaborator = require('../schemas/Collaborator'),
Plan = require('../schemas/Plan'),
Subscription = require('../schemas/Subscription'),
+ Layout = require('../schemas/Layout'),
config = require('../../../config'),
middleware = require('../middleware'),
util = require('../util'),
@@ -821,7 +822,7 @@ var staff = module.exports = {
make_stock: function(req, res){
res.locals.layout.is_stock = req.body.state == "true"
res.locals.layout.save(function(err, layout){
- res.json({ state: layout.featured })
+ res.json({ state: layout.is_stock })
})
},
},
diff --git a/views/staff/_layouts.ejs b/views/staff/_layouts.ejs
index 3f3e6b2..d97883b 100644
--- a/views/staff/_layouts.ejs
+++ b/views/staff/_layouts.ejs
@@ -1,5 +1,5 @@
<table id="users">
-[[ layouts.forEach(function(project){ ]]
+[[ layouts.forEach(function(layout){ ]]
<tr>
<td>
<a href="/staff/layouts/[[- layout.slug ]]">[[- layout.name ]]</a>
diff --git a/views/staff/layouts/show.ejs b/views/staff/layouts/show.ejs
index 0a2014b..b66449f 100644
--- a/views/staff/layouts/show.ejs
+++ b/views/staff/layouts/show.ejs
@@ -45,14 +45,14 @@
featured?
</th>
<td id="isStockLayout">
- [[- layout.plan_type == 0 ? "yes" : "no" ]]
+ [[- layout.is_stock ? "yes" : "no" ]]
</td>
</tr>
</table>
<br><br>
<div id="actions">
- <button id="toggle-stock" data-stock="[[- !! (layout.plan_type == 0) ]]">Make this layout Stock</button>
+ <button id="toggle-stock" data-stock="[[- !! (layout.is_stock) ]]">Make this layout Stock</button>
</div>
<br>