Fixed an error in IssuesControllerTest#test_index_with_query_grouped_by_tracker_in_reverse_order with SQLServer.
Links to completed versions on the roadmap page might lead to a "403 not authorized page" (#19030).
Patch by Felix Schäfer.
Adds a :copy_issues permission (#18855).
When copy is allowed, target projects are those on which the user has the :add_issues permission.
Removed :move_issues permission (#18855).
This permission was wrongly used to allow bulk issue copy. To prevent user from moving an issue to another project, the project field should now be set to read-only in the workflow permissions. A migration does this automatically for roles that have the edit_issues permission without having the move_issues permission.
Adds a specific string for blank values (#18918).
Extract grouping logic to an helper.
TimeEntry acts_as_activity_provider scope should joins(:project) (#18818).
Patch by Ondřej Ezr.
Sort helper undefined to_a for string (#18817).
Respect cross-project subtask setting on issue bulk edit form (#18711).
Raise an error if version is not found (#18983).
Allow filtering of Redmine Reminders by Version (#18983).
Patch by Merul Patel.
Make search results per page configurable (#19005).
Patch by Go MAEDA.
Show long text custom field changes as a diff (#15236).
Removed :update key and use :edit instead.
The :change_status permission was removed in r1043.
Adds support for macro and Redmine links in PDF export (#13051).
Use named route.
Link to the anchor only.
Use .klass instead of .class_name.constantize.
Memorize journal details value name to display.
Use journalized attachments to prevent a query when displaying added file.
Set :inverse_of on details association.
Don't check if attachments are editable individually.
Memorize project override roles.
Set :inverse_of option on journals association.
Fixed that group is not displayed when the first group is a boolean custom field group with "No" value (#18896).
Fixed that boolean custom field groups have same label for blank and false values (#18894).
fix code indent at app/models/repository/cvs.rb
use "where" instead of find_by_ at Repository::Cvs class
revert r13901
workaround unit cvs test failure on sqlite3
Prevents calling #truncate on nil.
Use attribute writers instead of before_create callback to normalize comments and committer (#14534).
Unlike other adapters, SQLite raises Encoding::UndefinedConversionError before the callback that reencodes attributes is called.
Upgrade to Rails 4.2.0 (#14534).
Send password reset email to the email used in lost password form (#4244).
Add support for multiple email addresses per user (#4244).
Copyright update.
Fixed: Custom field is rendered, even if its value is empty (for multiple) (#18654).
Fixed open div tag position.
Option to search open issues only (#10734).
Option to search attachment filenames and description (#4383).
Search custom fields and journals with different queries to take advantage of indexes on text columns if present.
Same fix as r13582 for trackers and statuses (#18769).
Redirect to the current page when reordering roles (#18769).
Patch by Jérôme BATAILLE.
Skip validation if attribute did not change.
Deprecates Project#set_allowed_parent!.
Fixed that project copy triggers a 500 error if project validation fails.
Cleans up parent project assignment in ProjectsController.
Moved Project#hierarchy to NestedSet::Traversing.
Replaces awesome_nested_set gem with a simple and more robust implementation of nested sets.
The concurrency tests added in this commit trigger dead locks and/or nested set inconsistency with awesome_nested_set.
remove duplicated :remote key from app/views/messages/show.html.erb
Ruby 2.2 shows warning.
remove duplicated :id key from app/views/timelog/report.html.erb
The descendant count in the issues delete confirmation message is wrong if issues share some descendants.
Preload wiki page content for search results.
Fixed duplicate content_url tag introduced in r13806 (#18707).
Allow attachment thumbnails from REST API (#18707).
Do not truncate subissue/related issues titles on the issue view (#18659).
Adds p/n access keys for previous/next links (#18692).
Send the content type as parameter when uploading a file.
Attachment content type not set when uploading attachment (#18667).
Error when adding user to group where he is already assigned (#18665).
Don't overwrite headers that were already set (#14699).
Replaced "can't" with "cannot" in error messages.
Use a CustomFieldValue instead of CustomValue.
Cache search result ids for faster search pagination (#18631).
Moved search logic to Redmine::Search (#18631).
Use logger.info? (#18605).
User detail : show user login to admins (#17354).
Removed debug stuff.
Don't use #downcase on search tokens, let the database handle it (#18537).
HTML improvements on project landing page (#18565).
Patch by Tobias Fischer.
Merged datepicker.js into application.js.
Use a simple count query.
Don't show roles without issue add/edit permission in workflow setup (#15988).
Don't consider roles without issue add/edit permissions for determining fields permissions (#15988).
Droped legacy behaviour that allows a user to edit a few attributes of an issue without the edit_issues permission if a status transition is allowed (#15988).
Now that we can control permission on each field, this behaviour is no longer needed. The edit_issues permission is now required, which is consistent with the current requirements for bulk edition.
Use projects association.
Removed unused helper.
Removed unused method.
Rewrites search engine to properly paginate results (#18631).
Instead of counting and retrieving results based on their timestamps, we now load all result ids then load the appropriate results by their ids. This also brings a 2x performance improvement as we search tokens in one of the 2 queries only.
ignore X-Autoreply mails (#15999, #13425)
Contributed by Karel Pičman.
Adds some helpers tests.
Misc tests.
Don't create a journal when creating an issue with attachments.
Don't create a journal when creating an issue.
Skip some validations if attribute did not change.
Specify the order for finding a setting.
Skip uniqueness validation when updating a setting without changing its name.
Adds methods for loading and adding settings.
Un-inline statement.
Removed dead code, Rails4 handles that in its attribute writer.
Removed unused scopes.
Typo.
Removed unused and deprecated Issue#move_to_project method.
Use :only instead of :except option in IssueRelationsController filters.
Removed unimplemented JournalsController#edit html response and added some tests.
Moved journal details generation to Journal model.