diff options
| author | Julie Lala <jules@okfoc.us> | 2014-06-11 19:24:50 -0400 |
|---|---|---|
| committer | Julie Lala <jules@okfoc.us> | 2014-06-11 19:24:50 -0400 |
| commit | 2e9c0d71512da037a29e823da2c9b935b024b9d2 (patch) | |
| tree | 171097e52f6696a5d29c637e0efdd616ecdccd04 | |
| parent | 507ee48290b4d1d868de6e8c2518318be90eba2b (diff) | |
clone & clear
| -rw-r--r-- | public/assets/javascripts/rectangles/engine/rooms/_rooms.js | 6 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/builder/BuilderSettings.js | 30 | ||||
| -rw-r--r-- | server/lib/views.js | 3 | ||||
| -rw-r--r-- | views/controls/builder/settings.ejs | 1 |
4 files changed, 36 insertions, 4 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..f5bf51c 100644 --- a/public/assets/javascripts/ui/builder/BuilderSettings.js +++ b/public/assets/javascripts/ui/builder/BuilderSettings.js @@ -8,6 +8,9 @@ var BuilderSettings = FormView.extend({ 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='delete-layout']": 'delete', }, initialize: function(opt){ @@ -30,6 +33,30 @@ 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() + }, + + delete: function(){ + + }, toggle: function(){ this.$el.toggleClass("active") @@ -39,7 +66,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 +94,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/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..0083b9f 100644 --- a/views/controls/builder/settings.ejs +++ b/views/controls/builder/settings.ejs @@ -32,6 +32,7 @@ <div class="setting subButtons"> <a href="#" data-role="clear-layout">Clear</a> + <a href="#" data-role="clone-layout">Clone</a> <a href="#" data-role="delete-layout">Delete</a> </div> |
