diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-06-12 12:41:34 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-06-12 12:41:34 -0400 |
| commit | 2525d1c20120ecb5224c9896a2e1acd77385cbc4 (patch) | |
| tree | f4a1596da238d70716d8977e8aed12b0daae6dcc | |
| parent | 9b6f40b0fc85aac41e3fb67a4c38660a56531051 (diff) | |
| parent | 11d10502920b2f32ba8930f97babba1ddf39ba2e (diff) | |
Merge branch 'master' of github.com:okfocus/vvalls
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/rooms/_rooms.js | 6 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/builder/BuilderSettings.js | 41 | ||||
| -rwxr-xr-x | public/assets/stylesheets/app.css | 1 | ||||
| -rw-r--r-- | server/lib/api.js | 3 | ||||
| -rw-r--r-- | server/lib/views.js | 3 | ||||
| -rw-r--r-- | views/controls/builder/settings.ejs | 3 |
6 files changed, 51 insertions, 6 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js index bcfffcc..9839c68 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js +++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js @@ -31,6 +31,12 @@ var Rooms = new function(){ delete base.list[room.id] } + base.removeAll = function(){ + base.list = {} + base.regions = [] + Rooms.clipper.update() + } + base.count = function(){ return this.values().length } diff --git a/public/assets/javascripts/ui/builder/BuilderSettings.js b/public/assets/javascripts/ui/builder/BuilderSettings.js index 051bbf4..66bf84b 100644 --- a/public/assets/javascripts/ui/builder/BuilderSettings.js +++ b/public/assets/javascripts/ui/builder/BuilderSettings.js @@ -4,10 +4,14 @@ var BuilderSettings = FormView.extend({ createAction: "/api/layouts/new", updateAction: "/api/layouts/edit", + destroyAction: "/api/layouts/destroy", events: { "keydown [name=name]": 'enterSubmit', "click [data-role='save-layout']": 'save', + "click [data-role='clone-layout']": 'clone', + "click [data-role='clear-layout']": 'clear', + "click [data-role='destroy-layout']": 'destroy', }, initialize: function(opt){ @@ -30,6 +34,40 @@ var BuilderSettings = FormView.extend({ this.action = data.isNew ? this.createAction : this.updateAction }, + + clone: function(){ + var names = this.$name.val().split(" ") + if ( ! isNaN(Number( names[names.length-1] )) ) { + names[names.length-1] = Number( names[names.length-1] ) + 1 + } + else { + names.push("2") + } + + this.$id.val('new') + this.$name.val( names.join(" ") ) + this.action = this.createAction + + window.history.pushState(null, document.title, "/builder/new") + }, + + clear: function(){ + Rooms.removeAll() + }, + + destroy: function(){ + var msg = "Are you sure you want to delete the layout " + sanitize(this.$name.val()) + "?" + ConfirmModal.confirm(msg, $.proxy(function(){ + $.ajax({ + url: this.destroyAction, + type: "delete", + data: { _id: this.$id.val(), _csrf: this.$csrf.val() }, + success: function(data){ + window.location.href = "/builder" + } + }) + }, this)) + }, toggle: function(){ this.$el.toggleClass("active") @@ -39,7 +77,7 @@ var BuilderSettings = FormView.extend({ e.stopPropagation() var base = this if (e.keyCode == 13) { - setTimeout(this.save.bind(this), 100) + setTimeout(function(){ base.save(e) }, 100) } }, @@ -67,7 +105,6 @@ var BuilderSettings = FormView.extend({ serialize: function(){ map.draw.render() - var fd = new FormData() fd.append( "_csrf", this.$csrf.val() ) fd.append( "_id", this.$id.val() ) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 49dfd98..b785f54 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -462,6 +462,7 @@ h5{ background-position: center; background-size: contain; background-repeat: no-repeat; + background-color: #fff; background-image: url(http://upload.wikimedia.org/wikipedia/commons/d/d9/Graceland_Memphis_TN_Floorplan_Basement.jpg); width: 20vw; height: 20vh; diff --git a/server/lib/api.js b/server/lib/api.js index 2ae80b9..d760ba9 100644 --- a/server/lib/api.js +++ b/server/lib/api.js @@ -208,7 +208,8 @@ var api = { destroy: function(req, res){ var _id = req.body._id - if (! id || ! id.length) { + console.log(_id) + if (! _id || ! _id.length) { res.json({ error: 404 }) return } diff --git a/server/lib/views.js b/server/lib/views.js index bb9e5ae..125908f 100644 --- a/server/lib/views.js +++ b/server/lib/views.js @@ -26,7 +26,6 @@ views.builder = function (req, res) { res.render('builder') } - views.modal = function (req, res) { res.render('modal', { }); @@ -66,7 +65,7 @@ views.docs = function (req, res){ } views.profile = function (req, res) { - var username = req.params[0] || req.user.username + var username = req.params[0] || (req.user && req.user.username) if (username) { User.findOne({ username: username }, function (err, user) { user ? next(user) : done(err, {}, []) diff --git a/views/controls/builder/settings.ejs b/views/controls/builder/settings.ejs index bdb8e15..dd2496b 100644 --- a/views/controls/builder/settings.ejs +++ b/views/controls/builder/settings.ejs @@ -32,7 +32,8 @@ <div class="setting subButtons"> <a href="#" data-role="clear-layout">Clear</a> - <a href="#" data-role="delete-layout">Delete</a> + <a href="#" data-role="clone-layout">Clone</a> + <a href="#" data-role="destroy-layout">Delete</a> </div> </div> |
