- <%= 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