Adjust settings to conform to select2 v4

This commit is contained in:
junyi 2026-08-24 04:33:43 +00:00
parent 5d904a220d
commit 75c10735e6
2 changed files with 14 additions and 13 deletions

View File

@ -316,8 +316,11 @@ end
params.require(:u_table).permit! params.require(:u_table).permit!
end end
def table_entry_params def table_entry_params
params.require(:table_entry).permit! 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
end end

View File

@ -34,7 +34,7 @@
<div class="control-group"> <div class="control-group">
<label class="control-label"><%= t("universal_table.related_entries") %></label> <label class="control-label"><%= t("universal_table.related_entries") %></label>
<div class="controls"> <div class="controls">
<%= 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" } %>
</div> </div>
</div> </div>
<% @columns.each_with_index do |column, index| %> <% @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"); $("#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 = { var select2Options = {
maximumSelectionSize: 10, maximumSelectionSize: 10,
minimumResultsForSearch: Infinity, minimumResultsForSearch: Infinity,
@ -86,20 +85,20 @@ $("#universal_table_tags").select2({
allowClear: false, allowClear: false,
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
data: function (term) { data: function (params) {
return { q: term }; return { q: params.term };
}, },
results: function(data, page) { processResults: function(data, params) {
return { return {
results: data results: data
}; };
}, },
cache: false cache: false
}, },
formatResult: function(i) { templateResult: function(i) {
return '<div>' + i.text + '</div>'; return '<div>' + i.text + '</div>';
}, },
formatSelection: function(i) { templateSelection: function(i) {
return '<div>' + i.text + '</div>'; return '<div>' + i.text + '</div>';
}, },
escapeMarkup: function(m) { escapeMarkup: function(m) {
@ -108,5 +107,4 @@ $("#universal_table_tags").select2({
} }
$("#table_entry_related_entries").select2(select2Options); $("#table_entry_related_entries").select2(select2Options);
$("#table_entry_related_entries").select2('data', preselectedData);
</script> </script>