refinerycms-nested_models 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,96 @@
1
+ # Nested Models extension for Refinery CMS.
2
+
3
+ ## How to use
4
+
5
+ ``` ruby
6
+ gem 'refinerycms-nested_models'
7
+ ```
8
+
9
+
10
+ ## Nesting Models
11
+
12
+ You need to nest models in the normal rails way, with accepts nested attributes for e.g. the following in the 'parent' model:
13
+
14
+ ``` ruby
15
+ has_many :nested_models
16
+ accepts_nested_attributes_for :nested_models, allow_destroy: true
17
+ attr_accessible :nested_models_attributes
18
+ ```
19
+
20
+ And the following in the nested model:
21
+
22
+ ``` ruby
23
+ belongs_to :page, class_name: 'Refinery::Page'
24
+ ```
25
+
26
+ This is the basic setup, you then need to add to your views.
27
+
28
+ In the form of the parent model you should add the followuing:
29
+
30
+ ``` erb
31
+ <div class='field'>
32
+ <%= f.label :nested_models %>
33
+ <%= f.fields_for :nested_models do |j| %>
34
+ <%= render 'refinery/admin/pages/nested_model_fields', :f => j %>
35
+ <% end %>
36
+ <%= link_to_add_fields 'Add nested model', f, :nested_models %>
37
+ </div>
38
+ ```
39
+
40
+ The this block renders any existing nested objects in the page and also adds a link for adding new nested models. This works by embedding the html which should be insert into the page in the data-field of the link. When you click the link JS is executed to replace some placeholders in the data-field and insert it into the page, above the link. Some callbacks are also executed to enable any modals in the newly inserted HTML.
41
+
42
+ You will also need to create the partial file mentioned (refinery/admin/pages/nested_model_fields - where nested_model_fields is the singular name of the association from the parent model with "_fields" appended to it).
43
+
44
+ Below is an example of the nested model fields:
45
+
46
+ ``` erb
47
+ <fieldset class='nested'>
48
+ <div class='field'>
49
+ <%= f.label :name %>
50
+ <%= f.text_field :name %>
51
+ </div>
52
+ <div class='field'>
53
+ <%= f.label :image %>
54
+ <%= render 'refinery/admin/image_picker', f: f, field: :image_id, image: f.object.image %>
55
+ </div>
56
+ <%= link_to_remove_field 'Remove this nested model', f %>
57
+ </fieldset>
58
+ ```
59
+
60
+ This form contains any attributes which should appear from the nested model as well as a link_to_remove_field. Link to remove field adds a link to a JS function and a hidden field to mark the nested element for removal.
61
+
62
+ ### Sorting nested elements
63
+
64
+ To sort nested elements you should add the following code in your parent form:
65
+
66
+ ``` erb
67
+ <div class='field' data-sortable='true'>
68
+ ```
69
+
70
+ And this into the nested model fields:
71
+
72
+ ``` erb
73
+ <%= refinery_icon_tag 'arrow_switch', 'data-handle' => true, :title => 'Reorder', :class => 'handle' %>
74
+ <%= f.hidden_field :position, 'data-position' => true %>
75
+ ```
76
+
77
+ And the following to the nested model:
78
+
79
+ ``` ruby
80
+ attr_accessible :position
81
+ ```
82
+
83
+ ### Adding refinery images to nested models
84
+
85
+ Add the following to the nested model:
86
+
87
+ ``` ruby
88
+ belongs_to :image, class_name: 'Refinery::Image'
89
+ ```
90
+
91
+ And this to the nested field partial:
92
+
93
+ ``` erb
94
+ <%= render 'refinery/admin/image_picker', f: f, field: :image_id, image: f.object.image %>
95
+ ```
96
+
@@ -0,0 +1,34 @@
1
+ jQuery ->
2
+ window.init_nested_sorts()
3
+
4
+ $('form').on 'click', '[data-remove="true"]', (event) ->
5
+ $(this).prev('input[type=hidden]').val('1')
6
+ $(this).closest('[data-sortable-item="true"]').hide()
7
+ event.preventDefault()
8
+
9
+ $('form').on 'click', '[data-add="true"]', (event) ->
10
+ time = new Date().getTime()
11
+ regexp = new RegExp($(this).data('id'), 'g')
12
+ fields = $(this).data('fields')
13
+ $(this).before(fields.replace(regexp, time))
14
+ init_modal_dialogs()
15
+ init_nested_sorts()
16
+ event.preventDefault()
17
+
18
+ window.init_nested_sorts = ->
19
+ $('[data-sortable="true"]').each (index,value) ->
20
+ $(value).sortable
21
+ axis: 'y',
22
+ stop: ->
23
+ updateNestedSortablePositions()
24
+ handle: '[data-handle="true"]'
25
+ forcePlaceholderSize: true
26
+ items: '[data-sortable-item="true"]'
27
+ updateNestedSortablePositions()
28
+
29
+ window.updateNestedSortablePositions = ->
30
+ $('[data-sortable="true"]').each (index,value) ->
31
+ $(value).find('[data-sortable-item="true"]').each (nestedIndex,nestedValue) ->
32
+ $(nestedValue).find('[data-position="true"]').val(nestedIndex)
33
+
34
+
@@ -0,0 +1,20 @@
1
+ fieldset.nested {
2
+ margin-top: 10px;
3
+ border: 1px dotted #CCC;
4
+ }
5
+
6
+ a.add_fields, a.remove_fields {
7
+ margin-top: 10px;
8
+ display: inline-block;
9
+ }
10
+
11
+ .ui-sortable-placeholder {
12
+ background-color: #FFFFCC;
13
+ border: 2px dashed #FFFF00;
14
+ visibility: visible !important;
15
+ min-height: 200px;
16
+ }
17
+
18
+ .handle {
19
+ float: right;
20
+ }
@@ -0,0 +1,89 @@
1
+ <%
2
+ description ||= 'image'
3
+ thumbnail ||= 'medium'
4
+ toggle_image_display ||= false
5
+ conditions ||= nil
6
+ randomiser = f.object.new_record? ? f.object.object_id : rand(Time.now.yesterday.to_i * Time.now.to_i)
7
+ current_image_link_href = refinery.insert_admin_images_path(:dialog => true, :callback => "image_picker_#{randomiser}_changed",
8
+ :width => 866, :height => 510, :conditions => conditions)
9
+ current_image_title = t('.change', :what => description.titleize)
10
+ -%>
11
+ <div id='image_picker_container_<%= randomiser %>'>
12
+ <%= link_to t('.show'), '', :class => "current_image_toggler" if toggle_image_display %>
13
+ <%= f.hidden_field field, :class => "current_image_id" -%>
14
+
15
+ <div class='current_image_container' style="margin-top: 10px<%= ";display: none" if toggle_image_display %>">
16
+ <a class='current_image_link dialog' href="<%= current_image_link_href %>" style='border: 0px' title='<%= current_image_title %>' name='<%= current_image_title %>'>
17
+ <% unless image.nil? -%>
18
+ <%= image_fu image, Refinery::Images.user_image_sizes[thumbnail.to_sym],
19
+ :class => "brown_border",
20
+ :class => "current_picked_image" %>
21
+ <% else -%>
22
+ <img class="current_picked_image" src="" alt="" style='display: none' />
23
+ <% end -%>
24
+ <span class='no_picked_image_selected nothing_selected'<%= " style='display: none;'".html_safe if image.present? %>>
25
+ <%= t('.none_selected') %>
26
+ </span>
27
+ </a>
28
+ <br/>
29
+ <%= link_to t('.remove_current'), "#",
30
+ :class => "remove_picked_image",
31
+ :style => "#{"display:none;" if image.nil?}" %>
32
+ </div>
33
+ </div>
34
+
35
+ <% if f.object.new_record? %>
36
+ <script>
37
+ var image_picker_<%= randomiser %> = {};
38
+ $.extend(true, image_picker_<%= randomiser %>, image_picker);
39
+ image_picker_<%= randomiser %> = image_picker_<%= randomiser %>.init({
40
+ thumbnail: '<%= thumbnail.html_safe %>'
41
+ , image_toggler: '<%= toggle_image_display ? ".current_image_toggler" : "null" %>'
42
+ , description: '<%= description %>'
43
+ , field: '.current_image_id'
44
+ , image_display: '.current_picked_image'
45
+ , no_image_message: '.no_picked_image_selected'
46
+ , remove_image_button: '.remove_picked_image'
47
+ , picker_container: '#image_picker_container_<%= (lambda {randomiser}).call %>'
48
+ , image_container: '.current_image_container'
49
+ , image_link: '.current_image_link'
50
+ });
51
+
52
+ image_picker_<%= randomiser %>_changed = function(args){
53
+ $.proxy(image_picker_<%= randomiser %>.changed, {
54
+ container: '#image_picker_container_<%= randomiser %>'
55
+ , picker: image_picker_<%= randomiser %>
56
+ , image: args
57
+ })();
58
+ };
59
+ </script>
60
+ <% else %>
61
+ <% content_for :javascripts do -%>
62
+ <script>
63
+ var image_picker_<%= randomiser %> = {};
64
+ $(document).ready(function(e) {
65
+ $.extend(true, image_picker_<%= randomiser %>, image_picker)
66
+ image_picker_<%= randomiser %> = image_picker_<%= randomiser %>.init({
67
+ thumbnail: '<%= thumbnail.html_safe %>'
68
+ , image_toggler: '<%= toggle_image_display ? ".current_image_toggler" : "null" %>'
69
+ , description: '<%= description %>'
70
+ , field: '.current_image_id'
71
+ , image_display: '.current_picked_image'
72
+ , no_image_message: '.no_picked_image_selected'
73
+ , remove_image_button: '.remove_picked_image'
74
+ , picker_container: '#image_picker_container_<%= (lambda {randomiser}).call %>'
75
+ , image_container: '.current_image_container'
76
+ , image_link: '.current_image_link'
77
+ });
78
+ });
79
+
80
+ image_picker_<%= randomiser %>_changed = function(args){
81
+ $.proxy(image_picker_<%= randomiser %>.changed, {
82
+ container: '#image_picker_container_<%= randomiser %>'
83
+ , picker: image_picker_<%= randomiser %>
84
+ , image: args
85
+ })();
86
+ };
87
+ </script>
88
+ <% end %>
89
+ <% end %>
@@ -0,0 +1,27 @@
1
+ cs:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Přidat Nested Model
11
+ reorder: Řadit Nested Models
12
+ reorder_done: Konec řazení Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Litujeme, ale nebyly nalezny žádné výsledky.
16
+ no_items_yet: Zatím nebyly vytvořeny žádné Nested Models. Zvolte "Přidat Nested Model" pro přidání prvního nested model.
17
+ nested_model:
18
+ view_live_html: Zobrazit náhled nested model<br/><em>(otevře se v novém okně)</em>
19
+ edit: Upravit nested model
20
+ delete: Smazat nested model
21
+ nested_models:
22
+ show:
23
+ other: Další Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ en:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Add New Nested Model
11
+ reorder: Reorder Nested Models
12
+ reorder_done: Done Reordering Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Sorry! There are no results found.
16
+ no_items_yet: There are no Nested Models yet. Click "Add New Nested Model" to add your first nested model.
17
+ nested_model:
18
+ view_live_html: View this nested model live <br/><em>(opens in a new window)</em>
19
+ edit: Edit this nested model
20
+ delete: Remove this nested model forever
21
+ nested_models:
22
+ show:
23
+ other: Other Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,28 @@
1
+ es:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ # article: masculino/femenino
7
+ nested_models:
8
+ admin:
9
+ nested_models:
10
+ actions:
11
+ create_new: Crear nuevo nested model
12
+ reorder: Reordenar nested models
13
+ reorder_done: Reordenación de nested models completada
14
+ records:
15
+ title: Nested Models
16
+ sorry_no_results: Lo siento, no hay resultados
17
+ no_items_yet: No hay nested models todavía. Pulsa en "Crear nuevo Nested Model" para crear tu primer nested model.
18
+ nested_model:
19
+ view_live_html: Ver este nested model como abierto al público <br/><em>(abre en ventana nueva)</em>
20
+ edit: Editar este nested model
21
+ delete: Borrar este nested model para siempre
22
+ nested_models:
23
+ show:
24
+ other: Otros nested models
25
+ activerecord:
26
+ attributes:
27
+ 'refinery/nested_models/nested_model':
28
+ name: Name
@@ -0,0 +1,27 @@
1
+ fr:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Créer un(e) nouve(au/l/lle) Nested Model
11
+ reorder: Réordonner les Nested Models
12
+ reorder_done: Fin de réordonnancement des Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: "Désolé ! Aucun résultat."
16
+ no_items_yet: 'Il n''y a actuellement aucun(e) Nested Model. Cliquer sur "Créer un(e) nouve(au/l/lle) Nested Model" pour créer votre premi(er/ère) nested model.'
17
+ nested_model:
18
+ view_live_html: Voir ce(t/tte) nested model <br/><em>(Ouvre une nouvelle fenêtre)</em>
19
+ edit: Modifier ce(t/tte) nested model
20
+ delete: Supprimer définitivement ce(t/tte) nested model
21
+ nested_models:
22
+ show:
23
+ other: Autres Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ it:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Aggiungi Nuovo Nested Model
11
+ reorder: Riordina Nested Models
12
+ reorder_done: Termina il Riordino di Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: "Spiacenti! Nessun risultato trovato"
16
+ no_items_yet: Non ci sono ancora Nested Models. Clicca "Aggiungi Nuovo Nested Model" per aggiungere il tuo primo nested model.
17
+ nested_model:
18
+ view_live_html: Guarda live questo nested model <br/><em>(apre una nuova finestra)</em>
19
+ edit: Modifica questo nested model
20
+ delete: Rimuovi per sempre questo nested model
21
+ nested_models:
22
+ show:
23
+ other: Altri Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ nb:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Lag en ny Nested Model
11
+ reorder: Endre rekkefølgen på Nested Models
12
+ reorder_done: Ferdig å endre rekkefølgen Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Beklager! Vi fant ikke noen resultater.
16
+ no_items_yet: Det er ingen Nested Models enda. Klikk på "Lag en ny Nested Model" for å legge til din første nested model.
17
+ nested_model:
18
+ view_live_html: Vis hvordan denne nested model ser ut offentlig <br/><em>(åpner i et nytt vindu)</em>
19
+ edit: Rediger denne nested model
20
+ delete: Fjern denne nested model permanent
21
+ nested_models:
22
+ show:
23
+ other: Andre Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ nl:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Nieuwe Nested Model toevoegen
11
+ reorder: De volgorde van de Nested Models wijzigen
12
+ reorder_done: Klaar met het wijzingen van de van de Nested Model-volgorde
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
16
+ no_items_yet: Er zijn nog geen Nested Models. Druk op 'Nieuwe Nested Model toevoegen' om de eerste toe te voegen.
17
+ nested_model:
18
+ view_live_html: Deze nested model op de website bekijken <br/><em>(opent in een nieuw venster)</em>
19
+ edit: Bewerk deze nested model
20
+ delete: Deze nested model definitief verwijderen
21
+ nested_models:
22
+ show:
23
+ other: Andere Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ sk:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Pridať Nested Model
11
+ reorder: Preusporiadať Nested Models
12
+ reorder_done: Koniec radenia Nested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Ľutujeme, ale neboli nájdené žiadne výsledky.
16
+ no_items_yet: Nie sú vytvorené žiadne Nested Models. Kliknite na "Pridať Nested Model" pre pridanie prvého nested model.
17
+ nested_model:
18
+ view_live_html: Zobraziť náhľad nested model<br/><em>(otvorí sa v novom okne)</em>
19
+ edit: Upraviť nested model
20
+ delete: Zmazať nested model
21
+ nested_models:
22
+ show:
23
+ other: Daľšie Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,27 @@
1
+ tr:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: Yeni Ekle Nested Model
11
+ reorder: Tekrar sirala Nested Models
12
+ reorder_done: Tekrar siralama tamamlandiNested Models
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: Uzgunum! Herhangi bir sonuc bulunamadi.
16
+ no_items_yet: Herhangi bir Nested Models yok henuz. Tikla "Yeni Ekle Nested Model" eklemek senin ilk nested model.
17
+ nested_model:
18
+ view_live_html: Bunu canlu nested model goruntule <br/><em>(yeni bir pencerede acar)</em>
19
+ edit: Bunu Duzenle nested model
20
+ delete: Bunu Sil nested model sonsuza dek
21
+ nested_models:
22
+ show:
23
+ other: Diger Nested Models
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/nested_models/nested_model':
27
+ name: Name
@@ -0,0 +1,29 @@
1
+ zh-CN:
2
+ refinery:
3
+ plugins:
4
+ nested_models:
5
+ title: Nested Models
6
+ nested_models:
7
+ admin:
8
+ nested_models:
9
+ actions:
10
+ create_new: 建立新的 Nested Model
11
+ reorder: 对 Nested Models 重新排序
12
+ reorder_done: 对 Nested Models 的重新排序结束
13
+ records:
14
+ title: Nested Models
15
+ sorry_no_results: 对不起,未找到结果。 #Sorry! There are no results found.
16
+
17
+ # There are no Nested Models yet. Click "Add New Nested Model" to add your first nested model.
18
+ no_items_yet: 目前没有 Nested Models . 点击 "Add New Nested Model" 创建一个nested model.
19
+ nested_model:
20
+ view_live_html: 查看 nested model 的最新内容.<br/><em>(新窗口中打开)</em>
21
+ edit: 编辑 nested model
22
+ delete: 永久删除 nested model
23
+ nested_models:
24
+ show:
25
+ other: 其他 Nested Models
26
+ activerecord:
27
+ attributes:
28
+ 'refinery/nested_models/nested_model':
29
+ name: Name
data/config/routes.rb ADDED
@@ -0,0 +1,14 @@
1
+ Refinery::Core::Engine.routes.draw do
2
+
3
+ # Admin routes
4
+ namespace :nested_models, :path => '' do
5
+ namespace :admin, :path => Refinery::Core.backend_route do
6
+ resources :nested_models, :except => :show do
7
+ collection do
8
+ post :update_positions
9
+ end
10
+ end
11
+ end
12
+ end
13
+
14
+ end
data/db/seeds.rb ADDED
File without changes
@@ -0,0 +1,7 @@
1
+ module Refinery
2
+ class NestedModelsGenerator < Rails::Generators::Base
3
+
4
+ # do not install migrations or seed database
5
+
6
+ end
7
+ end
@@ -0,0 +1,23 @@
1
+ module Refinery
2
+ module NestedModels
3
+ class Engine < Rails::Engine
4
+ extend Refinery::Engine
5
+ isolate_namespace Refinery::NestedModels
6
+
7
+ engine_name :refinery_nested_models
8
+
9
+ initializer "register refinerycms_nested_models plugin" do
10
+ # do not register plugin
11
+ end
12
+
13
+ config.after_initialize do
14
+ Refinery.register_extension(Refinery::NestedModels)
15
+ end
16
+
17
+ Refinery::Core.configure do |config| # # Register extra javascript for backend
18
+ config.register_javascript 'refinery/nested_models.js.coffee'
19
+ config.register_stylesheet "refinery/nested_models.css.scss", :media => 'screen'
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module Refinery
2
+ module NestedModels
3
+ module ViewMethods
4
+
5
+ def link_to_add_fields(name, f, association)
6
+ new_object = f.object.send(association).klass.new
7
+ id = new_object.object_id
8
+ fields = f.fields_for(association, new_object, child_index: id) do |builder|
9
+ render(association.to_s.singularize + "_fields", f: builder)
10
+ end
11
+ link_to(name, '#', class: "add_fields", data: {id: id, add: true, fields: fields.gsub("\n", "")})
12
+ end
13
+
14
+ def link_to_remove_field(label, builder)
15
+ ret = ''
16
+ ret += builder.hidden_field :_destroy, :class => 'destroy'
17
+ ret += link_to_function label, 'return true', class: 'remove_fields', data: {remove: true}
18
+ raw ret
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ ::ActionView::Base.send(:include, Refinery::NestedModels::ViewMethods)
@@ -0,0 +1,20 @@
1
+ require 'refinerycms-core'
2
+ require 'refinery/nested_models/view_methods'
3
+
4
+ module Refinery
5
+ module NestedModels
6
+ require 'refinery/nested_models/engine'
7
+
8
+ class << self
9
+ attr_writer :root
10
+
11
+ def root
12
+ @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
13
+ end
14
+
15
+ def factory_paths
16
+ @factory_paths ||= [ root.join('spec', 'factories').to_s ]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1 @@
1
+ require 'refinery/nested_models'
@@ -0,0 +1,13 @@
1
+ namespace :refinery do
2
+
3
+ namespace :nested_models do
4
+
5
+ # call this task by running: rake refinery:nested_models:my_task
6
+ # desc "Description of my task below"
7
+ # task :my_task => :environment do
8
+ # # add your logic here
9
+ # end
10
+
11
+ end
12
+
13
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-nested_models
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Nick Bolt
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ type: :runtime
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 2.1.0
21
+ none: false
22
+ prerelease: false
23
+ name: refinerycms-core
24
+ requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ version: 2.1.0
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
31
+ type: :development
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: 2.1.0
37
+ none: false
38
+ prerelease: false
39
+ name: refinerycms-testing
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 2.1.0
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
47
+ type: :development
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: 1.4.1
53
+ none: false
54
+ prerelease: false
55
+ name: poltergeist
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.1
61
+ none: false
62
+ description: Ruby on Rails Nested Models extension for Refinery CMS
63
+ email:
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - app/views/refinery/admin/_image_picker.html.erb
69
+ - app/assets/stylesheets/refinery/nested_models.css.scss
70
+ - app/assets/javascripts/refinery/nested_models.js.coffee
71
+ - config/locales/sk.yml
72
+ - config/locales/it.yml
73
+ - config/locales/fr.yml
74
+ - config/locales/tr.yml
75
+ - config/locales/nl.yml
76
+ - config/locales/es.yml
77
+ - config/locales/cs.yml
78
+ - config/locales/zh-CN.yml
79
+ - config/locales/en.yml
80
+ - config/locales/nb.yml
81
+ - config/routes.rb
82
+ - db/seeds.rb
83
+ - lib/tasks/refinery/nested_models.rake
84
+ - lib/refinery/nested_models.rb
85
+ - lib/refinery/nested_models/view_methods.rb
86
+ - lib/refinery/nested_models/engine.rb
87
+ - lib/generators/refinery/nested_models_generator.rb
88
+ - lib/refinerycms-nested_models.rb
89
+ - README.md
90
+ homepage:
91
+ licenses: []
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ none: false
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ none: false
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 1.8.25
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Nested Models extension for Refinery CMS
114
+ test_files: []