summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/site/LayoutsIndex.js
blob: f7272bb12b61707f3c86919d47ed73e82710c4ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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"
	}

})