summaryrefslogtreecommitdiff
path: root/public/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts')
-rw-r--r--public/assets/javascripts/ui/site/LayoutsIndex.js85
-rw-r--r--public/assets/javascripts/ui/site/LayoutsModal.js221
-rw-r--r--public/assets/javascripts/ui/site/NewProjectModal.js118
3 files changed, 216 insertions, 208 deletions
diff --git a/public/assets/javascripts/ui/site/LayoutsIndex.js b/public/assets/javascripts/ui/site/LayoutsIndex.js
new file mode 100644
index 0000000..f7272bb
--- /dev/null
+++ b/public/assets/javascripts/ui/site/LayoutsIndex.js
@@ -0,0 +1,85 @@
+
+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"
+ }
+
+})
+
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"
+ }
+
})
diff --git a/public/assets/javascripts/ui/site/NewProjectModal.js b/public/assets/javascripts/ui/site/NewProjectModal.js
new file mode 100644
index 0000000..31675ba
--- /dev/null
+++ b/public/assets/javascripts/ui/site/NewProjectModal.js
@@ -0,0 +1,118 @@
+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',
+ },
+
+ 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")
+ 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
+ }
+ else {
+ window.location.pathname = "/project/new/" + layout
+ }
+ },
+
+ createNewLayout: function(e){
+ e.preventDefault()
+ window.location.pathname = "/project/new/empty"
+ },
+
+ createNewBlueprint: function(e){
+ e.preventDefault()
+ window.location.pathname = "/blueprint/new"
+ },
+
+ populate: function(data){
+/*
+ if (data.user.plan_level < 1 && data.projectCount == 1) {
+ // show lockout message
+ this.$newBlueprintButton.hide()
+ }
+*/
+ if (! data.layouts.length) {
+ this.$templates.hide()
+ 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>")
+ $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.$templatesList.append($span)
+ }.bind(this))
+
+ data.blueprints.forEach(function(blueprint){
+ if (! blueprint.slug) { return }
+
+ var $span = $("<span>")
+ $span.data("blueprint", true)
+ $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.$templatesList.append($span)
+ }.bind(this))
+
+ this.show()
+ },
+
+
+}) \ No newline at end of file