|
1 | 1 | <% |
2 | 2 | config = field.associated_model_config |
3 | | - source_abstract_model = RailsAdmin.config(form.object.class).abstract_model |
4 | | - |
5 | | - selected = form.object.send(field.name) |
6 | | - selected_ids = selected.map{|s| s.send(field.associated_primary_key).to_s} |
7 | | - |
8 | | - current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update' |
9 | | - |
10 | | - xhr = !field.associated_collection_cache_all |
11 | | - |
12 | | - collection = if xhr |
13 | | - selected.map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] } |
14 | | - else |
15 | | - i = 0 |
16 | | - controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key).to_s] }.sort_by {|a| [selected_ids.index(a[1]) || selected_ids.size, i+=1] } |
17 | | - end |
18 | | - |
19 | | - js_data = { |
20 | | - xhr: xhr, |
21 | | - :'edit-url' => (field.inline_edit && authorized?(:edit, config.abstract_model) ? edit_path(model_name: config.abstract_model.to_param, id: '__ID__') : ''), |
22 | | - remote_source: index_path(config.abstract_model, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true), |
23 | | - scopeBy: field.dynamic_scope_relationships, |
24 | | - sortable: !!field.orderable, |
25 | | - removable: !!field.removable, |
26 | | - cacheAll: !!field.associated_collection_cache_all, |
27 | | - regional: { |
28 | | - add: t('admin.misc.add_new'), |
29 | | - chooseAll: t('admin.misc.chose_all'), |
30 | | - clearAll: t('admin.misc.clear_all'), |
31 | | - down: t('admin.misc.down'), |
32 | | - remove: t('admin.misc.remove'), |
33 | | - search: t('admin.misc.search'), |
34 | | - up: t('admin.misc.up') |
35 | | - } |
36 | | - } |
37 | 3 | %> |
| 4 | + |
38 | 5 | <div class="row"> |
39 | 6 | <div class="col-auto"> |
40 | 7 | <input name="<%= form.dom_name(field) %>" type="hidden" /> |
41 | | - <% selected_ids = (hdv = field.form_default_value).nil? ? selected_ids : hdv %> |
42 | | - <%= form.select field.method_name, collection, { selected: selected_ids, object: form.object }, field.html_attributes.reverse_merge({data: { filteringmultiselect: true, options: js_data.to_json }, multiple: true}) %> |
| 8 | + <%= |
| 9 | + form.select field.method_name, field.collection, { selected: field.form_value, object: form.object }, |
| 10 | + field.html_attributes.reverse_merge({data: { filteringmultiselect: true, options: field.widget_options.to_json }, multiple: true}) |
| 11 | + %> |
43 | 12 | </div> |
44 | 13 | <% if authorized?(:new, config.abstract_model) && field.inline_add %> |
45 | 14 | <div class="col-sm-4 modal-actions"> |
|
0 commit comments