summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/site/LayoutsModal.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-26 18:42:13 -0400
committerJules Laplace <jules@okfoc.us>2015-08-26 18:42:13 -0400
commitc29a5363e3e4e0833e78958fe95b52811d0b0660 (patch)
tree39218da5d9dedf8797eb0df8a722d5387442e567 /public/assets/javascripts/ui/site/LayoutsModal.js
parentc781911322c84eb0c2aa4a00860016437d7b7cba (diff)
surface blueprints on layouts modal
Diffstat (limited to 'public/assets/javascripts/ui/site/LayoutsModal.js')
-rw-r--r--public/assets/javascripts/ui/site/LayoutsModal.js221
1 files changed, 13 insertions, 208 deletions
diff --git a/public/assets/javascripts/ui/site/LayoutsModal.js b/public/assets/javascripts/ui/site/LayoutsModal.js
index a9c6ef0..0222077 100644
--- a/public/assets/javascripts/ui/site/LayoutsModal.js
+++ b/public/assets/javascripts/ui/site/LayoutsModal.js
@@ -1,224 +1,35 @@
-
-var LayoutsIndex = View.extend({
-
- initialize: function(){
- this.$templates = this.$(".templates")
- this.$templatesList = this.$(".templates-list")
- this.$noTemplates = this.$(".no-templates")
- this.$form = this.$("form")
-
- this.$userTemplatesList = this.$(".userTemplatesList")
- this.$blueprintsList = this.$(".blueprintsList")
- this.$newBlueprintButton = this.$("[data-role='create-new-blueprint']")
- },
-
- load: function(type){
- this.$templates.children("span").remove()
-
- $.get(this.action, this.populate.bind(this))
- },
-
- populate: function(data){
- if (! data.layouts.length) {
- this.$templates.hide()
- this.$form.hide()
- this.$noTemplates.show()
- }
- this.$templatesList.empty()
- data.layouts.forEach(function(room){
- var $span = $("<span>")
- $span.data("slug", room.slug)
-
- var $label = $("<label>")
- $label.html( room.name )
-
- var $image = $("<span>")
- $image.addClass("image").css("background-image", "url(" + room.photo + ")")
-
- $span.append( $image )
- $span.append( $label )
-
- this.$templatesList.append($span)
- }.bind(this))
- this.show()
- }
-
-})
-
-var ProjectsModal = ModalView.extend(LayoutsIndex.prototype).extend({
- el: ".mediaDrawer.projects",
-
- action: "/api/project",
-
- events: {
- "click .templates span": 'toggleActive',
- "submit form": 'newProject',
- },
-
- populate: function(data){
- if (! data.length) {
- app.router.newProject()
- }
- else {
- this.__super__.populate.call(this, 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") + "/edit"
- },
-
- newProject: function(e){
- e && e.preventDefault()
- window.location.pathname = "/project/new"
- }
-
-})
-
-
var LayoutsModal = ModalView.extend(LayoutsIndex.prototype).extend({
el: ".mediaDrawer.layouts",
action: "/api/layout",
events: {
- "click .templates span": 'pick',
- "click .userTemplates span": 'pick',
- "click .blueprints span": 'pickBlueprint',
- "submit form": 'newLayout',
- },
-
- pick: function(e){
- e.preventDefault()
- var $layout = $(e.currentTarget)
- window.location.pathname = "/layout/" + $layout.data("slug")
- },
-
- pick: function(e){
- e.preventDefault()
- var $blueprint = $(e.currentTarget)
- $blueprint.addClass("active")
-
- window.location.pathname = "/layout/" + $layout.data("slug")
- },
-
- populate: function(data){
-/*
- if (data.user.plan_level < 1 && data.projectCount == 1) {
- // show lockout message
- }
-*/
- if (! data.layouts.length) {
- this.$templates.hide()
- this.$form.hide()
- this.$noTemplates.show()
- }
- this.$templatesList.empty()
- data.layouts.forEach(function(room){
- var $span = $("<span>")
- $span.data("slug", room.slug)
-
- var $label = $("<label>")
- $label.html( room.name )
-
- var $image = $("<span>")
- $image.addClass("image").css("background-image", "url(" + room.photo + ")")
-
- $span.append( $image )
- $span.append( $label )
-
- this.$templatesList.append($span)
- }.bind(this))
-
- data.user_layouts.forEach(function(room){
- var $span = $("<span>")
- $span.data("slug", room.slug)
-
- var $label = $("<label>")
- $label.html( room.name )
-
- var $image = $("<span>")
- $image.addClass("image").css("background-image", "url(" + room.photo + ")")
-
- $span.append( $image )
- $span.append( $label )
-
- this.$userTemplatesList.append($span)
- }.bind(this))
-
- data.blueprints.forEach(function(blueprint){
- var $span = $("<span>")
- $span.data("slug", blueprint.slug)
-
- var $label = $("<label>")
- $label.html( blueprint.name )
-
- var $image = $("<span>")
- $image.addClass("image").css("background-image", "url(" + blueprint.url + ")")
-
- $span.append( $image )
- $span.append( $label )
-
- this.$blueprintsList.append($span)
- }.bind(this))
-
- this.show()
- },
-
- newLayout: function(e){
- e && e.preventDefault()
- window.location.pathname = "/layout/new"
- }
-
-})
-
-
-var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
- el: ".mediaDrawer.newProject",
-
- action: "/api/layout",
-
- events: {
"click [data-role='create-new-layout']": 'createNewLayout',
"click [data-role='create-new-blueprint']": 'createNewBlueprint',
"click .templates span": 'pick',
- "click .userTemplates span": 'pick',
- "click .blueprints span": 'pickBlueprint',
- },
-
- toggleActive: function(e){
- e.preventDefault()
- this.$(".templates .active").removeClass("active")
- $(e.currentTarget).addClass("active")
},
pick: function(e){
- e && e.preventDefault()
-// var layout = this.$(".templates .active").data("slug")
+ e.preventDefault()
var layout = $(e.currentTarget).data("slug")
var isBlueprint = $(e.currentTarget).data("blueprint")
+
if (! layout || ! layout.length) return
if (isBlueprint) {
- window.location.pathname = "/project/blueprint/" + layout
+ window.location.pathname = "/blueprint/" + layout
}
else {
- window.location.pathname = "/project/new/" + layout
+ window.location.pathname = "/layout/" + layout
}
- },
+ },
createNewLayout: function(e){
e.preventDefault()
- window.location.pathname = "/project/new/empty"
+ window.location.pathname = "/layout/new"
},
- createNewBlueprint: function(s){
+ createNewBlueprint: function(e){
e.preventDefault()
window.location.pathname = "/blueprint/new"
},
@@ -227,7 +38,6 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
/*
if (data.user.plan_level < 1 && data.projectCount == 1) {
// show lockout message
- this.$newBlueprintButton.hide()
}
*/
if (! data.layouts.length) {
@@ -235,13 +45,6 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
this.$form.hide()
this.$noTemplates.show()
}
- if (! data.blueprints.length) {
- this.$blueprintsList.parent().hide()
- }
- if (! data.user_layouts.length) {
- this.$userTemplatesList.parent().hide()
- }
-
this.$templatesList.empty()
data.layouts.forEach(function(room){
var $span = $("<span>")
@@ -276,11 +79,9 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
}.bind(this))
data.blueprints.forEach(function(blueprint){
- if (! blueprint.slug) { return }
-
var $span = $("<span>")
- $span.data("blueprint", true)
$span.data("slug", blueprint.slug)
+ $span.data("blueprint", true)
var $label = $("<label>")
$label.html( blueprint.name )
@@ -297,5 +98,9 @@ var NewProjectModal = ModalView.extend(LayoutsIndex.prototype).extend({
this.show()
},
-
+ newLayout: function(e){
+ e && e.preventDefault()
+ window.location.pathname = "/layout/new"
+ }
+
})