summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2017-09-24 16:41:58 -0600
committermo <mo.khan@gmail.com>2017-09-24 16:41:58 -0600
commit576a045848457252df3b96e1bd66532d5c86b382 (patch)
tree6a1f669d9e843ff5eb37a5370b2db0d6979f7e9c /app
parent79f42163ba1d6c5b699f9f8281aaab8a2a059847 (diff)
bind auto collections to a url.
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/models/auto_collection.js.coffee14
-rw-r--r--app/helpers/application_helper.rb4
-rw-r--r--app/views/application/_backbone_collection.html.erb2
3 files changed, 12 insertions, 8 deletions
diff --git a/app/assets/javascripts/models/auto_collection.js.coffee b/app/assets/javascripts/models/auto_collection.js.coffee
index 796c1872..335e9ad2 100644
--- a/app/assets/javascripts/models/auto_collection.js.coffee
+++ b/app/assets/javascripts/models/auto_collection.js.coffee
@@ -1,6 +1,10 @@
class csx.AutoCollection
- @install: (collectionName, json) ->
- csx.Collections[collectionName] = @create(json)
-
- @create: (json) ->
- new Backbone.Collection(json)
+ @install: (modelName, pluralName, json) ->
+ model = csx.Models[modelName]
+ if _.isUndefined(model)
+ csx.Collections[modelName] = new Backbone.Collection(json)
+ else
+ collection = Backbone.Collection.extend
+ model: model
+ url: "/api/v1/#{pluralName}"
+ csx.Collections[modelName] = new collection(json)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index d1891af6..74a57170 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -41,9 +41,9 @@ module ApplicationHelper
def backbone_collection_for(items)
render partial: 'backbone_collection', locals: {
- collection_name: items.model_name.human,
items: items,
- partial_name: items.model_name.plural,
+ model_name: items.model_name.human,
+ plural_name: items.model_name.plural,
}
end
end
diff --git a/app/views/application/_backbone_collection.html.erb b/app/views/application/_backbone_collection.html.erb
index 38ffb2cb..5dcb4951 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.AutoCollection.install('<%= collection_name %>', <%= raw render partial: "application/json/#{partial_name}", locals: { items: items } %>);
+ csx.AutoCollection.install('<%= model_name %>', '<%= plural_name %>', <%= raw render partial: "application/json/#{plural_name}", locals: { items: items } %>);
<% end %>
<% end %>