diff --git a/app/controllers/admin/universal_tables_controller.rb b/app/controllers/admin/universal_tables_controller.rb index d3f07e3..0dd0b5d 100755 --- a/app/controllers/admin/universal_tables_controller.rb +++ b/app/controllers/admin/universal_tables_controller.rb @@ -316,8 +316,11 @@ end params.require(:u_table).permit! end - def table_entry_params - params.require(:table_entry).permit! + def table_entry_params + p = params.require(:table_entry).permit! + if p[:related_entries].is_a?(Array) + p[:related_entries] = p[:related_entries].reject(&:blank?).join(",") + end + p end - end diff --git a/app/views/admin/universal_tables/_entry_form.html.erb b/app/views/admin/universal_tables/_entry_form.html.erb index d19cbd5..b10b66b 100755 --- a/app/views/admin/universal_tables/_entry_form.html.erb +++ b/app/views/admin/universal_tables/_entry_form.html.erb @@ -34,7 +34,7 @@
- <%= f.text_field :related_entries, :class => "select2", data: { value: tbData } %> + <%= f.select :related_entries, options_for_select(tbData.map { |d| [d[:text], d[:id]] }, tbData.map { |d| d[:id] }), {}, { multiple: "multiple", class: "select2" } %>
<% @columns.each_with_index do |column, index| %> @@ -72,7 +72,6 @@ $("#universal_table_tags").select2({ }); $("#universal_table_tags").val(<%= raw(@entry.table_tags. collect { |tag| tag.id.to_s }) %>).trigger("change"); - const preselectedData = $("#table_entry_related_entries").data('value'); var select2Options = { maximumSelectionSize: 10, minimumResultsForSearch: Infinity, @@ -86,27 +85,26 @@ $("#universal_table_tags").select2({ allowClear: false, dataType: 'json', delay: 250, - data: function (term) { - return { q: term }; + data: function (params) { + return { q: params.term }; }, - results: function(data, page) { + processResults: function(data, params) { return { results: data }; }, cache: false }, - formatResult: function(i) { + templateResult: function(i) { return '
' + i.text + '
'; }, - formatSelection: function(i) { + templateSelection: function(i) { return '
' + i.text + '
'; - }, + }, escapeMarkup: function(m) { return m; } } $("#table_entry_related_entries").select2(select2Options); - $("#table_entry_related_entries").select2('data', preselectedData); - \ No newline at end of file +