diff --git a/app/controllers/universal_tables_controller.rb b/app/controllers/universal_tables_controller.rb index 6eb2a13..2776cbd 100644 --- a/app/controllers/universal_tables_controller.rb +++ b/app/controllers/universal_tables_controller.rb @@ -34,10 +34,10 @@ class UniversalTablesController < ApplicationController sort_class = "sort hide" when "text" if tc.make_categorizable - select_values = tc.column_entries.distinct(:text) + select_values = tc.column_entries.distinct("text.#{I18n.locale.to_s}") form_field = "" end diff --git a/app/helpers/admin/universal_tables_helper.rb b/app/helpers/admin/universal_tables_helper.rb index bc6edee..366692e 100644 --- a/app/helpers/admin/universal_tables_helper.rb +++ b/app/helpers/admin/universal_tables_helper.rb @@ -17,7 +17,7 @@ module Admin::UniversalTablesHelper end def render_unique_texts(f,column,i) - select_values = column.column_entries.distinct(:text).uniq + select_values = column.column_entries.distinct(:text) select = "" s = "" select = select + "" diff --git a/app/views/admin/universal_tables/_edit_sort.html.erb b/app/views/admin/universal_tables/_edit_sort.html.erb index e2ca601..1e0e7f6 100644 --- a/app/views/admin/universal_tables/_edit_sort.html.erb +++ b/app/views/admin/universal_tables/_edit_sort.html.erb @@ -21,7 +21,7 @@ <% @entries.each do |entry| %> - <%= entry.sort_number %> + <%= number_field_tag nil,entry.sort_number,class: 'sort_number',step: 1 %> <% @columns.each_with_index do |column, index| %> <% ce = entry.column_entries.where(:table_column_id => column.id).first rescue nil %> diff --git a/app/views/admin/universal_tables/edit_sort.html.erb b/app/views/admin/universal_tables/edit_sort.html.erb index a1c9fc7..12e39e8 100644 --- a/app/views/admin/universal_tables/edit_sort.html.erb +++ b/app/views/admin/universal_tables/edit_sort.html.erb @@ -25,6 +25,74 @@ update_sort(); } }); + $('.sort_number').change(function(){ + var new_sort_number = parseFloat($(this).val()); + var min_number = $('.sort_number').length; + var max_number = 0; + var pool = $('.sort_number').not(this); + var same_order = pool.filter(function(){ + var tmp_sort = parseFloat($(this).val()); + if (tmp_sortmax_number){ + max_number = tmp_sort; + } + return tmp_sort==new_sort_number + }); + var tmp_same_order = null; + if (same_order.length>0){ + tmp_same_order = same_order.eq(0); + tmp_same_order.parents('tr').eq(0).before($(this).parents('tr').eq(0)); + }else{ + //ex. 1 2 3 5,insert 4 + if (parseInt(pool.eq(0).val())max_number){ + if (tmp_sort<=new_sort_number){ + tmp_same_order = $(this); + } + }else{ + if (tmp_sort>=new_sort_number){ + tmp_same_order = $(this); + return false; + } + } + }); + if (new_sort_number>max_number){ + tmp_same_order.parents('tr').eq(0).after($(this).parents('tr').eq(0)); + }else{ + tmp_same_order.parents('tr').eq(0).before($(this).parents('tr').eq(0)); + } + }else{ //desc + //ex. 5 3 2 1,insert 4 + $.each(pool,function(){ + var tmp_sort = parseFloat($(this).val()); + if (new_sort_number=new_sort_number){ + tmp_same_order = $(this); + } + }else if (new_sort_number>max_number){ + if (tmp_sort<=new_sort_number){ + tmp_same_order = $(this); + return false; + } + }else{ + if (tmp_sort<=new_sort_number){ + tmp_same_order = $(this); + return false; + } + } + }); + if (new_sort_number