mirror of
				https://github.com/redmine/redmine.git
				synced 2025-10-31 02:15:52 +01:00 
			
		
		
		
	added the ability to set the sort order for trackers
git-svn-id: http://redmine.rubyforge.org/svn/trunk@209 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
		| @@ -47,7 +47,7 @@ class CustomFieldsController < ApplicationController | ||||
|       flash[:notice] = l(:notice_successful_create) | ||||
|       redirect_to :action => 'list', :tab => @custom_field.type | ||||
|     end | ||||
|     @trackers = Tracker.find(:all) | ||||
|     @trackers = Tracker.find(:all, :order => 'position') | ||||
|   end | ||||
|  | ||||
|   def edit | ||||
| @@ -59,7 +59,7 @@ class CustomFieldsController < ApplicationController | ||||
|       flash[:notice] = l(:notice_successful_update) | ||||
|       redirect_to :action => 'list', :tab => @custom_field.type | ||||
|     end | ||||
|     @trackers = Tracker.find(:all) | ||||
|     @trackers = Tracker.find(:all, :order => 'position') | ||||
|   end | ||||
|  | ||||
|   def destroy | ||||
|   | ||||
| @@ -81,7 +81,7 @@ class ProjectsController < ApplicationController | ||||
|     @members = @project.members.find(:all, :include => [:user, :role]) | ||||
|     @subprojects = @project.children if @project.children.size > 0 | ||||
|     @news = @project.news.find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC") | ||||
|     @trackers = Tracker.find(:all) | ||||
|     @trackers = Tracker.find(:all, :order => 'position') | ||||
|     @open_issues_by_tracker = Issue.count(:group => :tracker, :joins => "INNER JOIN issue_statuses ON issue_statuses.id = issues.status_id", :conditions => ["project_id=? and issue_statuses.is_closed=?", @project.id, false]) | ||||
|     @total_issues_by_tracker = Issue.count(:group => :tracker, :conditions => ["project_id=?", @project.id]) | ||||
|   end | ||||
| @@ -245,7 +245,7 @@ class ProjectsController < ApplicationController | ||||
|   						:limit  =>  @issue_pages.items_per_page, | ||||
|   						:offset =>  @issue_pages.current.offset						 | ||||
|     end     | ||||
|     @trackers = Tracker.find :all | ||||
|     @trackers = Tracker.find :all, :order => 'position' | ||||
|     render :layout => false if request.xhr? | ||||
|   end | ||||
|  | ||||
| @@ -404,7 +404,7 @@ class ProjectsController < ApplicationController | ||||
|    | ||||
|   # Show changelog for @project | ||||
|   def changelog | ||||
|     @trackers = Tracker.find(:all, :conditions => ["is_in_chlog=?", true]) | ||||
|     @trackers = Tracker.find(:all, :conditions => ["is_in_chlog=?", true], :order => 'position') | ||||
|     if request.get? | ||||
|       @selected_tracker_ids = @trackers.collect {|t| t.id.to_s } | ||||
|     else | ||||
|   | ||||
| @@ -25,7 +25,7 @@ class ReportsController < ApplicationController | ||||
|     case params[:detail] | ||||
|     when "tracker" | ||||
|       @field = "tracker_id" | ||||
|       @rows = Tracker.find :all | ||||
|       @rows = Tracker.find :all, :order => 'position' | ||||
|       @data = issues_by_tracker | ||||
|       @report_title = l(:field_tracker) | ||||
|       render :template => "reports/issue_report_details" | ||||
| @@ -49,7 +49,7 @@ class ReportsController < ApplicationController | ||||
|       render :template => "reports/issue_report_details"   | ||||
|     else | ||||
|       @queries = @project.queries.find :all, :conditions => ["is_public=? or user_id=?", true, (logged_in_user ? logged_in_user.id : 0)] | ||||
|       @trackers = Tracker.find(:all) | ||||
|       @trackers = Tracker.find(:all, :order => 'position') | ||||
|       @priorities = Enumeration::get_values('IPRI') | ||||
|       @categories = @project.issue_categories | ||||
|       @authors = @project.members.collect { |m| m.user } | ||||
|   | ||||
| @@ -96,7 +96,7 @@ class RolesController < ApplicationController | ||||
|       end | ||||
|     end | ||||
|     @roles = Role.find(:all, :order => 'position') | ||||
|     @trackers = Tracker.find :all | ||||
|     @trackers = Tracker.find(:all, :order => 'position') | ||||
|     @statuses = IssueStatus.find(:all, :include => :workflows, :order => 'position') | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -28,7 +28,7 @@ class TrackersController < ApplicationController | ||||
|   verify :method => :post, :only => [ :destroy ], :redirect_to => { :action => :list } | ||||
|  | ||||
|   def list | ||||
|     @tracker_pages, @trackers = paginate :trackers, :per_page => 10 | ||||
|     @tracker_pages, @trackers = paginate :trackers, :per_page => 10, :order => 'position' | ||||
|     render :action => "list", :layout => false if request.xhr? | ||||
|   end | ||||
|  | ||||
| @@ -48,6 +48,21 @@ class TrackersController < ApplicationController | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   def move | ||||
|     @tracker = Tracker.find(params[:id]) | ||||
|     case params[:position] | ||||
|     when 'highest' | ||||
|       @tracker.move_to_top | ||||
|     when 'higher' | ||||
|       @tracker.move_higher | ||||
|     when 'lower' | ||||
|       @tracker.move_lower | ||||
|     when 'lowest' | ||||
|       @tracker.move_to_bottom | ||||
|     end if params[:position] | ||||
|     redirect_to :action => 'list' | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     @tracker = Tracker.find(params[:id]) | ||||
|     unless @tracker.issues.empty? | ||||
|   | ||||
| @@ -70,7 +70,7 @@ class Query < ActiveRecord::Base | ||||
|   def available_filters | ||||
|     return @available_filters if @available_filters | ||||
|     @available_filters = { "status_id" => { :type => :list_status, :order => 1, :values => IssueStatus.find(:all, :order => 'position').collect{|s| [s.name, s.id.to_s] } },        | ||||
|                            "tracker_id" => { :type => :list, :order => 2, :values => Tracker.find(:all).collect{|s| [s.name, s.id.to_s] } },                                                                                                                 | ||||
|                            "tracker_id" => { :type => :list, :order => 2, :values => Tracker.find(:all, :order => 'position').collect{|s| [s.name, s.id.to_s] } },                                                                                                                 | ||||
|                            "priority_id" => { :type => :list, :order => 3, :values => Enumeration.find(:all, :conditions => ['opt=?','IPRI']).collect{|s| [s.name, s.id.to_s] } }, | ||||
|                            "subject" => { :type => :text, :order => 8 },   | ||||
|                            "created_on" => { :type => :date_past, :order => 9 },                         | ||||
|   | ||||
| @@ -20,6 +20,7 @@ class Tracker < ActiveRecord::Base | ||||
|   has_many :issues | ||||
|   has_many :workflows, :dependent => :delete_all | ||||
|   has_and_belongs_to_many :custom_fields, :class_name => 'IssueCustomField', :join_table => 'custom_fields_trackers', :association_foreign_key => 'custom_field_id' | ||||
|   acts_as_list | ||||
|  | ||||
|   validates_presence_of :name | ||||
|   validates_uniqueness_of :name | ||||
|   | ||||
| @@ -7,12 +7,19 @@ | ||||
| <table class="list"> | ||||
|   <thead><tr> | ||||
|   <th><%=l(:label_tracker)%></th> | ||||
|   <th><%=l(:button_sort)%></th> | ||||
|   <th></th> | ||||
|   </tr></thead> | ||||
|   <tbody> | ||||
| <% for tracker in @trackers %> | ||||
|   <tr class="<%= cycle("odd", "even") %>"> | ||||
|   <td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td> | ||||
|   <td align="center"> | ||||
|     <%= link_to image_tag('2uparrow.png', :alt => l(:label_sort_highest)), {:action => 'move', :id => tracker, :position => 'highest'}, :method => :post, :title => l(:label_sort_highest) %> | ||||
|     <%= link_to image_tag('1uparrow.png', :alt => l(:label_sort_higher)), {:action => 'move', :id => tracker, :position => 'higher'}, :method => :post, :title => l(:label_sort_higher) %> - | ||||
|     <%= link_to image_tag('1downarrow.png', :alt => l(:label_sort_lower)), {:action => 'move', :id => tracker, :position => 'lower'}, :method => :post, :title => l(:label_sort_lower) %> | ||||
|     <%= link_to image_tag('2downarrow.png', :alt => l(:label_sort_lowest)), {:action => 'move', :id => tracker, :position => 'lowest'}, :method => :post, :title => l(:label_sort_lowest) %> | ||||
|   </td> | ||||
|   <td align="center"> | ||||
|     <%= button_to l(:button_delete), { :action => 'destroy', :id => tracker }, :confirm => l(:text_are_you_sure), :class => "button-small" %> | ||||
|   </td> | ||||
|   | ||||
							
								
								
									
										10
									
								
								db/migrate/021_add_tracker_position.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								db/migrate/021_add_tracker_position.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| class AddTrackerPosition < ActiveRecord::Migration | ||||
|   def self.up | ||||
|     add_column :trackers, :position, :integer, :default => 1, :null => false | ||||
|     Tracker.find(:all).each_with_index {|tracker, i| tracker.update_attribute(:position, i+1)} | ||||
|   end | ||||
|  | ||||
|   def self.down | ||||
|     remove_column :trackers, :position | ||||
|   end | ||||
| end | ||||
| @@ -11,7 +11,7 @@ http://redmine.rubyforge.org/ | ||||
| * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used) | ||||
| * mail notifications added when a document, a file or an attachment is added | ||||
| * tooltips added on Gantt chart and calender to view the details of the issues | ||||
| * ability to set the sort order for roles, issue statuses | ||||
| * ability to set the sort order for roles, trackers, issue statuses | ||||
| * added missing fields to csv export: priority, start date, due date, done ratio | ||||
| * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-) | ||||
| * added back "fixed version" field on issue screen and in filters | ||||
|   | ||||
		Reference in New Issue
	
	Block a user