Index: app/helpers/issues_helper.rb =================================================================== --- app/helpers/issues_helper.rb +++ app/helpers/issues_helper.rb @@ -252,7 +252,7 @@ old_value = format_date(detail.old_value.to_date) if detail.old_value when 'project_id', 'status_id', 'tracker_id', 'assigned_to_id', - 'priority_id', 'category_id', 'fixed_version_id' + 'priority_id', 'category_id', 'fixed_version_id', 'author_id' value = find_name_by_reflection(field, detail.value) old_value = find_name_by_reflection(field, detail.old_value) Index: app/models/issue.rb =================================================================== --- app/models/issue.rb +++ app/models/issue.rb @@ -323,6 +323,7 @@ safe_attributes 'tracker_id', 'status_id', 'category_id', + 'author_id', 'assigned_to_id', 'priority_id', 'fixed_version_id', Index: app/views/issues/_attributes.html.erb =================================================================== --- app/views/issues/_attributes.html.erb +++ app/views/issues/_attributes.html.erb @@ -3,6 +3,9 @@
<% if @issue.safe_attribute? 'status_id' %> +<% if User.current.allowed_to?(:edit_issue_author, @project) %> +

<%= f.select :author_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => false, :required => true %>

+<% end %>

<%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true}, :onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %>

Index: app/views/issues/show.html.erb =================================================================== --- app/views/issues/show.html.erb +++ app/views/issues/show.html.erb @@ -26,6 +26,7 @@

<%= authoring @issue.created_on, @issue.author %>. + <%= l(:label_added_time, time_tag(@issue.created_on)) %>. <% if @issue.created_on != @issue.updated_on %> <%= l(:label_updated_time, time_tag(@issue.updated_on)).html_safe %>. <% end %> @@ -33,6 +34,7 @@ <%= issue_fields_rows do |rows| + rows.left l(:field_author), h(@issue.author), :class => 'author' rows.left l(:field_status), h(@issue.status.name), :class => 'status' rows.left l(:field_priority), h(@issue.priority.name), :class => 'priority' Index: config/locales/cs.yml =================================================================== --- config/locales/cs.yml +++ config/locales/cs.yml @@ -385,6 +385,7 @@ permission_add_issue_notes: Přidávání poznámek permission_edit_issue_notes: Upravování poznámek permission_edit_own_issue_notes: Upravování vlastních poznámek + permission_edit_issue_author: Úprava autora permission_move_issues: Přesouvání úkolů permission_delete_issues: Mazání úkolů permission_manage_public_queries: Správa veřejných dotazů @@ -731,6 +732,7 @@ label_feeds_access_key_created_on: "Přístupový klíč pro RSS byl vytvořen před %{value}" label_module_plural: Moduly label_added_time_by: "Přidáno uživatelem %{author} před %{age}" + label_added_time: "Přidáno před {age}" label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}" label_updated_time: "Aktualizováno před %{value}" label_jump_to_a_project: Vyberte projekt... Index: config/locales/en.yml =================================================================== --- config/locales/en.yml +++ config/locales/en.yml @@ -416,6 +416,7 @@ permission_add_issue_notes: Add notes permission_edit_issue_notes: Edit notes permission_edit_own_issue_notes: Edit own notes + permission_edit_issue_author: Edit author permission_move_issues: Move issues permission_delete_issues: Delete issues permission_manage_public_queries: Manage public queries @@ -777,6 +778,7 @@ label_feeds_access_key_created_on: "RSS access key created %{value} ago" label_module_plural: Modules label_added_time_by: "Added by %{author} %{age} ago" + abel_added_time: "Added {value} ago" label_updated_time_by: "Updated by %{author} %{age} ago" label_updated_time: "Updated %{value} ago" label_jump_to_a_project: Jump to a project... Index: config/locales/ru.yml =================================================================== --- config/locales/ru.yml +++ config/locales/ru.yml @@ -407,6 +407,7 @@ label_activity: Действия label_add_another_file: Добавить ещё один файл label_added_time_by: "Добавил(а) %{author} %{age} назад" + label_added_time: "Добавлено {value} назад" label_added: добавлено label_add_note: Добавить замечание label_administration: Администрирование @@ -812,6 +813,7 @@ permission_edit_issues: Редактирование задач permission_edit_messages: Редактирование сообщений permission_edit_own_issue_notes: Редактирование собственных примечаний + permission_edit_issue_author: Изменить автора permission_edit_own_messages: Редактирование собственных сообщений permission_edit_own_time_entries: Редактирование собственного учёта времени permission_edit_project: Редактирование проектов Index: config/locales/sk.yml =================================================================== --- config/locales/sk.yml +++ config/locales/sk.yml @@ -584,6 +584,7 @@ label_feeds_access_key_created_on: "Prístupový klúč pre RSS bol vytvorený pred %{value}" label_module_plural: Moduly label_added_time_by: "Pridané užívateľom %{author} pred %{age}" + label_added_time: "Pridané pred {value}" label_updated_time: "Aktualizované pred %{value}" label_jump_to_a_project: Zvoliť projekt... label_file_plural: Súbory @@ -788,6 +789,7 @@ permission_rename_wiki_pages: Premenovanie Wiki strániek permission_edit_time_entries: Úprava záznamov o strávenom čase permission_edit_own_issue_notes: Úprava vlastných poznámok úlohy + permission_edit_issue_author: Úprava autora setting_gravatar_enabled: Použitie užívateľských Gravatar ikon permission_edit_own_messages: Úprava vlastných správ permission_delete_own_messages: Mazanie vlastných správ Index: config/locales/uk.yml =================================================================== --- config/locales/uk.yml +++ config/locales/uk.yml @@ -541,6 +541,7 @@ label_feeds_access_key_created_on: "Ключ доступу RSS створений %{value} назад " label_module_plural: Модулі label_added_time_by: "Доданий %{author} %{age} назад" + label_added_time: "Доданий {value} назад" label_updated_time: "Оновлений %{value} назад" label_jump_to_a_project: Перейти до проекту... label_file_plural: Файли @@ -785,6 +786,7 @@ permission_rename_wiki_pages: Rename wiki pages permission_edit_time_entries: Edit time logs permission_edit_own_issue_notes: Edit own notes + permission_edit_issue_author: Змінити автора setting_gravatar_enabled: Use Gravatar user icons label_example: Example text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped." Index: lib/redmine.rb =================================================================== --- lib/redmine.rb +++ lib/redmine.rb @@ -78,6 +78,7 @@ map.permission :add_issue_notes, {:issues => [:edit, :update], :journals => [:new], :attachments => :upload} map.permission :edit_issue_notes, {:journals => :edit}, :require => :loggedin map.permission :edit_own_issue_notes, {:journals => :edit}, :require => :loggedin + map.permission :edit_issue_author, {} map.permission :move_issues, {:issues => [:bulk_edit, :bulk_update]}, :require => :loggedin map.permission :delete_issues, {:issues => :destroy}, :require => :member # Queries