diff options
| author | mo <mo.khan@gmail.com> | 2017-09-24 15:12:04 -0600 |
|---|---|---|
| committer | mo <mo.khan@gmail.com> | 2017-09-24 15:12:04 -0600 |
| commit | fb082e6bf91c5ee0c058c83816f8407b3cee0e7e (patch) | |
| tree | fe0c0b4a1ee08a4eff5b094ab29bc9de90e92278 | |
| parent | ca86a48736f6d4722b3c214af65a2ccd70b1cb43 (diff) | |
extract auto collection to setup js collections.
| -rw-r--r-- | app/assets/javascripts/models/auto_collection.js.coffee | 6 | ||||
| -rw-r--r-- | app/controllers/my/kitchens_controller.rb | 1 | ||||
| -rw-r--r-- | app/views/application/_backbone_collection.html.erb | 2 | ||||
| -rw-r--r-- | app/views/application/json/_creations.jbuilder | 29 | ||||
| -rw-r--r-- | app/views/my/kitchens/show.html.erb | 14 |
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 %> |
