Commit Graph

165 Commits

Author SHA1 Message Date
Jean-Philippe Lang 43e5bb75d2 Fixed: issue optimistic locking broken by r3308 (#5280).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3663 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-04-11 16:27:37 +00:00
Jean-Philippe Lang 8e3d1b694a Adds subtasking (#443) including:
* priority, start/due dates, progress, estimate, spent time roll-up to parent issues
* descendant issues tree displayed on the issue view with context menu support
* issue tree display on the gantt chart
* issue tree copy on project copy
* unlimited nesting

Defining subtasks requires the new permission 'Manage subtasks'.
Subtasks can not belong to a different project than the parent task.

Implementation is based on scoped nested sets for fast reads and updates.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3573 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-03-13 14:56:49 +00:00
Jean-Philippe Lang 899f06612a Moves the LDAP test server to a fixture.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3490 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-26 08:42:40 +00:00
Jean-Philippe Lang 7ae53845ac Adds a sample test LDAP configuration file.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3489 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-26 08:31:36 +00:00
Jean-Philippe Lang 46aa855572 Remove invalid utf8 sequences from commit comments and author name (#4773).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3466 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-20 11:24:41 +00:00
Eric Davis 7b6b147761 Added some tests for the LDAP authentication.
Includes an export of an LDAP database to use in testing.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3438 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-16 16:40:50 +00:00
Jean-Philippe Lang 541d830d2a Fixed: Project copy loses wiki pages hierarchy (#4797).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3412 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-11 19:30:53 +00:00
Jean-Philippe Lang 6c8b87fbc8 Adds a permission for exporting wiki pages.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3371 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-02-06 09:30:53 +00:00
Jean-Philippe Lang bddf3b5c2c Adds a test with Japanese keywords in a ISO-2002-JP encoded email (#4576).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3322 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-17 11:00:54 +00:00
Jean-Philippe Lang 68a4cd38f5 XML REST API for Projects (#296).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3313 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-14 20:00:17 +00:00
Jean-Philippe Lang cab99aa5ad Allow bulk edit custom fields of any type (#461).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3278 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-03 11:18:09 +00:00
Jean-Philippe Lang 04455783a7 Fixed: project copy doesn't copy group memberships (#3975).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3250 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-26 16:14:55 +00:00
Jean-Philippe Lang 8db9ecef08 Removes column opt in enumerations table.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3240 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-25 17:13:58 +00:00
Jean-Philippe Lang a54fa93b2e Adds a setting to remove incoming emails body after a delimiter (#4409).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3226 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-23 18:35:19 +00:00
Jean-Philippe Lang fce25d4488 Fixes test failure.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3213 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-21 21:03:29 +00:00
Jean-Philippe Lang 9d120c872c Fixes block reordering on my page (#2971).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3194 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-19 13:32:21 +00:00
Jean-Philippe Lang f33231181f Makes user unwatch what he can no longer view after its permissions have changed (#3589).
A rake task (redmine:watchers:prune) is also added to prune existing watchers.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3167 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-13 12:39:22 +00:00
Jean-Philippe Lang 5f8e9d7118 Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666).
Each version of a project can be shared with:
* subprojects
* projects in the project hierarchy: ancestors + descendants (needs versions management permission on the root project)
* projects in the project tree: root project + all its descendants (same as above)
* all projects (can be set by admin users only)

Notes:
* when sharing a version of a private project with others projects, its name will be visible within the other projects
* a project with versions used by non descendant projects can not be archived

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3123 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-06 10:28:20 +00:00
Jean-Philippe Lang c870a7b9ef Do not notify users that are no longer allowed to view an issue (#3589, #4263).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3121 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-03 21:28:14 +00:00
Jean-Philippe Lang 346c569f98 Fixed: "None" category issue count is empty while grouping by category (#4308).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3112 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-02 18:57:17 +00:00
Jean-Philippe Lang b9151cb3e8 Fixes a test failure.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3099 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-27 20:32:28 +00:00
Jean-Philippe Lang 43fd27fd0c Show last update datetime (last attachment added) on document list (#4232).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3095 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-26 20:12:20 +00:00
Jean-Philippe Lang 71bc44a89d Allow issue grouping by custom field (#2679).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3071 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-16 18:07:30 +00:00
Jean-Philippe Lang dfd0204052 Add view_issues permission (#3187).
A migration adds this permission to all existing roles to preserve current behaviour.
This permission controls access to issues, roadmap and changelog.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3039 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-14 12:08:47 +00:00
Jean-Philippe Lang c31411ec00 Fixes ApplicationHelper#link_to_user
* No link to a locked user page (closes #4182)
* Translate Anonymous string

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3024 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-11 10:48:54 +00:00
Jean-Philippe Lang cc684803ba Ignore emails received from the application emission address to avoid hell cycles (#4139).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3022 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-08 13:51:53 +00:00
Jean-Philippe Lang d201c54455 Adds version status to limit issue assignments (#1245).
Available version statuses are:
* open: no restriction
* locked: can not assign new issues to the version
* closed: can not assign new issues and can not reopen assigned issues

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3020 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-08 13:03:41 +00:00
Jean-Philippe Lang 3b9d8c2a72 Adds a few functional tests.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3013 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-11-07 08:44:56 +00:00
Jean-Philippe Lang 97b4e75478 Add a permission to remove issue watchers (#2450).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2977 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-25 12:11:53 +00:00
Jean-Philippe Lang 6fedbf60d5 Allow project forums copy.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2976 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-25 11:23:46 +00:00
Jean-Philippe Lang eecec44ed2 Add a test that breaks before r2967 (broken project wiki copy).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2968 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-25 10:11:06 +00:00
Eric Davis ff3d0fe4db Fixed some merge bugs. #4077
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2952 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-21 22:35:03 +00:00
Eric Davis 37d401ac58 When a specific TimeEntryActivity are change, associated TimeEntries will be
re-assigned to the correct record.

* Renamed build to create since the methods now create objects.
* Removed call to Project#save that isn't needed since objects are saved directly now.
* Wrapped the activity creation and updates in a SQL transaction so TimeEntries
  will remain in a consistent state if there is an error.
* When a Project's TimeEntryActivities are destroyed, they are now
  reassigned to the parent TimeEntryActivity.

  #4077

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2950 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-21 22:34:52 +00:00
Eric Davis 5833ba9f81 Added a Activities tab to Project Settings
* Changed Project#activities to allow getting inactive Activities also:
  * Changed the Enumeration#all named_scope to exclude project specific Activities
  * Changed the Project has_many time_entry_activities to include all by default
    and provided an #active method to filter them to active ones only
  * Split Project#activities to two methods and gave it a parameter that is used
    to determine if inactive activities are included (default is no)
* Added a reset button to delete all project specific activities.
* Added ProjectsController#reset_activities to remove the project
  specific activities
* Added a HTTP DELETE route for reset_activities
* Changed the permissions for managing project activities to have access to the
  ProjectsController#reset_activities action
* Added a way to bulk save Project specific Activities in ProjectsController
  * #save_activities will save all the changed activities, including update the
    existing records
  * Added helper methods to the controller which will be refactored later
  * Allow the same TimeEntryActivity names on different projects

  #4077

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2949 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-21 22:34:45 +00:00
Eric Davis e76d4c5c4c Added an active field track if an Enumeration is active on the frontend view.
* Changed TimelogHelper#activity_collection_for_select_options to only use
  active TimeEntryActivities.
* Changed TimelogHelper#activity_collection_for_select_options to return a blank
  option if the time_entry's current activity is inactive.

  #4077

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2946 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-21 22:34:28 +00:00
Eric Davis ac4937a767 Enumerations can now have custom fields defined on them. #4077
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2945 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-21 22:34:22 +00:00
Jean-Philippe Lang 6656d41a41 Fixes User/CustomValue association broken by r2869 (#3978).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2905 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-10-10 10:16:00 +00:00
Jean-Philippe Lang 30ad78e57d Fixed: RepositoriesController#revision may show wrong revision (#3779).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2898 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-09-20 15:20:22 +00:00
Jean-Philippe Lang 21e18c1eb4 Adds missing native eol properties.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2895 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-09-20 14:06:57 +00:00
Jean-Philippe Lang 7707457145 User groups branch merged.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2869 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-09-12 08:36:46 +00:00
Jean-Philippe Lang e10577e9ed SCM:
* Fixes file log for non-Git repositories (Repository#latest_changesets ignores path argument)
* No longer used Repository#changesets_for_path method removed

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2844 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-08-17 16:32:24 +00:00
Eric Davis c28b044d68 Added branch and tag support to the git repository viewer. (#1406)
Many thanks to Adam Soltys and everyone else who tested this patch.

* Updated git test repository so it has a branch with some differences from the master branch
* Moved redmine diff class into a module so as not to clash with diff-lcs gem which is required by grit
* Find changesets from all branches, not just master
* Got revision browsing working
* Got file actions working properly
* Allow browsing by short form of commit identifier
* Added a method to retrieve repository branches
* Allow browsing by branch names as well as commit numbers
* Handle the case where a git repository has no master branch
* Expand revision box and handle finding revisions by first 8 characters
* Added branches dropdown to repository show page
* Combined repository browse and show into a single action.  Moved branch/revision navigation into a partial.
* Renamed partial navigation -> breadcrumbs
* Made it so latest revisions list uses branch and path context
* Preserve current path when changing branch or revision
* Perform slightly more graceful error handling in the case of invalid repository URLs
* Allow branch names to contain periods
* Allow dashes in branch names
* Sort branches by name
* Adding tags dropdown
* Need to disable both branches and tags dropdowns before submitting revision form
* Support underscores in revision (branch/tag) names
* Making file history sensitive to current branch/tag/revision, adding common navigation to changes page
* Updated translation files to include labels for 'branch', 'tag', and 'view all revisions'
* Reenable fields after submit so they don't look disabled and don't stay disabled on browser back button
* Instead of dashes just use empty string for default dropdown value
* Individual entry views now sport the upgraded revision navigation
* Don't display dropdowns with no entries
* Consider all revisions when doing initial load
* Fixed bug grabbing changesets.  Thanks to Bernhard Furtmueller for catching.
* Always check the entire log to find new revisions, rather than trying to go forward from the latest known one
* Added some cleverness to avoid selecting the whole changesets table any time someone views the repository root
* File copies and renames being detected properly
* Return gracefully if no revisions are found in the git log
* Applied patch from Babar Le Lapin to improve Windows compatibility

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2840 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-08-15 22:41:40 +00:00
Eric Davis 30526d55c3 Added missing fixture file from r2837 (#3731)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2838 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-08-13 16:57:36 +00:00
Jean-Philippe Lang 6994d1c23b Actually block issues from closing when a blocking issue isn't closed (#1740).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2800 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-07-04 12:07:03 +00:00
Jean-Philippe Lang b3afde14fa Ability to accept incoming emails from unknown users (#2230, #3003).
An option lets you specify how to handle emails from unknown users:
* ignore: the email is ignored (previous and default behaviour)
* accept: the sender is considered as an anonymous user
* create: a user account is created (username/password are sent back to the user)

Permissions have to be consistent with the chosen option. Eg. if you choose 'create', the 'Non member' role must have the 'Add issues' permission so that an issue can be created by an unknown user via email. If you choose 'accept', the 'Anonymous' role must have this permission.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2789 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-06-14 14:48:34 +00:00
Eric Davis 62e58f26b0 Changed Enumerations to use a Single Table Inheritance
* Added migrations to change Enumerations to an STI relationship
* Added TimeEntryActivity model (STI)
* Added DocumentCategory model (STI)
* Added IssuePriority model (STI)
* Added Enumeration#get_subclasses to get a list of the subclasses of Enumeration
* Changed Enumeration to use the STI type field instead of the opt field
* Changed Enumeration#opt to return the old opt values but with a deprecation warning.
* Removed Enumeration::OPTIONS
* Removed the dynamic named_scopes in favor of specific named_scopes.  Kept for
  compatibility reasons.
* Added Enumeration#default so each subclass can easily find it's default record.
* Fixed Enumeration#default to use the STI scoping with a fake default scope for finding Enumeration's default.
* Added a 'all' named scope for getting all records in order by position.
* Added Deprecation warnings to the old named_scopes in Enumerations.
* Moved various methods off of Enumeration and onto the concrete classes
* Changed the EnumerationsController to use types
* Updated the Enumeration list template
* Added has_many relationships to the Enumeration STI classes.
* Fixes for tests.

  #3007

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2777 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-05-30 23:30:36 +00:00
Jean-Philippe Lang c082cfc90e FIxed: inline images not displayed in atom feeds (#3391).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2768 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-05-26 08:28:36 +00:00
Jean-Philippe Lang 8141110eb2 Ability to allow non-admin users to create projects (#1007).
This can be enabled in permissions settings. A non-admin user who creates a project is automatically added as a project member (the first role is given, TODO: make this given role configurable).
Projects can be added from the public projects list.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2750 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-05-17 12:59:14 +00:00
Jean-Philippe Lang 7dccf9fda6 Allows multiple roles on the same project (#706). Prerequisite for user groups feature.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2726 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-05-10 10:54:31 +00:00
Eric Davis fa7bd1c71d Added the ability to copy a project in the Project Administration panel.
* Added Copy project button.
* Added Project#copy_from to duplicate a project to be modified and saved by the user
* Added a ProjectsController#copy based off the add method
** Used Project#copy_from to create a duplicate project in memory
* Implemented Project#copy to copy data for a project from another and save it.
** Members
** Project level queries
** Project custom fields
* Added a plugin hook for Project#copy.

  #1125  #1556  #886  #309

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2704 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-05-03 21:25:37 +00:00