diff --git a/app/models/archive_file.rb b/app/models/archive_file.rb index e18cf40..8f6f57b 100644 --- a/app/models/archive_file.rb +++ b/app/models/archive_file.rb @@ -128,8 +128,8 @@ class ArchiveFile a.instance_variable_set(:@skip_callback, true) self.where(:id=>a.id).update_all(:tmp_sort_number => i) end - max_sort_number = (sorted_archives.count != 0) ? (sort_order == 1 ? sorted_archives.last.tmp_sort_number : sorted_archives.first.tmp_sort_number) : 0 - ArchiveSortOrder.update_all(:max_sort_number=>max_sort_number,:need_update_sort=>false) + min_sort_number, max_sort_number = (sorted_archives.count != 0) ? (sorted_archives.map{|a| a.sort_number.to_i}.minmax) : [0, 0] + ArchiveSortOrder.update_all(:min_sort_number=>min_sort_number,:max_sort_number=>max_sort_number,:need_update_sort=>false) self.create_indexes return max_sort_number end diff --git a/app/models/archive_sort_order.rb b/app/models/archive_sort_order.rb index 6c06005..c50a892 100644 --- a/app/models/archive_sort_order.rb +++ b/app/models/archive_sort_order.rb @@ -2,6 +2,7 @@ class ArchiveSortOrder include Mongoid::Document field :sort_order, :type => Boolean # true => asc , false => desc field :need_update_sort, :type => Boolean, :default => true + field :min_sort_number, :type => Integer, :default => 0 field :max_sort_number, :type => Integer, :default => 0 after_initialize do |record| if(!record.new_record? && record.sort_order.nil?) @@ -44,6 +45,6 @@ class ArchiveSortOrder end end def get_default_order - self.sort_order ? 0 : self.max_sort_number + self.sort_order ? self.min_sort_number : self.max_sort_number end end \ No newline at end of file diff --git a/app/views/admin/archive_files/_form.html.erb b/app/views/admin/archive_files/_form.html.erb index e7ce4e6..f1fa7bd 100644 --- a/app/views/admin/archive_files/_form.html.erb +++ b/app/views/admin/archive_files/_form.html.erb @@ -16,7 +16,11 @@ <%= javascript_include_tag "lib/module-area" %> <%= javascript_include_tag "lib/jquery-ui-sortable.min" %> <% end %> - +<% + sort_order = ArchiveSortOrder.first + min_sort_number = sort_order.min_sort_number + max_sort_number = sort_order.max_sort_number +%> <%#= f.error_messages %>