diff options
Diffstat (limited to 'public/assets/javascripts/ui/site/LayoutsModal.js')
| -rw-r--r-- | public/assets/javascripts/ui/site/LayoutsModal.js | 69 |
1 files changed, 54 insertions, 15 deletions
diff --git a/public/assets/javascripts/ui/site/LayoutsModal.js b/public/assets/javascripts/ui/site/LayoutsModal.js index 0a03878..18bd27d 100644 --- a/public/assets/javascripts/ui/site/LayoutsModal.js +++ b/public/assets/javascripts/ui/site/LayoutsModal.js @@ -8,30 +8,63 @@ var LayoutsIndex = View.extend({ load: function(type){ this.$templates.children("span").remove() - $.get("/api/layouts", $.proxy(function(data){ - - data.forEach($.proxy(function(room){ - var $span = $("<span>") - // $span.html(JSON.stringify(room)) - $span.data("slug", room.slug) - $span.css("background-image", "url(" + room.photo + ")") - - this.$templates.append($span) - }, this)) + $.get(this.action, $.proxy(this.populate, this)) + }, - this.show() + populate: function(data){ + data.forEach($.proxy(function(room){ + var $span = $("<span>") + // $span.html(JSON.stringify(room)) + $span.data("slug", room.slug) + $span.css("background-image", "url(" + room.photo + ")") + + this.$templates.append($span) }, this)) + this.show() + } + +}) + +var ProjectsModal = ModalView.extend(LayoutsIndex.prototype).extend({ + el: ".mediaDrawer.projects", + action: "/api/projects", + + events: { + "click .templates span": 'toggleActive', + "submit form": 'newProject', + }, + + populate: function(data){ + if (! data.length) { + app.router.newProject() + } + else { + this.__super__.populate(data) + } + }, + + toggleActive: function(e){ + e.preventDefault() + this.$(".templates .active").removeClass("active") + var $layout = $(e.currentTarget) + $layout.addClass("active") + + // actually do + window.location.pathname = "/project/" + $layout.data("slug") } + }) var LayoutsModal = ModalView.extend(LayoutsIndex.prototype).extend({ el: ".mediaDrawer.layouts", + action: "/api/layouts", + events: { "click .templates span": 'toggleActive', - "submit form": 'newBuilder', + "submit form": 'newLayout', }, toggleActive: function(e){ @@ -41,12 +74,12 @@ var LayoutsModal = ModalView.extend(LayoutsIndex.prototype).extend({ $layout.addClass("active") // actually do - window.location.pathname = "/builder/" + $layout.data("slug") + window.location.pathname = "/layout/" + $layout.data("slug") }, - newBuilder: function(e){ + newLayout: function(e){ e && e.preventDefault() - window.location.pathname = "/builder/new" + window.location.pathname = "/layout/new" } }) @@ -55,6 +88,8 @@ var LayoutsModal = ModalView.extend(LayoutsIndex.prototype).extend({ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({ el: ".mediaDrawer.newProject", + action: "/api/layouts", + events: { "click .templates span": 'toggleActive', "submit form": 'choose', @@ -68,6 +103,10 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({ choose: function(e){ e && e.preventDefault() + var layout = this.$(".templates .active").data("slug") + console.log(layout) + if (! layout || ! layout.length) return + window.location.pathname = "/project/new/" + layout } }) |
