summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2017-09-24 15:12:04 -0600
committermo <mo.khan@gmail.com>2017-09-24 15:12:04 -0600
commitfb082e6bf91c5ee0c058c83816f8407b3cee0e7e (patch)
treefe0c0b4a1ee08a4eff5b094ab29bc9de90e92278
parentca86a48736f6d4722b3c214af65a2ccd70b1cb43 (diff)
extract auto collection to setup js collections.
-rw-r--r--app/assets/javascripts/models/auto_collection.js.coffee6
-rw-r--r--app/controllers/my/kitchens_controller.rb1
-rw-r--r--app/views/application/_backbone_collection.html.erb2
-rw-r--r--app/views/application/json/_creations.jbuilder29
-rw-r--r--app/views/my/kitchens/show.html.erb14
5 files changed, 44 insertions, 8 deletions
diff --git a/app/assets/javascripts/models/auto_collection.js.coffee b/app/assets/javascripts/models/auto_collection.js.coffee
new file mode 100644
index 00000000..c117a866
--- /dev/null
+++ b/app/assets/javascripts/models/auto_collection.js.coffee
@@ -0,0 +1,6 @@
+class csx.AutoCollection
+ @install: (collectionName, json) ->
+ csx[collectionName] = @create(json)
+
+ @create: (json) ->
+ new Backbone.Collection(json)
diff --git a/app/controllers/my/kitchens_controller.rb b/app/controllers/my/kitchens_controller.rb
index 33b14e2e..5c9b768b 100644
--- a/app/controllers/my/kitchens_controller.rb
+++ b/app/controllers/my/kitchens_controller.rb
@@ -2,6 +2,7 @@ module My
class KitchensController < BaseController
def show
@tags = Tag.unique_tags
+ @cakes = current_user.creations.includes(:category, :photos, :tags, :tag_taggings)
end
end
end
diff --git a/app/views/application/_backbone_collection.html.erb b/app/views/application/_backbone_collection.html.erb
index 85520ba6..38ffb2cb 100644
--- a/app/views/application/_backbone_collection.html.erb
+++ b/app/views/application/_backbone_collection.html.erb
@@ -1,5 +1,5 @@
<% cache items do %>
<%= javascript_tag do %>
- csx.<%= collection_name %> = new Backbone.Collection(<%= raw render partial: "application/json/#{partial_name}", locals: { items: items } %>);
+ csx.AutoCollection.install('<%= collection_name %>', <%= raw render partial: "application/json/#{partial_name}", locals: { items: items } %>);
<% end %>
<% end %>
diff --git a/app/views/application/json/_creations.jbuilder b/app/views/application/json/_creations.jbuilder
new file mode 100644
index 00000000..f3adeea7
--- /dev/null
+++ b/app/views/application/json/_creations.jbuilder
@@ -0,0 +1,29 @@
+json.cache! items do
+ json.array! items do |cake|
+ json.id cake.id
+ json.name cake.name
+ json.slug cake.to_param
+ json.story cake.story
+ json.created_at cake.created_at
+ json.updated_at cake.updated_at
+ json.category do
+ json.id cake.category.id
+ json.name cake.category.name
+ end
+ json.user do
+ json.id cake.user.id
+ json.name cake.user.name
+ end
+ json.photos cake.photos do |photo|
+ json.id photo.id
+ json.large_url "https:#{photo.url_for(:large)}"
+ json.thumb_url "https:#{photo.url_for(:thumb)}"
+ json.created_at photo.created_at
+ json.updated_at photo.updated_at
+ end
+ json.tags cake.tags do |tag|
+ json.id tag.id
+ json.name tag.name
+ end
+ end
+end
diff --git a/app/views/my/kitchens/show.html.erb b/app/views/my/kitchens/show.html.erb
index e9a2c94d..17189319 100644
--- a/app/views/my/kitchens/show.html.erb
+++ b/app/views/my/kitchens/show.html.erb
@@ -1,11 +1,4 @@
<% provide(:title, "Kitchen") -%>
-<%= content_for :javascript do -%>
- <%= backbone_collection_for @categories %>
- <%= backbone_collection_for @tags %>
- <%= javascript_tag do %>
- csx.initialize({ access_token: '<%= current_user.authentication_token %>' });
- <% end %>
-<% end %>
<div class="row">
<div class="col-3">
@@ -14,3 +7,10 @@
<div id="backbone-content" class="col-9"></div>
</div>
<div id="modal" class="modal hide fade"></div>
+
+<%= backbone_collection_for @categories %>
+<%= backbone_collection_for @tags %>
+
+<%= javascript_tag do %>
+ csx.initialize({ access_token: '<%= current_user.authentication_token %>' });
+<% end %>