Compare commits

...
313 Commits
Author SHA1 Message Date
Toshi MARUYAMA 5cefd924a2 Merged r10689 from trunk to 2.0-stable
Partial backout r10263.

Backout replacing shoulda context of test/unit/helpers/issues_helper_test.rb.
Test methods in shoulda context do not run on Ruby 1.8.7-p370.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10695 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-10-22 03:34:29 +00:00
Toshi MARUYAMA 1d888f25f6 Merged r10688 from trunk to 2.0-stable
Backout r10253.

Backout replacing shoulda context of test/unit/helpers/issues_helper_test.rb.
Test methods in shoulda context do not run on Ruby 1.8.7-p370.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10694 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-10-22 03:34:02 +00:00
Jean-Philippe Lang 45b297f3ae Updates for 2.0.4 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10393 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-16 12:44:38 +00:00
Jean-Philippe Lang 0dc0860226 XML output broken with builder 3.0.1.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10307 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 22:34:40 +00:00
Jean-Philippe Lang 1c0ef8a0c2 Merged r10304 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10305 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 17:34:40 +00:00
Jean-Philippe Lang dd3bd9a708 Merged r10134 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10303 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 17:30:59 +00:00
Jean-Philippe Lang 9ab59b43b8 Merged r10147 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10302 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 17:30:01 +00:00
Jean-Philippe Lang e56a1c98e3 Merged r9738, r10135 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10301 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 17:28:51 +00:00
Jean-Philippe Lang 4233589ee1 Merged r10294 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10298 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-06 17:21:53 +00:00
Toshi MARUYAMA 4d325a3b8a Merged r10287 from trunk to 2.0-stable
fix redmine_plugin generator output in USAGE.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10289 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-03 17:19:25 +00:00
Toshi MARUYAMA 16e4bdbc8a Merged r10286 from trunk to 2.0-stable
fix plugin generator script name of USAGE on Rails3.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10288 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-03 17:19:10 +00:00
Toshi MARUYAMA 2558ad0845 Merged r10252 from trunk to 2.0-stable (#11752)
scm: git: use with_settings at test_diff_truncated of functional test.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10274 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:26:15 +00:00
Toshi MARUYAMA 08ce7df5ea Merged r10251 from trunk to 2.0-stable (#11752)
scm: git: use diff_max_lines_displayed setting at test_diff_with_rev_and_path of functional test.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10273 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:26:00 +00:00
Toshi MARUYAMA d9dfa7b2b6 Merged r10245 from trunk to 2.0-stable (#11752)
scm: git: add functional test of diff with revision and path.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10272 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:25:45 +00:00
Toshi MARUYAMA e573b0455b Merged r10255 from trunk to 2.0-stable
add missing fixture to test/unit/lib/redmine/safe_attributes_test.rb.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10271 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:25:28 +00:00
Toshi MARUYAMA df6da812e7 Merged r10249 from trunk to 2.0-stable
set language en to test_label_for at test/unit/query_test.rb.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10270 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:25:11 +00:00
Toshi MARUYAMA 8810a4a343 Merged r9949 from trunk to 2.0-stable
Tests should not change settings.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10269 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:24:56 +00:00
Toshi MARUYAMA cf6382b92f Merged r10256 from trunk to 2.0-stable
add missing fixtures to test/unit/lib/redmine/hook_test.rb.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10268 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:24:38 +00:00
Toshi MARUYAMA 90c44e490e Merged r10253, r10257, r10263 and r10264 from trunk to 2.0-stable
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10267 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-09-01 07:24:21 +00:00
Toshi MARUYAMA 004a98df86 Merged r10219 from trunk to 2.0-stable (#11665)
add functional test to create non default document category.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10229 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-22 08:56:52 +00:00
Toshi MARUYAMA 33bf6d60d8 Merged r10216 from trunk
add missing fixtures to test/functional/documents_controller_test.rb

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10217 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-21 04:52:01 +00:00
Toshi MARUYAMA 004ec7a251 Merged r10213 from trunk
add missing fixtures to test/unit/document_test.rb

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10214 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-21 02:23:25 +00:00
Toshi MARUYAMA 656a656697 Merged r10169 from trunk to 2.0-stable (#11600)
fix plural form of the abbreviation for hours in Brazilian Portuguese.

Contributed by Mauricio Piacentini.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10171 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-08 01:33:43 +00:00
Toshi MARUYAMA 37c7de41ce Merged r10167 from trunk to 2.0-stable
Gemfile: mocha version up 0.12.3.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10170 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-08 01:33:28 +00:00
Jean-Philippe Lang b2e095cb87 Merged r10155 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10156 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-08-02 18:23:49 +00:00
Toshi MARUYAMA 10706c5a11 Merged r10011 from trunk to 2.0-stable
Removed assertion that is susceptible to fail if test runs slowly.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10140 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-31 11:12:57 +00:00
Toshi MARUYAMA 568cce5b22 Merged r10137 from trunk to 2.0-stable (#10320, #10818)
Gemfile: prevent "rake db:migrate RAILS_ENV=test" causes exception on Ruby 1.9.3.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10138 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-31 08:17:19 +00:00
Toshi MARUYAMA 48e4facc3c Merged r10083 from trunk to 2.0-stable (#11511)
fix confirmation page has broken HTML when a project folding sub project is deleted.

Contributed by Haruka Yoshihara.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10084 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-27 00:40:57 +00:00
Toshi MARUYAMA d42a675668 Merged r10055 from trunk to 2.0-stable (#11448)
Russian translation for 1.4-stable and 2.0-stable updated by Александр Закревский.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@10056 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-20 10:05:54 +00:00
Jean-Philippe Lang 7dde34460c Merged r9984 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9999 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-15 15:56:23 +00:00
Jean-Philippe Lang 873a5cda4f Merged r9982 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9998 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-15 15:55:15 +00:00
Jean-Philippe Lang d006e357c0 Merged r9924 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9959 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:37:47 +00:00
Jean-Philippe Lang 004bc127b2 Merged r9925 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9958 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:36:31 +00:00
Jean-Philippe Lang 70d2f30e9f Merged r9909 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9957 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:35:11 +00:00
Jean-Philippe Lang 6488210ec1 Merged r9895 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9956 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:34:09 +00:00
Jean-Philippe Lang 3cc0730f54 Merged r9908 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9954 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:30:57 +00:00
Jean-Philippe Lang 4491d483f4 Merged r9896 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9953 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:29:27 +00:00
Jean-Philippe Lang a6252e6c6f Merged r9894 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9952 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:27:56 +00:00
Jean-Philippe Lang ba074d776b Merged r9875 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9950 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-08 12:24:49 +00:00
Toshi MARUYAMA bf9aea9a15 Merged r9911 from trunk to 2.0-stable (#11328)
Fix Japanese mistranslation for 'label_language_based'.

Contributed by Go MAEDA.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9913 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-07-05 12:36:41 +00:00
Toshi MARUYAMA 7fe9dac8c5 Merge r9871 from trunk
fix test_global_index of functional activities controller test fails around UTC 00:00.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9873 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-19 02:11:16 +00:00
Toshi MARUYAMA 711328d172 Merge r9870 from trunk
scm: git: fix unable to run unit lib test if git binary is not available on Windows.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9872 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-19 02:10:55 +00:00
Jean-Philippe Lang 342b3302cf Merged r9864 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9865 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-18 18:45:14 +00:00
Jean-Philippe Lang 32e3d6e1b1 Merged r9861 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9862 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-18 18:34:01 +00:00
Jean-Philippe Lang 8d2d46bd8e Merged r9858 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9859 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-18 18:17:49 +00:00
Toshi MARUYAMA 7f03576b8d Merged r9853 from trunk (#10688)
fix PDF export tables problems.

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9854 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 13:10:48 +00:00
Toshi MARUYAMA e757600b39 Merge r9750 from trunk
scm: git: skip Latin-1 path tests on Git for Windows above 1.7.10

Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10.
http://code.google.com/p/msysgit/issues/detail?id=80

So, Latin-1 path tests fail on Japanese Windows.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9851 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 10:52:18 +00:00
Jean-Philippe Lang 68560c13fe Merged r9830 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9848 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 09:02:24 +00:00
Jean-Philippe Lang 309f7b75fd Merged r9837 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9846 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 08:59:42 +00:00
Jean-Philippe Lang dbb93692ff Merged r9836 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9845 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 08:58:20 +00:00
Jean-Philippe Lang 5f6289d6be Merged r9831 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9843 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 08:56:11 +00:00
Jean-Philippe Lang 081ee54bee Merged r9822 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9840 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 08:52:40 +00:00
Jean-Philippe Lang 1d0fb85179 Merged r9796 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9839 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-17 08:51:04 +00:00
Etienne Massip 887e7f8647 Merged r9832 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9834 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-14 21:09:56 +00:00
Toshi MARUYAMA df05edff3d Merged r9814 from trunk
fix test_user_index of activities controller test fails at Japanese morning and afternoon.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9818 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-11 06:56:11 +00:00
Jean-Philippe Lang 67057ea3e9 Merged r9798 to r9801 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9802 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-10 13:39:42 +00:00
Jean-Philippe Lang 381e7156c2 Merged r9782, r9784, r9794 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9795 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-09 14:19:13 +00:00
Jean-Philippe Lang f9ee57f2c1 Merged r9781 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9793 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-09 13:58:40 +00:00
Jean-Philippe Lang fc13aef5bb Merged r9785 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9792 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-09 13:56:56 +00:00
Jean-Philippe Lang 4973350243 Merged r9783 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9789 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-09 13:45:55 +00:00
Jean-Philippe Lang fcbb8acdb7 Merged r9786 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9788 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-09 13:44:32 +00:00
Toshi MARUYAMA d79258f17f Merged r9777 from trunk (#11113)
fix German "field_multiple" translation glitch by Andreas Deininger.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9778 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-08 07:49:16 +00:00
Jean-Philippe Lang c4736ed42b Merged r9770 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9771 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-05 17:19:37 +00:00
Jean-Philippe Lang 47fb2eb998 Merged r9768 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9769 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-05 17:11:06 +00:00
Jean-Philippe Lang e9813791cb Merged r9759 to r9764.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9766 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-03 16:32:21 +00:00
Jean-Philippe Lang 5f23ebc31c Merged r9755 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9756 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-03 08:50:26 +00:00
Jean-Philippe Lang b88c95b0fb Merged r9740 and r9741 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9753 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-03 08:10:00 +00:00
Jean-Philippe Lang 93d8f99884 Merged r9742 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9751 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-06-03 08:07:07 +00:00
Toshi MARUYAMA 07edb10518 Merged r9734 from trunk (#11032)
fix project list is not shown on Email notifications.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9739 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-28 10:31:19 +00:00
Jean-Philippe Lang 0512a30368 Updates for 2.0.1 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9732 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-28 07:24:38 +00:00
Jean-Philippe Lang bc945d78a6 Merged r9719, r9726, r9727 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9729 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-27 19:39:26 +00:00
Jean-Philippe Lang 8cd0626075 Merged r9701 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9728 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-27 19:25:30 +00:00
Jean-Philippe Lang 035bd65a5a Merged r9710 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9725 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:50:51 +00:00
Jean-Philippe Lang 955d2b134d Merged r9711 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9724 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:50:01 +00:00
Jean-Philippe Lang 743b55a3f9 Merged r9718 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9723 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:49:19 +00:00
Jean-Philippe Lang 881595f7f0 Merged r9712 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9722 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:48:37 +00:00
Jean-Philippe Lang 7f51bab0fc Merged r9709 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9721 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:47:48 +00:00
Jean-Philippe Lang 84d5092508 Merged r9699 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9720 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-26 09:40:31 +00:00
Jean-Philippe Lang 352d177f7e Merged r9703 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9706 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-21 19:00:26 +00:00
Jean-Philippe Lang 821ea2a757 Merged r9702 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9705 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-21 18:59:31 +00:00
Jean-Philippe Lang 7cd7b1bd8b Merged r9700 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9704 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-21 18:58:29 +00:00
Jean-Philippe Lang cf139e25a7 Merged r9696 from trunk. Updates for 2.0.0 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9697 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-14 22:19:13 +00:00
Jean-Philippe Lang 8b09f5d27d Set version to stable.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9695 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-14 17:02:27 +00:00
Jean-Philippe Lang d138df5241 Added 2.0-stable branch.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9694 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-14 16:48:29 +00:00
Jean-Philippe Lang 034539c988 CHANGELOG updated.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9691 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 19:08:25 +00:00
Jean-Philippe Lang 48c28f717d Removed delete_broken_cookies filter.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9689 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 11:26:21 +00:00
Jean-Philippe Lang 23a06ec022 Restored List-Id header in email notifications (#10888).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9687 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 10:44:41 +00:00
Jean-Philippe Lang 4f0aa2432c Fixes custom_field_tag helper broken by r9682.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9686 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 10:21:24 +00:00
Jean-Philippe Lang 426b1d6fcd Fixed that option tags are escaped.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9683 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 09:00:26 +00:00
Jean-Philippe Lang 478a549356 Use content_tag helper.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9682 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 08:47:54 +00:00
Jean-Philippe Lang 69e55fb1ef Fixed that enumerations option tags are escaped.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9681 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 08:45:15 +00:00
Jean-Philippe Lang 46400e355e Use content_tag helper.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9680 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 08:42:19 +00:00
Jean-Philippe Lang dc7569ecae Fixed that group filter is escaped on users index.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9679 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 08:38:35 +00:00
Jean-Philippe Lang 7c97832002 Redirect to referer when deleting a user (#10865).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9678 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-13 08:33:55 +00:00
Jean-Philippe Lang 46e48ad3f7 Updated INSTALL and UPGRADING docs with new rake task (#10891).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9677 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 13:14:53 +00:00
Jean-Philippe Lang a59257dfb6 Fixed #set_scm in reposman (#10837).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9675 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 12:54:46 +00:00
Jean-Philippe Lang 9382d856b4 Adds script synopsis.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9674 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 12:50:15 +00:00
Jean-Philippe Lang 30d2bed1fe Fixed reposman arguments parsing (#10837).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9673 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 12:47:51 +00:00
Jean-Philippe Lang a99c61b471 Adds all/none operators to text custom field filters (#9790).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9671 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 12:23:20 +00:00
Jean-Philippe Lang 1d677ac968 Restored :generate_session_store as a deprecated rake task (#10891).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9670 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-12 07:48:21 +00:00
Toshi MARUYAMA 1ccc975f3f set svn:eol-style native to Albanian translation files (#10875)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9667 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-11 04:33:01 +00:00
Toshi MARUYAMA dca52d6729 Albanian translation added by Dimitri Toslluku (#10875)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9666 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-11 04:25:43 +00:00
Jean-Philippe Lang 1831861eac Tests for Setting.per_page_options_array.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9665 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-10 18:53:32 +00:00
Jean-Philippe Lang 5bd90548b0 Adaptive display of "Per page" links (#7720).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9664 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-10 18:51:11 +00:00
Toshi MARUYAMA 0bb937152b change mailer model method comments to Rails3 style
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9663 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 15:14:45 +00:00
Toshi MARUYAMA 804864beca replace Mailer deliver syntax to Rails3 style at reminders method of mailer model
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9662 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 15:14:30 +00:00
Toshi MARUYAMA 2ed78d95f6 code layout cleanup app/views/wiki/edit.html.erb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9661 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 14:18:53 +00:00
Toshi MARUYAMA 678469cf09 additional comment at config/environments/test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9660 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 13:58:59 +00:00
Toshi MARUYAMA 11746c44f8 set svn:executable '*' to script/*
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9659 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 13:10:04 +00:00
Toshi MARUYAMA 411f0874ab replace comment "config/environment.rb" to "config/application.rb" at head of config/environments/*.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9658 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 12:04:10 +00:00
Toshi MARUYAMA 0ba0a7bcc9 remove commented out Rails2 including from lib/redmine/hook.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9657 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-09 10:50:10 +00:00
Jean-Philippe Lang ddfb2315aa Replaced "Allow users to unsubscribe" with "Allow users to delete their own account" (#10787).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9654 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-08 11:03:45 +00:00
Jean-Philippe Lang 1ad003dcc7 Fixed that REST Uploads fail with fastcgi (#10832).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9652 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-08 10:11:09 +00:00
Jean-Philippe Lang 7b6d11ed6a Removed comments.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9651 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-07 17:24:20 +00:00
Jean-Philippe Lang 04fe0412e1 Use optparse instead rdoc/usage in rdm-mailhandler (#10837).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9650 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-07 17:23:30 +00:00
Jean-Philippe Lang 03e9c51776 Formatting.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9649 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-06 21:18:31 +00:00
Jean-Philippe Lang 3710bbfda1 Use optparse instead rdoc/usage in reposman (#10837).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9648 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-06 21:16:54 +00:00
Jean-Philippe Lang df7ddf5c0e Use uppercase NAME and VERSION environment variables for plugin migration tasks (#10838).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9647 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-06 21:03:30 +00:00
Toshi MARUYAMA 31d2d1284a remove redundant code from app/models/mail_handler.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9646 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-06 13:50:30 +00:00
Jean-Philippe Lang f6882cd69e Stub Mailer with mocha.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9645 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-06 08:43:44 +00:00
Jean-Philippe Lang 18852b765a Trackers should be sorted by position not by name.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9644 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 16:21:22 +00:00
Jean-Philippe Lang ee8dcab9db Fixed that activities option tags on the time entry bulk edit form are escaped.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9643 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 16:09:27 +00:00
Toshi MARUYAMA 02f704bb01 add Copyright statement to test/integration/repositories_git_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9642 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 14:48:45 +00:00
Toshi MARUYAMA f08b648cce fix error of AdminControllerTest test_test_email_failure_should_display_the_error
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9641 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 14:34:16 +00:00
Jean-Philippe Lang 19e56045dd Fixed deprecated render calls in Mailer.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9640 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 13:21:58 +00:00
Jean-Philippe Lang 6fc909a402 Adds a deprecation warning to Mailer.deliver_*.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9639 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 13:17:18 +00:00
Toshi MARUYAMA 7af8d7caf0 replace Mailer deliver syntax to Rails3 style
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9638 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 13:07:12 +00:00
Jean-Philippe Lang e876d1bfc0 Changes RedMine to Redmine in copyright notices.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9637 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 13:02:45 +00:00
Jean-Philippe Lang ba5a052c8c Copyright update.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9636 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 12:56:53 +00:00
Toshi MARUYAMA 6e7eadf9fb move unit mailer test last_email method to the bottom and change to private
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9635 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 12:20:18 +00:00
Toshi MARUYAMA 5ce2987ea9 add missing fixture to test/unit/mailer_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9634 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 12:20:01 +00:00
Jean-Philippe Lang a3c25c18d7 Code cleanup, reuse the visible scope.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9633 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 09:54:50 +00:00
Jean-Philippe Lang 61a1fa1b6e Do not trigger model validations when rebuilding the nested set (#10829).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9632 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 09:39:38 +00:00
Jean-Philippe Lang 1ab261dda6 Use Mail instead of TMail in MailHandler.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9630 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 09:19:23 +00:00
Toshi MARUYAMA 255a84878d svn propset "svn:eol-style" native test/integration/repositories_git_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9629 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 05:34:17 +00:00
Toshi MARUYAMA 6bcbdd44fc route: scm: fix diff of two revisions
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9628 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 05:29:58 +00:00
Toshi MARUYAMA 66d62504ef test: route: scm: move changes action tests to non revisions path tests
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9627 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 05:29:43 +00:00
Toshi MARUYAMA 17d19febc6 fix typo of integration users test
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9626 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 05:29:28 +00:00
Toshi MARUYAMA b0414ec1fb route: scm: split entry and raw actions
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9625 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-05 01:01:29 +00:00
Toshi MARUYAMA 569e1b37cc model: convert news finder to Rails3 syntax
Contributed by Felix Schäfer.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9624 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 23:35:29 +00:00
Toshi MARUYAMA bef28f7dab test: switch to Rails3 Active Record syntax at test_destroy of unit/repository_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9623 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 23:07:10 +00:00
Toshi MARUYAMA 49fc255b48 test: switch to Rails3 Active Record syntax at unit/query_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9622 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 23:06:47 +00:00
Toshi MARUYAMA 6c6467879a scm: fix revision graph left padding
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9621 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 17:07:38 +00:00
Jean-Philippe Lang 9f396a6dfb Fixed undefined method `<=>' for nil:NilClass when sorting repositories with nil identifiers (#10827).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9619 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 16:57:15 +00:00
Toshi MARUYAMA ad8193dcde fix label_for_field of LabelledFormBuilder always has class="error" in label tag
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9618 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-04 14:33:35 +00:00
Toshi MARUYAMA b4350ca91a route: scm: fix git and mercurial changes action
If branch name has special character, "View revisions" link has route error.
For example, Redmine Mercurial hgsubversion mirror has "../sandbox/rails-3.2" named branch.

Git default branch of bare repository is defined at HEAD.
In most cases, it is *master*.
Mercurial GUI standard behavior is showing all revisions on top page.
So, Redmine default branch is *nil*.
Mercurial top page "View revisions" link has route error.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9617 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-03 14:49:29 +00:00
Toshi MARUYAMA 2c28d6b5d1 scm: git: fix creating and updating repository
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9616 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-03 11:48:33 +00:00
Jean-Philippe Lang 36ee2b24bd Load rake tasks from Redmine plugins (#10816).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9615 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-02 16:30:16 +00:00
Jean-Philippe Lang d2278b63a1 Fixed path for loading plugin Gemfile (#10811).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9614 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-02 16:20:32 +00:00
Toshi MARUYAMA d658ab22d6 scm: fix broken main repository 'root' link
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9613 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-02 15:58:03 +00:00
Toshi MARUYAMA 1446c9b7f0 scm: fix git and mercurial branch list box action
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9612 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-02 13:19:16 +00:00
Toshi MARUYAMA 9be6dfbe10 code layout clean up test/integration/routing/repositories_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9611 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-02 13:18:56 +00:00
Jean-Philippe Lang 38011c0fb1 Fixed error on commits per month graph (#10806).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9610 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 21:12:47 +00:00
Jean-Philippe Lang d1372107e5 Updated test for r9608.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9609 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 18:01:21 +00:00
Jean-Philippe Lang c085367bb6 Adds css class to custom field input tags.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9608 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 16:50:42 +00:00
Jean-Philippe Lang bebe429472 Fixed the path displayed in error message.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9605 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 15:50:16 +00:00
Jean-Philippe Lang 0491488554 Updates dispatch.fcgi.example to work with Rails3 and removes CGI handlers.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9604 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 15:48:46 +00:00
Jean-Philippe Lang 785825900a Adds environment information display to /admin/info.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9603 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 14:49:53 +00:00
Toshi MARUYAMA 017d974dd8 remove trailing white-spaces from test/unit/mailer_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9602 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 12:45:39 +00:00
Jean-Philippe Lang 5b680625c1 Adds a simple script/about.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9601 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 11:41:15 +00:00
Jean-Philippe Lang 6fca028905 Make sure we don't boot with plugins in vendor/plugins.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9600 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 10:42:25 +00:00
Jean-Philippe Lang b097a1753e Let redmine:plugins:assets mirror a single plugin assets with name=.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9599 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 10:25:22 +00:00
Jean-Philippe Lang f54ecfc55f Fixed that sidebar with hook content only should not be hidden.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9598 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 10:19:06 +00:00
Jean-Philippe Lang 45093230a9 Adds deprecated tasks for plugins migration.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9597 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 09:02:34 +00:00
Toshi MARUYAMA f4b9d2a7ee route: remove duplicate repository committers
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9596 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 05:08:07 +00:00
Toshi MARUYAMA e1920cc9e4 recovery base.html.erb "call_hook :view_layouts_base_sidebar" changed in Rails3 r9528
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9595 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-05-01 03:58:53 +00:00
Jean-Philippe Lang f10fed295a Fixed generated shebang in script/rails.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9594 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-30 18:52:19 +00:00
Toshi MARUYAMA 0fcc82482e Simplified Chinese translation updated (#10800)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9591 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-30 13:10:42 +00:00
Toshi MARUYAMA ee4928d17c remove trailing white-spaces from lib/tasks/ciphering.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9590 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:26:54 +00:00
Toshi MARUYAMA 8a67fe30af remove trailing white-spaces from lib/tasks/deprecated.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9589 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:26:26 +00:00
Toshi MARUYAMA db9a2c1c58 remove trailing white-spaces from lib/tasks/ci.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9588 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:25:40 +00:00
Toshi MARUYAMA 767a057333 remove trailing white-spaces from lib/tasks/redmine.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9587 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:25:07 +00:00
Toshi MARUYAMA 30ceec20a6 remove trailing white-spaces from lib/tasks/reminder.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9586 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:24:34 +00:00
Toshi MARUYAMA 910cb8ff06 replace tabs to spaces at lib/tasks/migrate_from_mantis.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9585 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 13:23:59 +00:00
Toshi MARUYAMA 6a1a4e006d remove trailing white-spaces from lib/tasks/migrate_from_mantis.rake
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9584 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 12:21:18 +00:00
Jean-Philippe Lang d2378ea641 Don't send test email asynchronously.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9583 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 10:09:39 +00:00
Jean-Philippe Lang 8d17242b82 Fixed task redmine:email:test broken by r9080.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9582 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 10:04:25 +00:00
Jean-Philippe Lang 1e491c0bfd Makes migrate_from_mantis compatible with Rails3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9581 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 09:49:02 +00:00
Jean-Philippe Lang fb8ca0d2f8 Makes migrate_from_trac compatible with Rails3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9580 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 09:19:08 +00:00
Jean-Philippe Lang d8c70d7a11 Fixed openid redirect.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9579 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 08:48:50 +00:00
Jean-Philippe Lang 253b02bd22 Adds an id to the flash message divs (#9034).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9578 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 08:25:50 +00:00
Jean-Philippe Lang 99cfca6f83 Adds assertions for r9572.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9577 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 07:47:58 +00:00
Jean-Philippe Lang 6143d119fe Merged #merge! calls.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9576 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 07:42:48 +00:00
Jean-Philippe Lang 0162222bb2 Tests broken by r9573.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9575 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 07:34:57 +00:00
Toshi MARUYAMA ab92280a7f view: labelled_remote_form_for: equals sign mandatory to print blocks and use :as
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9574 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 04:08:59 +00:00
Toshi MARUYAMA c0891e8a78 helper: replace remote_form_for to form_for at labelled_remote_form_for
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9573 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 04:08:44 +00:00
Toshi MARUYAMA f624d01fd8 view: labelled_form_for: equals sign mandatory to print blocks and use :as
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9572 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 02:47:36 +00:00
Toshi MARUYAMA 4b2fc90431 view: remote_form_for: equals sign mandatory to print blocks and replace to form_for and use :remote => true and :as
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9571 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-29 02:43:42 +00:00
Jean-Philippe Lang 49b28fca68 Clean up custom field format definition.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9570 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 16:19:32 +00:00
Jean-Philippe Lang 1e3e23d756 RecordNotFound exception still raised with Rails3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9569 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 13:00:16 +00:00
Jean-Philippe Lang 68d5af3dd8 Set the default session store.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9568 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 12:26:24 +00:00
Jean-Philippe Lang bceaf8be94 Let the secret token be set in configuration.yml.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9567 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 12:00:45 +00:00
Jean-Philippe Lang 52986e8cd1 Displays an explicit message when trying to start Redmine with an old session_store.rb.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9566 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 11:48:34 +00:00
Jean-Philippe Lang 10c0634413 Removed /vendor/plugins directory. Redmine plugins should be dropped in /plugins now.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9565 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 11:34:52 +00:00
Jean-Philippe Lang e4a9ce6db0 Code cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9564 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 11:20:13 +00:00
Jean-Philippe Lang 584fbc8f8b Fix no longer required with Rails 3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9563 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 11:14:16 +00:00
Jean-Philippe Lang 5985713335 Restores plugin assets mirroring on startup, but it can now be disabled in configuration.yml.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9561 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 11:07:59 +00:00
Jean-Philippe Lang 68f8470d4a Makes image_tag pick the image from the current theme if it exists.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9560 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 09:47:09 +00:00
Jean-Philippe Lang da43f785be Adds support for :plugin option to image_tag helper.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9559 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 09:18:12 +00:00
Jean-Philippe Lang 03335d014c Restores support for :plugin support to stylesheet_link_tag and javascript_include_tag helpers.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9558 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-28 09:10:46 +00:00
Jean-Philippe Lang f12942ff40 Make sure that "today" does not change during tests.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9557 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 23:53:34 +00:00
Jean-Philippe Lang c7d78ef094 Fixed gantt_test, Date.today and 0.day.from_now may not be the same depending on time and time zone.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9556 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 23:50:56 +00:00
Toshi MARUYAMA 5909b00a46 Gemfile: pin shoulda version
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9555 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 22:52:05 +00:00
Jean-Philippe Lang ee0d4a12a3 Adds a message for when assertion fails.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9554 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 21:08:34 +00:00
Jean-Philippe Lang 705b6b16a5 Fixed that hr.yml and pt-BR.yml cannot be loaded with ruby-1.9.3-p194-i386-mingw32.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9553 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 21:07:57 +00:00
Jean-Philippe Lang 301e0386f5 Reverts r9547 that breaks 2 tests.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9552 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 17:04:37 +00:00
Jean-Philippe Lang a97e2593af Added config/additional_environment.rb to svn:ignore (#10778).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9551 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:36:24 +00:00
Jean-Philippe Lang f2ec23d80c set_table_name deprecated.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9550 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:31:51 +00:00
Jean-Philippe Lang d940797aa7 set_table_name and set_locking_column are deprecated.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9549 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:28:35 +00:00
Toshi MARUYAMA d2f779d6e8 remove trailing white-spaces from config/routes.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9548 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:17:31 +00:00
Toshi MARUYAMA 8047a8cd28 route: use constraints for repositories ":format => 'raw'" and :action
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9547 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:17:17 +00:00
Toshi MARUYAMA dd23e07111 route: add constraints to repositories which are lost in Rails3 route
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9546 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 16:17:03 +00:00
Toshi MARUYAMA d7e14cb7b7 Bulgarian translation (jstoolbar) updated by Ivan Cenov (#10785)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9543 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 11:44:38 +00:00
Toshi MARUYAMA 882d46661e Estonian translation updated by Heigo Toom (#10782)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9542 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 03:33:39 +00:00
Toshi MARUYAMA 6fcea5ef9d scm: git: fix test revision value of unit lib test
Hash value range is from 0 to 9 and a to f

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9541 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 01:33:04 +00:00
Toshi MARUYAMA d19a7dee42 add fixtures to test/unit/lib/redmine/helpers/gantt_test.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9540 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-27 00:55:37 +00:00
Toshi MARUYAMA 6f8d7d6e76 remove Rails2 named_scope wrapper from config/initializers/10-patches.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9539 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 23:51:40 +00:00
Toshi MARUYAMA bf4d779ea2 replace Rails2 "named_scope" to Rails3 "scope" at lib/plugins/acts_as_watchable/lib/acts_as_watchable.rb
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9538 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 23:51:25 +00:00
Toshi MARUYAMA d0d01d4e70 model: replace Rails2 "named_scope" to Rails3 "scope"
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9537 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 23:51:10 +00:00
Jean-Philippe Lang 71649ba2f1 Removed #utf8nize! that is no longer used with Rails 3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9536 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 20:11:10 +00:00
Jean-Philippe Lang 79091382cc Removed tzinfo gem requirement.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9535 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 18:28:41 +00:00
Jean-Philippe Lang cb16661d36 Removes the XML declaration that breaks the parser with JRuby.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9534 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 17:57:49 +00:00
Jean-Philippe Lang 8d73ddf73f Moved Rails plugins required by the core to lib/plugins.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9533 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 17:23:24 +00:00
Jean-Philippe Lang 26868d8b14 Port async delivery methods to Rails 3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9532 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 16:55:53 +00:00
Jean-Philippe Lang abdcd7d705 Removed Rails 2.3 patch for ruby1.9.3.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9531 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-26 16:31:50 +00:00
Jean-Philippe Lang 6d41de61a5 Do not sanitize escaped text in NullFormatter.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9530 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-25 19:49:26 +00:00
Jean-Philippe Lang d15ab86459 Manually generates the javascript that prototype_helper fails to do with ruby1.9.2.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9529 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-25 18:17:00 +00:00
Jean-Philippe Lang 5e57a1a9d9 Merged rails-3.2 branch.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9528 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-25 17:17:49 +00:00
Toshi MARUYAMA 34e20c4373 Swedish translation updated by Nicklas Holm (#10750)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9523 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-24 09:44:56 +00:00
Toshi MARUYAMA 70d98acf9a Japanese translation updated by Go MAEDA (#10745)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9520 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-24 07:27:58 +00:00
Toshi MARUYAMA 215f4adcd7 Traditional Chinese translation updated by ChunChang Lo (#10733)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9509 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-23 08:33:33 +00:00
Jean-Philippe Lang ccf37f59a9 Methods moved.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9473 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 12:47:50 +00:00
Jean-Philippe Lang 0fad78f53f Removed Query.generate_default! helper.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9472 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 12:46:43 +00:00
Jean-Philippe Lang 2e3bf71e9a Removed #generate_with_protected helper methods.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9471 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 12:45:13 +00:00
Jean-Philippe Lang 95f9246a46 Renamed object_daddy_helper and removed exemplars.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9470 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 11:58:05 +00:00
Jean-Philippe Lang b960470d78 Removed object_daddy dependency.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9469 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 11:56:47 +00:00
Jean-Philippe Lang 4a3f038595 Use create!.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9468 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 08:42:32 +00:00
Jean-Philippe Lang 1c31e32df7 No need to save journal details.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9467 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 08:26:45 +00:00
Jean-Philippe Lang 4598c64ebd Additional tests for IssuesHelper#show_detail.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9466 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 08:24:39 +00:00
Jean-Philippe Lang 9305c84093 Reverted r9464 that broke a test. Project identifiers or ids can be used as parameters.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9465 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 07:19:45 +00:00
Toshi MARUYAMA 72ab3e22b1 Rails3: use Project.visible.find_by_identifier instead of .find for adding watchers dialog on new issue
On Rails 3.0.12, find_project method returns render_404

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9464 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 04:01:04 +00:00
Toshi MARUYAMA e95ab31983 Rails3: helper: html_safe for watchers_checkboxes in WatchersHelper
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9463 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-22 02:57:39 +00:00
Toshi MARUYAMA fcbeee78c1 Rails3: view: html_safe for principals_options_for_select in ApplicationHelper
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9462 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-21 01:44:38 +00:00
Jean-Philippe Lang 306af1d017 Updates for 1.4.1 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9459 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-20 09:59:51 +00:00
Jean-Philippe Lang 5a35c5b2e2 Fixed that date range fields don't get enabled when using the calendar popup (#8574).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9452 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 12:26:19 +00:00
Jean-Philippe Lang b3bddcd31f Load Gemfile.local with absolute path.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9450 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 09:22:55 +00:00
Jean-Philippe Lang b0f35a3cde Fixed that users with different case logins cannot update their accounts (#10711).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9449 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 08:42:07 +00:00
Jean-Philippe Lang 62eb536e32 Additional test for MailHandler.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9448 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 08:26:53 +00:00
Jean-Philippe Lang 67f90df175 Additional test for memberships API.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9447 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 08:18:27 +00:00
Jean-Philippe Lang c88fbfbdad Additional tests for Principal scopes.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9446 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 08:01:28 +00:00
Jean-Philippe Lang 424a70978e Additional tests for the PDF export of an issue.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9445 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 07:58:02 +00:00
Jean-Philippe Lang 24e6dbc709 Updated ru and uk locales (#10664).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9444 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 07:25:32 +00:00
Jean-Philippe Lang d856e62ccf Fixed that "Create and continue" buttons are broken by r9391 (#10675).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9442 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-19 07:17:48 +00:00
Jean-Philippe Lang 143c29d8e1 Additional test for TrackersController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9441 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 19:49:10 +00:00
Jean-Philippe Lang f79961f1c5 Additional tests for TimelogController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9440 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 19:42:18 +00:00
Jean-Philippe Lang 327a74b406 Additional test for Tracker model.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9439 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 19:33:29 +00:00
Jean-Philippe Lang 864054c005 Additional test for MyController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9438 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 19:30:08 +00:00
Jean-Philippe Lang 6f71a508eb Additional tests for CustomFieldsController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9437 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 19:25:54 +00:00
Toshi MARUYAMA 7366fb23bb fix typo of German "text_account_destroy_confirmation" (#10693, #10664)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9433 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 13:15:56 +00:00
Jean-Philippe Lang 0a4a49992e Removed invalid css property.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9431 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 12:05:00 +00:00
Jean-Philippe Lang 2cc294aa27 Fixed that textile nested lists are not properly closed in output (#10642).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9430 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-18 12:00:54 +00:00
Toshi MARUYAMA ee559c6820 German translation changed by Hannes Meier (#10693)
* mail_body_account_information_external
* label_overall_activity
* label_send_information

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9427 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-17 23:47:38 +00:00
Toshi MARUYAMA 2581d00c69 German translation for #10664 updated by Hannes Meier (#10693)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9426 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-17 23:47:06 +00:00
Toshi MARUYAMA 41b986db06 German translation for 1.4.0 updated by Hannes Meier (#10693)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9425 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-17 23:46:43 +00:00
Toshi MARUYAMA b949d49ed3 Bulgarian translation updated by Ivan Cenov (#10671, #10664)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9424 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-16 08:05:18 +00:00
Jean-Philippe Lang f529cdddb3 Cleanup in rake scripts.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9423 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:57:35 +00:00
Jean-Philippe Lang 147f717c86 Adds a rake task to remove expired tokens: redmine:tokens:prune.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9422 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:56:58 +00:00
Jean-Philippe Lang 0cb633c688 Adds new strings to locales.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9421 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:47:25 +00:00
Jean-Philippe Lang c7149f4184 Fixed that Token.destroy_expired destroys API tokens.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9420 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:44:51 +00:00
Jean-Philippe Lang 24c361eb0a Fixed that rss key is generated twice when user is not reloaded (#10668).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9419 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:34:14 +00:00
Jean-Philippe Lang 9817e1d744 Additional test for Watcher.prune.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9418 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 15:13:28 +00:00
Jean-Philippe Lang 28f0c4f131 Adds the ability for users to delete their own account (#10664). Can be disabled in application settings.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9417 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-15 14:31:54 +00:00
Jean-Philippe Lang 638583012a French local update.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9412 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-14 08:07:56 +00:00
Jean-Philippe Lang 55ea557fe8 Note about the mysql2 adapter in database.yml.example.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9409 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-14 06:51:16 +00:00
Jean-Philippe Lang 552ed9693e Updated trunk CHANGELOG.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9406 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-14 06:31:33 +00:00
Jean-Philippe Lang 231282ddcb Fixed MissingFeatureException: let user choose to copy attachments or not when bulk copying issues.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9405 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-14 06:21:03 +00:00
Jean-Philippe Lang 09375960d6 When copying issues, let the status be changed to default or left unchanged.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9404 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-14 05:45:16 +00:00
Jean-Philippe Lang 354e09811b Removed deprecated accept_key_auth methods.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9392 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-13 19:40:18 +00:00
Jean-Philippe Lang 43c677b489 Disable submit buttons when submitting a form (#6555).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9391 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-13 17:01:46 +00:00
Jean-Philippe Lang 4edc30d157 Ignore emails with Auto-Submitted: auto-replied header (#10607).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9390 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-13 16:55:04 +00:00
Etienne Massip dd8d8e0560 Updated CodeRay to 1.0.6.
Fixed multiline comments highlighting issue in file view (#7495).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9389 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-12 17:54:55 +00:00
Jean-Philippe Lang de0689d4f4 Makes time syntax case insensitive (#10635).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9387 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-11 17:37:13 +00:00
Jean-Philippe Lang 1511b1435a Additional assertions on creation of relations.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9385 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-11 17:27:11 +00:00
Jean-Philippe Lang 12b71ebc8e Strip issue id when adding a relation.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9384 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-11 17:25:05 +00:00
Jean-Philippe Lang 04e7b18869 Fixed that export links include page parameter.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9382 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-11 17:02:21 +00:00
Jean-Philippe Lang d88ffd11e2 CSV export breaks custom columns (#10168).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9381 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-09 21:32:54 +00:00
Jean-Philippe Lang e4ba838c6b Fixed that rake redmine:send_reminders fails if an issue is assigned to a group (#10555).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9380 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-09 20:23:36 +00:00
Jean-Philippe Lang 269e9057dd Fixed that "Default administrator account changed" is always true (#10622).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9379 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-09 15:53:48 +00:00
Jean-Philippe Lang ea307619be Fixed that improper statuses are proposed when changing status before tracker on the issue form (#10619).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9378 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-09 09:39:27 +00:00
Jean-Philippe Lang 6d62ab64e6 Upgrade required pg gem (#6941).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9374 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 21:10:02 +00:00
Jean-Philippe Lang 78dd564a82 Disable IE 8 compatibility mode (#10128).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9372 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 20:13:38 +00:00
Jean-Philippe Lang d2cb9d5289 Adds missing route to project search.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9371 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 20:06:53 +00:00
Jean-Philippe Lang d427d8e567 Reverted r9368.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9370 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 19:29:26 +00:00
Jean-Philippe Lang e436285b6f Slight changes to the plain text issue notification.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9369 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 19:25:26 +00:00
Jean-Philippe Lang 1334cbf78c Adds double quotes around issue change details in plain text notifications (#10603).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9368 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-08 17:30:08 +00:00
Jean-Philippe Lang fde9c7315a Fixed: reminder mails are not sent when delivery_method is :async_smtp (#5058).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9367 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 18:57:05 +00:00
Jean-Philippe Lang cfb06a2607 Additional test for gzipped wiki history.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9366 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 17:53:25 +00:00
Jean-Philippe Lang 5e4bb16a7f Additional tests for WatchersController.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9365 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 16:55:53 +00:00
Jean-Philippe Lang 2e240103f3 Code cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9364 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 16:53:12 +00:00
Jean-Philippe Lang 18270ee587 Code cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9363 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 16:51:10 +00:00
Jean-Philippe Lang eabbab6e2b Adds assertions on the content of a versioned wiki page export (#6941).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9362 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 15:31:06 +00:00
Jean-Philippe Lang d25defe276 Adds assertions on the content of a wiki page export (#6941).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9361 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 14:09:15 +00:00
Jean-Philippe Lang ab28a55b4e Fixed test_show_with_permission_should_display_the_new_message_form broken by r9351.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9359 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 13:51:16 +00:00
Jean-Philippe Lang dd1163b58a Makes the mail handler ignore out-of-office emails (#10607).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9358 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 13:24:30 +00:00
Toshi MARUYAMA 051794dffc remove 1.3-stable merged issues from CHANGELOG 1.4.0 list
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9355 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 12:57:39 +00:00
Jean-Philippe Lang 54bb145c76 Removed permissions logic from view.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9351 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 12:21:45 +00:00
Jean-Philippe Lang a7bacf70fb Fixed: Unable to change locked, sticky flags and board when editing a message (#10564).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9350 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 12:20:47 +00:00
Jean-Philippe Lang 07d20cc5f7 Let non required list/user/version custom fields to be set to blank when bulk editing (#10605).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9349 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 11:56:30 +00:00
Jean-Philippe Lang dee17f4677 Adds a note about Gemfile.local in the INSTALL doc.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9347 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 11:16:58 +00:00
Jean-Philippe Lang 2658730302 Load Gemfile.local if present.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9346 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 11:12:50 +00:00
Toshi MARUYAMA e06b60d1b9 Simplified Chinese translation updated by fangzheng (#10611)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9343 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 10:41:16 +00:00
Jean-Philippe Lang 7d458e0b27 Do not install rmagick gem with jruby.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9341 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 10:26:55 +00:00
Jean-Philippe Lang 725ff27c37 Typo in database rake task.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9339 e93f8b46-1217-0410-a6f0-8f06a7374b81
2012-04-06 10:24:36 +00:00
1100 changed files with 10928 additions and 8651 deletions

No files matched your search

+1
View File
@@ -5,6 +5,7 @@
/config/database.yml
/config/email.yml
/config/initializers/session_store.rb
/config/initializers/secret_token.rb
/coverage
/db/*.db
/db/*.sqlite3
+1
View File
@@ -7,6 +7,7 @@ config/configuration.yml
config/database.yml
config/email.yml
config/initializers/session_store.rb
config/initializers/secret_token.rb
coverage
db/*.db
db/*.sqlite3
+29 -17
View File
@@ -1,10 +1,11 @@
source :rubygems
source 'http://rubygems.org'
gem "rails", "2.3.14"
gem "i18n", "~> 0.4.2"
gem "coderay", "~> 1.0.0"
gem 'rails', '3.2.6'
gem 'prototype-rails', '3.2.1'
gem "i18n", "~> 0.6.0"
gem "coderay", "~> 1.0.6"
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
gem "tzinfo", "~> 0.3.31"
gem "builder", "3.0.0"
# Optional gem for LDAP authentication
group :ldap do
@@ -14,20 +15,23 @@ end
# Optional gem for OpenID authentication
group :openid do
gem "ruby-openid", "~> 2.1.4", :require => "openid"
gem "rack-openid"
end
# Optional gem for exporting the gantt to a PNG file
group :rmagick do
# RMagick 2 supports ruby 1.9
# RMagick 1 would be fine for ruby 1.8 but Bundler does not support
# different requirements for the same gem on different platforms
gem "rmagick", ">= 2.0.0"
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
platforms :mri, :mingw do
group :rmagick do
# RMagick 2 supports ruby 1.9
# RMagick 1 would be fine for ruby 1.8 but Bundler does not support
# different requirements for the same gem on different platforms
gem "rmagick", ">= 2.0.0"
end
end
# Database gems
platforms :mri, :mingw do
group :postgresql do
gem "pg", "~> 0.9.0"
gem "pg", ">= 0.11.0"
end
group :sqlite do
@@ -43,7 +47,7 @@ end
platforms :mri_19, :mingw_19 do
group :mysql do
gem "mysql2", "~> 0.2.7"
gem "mysql2", "~> 0.3.11"
end
end
@@ -65,16 +69,24 @@ end
group :development do
gem "rdoc", ">= 2.4.2"
gem "yard"
end
group :test do
gem "shoulda", "~> 2.10.3"
gem "edavis10-object_daddy", :require => "object_daddy"
gem "mocha"
gem "shoulda", "~> 2.11"
# Shoulda does not work nice on Ruby 1.9.3 and seems to need test-unit explicitely.
gem "test-unit", :platforms => [:mri_19]
gem "mocha", "0.12.3"
end
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
if File.exists?(local_gemfile)
puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
instance_eval File.read(local_gemfile)
end
# Load plugins' Gemfiles
Dir.glob File.expand_path("../vendor/plugins/*/Gemfile", __FILE__) do |file|
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
instance_eval File.read(file)
end
+4 -12
View File
@@ -1,15 +1,7 @@
#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/switchtower.rake, and they will automatically be available to Rake.
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require File.expand_path('../config/application', __FILE__)
require 'rake'
require 'rake/testtask'
begin
require 'rdoc/task'
rescue LoadError
# RDoc is not available
end
require 'tasks/rails'
RedmineApp::Application.load_tasks
+5 -13
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -68,7 +68,7 @@ class AccountController < ApplicationController
# create a new token for password recovery
token = Token.new(:user => user, :action => "recovery")
if token.save
Mailer.deliver_lost_password(token)
Mailer.lost_password(token).deliver
flash[:notice] = l(:notice_account_lost_email_sent)
redirect_to :action => 'login'
return
@@ -131,14 +131,6 @@ class AccountController < ApplicationController
private
def logout_user
if User.current.logged?
cookies.delete :autologin
Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
self.logged_user = nil
end
end
def authenticate_user
if Setting.openid? && using_open_id?
open_id_authenticate(params[:openid_url])
@@ -161,7 +153,7 @@ class AccountController < ApplicationController
end
def open_id_authenticate(openid_url)
authenticate_with_open_id(openid_url, :required => [:nickname, :fullname, :email], :return_to => signin_url) do |result, identity_url, registration|
authenticate_with_open_id(openid_url, :required => [:nickname, :fullname, :email], :return_to => signin_url, :method => :post) do |result, identity_url, registration|
if result.successful?
user = User.find_or_initialize_by_identity_url(identity_url)
if user.new_record?
@@ -243,7 +235,7 @@ class AccountController < ApplicationController
def register_by_email_activation(user, &block)
token = Token.new(:user => user, :action => "register")
if user.save and token.save
Mailer.deliver_register(token)
Mailer.register(token).deliver
flash[:notice] = l(:notice_account_register_done)
redirect_to :action => 'login'
else
@@ -273,7 +265,7 @@ class AccountController < ApplicationController
def register_manually_by_administrator(user, &block)
if user.save
# Sends an email to the administrators
Mailer.deliver_account_activation_request(user)
Mailer.account_activation_request(user).deliver
account_pending
else
yield if block_given?
+2 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -43,7 +43,7 @@ class ActivitiesController < ApplicationController
if events.empty? || stale?(:etag => [@activity.scope, @date_to, @date_from, @with_subprojects, @author, events.first, User.current, current_language])
respond_to do |format|
format.html {
@events_by_day = events.group_by(&:event_date)
@events_by_day = events.group_by {|event| User.current.time_to_date(event.event_datetime)}
render :layout => false if request.xhr?
}
format.atom {
+3 -5
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -63,7 +63,7 @@ class AdminController < ApplicationController
# Force ActionMailer to raise delivery errors so we can catch it
ActionMailer::Base.raise_delivery_errors = true
begin
@test = Mailer.deliver_test_email(User.current)
@test = Mailer.test_email(User.current).deliver
flash[:notice] = l(:notice_email_sent, User.current.mail)
rescue Exception => e
flash[:error] = l(:notice_email_error, e.message)
@@ -75,9 +75,7 @@ class AdminController < ApplicationController
def info
@db_adapter_name = ActiveRecord::Base.connection.adapter_name
@checklist = [
[:text_default_administrator_account_changed,
User.find(:first,
:conditions => ["login=? and hashed_password=?", 'admin', User.hash_password('admin')]).nil?],
[:text_default_administrator_account_changed, User.default_admin_account_changed?],
[:text_file_repository_writable, File.writable?(Attachment.storage_path)],
[:text_plugin_assets_writable, File.writable?(Redmine::Plugin.public_directory)],
[:text_rmagick_available, Object.const_defined?(:Magick)]
+39 -80
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -22,53 +22,20 @@ class Unauthorized < Exception; end
class ApplicationController < ActionController::Base
include Redmine::I18n
class_attribute :accept_api_auth_actions
class_attribute :accept_rss_auth_actions
class_attribute :model_object
layout 'base'
exempt_from_layout 'builder', 'rsb'
protect_from_forgery
def handle_unverified_request
super
cookies.delete(:autologin)
end
# Remove broken cookie after upgrade from 0.8.x (#4292)
# See https://rails.lighthouseapp.com/projects/8994/tickets/3360
# TODO: remove it when Rails is fixed
before_filter :delete_broken_cookies
def delete_broken_cookies
if cookies['_redmine_session'] && cookies['_redmine_session'] !~ /--/
cookies.delete '_redmine_session'
redirect_to home_path
return false
end
end
# FIXME: Remove this when all of Rack and Rails have learned how to
# properly use encodings
before_filter :params_filter
def params_filter
if RUBY_VERSION >= '1.9' && defined?(Rails) && Rails::VERSION::MAJOR < 3
self.utf8nize!(params)
end
end
def utf8nize!(obj)
if obj.frozen?
obj
elsif obj.is_a? String
obj.respond_to?(:force_encoding) ? obj.force_encoding("UTF-8") : obj
elsif obj.is_a? Hash
obj.each {|k, v| obj[k] = self.utf8nize!(v)}
elsif obj.is_a? Array
obj.each {|v| self.utf8nize!(v)}
else
obj
end
end
before_filter :user_setup, :check_if_login_required, :set_localization
filter_parameter_logging :password
rescue_from ActionController::InvalidAuthenticityToken, :with => :invalid_authenticity_token
rescue_from ::Unauthorized, :with => :deny_access
@@ -77,10 +44,6 @@ class ApplicationController < ActionController::Base
include Redmine::MenuManager::MenuController
helper Redmine::MenuManager::MenuHelper
Redmine::Scm::Base.all.each do |scm|
require_dependency "repository/#{scm.underscore}"
end
def user_setup
# Check the settings cache for each request
Setting.check_cache
@@ -126,6 +89,15 @@ class ApplicationController < ActionController::Base
end
end
# Logs out current user
def logout_user
if User.current.logged?
cookies.delete :autologin
Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
self.logged_user = nil
end
end
# check if login is globally required to access the application
def check_if_login_required
# no check needed if user is already logged in
@@ -233,7 +205,7 @@ class ApplicationController < ActionController::Base
end
def find_model_object
model = self.class.read_inheritable_attribute('model_object')
model = self.class.model_object
if model
@object = model.find(params[:id])
self.instance_variable_set('@' + controller_name.singularize, @object) if @object
@@ -243,7 +215,7 @@ class ApplicationController < ActionController::Base
end
def self.model_object(model)
write_inheritable_attribute('model_object', model)
self.model_object = model
end
# Filter for bulk issue operations
@@ -298,6 +270,19 @@ class ApplicationController < ActionController::Base
false
end
# Redirects to the request referer if present, redirects to args or call block otherwise.
def redirect_to_referer_or(*args, &block)
redirect_to :back
rescue ::ActionController::RedirectBackError
if args.any?
redirect_to *args
elsif block_given?
block.call
else
raise "#redirect_to_referer_or takes arguments or a block"
end
end
def render_403(options={})
@project = nil
render_error({:message => :notice_not_authorized, :status => 403}.merge(options))
@@ -364,23 +349,11 @@ class ApplicationController < ActionController::Base
:content_type => 'application/atom+xml'
end
# TODO: remove in Redmine 1.4
def self.accept_key_auth(*actions)
ActiveSupport::Deprecation.warn "ApplicationController.accept_key_auth is deprecated and will be removed in Redmine 1.4. Use accept_rss_auth (or accept_api_auth) instead."
accept_rss_auth(*actions)
end
# TODO: remove in Redmine 1.4
def accept_key_auth_actions
ActiveSupport::Deprecation.warn "ApplicationController.accept_key_auth_actions is deprecated and will be removed in Redmine 1.4. Use accept_rss_auth (or accept_api_auth) instead."
self.class.accept_rss_auth
end
def self.accept_rss_auth(*actions)
if actions.any?
write_inheritable_attribute('accept_rss_auth_actions', actions)
self.accept_rss_auth_actions = actions
else
read_inheritable_attribute('accept_rss_auth_actions') || []
self.accept_rss_auth_actions || []
end
end
@@ -390,9 +363,9 @@ class ApplicationController < ActionController::Base
def self.accept_api_auth(*actions)
if actions.any?
write_inheritable_attribute('accept_api_auth_actions', actions)
self.accept_api_auth_actions = actions
else
read_inheritable_attribute('accept_api_auth_actions') || []
self.accept_api_auth_actions || []
end
end
@@ -472,9 +445,9 @@ class ApplicationController < ActionController::Base
# Returns the API key present in the request
def api_key_from_request
if params[:key].present?
params[:key]
params[:key].to_s
elsif request.headers["X-Redmine-API-Key"].present?
request.headers["X-Redmine-API-Key"]
request.headers["X-Redmine-API-Key"].to_s
end
end
@@ -513,26 +486,12 @@ class ApplicationController < ActionController::Base
else
@error_messages = objects.errors.full_messages
end
render :template => 'common/error_messages.api', :status => :unprocessable_entity, :layout => false
render :template => 'common/error_messages.api', :status => :unprocessable_entity, :layout => nil
end
# Overrides #default_template so that the api template
# is used automatically if it exists
def default_template(action_name = self.action_name)
if api_request?
begin
return self.view_paths.find_template(default_template_name(action_name), 'api')
rescue ::ActionView::MissingTemplate
# the api template was not found
# fallback to the default behaviour
end
end
super
end
# Overrides #pick_layout so that #render with no arguments
# Overrides #_include_layout? so that #render with no arguments
# doesn't use the layout for api requests
def pick_layout(*args)
api_request? ? nil : super
def _include_layout?(*args)
api_request? ? false : super
end
end
+3 -5
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -67,7 +67,7 @@ class AttachmentsController < ApplicationController
return
end
@attachment = Attachment.new(:file => request.body)
@attachment = Attachment.new(:file => request.raw_post)
@attachment.author = User.current
@attachment.filename = Redmine::Utils.random_hex(16)
@@ -88,9 +88,7 @@ class AttachmentsController < ApplicationController
end
# Make sure association callbacks are called
@attachment.container.attachments.delete(@attachment)
redirect_to :back
rescue ::ActionController::RedirectBackError
redirect_to :controller => 'projects', :action => 'show', :id => @project
redirect_to_referer_or project_path(@project)
end
private
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -1,3 +1,20 @@
# Redmine - project management software
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class AutoCompletesController < ApplicationController
before_filter :find_project
+4 -4
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -43,11 +43,11 @@ class BoardsController < ApplicationController
@topic_count = @board.topics.count
@topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
@topics = @board.topics.find :all, :order => ["#{Message.table_name}.sticky DESC", sort_clause].compact.join(', '),
@topics = @board.topics.reorder("#{Message.table_name}.sticky DESC").order(sort_clause).all(
:include => [:author, {:last_reply => :author}],
:limit => @topic_pages.items_per_page,
:offset => @topic_pages.current.offset
@message = Message.new
:offset => @topic_pages.current.offset)
@message = Message.new(:board => @board)
render :action => 'show', :layout => !request.xhr?
}
format.atom {
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -1,3 +1,20 @@
# Redmine - project management software
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class ContextMenusController < ApplicationController
helper :watchers
helper :issues
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+4 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -86,7 +86,9 @@ class DocumentsController < ApplicationController
attachments = Attachment.attach_files(@document, params[:attachments])
render_attachment_warning_if_needed(@document)
Mailer.deliver_attachments_added(attachments[:files]) if attachments.present? && attachments[:files].present? && Setting.notified_events.include?('document_added')
if attachments.present? && attachments[:files].present? && Setting.notified_events.include?('document_added')
Mailer.attachments_added(attachments[:files]).deliver
end
redirect_to :action => 'show', :id => @document
end
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+18 -1
View File
@@ -1,3 +1,20 @@
# Redmine - project management software
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class FilesController < ApplicationController
menu_item :files
@@ -29,7 +46,7 @@ class FilesController < ApplicationController
render_attachment_warning_if_needed(container)
if !attachments.empty? && !attachments[:files].blank? && Setting.notified_events.include?('file_added')
Mailer.deliver_attachments_added(attachments[:files])
Mailer.attachments_added(attachments[:files]).deliver
end
redirect_to project_files_path(@project)
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -42,7 +42,7 @@ class IssueRelationsController < ApplicationController
def create
@relation = IssueRelation.new(params[:relation])
@relation.issue_from = @issue
if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/)
if params[:relation] && m = params[:relation][:issue_to_id].to_s.strip.match(/^#?(\d+)$/)
@relation.issue_to = Issue.visible.find_by_id(m[1].to_i)
end
saved = @relation.save
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+22 -6
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -225,12 +225,19 @@ class IssuesController < ApplicationController
end
target_projects ||= @projects
@available_statuses = @issues.map(&:new_statuses_allowed_to).reduce(:&)
if @copy
@available_statuses = [IssueStatus.default]
else
@available_statuses = @issues.map(&:new_statuses_allowed_to).reduce(:&)
end
@custom_fields = target_projects.map{|p|p.all_issue_custom_fields}.reduce(:&)
@assignables = target_projects.map(&:assignable_users).reduce(:&)
@trackers = target_projects.map(&:trackers).reduce(:&)
@versions = target_projects.map {|p| p.shared_versions.open}.reduce(:&)
@categories = target_projects.map {|p| p.issue_categories}.reduce(:&)
if @copy
@attachments_present = @issues.detect {|i| i.attachments.any?}.present?
end
@safe_attributes = @issues.map(&:safe_attribute_names).reduce(:&)
render :layout => false if request.xhr?
@@ -246,7 +253,7 @@ class IssuesController < ApplicationController
@issues.each do |issue|
issue.reload
if @copy
issue = issue.copy
issue = issue.copy({}, :attachments => params[:copy_attachments].present?)
end
journal = issue.init_journal(User.current, params[:notes])
issue.safe_attributes = attributes
@@ -348,8 +355,6 @@ private
# from the params
# TODO: Refactor, not everything in here is needed by #edit
def update_issue_from_params
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@priorities = IssuePriority.active
@edit_allowed = User.current.allowed_to?(:edit_issues, @project)
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
@time_entry.attributes = params[:time_entry]
@@ -371,6 +376,8 @@ private
end
end
@issue.safe_attributes = issue_attributes
@priorities = IssuePriority.active
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
true
end
@@ -420,7 +427,16 @@ private
def parse_params_for_bulk_issue_attributes(params)
attributes = (params[:issue] || {}).reject {|k,v| v.blank?}
attributes.keys.each {|k| attributes[k] = '' if attributes[k] == 'none'}
attributes[:custom_field_values].reject! {|k,v| v.blank?} if attributes[:custom_field_values]
if custom = attributes[:custom_field_values]
custom.reject! {|k,v| v.blank?}
custom.keys.each do |k|
if custom[k].is_a?(Array)
custom[k] << '' if custom[k].delete('__none__')
else
custom[k] = '' if custom[k] == '__none__'
end
end
end
attributes
end
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+3 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -95,10 +95,11 @@ class MessagesController < ApplicationController
# Delete a messages
def destroy
(render_403; return false) unless @message.destroyable_by?(User.current)
r = @message.to_param
@message.destroy
redirect_to @message.parent.nil? ?
{ :controller => 'boards', :action => 'show', :project_id => @project, :id => @board } :
{ :action => 'show', :id => @message.parent, :r => @message }
{ :action => 'show', :id => @message.parent, :r => r }
end
def quote
+19 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -65,6 +65,24 @@ class MyController < ApplicationController
end
end
# Destroys user's account
def destroy
@user = User.current
unless @user.own_account_deletable?
redirect_to :action => 'account'
return
end
if request.post? && params[:confirm]
@user.destroy
if @user.destroyed?
logout_user
flash[:notice] = l(:notice_account_deleted)
end
redirect_to home_path
end
end
# Manage user's password
def password
@user = User.current
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -1,3 +1,20 @@
# Redmine - project management software
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class ProjectEnumerationsController < ApplicationController
before_filter :find_project_by_project_id
before_filter :authorize
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+45 -14
View File
@@ -18,6 +18,7 @@
require 'SVG/Graph/Bar'
require 'SVG/Graph/BarHorizontal'
require 'digest/sha1'
require 'redmine/scm/adapters/abstract_adapter'
class ChangesetNotFound < Exception; end
class InvalidRevisionParam < Exception; end
@@ -45,7 +46,11 @@ class RepositoriesController < ApplicationController
end
def create
@repository = Repository.factory(params[:repository_scm], params[:repository])
attrs = pickup_extra_info
@repository = Repository.factory(params[:repository_scm], attrs[:attrs])
if attrs[:attrs_extra].keys.any?
@repository.merge_extra_info(attrs[:attrs_extra])
end
@repository.project = @project
if request.post? && @repository.save
redirect_to settings_project_path(@project, :tab => 'repositories')
@@ -58,7 +63,11 @@ class RepositoriesController < ApplicationController
end
def update
@repository.attributes = params[:repository]
attrs = pickup_extra_info
@repository.attributes = attrs[:attrs]
if attrs[:attrs_extra].keys.any?
@repository.merge_extra_info(attrs[:attrs_extra])
end
@repository.project = @project
if request.put? && @repository.save
redirect_to settings_project_path(@project, :tab => 'repositories')
@@ -67,6 +76,20 @@ class RepositoriesController < ApplicationController
end
end
def pickup_extra_info
p = {}
p_extra = {}
params[:repository].each do |k, v|
if k =~ /^extra_/
p_extra[k] = v
else
p[k] = v
end
end
{:attrs => p, :attrs_extra => p_extra}
end
private :pickup_extra_info
def committers
@committers = @repository.committers
@users = @project.users
@@ -129,7 +152,15 @@ class RepositoriesController < ApplicationController
end
end
def raw
entry_and_raw(true)
end
def entry
entry_and_raw(false)
end
def entry_and_raw(is_raw)
@entry = @repository.entry(@path, @rev)
(show_error_not_found; return) unless @entry
@@ -138,7 +169,7 @@ class RepositoriesController < ApplicationController
@content = @repository.cat(@path, @rev)
(show_error_not_found; return) unless @content
if 'raw' == params[:format] ||
if is_raw ||
(@content.size && @content.size > Setting.file_max_size_displayed.to_i.kilobyte) ||
! is_entry_text_data?(@content, @path)
# Force the download
@@ -154,6 +185,7 @@ class RepositoriesController < ApplicationController
@changeset = @repository.find_changeset_by_name(@rev)
end
end
private :entry_and_raw
def is_entry_text_data?(ent, path)
# UTF-16 contains "\x00".
@@ -307,8 +339,7 @@ class RepositoriesController < ApplicationController
@repository = @project.repository
end
(render_404; return false) unless @repository
@path = params[:path].join('/') unless params[:path].nil?
@path ||= ''
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip
@rev_to = params[:rev_to]
@@ -343,17 +374,17 @@ class RepositoriesController < ApplicationController
@date_to = Date.today
@date_from = @date_to << 11
@date_from = Date.civil(@date_from.year, @date_from.month, 1)
commits_by_day = repository.changesets.count(
commits_by_day = Changeset.count(
:all, :group => :commit_date,
:conditions => ["commit_date BETWEEN ? AND ?", @date_from, @date_to])
:conditions => ["repository_id = ? AND commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to])
commits_by_month = [0] * 12
commits_by_day.each {|c| commits_by_month[c.first.to_date.months_ago] += c.last }
commits_by_day.each {|c| commits_by_month[(@date_to.month - c.first.to_date.month) % 12] += c.last }
changes_by_day = repository.changes.count(
:all, :group => :commit_date,
:conditions => ["commit_date BETWEEN ? AND ?", @date_from, @date_to])
changes_by_day = Change.count(
:all, :group => :commit_date, :include => :changeset,
:conditions => ["#{Changeset.table_name}.repository_id = ? AND #{Changeset.table_name}.commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to])
changes_by_month = [0] * 12
changes_by_day.each {|c| changes_by_month[c.first.to_date.months_ago] += c.last }
changes_by_day.each {|c| changes_by_month[(@date_to.month - c.first.to_date.month) % 12] += c.last }
fields = []
12.times {|m| fields << month_name(((Date.today.month - 1 - m) % 12) + 1)}
@@ -384,10 +415,10 @@ class RepositoriesController < ApplicationController
end
def graph_commits_per_author(repository)
commits_by_author = repository.changesets.count(:all, :group => :committer)
commits_by_author = Changeset.count(:all, :group => :committer, :conditions => ["repository_id = ?", repository.id])
commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}
changes_by_author = repository.changes.count(:all, :group => :committer)
changes_by_author = Change.count(:all, :group => :committer, :include => :changeset, :conditions => ["#{Changeset.table_name}.repository_id = ?", repository.id])
h = changes_by_author.inject({}) {|o, i| o[i.first] = i.last; o}
fields = commits_by_author.collect {|r| r.first}
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+19 -11
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -18,12 +18,13 @@
class TimelogController < ApplicationController
menu_item :issues
before_filter :find_project, :only => [:create]
before_filter :find_project_for_new_time_entry, :only => [:create]
before_filter :find_time_entry, :only => [:show, :edit, :update]
before_filter :find_time_entries, :only => [:bulk_edit, :bulk_update, :destroy]
before_filter :authorize, :except => [:new, :index, :report]
before_filter :find_optional_project, :only => [:new, :index, :report]
before_filter :find_optional_project, :only => [:index, :report]
before_filter :find_optional_project_for_new_time_entry, :only => [:new]
before_filter :authorize_global, :only => [:new, :index, :report]
accept_rss_auth :index
@@ -38,7 +39,7 @@ class TimelogController < ApplicationController
def index
sort_init 'spent_on', 'desc'
sort_update 'spent_on' => 'spent_on',
sort_update 'spent_on' => ['spent_on', "#{TimeEntry.table_name}.created_on"],
'user' => 'user_id',
'activity' => 'activity_id',
'project' => "#{Project.table_name}.name",
@@ -133,9 +134,13 @@ class TimelogController < ApplicationController
flash[:notice] = l(:notice_successful_create)
if params[:continue]
if params[:project_id]
redirect_to :action => 'new', :project_id => @time_entry.project, :issue_id => @time_entry.issue, :back_url => params[:back_url]
redirect_to :action => 'new', :project_id => @time_entry.project, :issue_id => @time_entry.issue,
:time_entry => {:issue_id => @time_entry.issue_id, :activity_id => @time_entry.activity_id},
:back_url => params[:back_url]
else
redirect_to :action => 'new', :back_url => params[:back_url]
redirect_to :action => 'new',
:time_entry => {:project_id => @time_entry.project_id, :issue_id => @time_entry.issue_id, :activity_id => @time_entry.activity_id},
:back_url => params[:back_url]
end
else
redirect_back_or_default :action => 'index', :project_id => @time_entry.project
@@ -258,7 +263,7 @@ private
end
end
def find_project
def find_optional_project_for_new_time_entry
if (project_id = (params[:project_id] || params[:time_entry] && params[:time_entry][:project_id])).present?
@project = Project.find(project_id)
end
@@ -266,14 +271,17 @@ private
@issue = Issue.find(issue_id)
@project ||= @issue.project
end
if @project.nil?
render_404
return false
end
rescue ActiveRecord::RecordNotFound
render_404
end
def find_project_for_new_time_entry
find_optional_project_for_new_time_entry
if @project.nil?
render_404
end
end
def find_optional_project
if !params[:issue_id].blank?
@issue = Issue.find(params[:issue_id])
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+6 -8
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -99,7 +99,7 @@ class UsersController < ApplicationController
@user.pref.save
@user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
Mailer.deliver_account_information(@user, params[:user][:password]) if params[:send_information]
Mailer.account_information(@user, params[:user][:password]).deliver if params[:send_information]
respond_to do |format|
format.html {
@@ -146,15 +146,15 @@ class UsersController < ApplicationController
@user.notified_project_ids = (@user.mail_notification == 'selected' ? params[:notified_project_ids] : [])
if was_activated
Mailer.deliver_account_activated(@user)
Mailer.account_activated(@user).deliver
elsif @user.active? && params[:send_information] && !params[:user][:password].blank? && @user.auth_source_id.nil?
Mailer.deliver_account_information(@user, params[:user][:password])
Mailer.account_information(@user, params[:user][:password]).deliver
end
respond_to do |format|
format.html {
flash[:notice] = l(:notice_successful_update)
redirect_to :back
redirect_to_referer_or edit_user_path(@user)
}
format.api { head :ok }
end
@@ -169,14 +169,12 @@ class UsersController < ApplicationController
format.api { render_validation_errors(@user) }
end
end
rescue ::ActionController::RedirectBackError
redirect_to :controller => 'users', :action => 'edit', :id => @user
end
def destroy
@user.destroy
respond_to do |format|
format.html { redirect_to(users_url) }
format.html { redirect_to_referer_or(users_url) }
format.api { head :ok }
end
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+6 -14
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -52,7 +52,7 @@ class WatchersController < ApplicationController
end
end
respond_to do |format|
format.html { redirect_to :back }
format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}}
format.js do
render :update do |page|
page.replace_html 'ajax-modal', :partial => 'watchers/new', :locals => {:watched => @watched}
@@ -60,8 +60,6 @@ class WatchersController < ApplicationController
end
end
end
rescue ::ActionController::RedirectBackError
render :text => 'Watcher added.', :layout => true
end
def append
@@ -72,9 +70,7 @@ class WatchersController < ApplicationController
format.js do
render :update do |page|
users.each do |user|
page.select("#issue_watcher_user_ids_#{user.id}").each do |item|
page.remove item
end
page << %|$$("#issue_watcher_user_ids_#{user.id}").each(function(el){el.remove();});|
end
page.insert_html :bottom, 'watchers_inputs', :text => watchers_checkboxes(nil, users, true)
end
@@ -111,7 +107,7 @@ private
@watched = klass.find(params[:object_id])
@project = @watched.project
elsif params[:project_id]
@project = Project.visible.find(params[:project_id])
@project = Project.visible.find_by_param(params[:project_id])
end
rescue
render_404
@@ -120,17 +116,13 @@ private
def set_watcher(user, watching)
@watched.set_watcher(user, watching)
respond_to do |format|
format.html { redirect_to :back }
format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
format.js do
render(:update) do |page|
c = watcher_css(@watched)
page.select(".#{c}").each do |item|
page.replace_html item, watcher_link(@watched, user)
end
page << %|$$(".#{c}").each(function(el){el.innerHTML="#{escape_javascript watcher_link(@watched, user)}"});|
end
end
end
rescue ::ActionController::RedirectBackError
render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true
end
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+3 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -163,6 +163,8 @@ class WikiController < ApplicationController
# Optimistic locking exception
flash.now[:error] = l(:notice_locking_conflict)
render :action => 'edit'
rescue ActiveRecord::RecordNotSaved
render :action => 'edit'
end
# rename a page
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+95 -16
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -178,7 +178,7 @@ module ApplicationHelper
end
def format_activity_day(date)
date == Date.today ? l(:label_today).titleize : format_date(date)
date == User.current.today ? l(:label_today).titleize : format_date(date)
end
def format_activity_description(text)
@@ -220,7 +220,7 @@ module ApplicationHelper
def render_flash_messages
s = ''
flash.each do |k,v|
s << (content_tag('div', v.html_safe, :class => "flash #{k}"))
s << content_tag('div', v.html_safe, :class => "flash #{k}", :id => "flash_#{k}")
end
s.html_safe
end
@@ -253,7 +253,7 @@ module ApplicationHelper
def project_tree_options_for_select(projects, options = {})
s = ''
project_tree(projects) do |project, level|
name_prefix = (level > 0 ? ('&nbsp;' * 2 * level + '&#187; ').html_safe : '')
name_prefix = (level > 0 ? ('&nbsp;' * 2 * level + '&#187; ') : '').html_safe
tag_options = {:value => project.id}
if project == options[:selected] || (options[:selected].respond_to?(:include?) && options[:selected].include?(project))
tag_options[:selected] = 'selected'
@@ -319,7 +319,7 @@ module ApplicationHelper
unless groups.empty?
s << %(<optgroup label="#{h(l(:label_group_plural))}">#{groups}</optgroup>)
end
s
s.html_safe
end
# Truncates and returns the string as a single line
@@ -352,7 +352,7 @@ module ApplicationHelper
def time_tag(time)
text = distance_of_time_in_words(Time.now, time)
if @project
link_to(text, {:controller => 'activities', :action => 'index', :id => @project, :from => time.to_date}, :title => format_time(time))
link_to(text, {:controller => 'activities', :action => 'index', :id => @project, :from => User.current.time_to_date(time)}, :title => format_time(time))
else
content_tag('acronym', text, :title => format_time(time))
end
@@ -369,7 +369,8 @@ module ApplicationHelper
end
def to_path_param(path)
path.to_s.split(%r{[/\\]}).select {|p| !p.blank?}
str = path.to_s.split(%r{[/\\]}).select{|p| !p.blank?}.join("/")
str.blank? ? nil : str
end
def pagination_links_full(paginator, count=nil, options={})
@@ -398,7 +399,7 @@ module ApplicationHelper
unless count.nil?
html << " (#{paginator.current.first_item}-#{paginator.current.last_item}/#{count})"
if per_page_links != false && links = per_page_links(paginator.items_per_page)
if per_page_links != false && links = per_page_links(paginator.items_per_page, count)
html << " | #{links}"
end
end
@@ -406,11 +407,23 @@ module ApplicationHelper
html.html_safe
end
def per_page_links(selected=nil)
links = Setting.per_page_options_array.collect do |n|
def per_page_links(selected=nil, item_count=nil)
values = Setting.per_page_options_array
if item_count && values.any?
if item_count > values.first
max = values.detect {|value| value >= item_count} || item_count
else
max = item_count
end
values = values.select {|value| value <= max || value == selected}
end
if values.empty? || (values.size == 1 && values.first == selected)
return nil
end
links = values.collect do |n|
n == selected ? n : link_to_content_update(n, params.merge(:per_page => n))
end
links.size > 1 ? l(:label_display_per_page, links.join(', ')) : nil
l(:label_display_per_page, links.join(', '))
end
def reorder_links(name, url, method = :post)
@@ -799,7 +812,7 @@ module ApplicationHelper
end
end
HEADING_RE = /(<h(1|2|3|4)( [^>]+)?>(.+?)<\/h(1|2|3|4)>)/i unless const_defined?(:HEADING_RE)
HEADING_RE = /(<h(\d)( [^>]+)?>(.+?)<\/h(\d)>)/i unless const_defined?(:HEADING_RE)
def parse_sections(text, project, obj, attr, only_path, options)
return unless options[:edit_section_links]
@@ -870,6 +883,8 @@ module ApplicationHelper
# Renders the TOC with given headings
def replace_toc(text, headings)
text.gsub!(TOC_RE) do
# Keep only the 4 first levels
headings = headings.select{|level, anchor, item| level <= 4}
if headings.empty?
''
else
@@ -930,6 +945,9 @@ module ApplicationHelper
def labelled_form_for(*args, &proc)
args << {} unless args.last.is_a?(Hash)
options = args.last
if args.first.is_a?(Symbol)
options.merge!(:as => args.shift)
end
options.merge!({:builder => Redmine::Views::LabelledFormBuilder})
form_for(*args, &proc)
end
@@ -944,8 +962,8 @@ module ApplicationHelper
def labelled_remote_form_for(*args, &proc)
args << {} unless args.last.is_a?(Hash)
options = args.last
options.merge!({:builder => Redmine::Views::LabelledFormBuilder})
remote_form_for(*args, &proc)
options.merge!({:builder => Redmine::Views::LabelledFormBuilder, :remote => true})
form_for(*args, &proc)
end
def error_messages_for(*objects)
@@ -1042,6 +1060,59 @@ module ApplicationHelper
end
end
# Overrides Rails' stylesheet_link_tag with themes and plugins support.
# Examples:
# stylesheet_link_tag('styles') # => picks styles.css from the current theme or defaults
# stylesheet_link_tag('styles', :plugin => 'foo) # => picks styles.css from plugin's assets
#
def stylesheet_link_tag(*sources)
options = sources.last.is_a?(Hash) ? sources.pop : {}
plugin = options.delete(:plugin)
sources = sources.map do |source|
if plugin
"/plugin_assets/#{plugin}/stylesheets/#{source}"
elsif current_theme && current_theme.stylesheets.include?(source)
current_theme.stylesheet_path(source)
else
source
end
end
super sources, options
end
# Overrides Rails' image_tag with themes and plugins support.
# Examples:
# image_tag('image.png') # => picks image.png from the current theme or defaults
# image_tag('image.png', :plugin => 'foo) # => picks image.png from plugin's assets
#
def image_tag(source, options={})
if plugin = options.delete(:plugin)
source = "/plugin_assets/#{plugin}/images/#{source}"
elsif current_theme && current_theme.images.include?(source)
source = current_theme.image_path(source)
end
super source, options
end
# Overrides Rails' javascript_include_tag with plugins support
# Examples:
# javascript_include_tag('scripts') # => picks scripts.js from defaults
# javascript_include_tag('scripts', :plugin => 'foo) # => picks scripts.js from plugin's assets
#
def javascript_include_tag(*sources)
options = sources.last.is_a?(Hash) ? sources.pop : {}
if plugin = options.delete(:plugin)
sources = sources.map do |source|
if plugin
"/plugin_assets/#{plugin}/javascripts/#{source}"
else
source
end
end
end
super sources, options
end
def content_for(name, content = nil, &block)
@has_content ||= {}
@has_content[name] = true
@@ -1052,6 +1123,14 @@ module ApplicationHelper
(@has_content && @has_content[name]) || false
end
def sidebar_content?
has_content?(:sidebar) || view_layouts_base_sidebar_hook_response.present?
end
def view_layouts_base_sidebar_hook_response
@view_layouts_base_sidebar_hook_response ||= call_hook(:view_layouts_base_sidebar)
end
def email_delivery_enabled?
!!ActionMailer::Base.perform_deliveries
end
@@ -1060,7 +1139,7 @@ module ApplicationHelper
# +user+ can be a User or a string that will be scanned for an email address (eg. 'joe <joe@foo.bar>')
def avatar(user, options = { })
if Setting.gravatar_enabled?
options.merge!({:ssl => (defined?(request) && request.ssl?), :default => Setting.gravatar_default})
options.merge!({:ssl => (request && request.ssl?), :default => Setting.gravatar_default})
email = nil
if user.respond_to?(:mail)
email = user.mail
@@ -1079,7 +1158,7 @@ module ApplicationHelper
# Returns the javascript tags that are included in the html layout head
def javascript_heads
tags = javascript_include_tag(:defaults)
tags = javascript_include_tag('prototype', 'effects', 'dragdrop', 'controls', 'rails', 'application')
unless User.current.pref.warn_on_leaving_unsaved == '0'
tags << "\n".html_safe + javascript_tag("Event.observe(window, 'load', function(){ new WarnLeavingUnsaved('#{escape_javascript( l(:text_warn_on_leaving_unsaved) )}'); });")
end
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+20 -15
View File
@@ -39,34 +39,36 @@ module CustomFieldsHelper
field_name << "[]" if custom_field.multiple?
field_id = "#{name}_custom_field_values_#{custom_field.id}"
tag_options = {:id => field_id, :class => "#{custom_field.field_format}_cf"}
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, custom_value.value, :id => field_id, :size => 10) +
text_field_tag(field_name, custom_value.value, tag_options.merge(:size => 10)) +
calendar_for(field_id)
when "text"
text_area_tag(field_name, custom_value.value, :id => field_id, :rows => 3, :style => 'width:90%')
text_area_tag(field_name, custom_value.value, tag_options.merge(:rows => 3))
when "bool"
hidden_field_tag(field_name, '0') + check_box_tag(field_name, '1', custom_value.true?, :id => field_id)
hidden_field_tag(field_name, '0') + check_box_tag(field_name, '1', custom_value.true?, tag_options)
when "list"
blank_option = ''
blank_option = ''.html_safe
unless custom_field.multiple?
if custom_field.is_required?
unless custom_field.default_value.present?
blank_option = "<option value=\"\">--- #{l(:actionview_instancetag_blank_option)} ---</option>"
blank_option = content_tag('option', "--- #{l(:actionview_instancetag_blank_option)} ---", :value => '')
end
else
blank_option = '<option></option>'
blank_option = content_tag('option')
end
end
s = select_tag(field_name, blank_option.html_safe + options_for_select(custom_field.possible_values_options(custom_value.customized), custom_value.value),
:id => field_id, :multiple => custom_field.multiple?)
s = select_tag(field_name, blank_option + options_for_select(custom_field.possible_values_options(custom_value.customized), custom_value.value),
tag_options.merge(:multiple => custom_field.multiple?))
if custom_field.multiple?
s << hidden_field_tag(field_name, '')
end
s
else
text_field_tag(field_name, custom_value.value, :id => field_id)
text_field_tag(field_name, custom_value.value, tag_options)
end
end
@@ -86,25 +88,28 @@ module CustomFieldsHelper
field_name = "#{name}[custom_field_values][#{custom_field.id}]"
field_name << "[]" if custom_field.multiple?
field_id = "#{name}_custom_field_values_#{custom_field.id}"
tag_options = {:id => field_id, :class => "#{custom_field.field_format}_cf"}
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, '', :id => field_id, :size => 10) +
text_field_tag(field_name, '', tag_options.merge(:size => 10)) +
calendar_for(field_id)
when "text"
text_area_tag(field_name, '', :id => field_id, :rows => 3, :style => 'width:90%')
text_area_tag(field_name, '', tag_options.merge(:rows => 3))
when "bool"
select_tag(field_name, options_for_select([[l(:label_no_change_option), ''],
[l(:general_text_yes), '1'],
[l(:general_text_no), '0']]), :id => field_id)
[l(:general_text_no), '0']]), tag_options)
when "list"
options = []
options << [l(:label_no_change_option), ''] unless custom_field.multiple?
options << [l(:label_none), '__none__'] unless custom_field.is_required?
options += custom_field.possible_values_options(projects)
select_tag(field_name, options_for_select(options),
:id => field_id, :multiple => custom_field.multiple?)
select_tag(field_name, options_for_select(options), tag_options.merge(:multiple => custom_field.multiple?))
else
text_field_tag(field_name, '', :id => field_id)
text_field_tag(field_name, '', tag_options)
end
end
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+2 -2
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -332,7 +332,7 @@ module IssuesHelper
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
show_value(cv)
else
value = issue.send(column.name)
value = column.value(issue)
if value.is_a?(Date)
format_date(value)
elsif value.is_a?(Time)
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+4 -4
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -46,17 +46,17 @@ module RepositoriesHelper
end
def render_changeset_changes
changes = @changeset.changes.find(:all, :limit => 1000, :order => 'path').collect do |change|
changes = @changeset.filechanges.find(:all, :limit => 1000, :order => 'path').collect do |change|
case change.action
when 'A'
# Detects moved/copied files
if !change.from_path.blank?
change.action =
@changeset.changes.detect {|c| c.action == 'D' && c.path == change.from_path} ? 'R' : 'C'
@changeset.filechanges.detect {|c| c.action == 'D' && c.path == change.from_path} ? 'R' : 'C'
end
change
when 'D'
@changeset.changes.detect {|c| c.from_path == change.path} ? nil : change
@changeset.filechanges.detect {|c| c.from_path == change.path} ? nil : change
else
change
end
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+13 -7
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -45,30 +45,36 @@ module WatchersHelper
# Returns a comma separated list of users watching the given object
def watchers_list(object)
remove_allowed = User.current.allowed_to?("delete_#{object.class.name.underscore}_watchers".to_sym, object.project)
content = ''.html_safe
lis = object.watcher_users.collect do |user|
s = avatar(user, :size => "16").to_s + link_to_user(user, :class => 'user').to_s
s = ''.html_safe
s << avatar(user, :size => "16").to_s
s << link_to_user(user, :class => 'user')
if remove_allowed
url = {:controller => 'watchers',
:action => 'destroy',
:object_type => object.class.to_s.underscore,
:object_id => object.id,
:user_id => user}
s += ' ' + link_to_remote(image_tag('delete.png'),
s << ' '
s << link_to_remote(image_tag('delete.png'),
{:url => url},
:href => url_for(url),
:style => "vertical-align: middle",
:class => "delete")
end
content_tag :li, s.html_safe
content << content_tag('li', s)
end
(lis.empty? ? "" : "<ul>#{ lis.join("\n") }</ul>").html_safe
content.present? ? content_tag('ul', content) : content
end
def watchers_checkboxes(object, users, checked=nil)
users.map do |user|
c = checked.nil? ? object.watched_by?(user) : checked
tag = check_box_tag 'issue[watcher_user_ids][]', user.id, c, :id => nil
content_tag 'label', "#{tag} #{h(user)}", :id => "issue_watcher_user_ids_#{user.id}", :class => "floating"
end.join
content_tag 'label', "#{tag} #{h(user)}".html_safe,
:id => "issue_watcher_user_ids_#{user.id}",
:class => "floating"
end.join.html_safe
end
end
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+4 -4
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -21,14 +21,14 @@ module WikiHelper
def wiki_page_options_for_select(pages, selected = nil, parent = nil, level = 0)
pages = pages.group_by(&:parent) unless pages.is_a?(Hash)
s = ''
s = ''.html_safe
if pages.has_key?(parent)
pages[parent].each do |page|
attrs = "value='#{page.id}'"
attrs << " selected='selected'" if selected == page
indent = (level > 0) ? ('&nbsp;' * level * 2 + '&#187; ') : nil
indent = (level > 0) ? ('&nbsp;' * level * 2 + '&#187; ') : ''
s << "<option #{attrs}>#{indent}#{h page.pretty_title}</option>\n" +
s << content_tag('option', (indent + h(page.pretty_title)).html_safe, :value => page.id.to_s, :selected => selected == page) +
wiki_page_options_for_select(pages, selected, page, level + 1)
end
end
+1 -1
View File
@@ -1,7 +1,7 @@
# encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+12 -15
View File
@@ -24,6 +24,7 @@ class Attachment < ActiveRecord::Base
validates_presence_of :filename, :author
validates_length_of :filename, :maximum => 255
validates_length_of :disk_filename, :maximum => 255
validates_length_of :description, :maximum => 255
validate :validate_max_file_size
acts_as_event :title => :filename,
@@ -44,20 +45,11 @@ class Attachment < ActiveRecord::Base
"LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"}
cattr_accessor :storage_path
@@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{Rails.root}/files"
@@storage_path = Redmine::Configuration['attachments_storage_path'] || File.join(Rails.root, "files")
before_save :files_to_final_location
after_destroy :delete_from_disk
def container_with_blank_type_check
if container_type.blank?
nil
else
container_without_blank_type_check
end
end
alias_method_chain :container, :blank_type_check unless method_defined?(:container_without_blank_type_check)
# Returns an unsaved copy of the attachment
def copy(attributes=nil)
copy = self.class.new
@@ -110,10 +102,15 @@ class Attachment < ActiveRecord::Base
logger.info("Saving attachment '#{self.diskfile}' (#{@temp_file.size} bytes)")
md5 = Digest::MD5.new
File.open(diskfile, "wb") do |f|
buffer = ""
while (buffer = @temp_file.read(8192))
f.write(buffer)
md5.update(buffer)
if @temp_file.respond_to?(:read)
buffer = ""
while (buffer = @temp_file.read(8192))
f.write(buffer)
md5.update(buffer)
end
else
f.write(@temp_file)
md5.update(@temp_file)
end
end
self.digest = md5.hexdigest
@@ -134,7 +131,7 @@ class Attachment < ActiveRecord::Base
# Returns file's location on disk
def diskfile
"#{@@storage_path}/#{self.disk_filename}"
File.join(self.class.storage_path, disk_filename.to_s)
end
def increment_download
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+2 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -28,7 +28,7 @@ class Board < ActiveRecord::Base
validates_length_of :name, :maximum => 30
validates_length_of :description, :maximum => 255
named_scope :visible, lambda {|*args| { :include => :project,
scope :visible, lambda {|*args| { :include => :project,
:conditions => Project.allowed_to_condition(args.shift || User.current, :view_messages, *args) } }
safe_attributes 'name', 'description', 'move_to'
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+4 -3
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@ require 'iconv'
class Changeset < ActiveRecord::Base
belongs_to :repository
belongs_to :user
has_many :changes, :dependent => :delete_all
has_many :filechanges, :class_name => 'Change', :dependent => :delete_all
has_and_belongs_to_many :issues
has_and_belongs_to_many :parents,
:class_name => "Changeset",
@@ -49,7 +49,8 @@ class Changeset < ActiveRecord::Base
validates_uniqueness_of :revision, :scope => :repository_id
validates_uniqueness_of :scmid, :scope => :repository_id, :allow_nil => true
named_scope :visible, lambda {|*args| { :include => {:repository => :project},
scope :visible,
lambda {|*args| { :include => {:repository => :project},
:conditions => Project.allowed_to_condition(args.shift || User.current, :view_changesets, *args) } }
after_create :scan_for_issues
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+2 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -18,7 +18,7 @@
class CommentObserver < ActiveRecord::Observer
def after_create(comment)
if comment.commented.is_a?(News) && Setting.notified_events.include?('news_comment_added')
Mailer.deliver_news_comment_added(comment)
Mailer.news_comment_added(comment).deliver
end
end
end
+9 -13
View File
@@ -80,7 +80,7 @@ class CustomField < ActiveRecord::Base
when 'bool'
[[l(:general_text_Yes), '1'], [l(:general_text_No), '0']]
else
read_possible_values_utf8_encoded || []
possible_values || []
end
end
@@ -91,14 +91,20 @@ class CustomField < ActiveRecord::Base
when 'bool'
['1', '0']
else
read_possible_values_utf8_encoded
values = super()
if values.is_a?(Array)
values.each do |value|
value.force_encoding('UTF-8') if value.respond_to?(:force_encoding)
end
end
values
end
end
# Makes possible_values accept a multiline string
def possible_values=(arg)
if arg.is_a?(Array)
write_attribute(:possible_values, arg.compact.collect(&:strip).select {|v| !v.blank?})
super(arg.compact.collect(&:strip).select {|v| !v.blank?})
else
self.possible_values = arg.to_s.split(/[\n\r]+/)
end
@@ -218,14 +224,4 @@ class CustomField < ActiveRecord::Base
end
errs
end
def read_possible_values_utf8_encoded
values = read_attribute(:possible_values)
if values.is_a?(Array)
values.each do |value|
value.force_encoding('UTF-8') if value.respond_to?(:force_encoding)
end
end
values
end
end
+3 -3
View File
@@ -1,5 +1,5 @@
# RedMine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -30,7 +30,7 @@ class Document < ActiveRecord::Base
validates_presence_of :project, :title, :category
validates_length_of :title, :maximum => 60
named_scope :visible, lambda {|*args| { :include => :project,
scope :visible, lambda {|*args| { :include => :project,
:conditions => Project.allowed_to_condition(args.shift || User.current, :view_documents, *args) } }
safe_attributes 'category_id', 'title', 'description'
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
+2 -2
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -17,6 +17,6 @@
class DocumentObserver < ActiveRecord::Observer
def after_create(document)
Mailer.deliver_document_added(document) if Setting.notified_events.include?('document_added')
Mailer.document_added(document).deliver if Setting.notified_events.include?('document_added')
end
end
+1 -1
View File
@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
# Copyright (C) 2006-2012 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
Loaded 100 of 1100 files, more files were not shown because too many files have changed in this diff. Show more