# HG changeset patch # User Chris Cannam # Date 1285333564 -3600 # Node ID 40f7cfd4df1994a918f003b269d710aa8cb3843f # Parent 1d32c0a0efbf9f4d397646106e08b484dbb462de * Update to SVN trunk rev 4173 diff -r 1d32c0a0efbf -r 40f7cfd4df19 .svn/all-wcprops --- a/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 24 -/svn/!svn/ver/4040/trunk +/svn/!svn/ver/4173/trunk END Rakefile K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 .svn/entries --- a/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk http://redmine.rubyforge.org/svn -2010-08-25T14:59:16.537407Z -4040 -edavis10 +2010-09-23T16:23:39.070168Z +4173 +winterheart has-props @@ -41,7 +41,7 @@ -2010-07-23T14:49:47.760099Z +2010-09-23T14:37:44.367737Z bbf560d44f092d22a30d3a562436ad8c 2006-12-05T20:45:04.842118Z 67 @@ -75,7 +75,7 @@ -2010-07-23T14:49:47.760099Z +2010-09-23T14:37:44.367737Z 67c937b1f1d0603e69f322de34bbfe04 2010-07-18T15:49:24.341728Z 3849 @@ -133,7 +133,7 @@ -2010-07-23T14:49:47.760099Z +2010-09-23T14:37:44.363818Z 201a803b90bbd2a1624c4ce1dd260098 2010-06-09T22:01:21.132822Z 3768 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/.svn/all-wcprops --- a/app/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 28 -/svn/!svn/ver/4040/trunk/app +/svn/!svn/ver/4172/trunk/app END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/.svn/entries --- a/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app http://redmine.rubyforge.org/svn -2010-08-25T14:59:16.537407Z -4040 +2010-09-23T15:20:19.085385Z +4172 edavis10 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/all-wcprops --- a/app/controllers/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 40 -/svn/!svn/ver/4040/trunk/app/controllers +/svn/!svn/ver/4172/trunk/app/controllers END issues_controller.rb K 25 svn:wc:ra_dav:version-url V 61 -/svn/!svn/ver/4040/trunk/app/controllers/issues_controller.rb +/svn/!svn/ver/4083/trunk/app/controllers/issues_controller.rb END queries_controller.rb K 25 @@ -45,6 +45,12 @@ V 57 /svn/!svn/ver/3745/trunk/app/controllers/my_controller.rb END +comments_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/!svn/ver/4172/trunk/app/controllers/comments_controller.rb +END members_controller.rb K 25 svn:wc:ra_dav:version-url @@ -61,7 +67,7 @@ K 25 svn:wc:ra_dav:version-url V 68 -/svn/!svn/ver/4006/trunk/app/controllers/context_menus_controller.rb +/svn/!svn/ver/4059/trunk/app/controllers/context_menus_controller.rb END journals_controller.rb K 25 @@ -81,11 +87,23 @@ V 62 /svn/!svn/ver/3692/trunk/app/controllers/reports_controller.rb END +project_enumerations_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 75 +/svn/!svn/ver/4075/trunk/app/controllers/project_enumerations_controller.rb +END +custom_fields_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/!svn/ver/3627/trunk/app/controllers/custom_fields_controller.rb +END timelog_controller.rb K 25 svn:wc:ra_dav:version-url V 62 -/svn/!svn/ver/3931/trunk/app/controllers/timelog_controller.rb +/svn/!svn/ver/4087/trunk/app/controllers/timelog_controller.rb END settings_controller.rb K 25 @@ -93,35 +111,35 @@ V 63 /svn/!svn/ver/3176/trunk/app/controllers/settings_controller.rb END -custom_fields_controller.rb -K 25 -svn:wc:ra_dav:version-url -V 68 -/svn/!svn/ver/3627/trunk/app/controllers/custom_fields_controller.rb -END -users_controller.rb -K 25 -svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/3935/trunk/app/controllers/users_controller.rb -END issue_moves_controller.rb K 25 svn:wc:ra_dav:version-url V 66 /svn/!svn/ver/3940/trunk/app/controllers/issue_moves_controller.rb END +users_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4066/trunk/app/controllers/users_controller.rb +END +files_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4085/trunk/app/controllers/files_controller.rb +END application_controller.rb K 25 svn:wc:ra_dav:version-url V 66 -/svn/!svn/ver/3949/trunk/app/controllers/application_controller.rb +/svn/!svn/ver/4075/trunk/app/controllers/application_controller.rb END -ldap_auth_sources_controller.rb +previews_controller.rb K 25 svn:wc:ra_dav:version-url -V 72 -/svn/!svn/ver/3744/trunk/app/controllers/ldap_auth_sources_controller.rb +V 63 +/svn/!svn/ver/3946/trunk/app/controllers/previews_controller.rb END auth_sources_controller.rb K 25 @@ -129,11 +147,11 @@ V 67 /svn/!svn/ver/3744/trunk/app/controllers/auth_sources_controller.rb END -previews_controller.rb +ldap_auth_sources_controller.rb K 25 svn:wc:ra_dav:version-url -V 63 -/svn/!svn/ver/3946/trunk/app/controllers/previews_controller.rb +V 72 +/svn/!svn/ver/3744/trunk/app/controllers/ldap_auth_sources_controller.rb END search_controller.rb K 25 @@ -147,18 +165,18 @@ V 63 /svn/!svn/ver/3528/trunk/app/controllers/messages_controller.rb END +versions_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/!svn/ver/4097/trunk/app/controllers/versions_controller.rb +END issue_relations_controller.rb K 25 svn:wc:ra_dav:version-url V 70 /svn/!svn/ver/3591/trunk/app/controllers/issue_relations_controller.rb END -versions_controller.rb -K 25 -svn:wc:ra_dav:version-url -V 63 -/svn/!svn/ver/3866/trunk/app/controllers/versions_controller.rb -END boards_controller.rb K 25 svn:wc:ra_dav:version-url @@ -175,7 +193,7 @@ K 25 svn:wc:ra_dav:version-url V 59 -/svn/!svn/ver/3597/trunk/app/controllers/news_controller.rb +/svn/!svn/ver/4172/trunk/app/controllers/news_controller.rb END trackers_controller.rb K 25 @@ -223,7 +241,7 @@ K 25 svn:wc:ra_dav:version-url V 63 -/svn/!svn/ver/3777/trunk/app/controllers/projects_controller.rb +/svn/!svn/ver/4070/trunk/app/controllers/projects_controller.rb END account_controller.rb K 25 @@ -235,7 +253,7 @@ K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/3944/trunk/app/controllers/calendars_controller.rb +/svn/!svn/ver/4041/trunk/app/controllers/calendars_controller.rb END issue_categories_controller.rb K 25 @@ -247,7 +265,7 @@ K 25 svn:wc:ra_dav:version-url V 61 -/svn/!svn/ver/3943/trunk/app/controllers/gantts_controller.rb +/svn/!svn/ver/4072/trunk/app/controllers/gantts_controller.rb END documents_controller.rb K 25 @@ -261,6 +279,12 @@ V 59 /svn/!svn/ver/3632/trunk/app/controllers/wiki_controller.rb END +activities_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/4047/trunk/app/controllers/activities_controller.rb +END enumerations_controller.rb K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/entries --- a/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/controllers http://redmine.rubyforge.org/svn -2010-08-25T14:59:16.537407Z -4040 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -32,11 +32,11 @@ -2010-08-25T15:27:53.046491Z -b9533adcb710aba95a687413ccc4cb59 -2010-08-25T14:59:16.537407Z -4040 -edavis10 +2010-09-24T12:48:26.271687Z +611e226f9845a33fb6fe28700968e7de +2010-09-11T20:21:27.018967Z +4083 +jbbarth has-props @@ -58,7 +58,7 @@ -12932 +13034 queries_controller.rb file @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.744097Z +2010-09-23T14:37:44.399747Z 7ad6758cfd160c4b6ef6d71be06e087c 2010-04-19T15:08:28.751734Z 3684 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.744097Z +2010-09-23T14:37:44.399747Z 7a73aba15fcd447531d1552de01706d9 2009-12-20T09:44:28.044710Z 3201 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.744097Z +2010-09-23T14:37:44.395735Z 612f3e7497e14c728934e83fbe5778c4 2009-12-20T09:45:04.782778Z 3202 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.744097Z +2010-09-23T14:37:44.399747Z 3ee494bd8196306eab8913bd462b44da 2010-06-20T16:08:15.578906Z 3798 @@ -202,7 +202,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.391741Z 8cd8e21323a4500a05c26e4ebdde1812 2010-08-17T15:03:58.074505Z 3945 @@ -236,7 +236,7 @@ -2010-07-23T14:49:44.744097Z +2010-09-23T14:37:44.395735Z b178015d27e341adaa871e3800e94401 2010-05-23T03:16:37.499264Z 3745 @@ -264,13 +264,47 @@ 6422 +comments_controller.rb +file + + + + +2010-09-24T12:48:26.271687Z +c2289eb9b654117a101c072955d4c705 +2010-09-23T15:20:19.085385Z +4172 +edavis10 + + + + + + + + + + + + + + + + + + + + + +1084 + members_controller.rb file -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.395735Z 20e245fa61dc0dcb2f105a8f0e6af98c 2010-06-19T19:51:43.174421Z 3784 @@ -304,7 +338,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.403745Z 95ad1acf7766861a4dbd0aebd9c847de 2009-10-21T03:21:31.657956Z 2941 @@ -338,33 +372,33 @@ -2010-08-25T15:27:53.046491Z -e3ff02e7eaab56330be93b78dd81da7e -2010-08-19T18:16:54.064576Z -4006 -edavis10 - - - - - - - - - - - - - - - - - - - - - -1486 +2010-09-24T12:48:26.271687Z +8e09032afd0db141012e59a0f689b687 +2010-09-03T21:43:07.906158Z +4059 +jbbarth + + + + + + + + + + + + + + + + + + + + + +1647 journals_controller.rb file @@ -372,7 +406,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.395735Z deb481ad0f862b9305b79f292d59fb51 2010-08-23T15:04:36.844654Z 4034 @@ -406,7 +440,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.403745Z 5052c701a12ad27e88950dd4a745b0f8 2010-03-04T05:33:45.236699Z 3536 @@ -440,7 +474,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.399747Z 8f7e6e7308912a6169a700b0c88174a0 2010-04-27T16:43:52.584075Z 3692 @@ -468,39 +502,39 @@ 3314 -timelog_controller.rb +project_enumerations_controller.rb file -2010-08-25T15:27:53.046491Z -72160c2e91f17c8fef5ca833a8556463 -2010-08-09T23:15:32.315886Z -3931 +2010-09-24T12:48:26.271687Z +828b364ba2850ceddb3caa566bf10124 +2010-09-10T16:00:49.687515Z +4075 edavis10 -has-props - - - - - - - - - - - - - - - - - - - - -14494 + + + + + + + + + + + + + + + + + + + + + +856 settings_controller.rb file @@ -508,7 +542,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.399747Z b7f5a5cb777aa2418a71520c164da11a 2009-12-17T18:21:02.630202Z 3176 @@ -542,7 +576,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.391741Z 00272455ac5be11da48f92c4a443c538 2010-04-03T11:54:24.331654Z 3627 @@ -570,17 +604,51 @@ 2373 +timelog_controller.rb +file + + + + +2010-09-24T12:48:26.271687Z +7e5890e22da346ff06debe33cc4bf34d +2010-09-14T19:02:25.847894Z +4087 +edavis10 +has-props + + + + + + + + + + + + + + + + + + + + +14320 + users_controller.rb file -2010-08-25T15:27:53.046491Z -c77cc4f901292e6f8c921656d0503467 -2010-08-10T23:07:44.448600Z -3935 -jbbarth +2010-09-24T12:48:26.275788Z +df36e1f9ccb5879ba3aa7b34592c18cf +2010-09-06T01:02:52.851079Z +4066 +edavis10 has-props @@ -602,7 +670,7 @@ -5939 +5977 issue_moves_controller.rb file @@ -610,7 +678,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.395735Z 41a4ff4e0c4fab3e134a9bfa8136323a 2010-08-13T14:59:04.653474Z 3940 @@ -638,16 +706,50 @@ 2290 +files_controller.rb +file + + + + +2010-09-24T12:48:26.275788Z +120cefe7fd45eda6957c2e633ceab0fb +2010-09-14T16:24:07.840869Z +4085 +edavis10 + + + + + + + + + + + + + + + + + + + + + +1258 + application_controller.rb file -2010-08-25T15:27:53.046491Z -90bc300210100504fc73d1a96ff6f002 -2010-08-19T01:01:35.693458Z -3949 +2010-09-24T12:48:26.275788Z +e93fc4710d9abbef72273a22b174eb27 +2010-09-10T16:00:49.687515Z +4075 edavis10 has-props @@ -670,7 +772,7 @@ -13301 +13486 ldap_auth_sources_controller.rb file @@ -678,7 +780,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.395735Z 5f7b9cb2e9c8a60db58ea0833cf481c5 2010-05-23T03:16:31.304135Z 3744 @@ -712,7 +814,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.391741Z 237280766d09418161536250d514a7bf 2010-05-23T03:16:31.304135Z 3744 @@ -746,7 +848,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.395735Z 1407f3993f625a9fa14fa0e208c3df4f 2010-08-18T15:01:35.032314Z 3946 @@ -780,7 +882,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.399747Z 0015154998f830227b636ee423f007f3 2010-06-20T20:01:32.722003Z 3806 @@ -814,7 +916,7 @@ -2010-07-23T14:49:44.748131Z +2010-09-23T14:37:44.395735Z f3f4378ec15e1401ead0dcac4e9cb059 2010-03-03T17:05:00.967826Z 3528 @@ -848,7 +950,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.395735Z c57448661f2eaab81c76f23d7f51e0ab 2010-03-16T15:17:47.586688Z 3591 @@ -882,11 +984,11 @@ -2010-07-28T11:07:47.104150Z -a243808f2423e88dda09f5adb6c99ba6 -2010-07-25T09:29:46.849682Z -3866 -jplang +2010-09-24T12:48:26.275788Z +9cc19ecc2f9e1ad458f27cdbcd450970 +2010-09-17T15:55:08.377083Z +4097 +edavis10 has-props @@ -908,7 +1010,7 @@ -3951 +6136 boards_controller.rb file @@ -916,7 +1018,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.391741Z 52638c82da929081099076d5aa0f9212 2010-08-16T23:39:27.396462Z 3942 @@ -950,7 +1052,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.391741Z 21c0e5d894d1429ac39f3253ae021594 2010-01-05T18:16:03.565347Z 3281 @@ -984,10 +1086,10 @@ -2010-07-23T14:49:44.752129Z -b2715e92f593360f1f36e0409c95b464 -2010-03-17T15:41:58.766740Z -3597 +2010-09-24T12:48:26.275788Z +dd877e070cf218909dccfc0c67658914 +2010-09-23T15:20:19.085385Z +4172 edavis10 has-props @@ -1010,7 +1112,7 @@ -3598 +3388 trackers_controller.rb file @@ -1018,7 +1120,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.399747Z a5e793eb94e501be4c1a39acc65cc568 2010-04-03T11:54:24.331654Z 3627 @@ -1052,7 +1154,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.395735Z 77209ec52ddcefafb0bfbb76195167ec 2010-08-10T22:37:00.826946Z 3934 @@ -1086,7 +1188,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.395735Z f0fdda9126d71c0b2d4638de50ab1097 2010-02-12T19:15:39.389877Z 3416 @@ -1120,7 +1222,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.399747Z 28f2e44219870c62c9844354b78af6e1 2010-04-03T11:54:24.331654Z 3627 @@ -1154,7 +1256,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.403745Z 7ae79a9d22586240a01af73834b718a3 2010-02-05T16:57:02.094258Z 3370 @@ -1188,7 +1290,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.399747Z a90fd2992bc17c6cee999369521194c4 2010-04-17T12:51:46.860438Z 3680 @@ -1222,7 +1324,7 @@ -2010-07-23T14:49:44.752129Z +2010-09-23T14:37:44.391741Z ed65a11326fe54914ba3a750a2b6f943 2009-12-19T20:33:24.113306Z 3200 @@ -1256,10 +1358,10 @@ -2010-07-23T14:49:44.752129Z -968635c7a052a109b6a298b9f012c9d6 -2010-06-19T17:45:04.348690Z -3777 +2010-09-24T12:48:26.275788Z +7a9d61829d2ebbcab2524e763a28235b +2010-09-08T16:01:51.939478Z +4070 edavis10 has-props @@ -1282,7 +1384,7 @@ -15166 +9973 account_controller.rb file @@ -1290,7 +1392,7 @@ -2010-08-25T15:27:53.046491Z +2010-09-23T14:37:44.391741Z d0ff6be1c749b765d9d64bef64c27537 2010-08-03T15:26:50.842290Z 3906 @@ -1324,10 +1426,10 @@ -2010-08-25T15:27:53.050542Z -2395bf1ef8a03eae77dbc9c9956de2e4 -2010-08-16T23:56:42.601754Z -3944 +2010-09-24T12:48:26.275788Z +cac7d6c5cbe1f559c89a3f41e79ea4b5 +2010-08-26T16:36:59.817467Z +4041 edavis10 @@ -1350,7 +1452,7 @@ -1307 +1354 issue_categories_controller.rb file @@ -1358,7 +1460,7 @@ -2010-07-23T14:49:44.756136Z +2010-09-23T14:37:44.395735Z 119ceb4a27aa554d03867f46cb142d0e 2010-03-17T15:41:58.766740Z 3597 @@ -1392,10 +1494,10 @@ -2010-08-25T15:27:53.050542Z -8214d623a887f0d2dd8801af05426a35 -2010-08-16T23:56:37.048249Z -3943 +2010-09-24T12:48:26.275788Z +81dbee1745da99b9ea499f3fbe1d3944 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -1418,7 +1520,7 @@ -2339 +1019 documents_controller.rb file @@ -1426,7 +1528,7 @@ -2010-07-23T14:49:44.756136Z +2010-09-23T14:37:44.391741Z c2c68bf5fa3ed22a8f55c8414d1efce9 2010-03-17T15:41:58.766740Z 3597 @@ -1460,7 +1562,7 @@ -2010-07-23T14:49:44.756136Z +2010-09-23T14:37:44.403745Z cb709bfbd3ba20cd9e7245a9575a720d 2010-04-11T12:56:18.077630Z 3632 @@ -1488,13 +1590,47 @@ 9211 +activities_controller.rb +file + + + + +2010-09-24T12:48:26.275788Z +88f55d118861ffaca0992fa5ec55d51f +2010-08-27T14:05:54.014502Z +4047 +edavis10 + + + + + + + + + + + + + + + + + + + + + +1952 + enumerations_controller.rb file -2010-07-23T14:49:44.756136Z +2010-09-23T14:37:44.391741Z 1caaedc7bb0a3085878dc94446c70ab0 2010-03-02T20:03:09.514061Z 3524 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/activities_controller.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/.svn/text-base/activities_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,59 @@ +class ActivitiesController < ApplicationController + menu_item :activity + before_filter :find_optional_project + accept_key_auth :index + + def index + @days = Setting.activity_days_default.to_i + + if params[:from] + begin; @date_to = params[:from].to_date + 1; rescue; end + end + + @date_to ||= Date.today + 1 + @date_from = @date_to - @days + @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') + @author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id])) + + @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, + :with_subprojects => @with_subprojects, + :author => @author) + @activity.scope_select {|t| !params["show_#{t}"].nil?} + @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? + + events = @activity.events(@date_from, @date_to) + + if events.empty? || stale?(:etag => [events.first, User.current]) + respond_to do |format| + format.html { + @events_by_day = events.group_by(&:event_date) + render :layout => false if request.xhr? + } + format.atom { + title = l(:label_activity) + if @author + title = @author.name + elsif @activity.scope.size == 1 + title = l("label_#{@activity.scope.first.singularize}_plural") + end + render_feed(events, :title => "#{@project || Setting.app_title}: #{title}") + } + end + end + + rescue ActiveRecord::RecordNotFound + render_404 + end + + private + + # TODO: refactor, duplicated in projects_controller + def find_optional_project + return true unless params[:id] + @project = Project.find(params[:id]) + authorize + rescue ActiveRecord::RecordNotFound + render_404 + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/application_controller.rb.svn-base --- a/app/controllers/.svn/text-base/application_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/application_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -169,6 +169,13 @@ render_404 end + # Find project of id params[:project_id] + def find_project_by_project_id + @project = Project.find(params[:project_id]) + rescue ActiveRecord::RecordNotFound + render_404 + end + # Find a project based on params[:project_id] # TODO: some subclasses override this, see about merging their logic def find_optional_project diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/calendars_controller.rb.svn-base --- a/app/controllers/.svn/text-base/calendars_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/calendars_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -32,8 +32,11 @@ @calendar.events = events end - render :layout => false if request.xhr? + render :action => 'show', :layout => false if request.xhr? end + def update + show + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/comments_controller.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/.svn/text-base/comments_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,36 @@ +class CommentsController < ApplicationController + default_search_scope :news + model_object News + before_filter :find_model_object + before_filter :find_project_from_association + before_filter :authorize + + verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed } + def create + @comment = Comment.new(params[:comment]) + @comment.author = User.current + if @news.comments << @comment + flash[:notice] = l(:label_comment_added) + end + + redirect_to :controller => 'news', :action => 'show', :id => @news + end + + verify :method => :delete, :only => :destroy, :render => {:nothing => true, :status => :method_not_allowed } + def destroy + @news.comments.find(params[:comment_id]).destroy + redirect_to :controller => 'news', :action => 'show', :id => @news + end + + private + + # ApplicationController's find_model_object sets it based on the controller + # name so it needs to be overriden and set to @news instead + def find_model_object + super + @news = @object + @comment = nil + @news + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/context_menus_controller.rb.svn-base --- a/app/controllers/.svn/text-base/context_menus_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/context_menus_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -6,9 +6,15 @@ if (@issues.size == 1) @issue = @issues.first @allowed_statuses = @issue.new_statuses_allowed_to(User.current) + else + @allowed_statuses = @issues.map do |i| + i.new_statuses_allowed_to(User.current) + end.inject do |memo,s| + memo & s + end end - projects = @issues.collect(&:project).compact.uniq - @project = projects.first if projects.size == 1 + @projects = @issues.collect(&:project).compact.uniq + @project = @projects.first if @projects.size == 1 @can = {:edit => (@project && User.current.allowed_to?(:edit_issues, @project)), :log_time => (@project && User.current.allowed_to?(:log_time, @project)), diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/files_controller.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/.svn/text-base/files_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,36 @@ +class FilesController < ApplicationController + menu_item :files + + before_filter :find_project_by_project_id + before_filter :authorize + + helper :sort + include SortHelper + + def index + sort_init 'filename', 'asc' + sort_update 'filename' => "#{Attachment.table_name}.filename", + 'created_on' => "#{Attachment.table_name}.created_on", + 'size' => "#{Attachment.table_name}.filesize", + 'downloads' => "#{Attachment.table_name}.downloads" + + @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)] + @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse + render :layout => !request.xhr? + end + + def new + @versions = @project.versions.sort + end + + def create + container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id])) + attachments = Attachment.attach_files(container, params[:attachments]) + render_attachment_warning_if_needed(container) + + if !attachments.empty? && Setting.notified_events.include?('file_added') + Mailer.deliver_attachments_added(attachments[:files]) + end + redirect_to project_files_path(@project) + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/gantts_controller.rb.svn-base --- a/app/controllers/.svn/text-base/gantts_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/gantts_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -4,6 +4,7 @@ rescue_from Query::StatementInvalid, :with => :query_statement_invalid + helper :gantt helper :issues helper :projects helper :queries @@ -14,33 +15,22 @@ def show @gantt = Redmine::Helpers::Gantt.new(params) + @gantt.project = @project retrieve_query @query.group_by = nil - if @query.valid? - events = [] - # Issues that have start and due dates - events += @query.issues(:include => [:tracker, :assigned_to, :priority], - :order => "start_date, due_date", - :conditions => ["(((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?) or (start_date?)) and start_date is not null and due_date is not null)", @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to] - ) - # Issues that don't have a due date but that are assigned to a version with a date - events += @query.issues(:include => [:tracker, :assigned_to, :priority, :fixed_version], - :order => "start_date, effective_date", - :conditions => ["(((start_date>=? and start_date<=?) or (effective_date>=? and effective_date<=?) or (start_date?)) and start_date is not null and due_date is null and effective_date is not null)", @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to] - ) - # Versions - events += @query.versions(:conditions => ["effective_date BETWEEN ? AND ?", @gantt.date_from, @gantt.date_to]) - - @gantt.events = events - end + @gantt.query = @query if @query.valid? basename = (@project ? "#{@project.identifier}-" : '') + 'gantt' respond_to do |format| format.html { render :action => "show", :layout => !request.xhr? } - format.png { send_data(@gantt.to_image(@project), :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image') - format.pdf { send_data(gantt_to_pdf(@gantt, @project), :type => 'application/pdf', :filename => "#{basename}.pdf") } + format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image') + format.pdf { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => "#{basename}.pdf") } end end + def update + show + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/issues_controller.rb.svn-base --- a/app/controllers/.svn/text-base/issues_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/issues_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -47,6 +47,7 @@ include SortHelper include IssuesHelper helper :timelog + helper :gantt include Redmine::Export::PDF verify :method => [:post, :delete], @@ -133,7 +134,7 @@ call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue}) respond_to do |format| format.html { - redirect_to(params[:continue] ? { :action => 'new', :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } : + redirect_to(params[:continue] ? { :action => 'new', :project_id => @project, :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } : { :action => 'show', :id => @issue }) } format.xml { render :action => 'show', :status => :created, :location => url_for(:controller => 'issues', :action => 'show', :id => @issue) } @@ -270,7 +271,7 @@ @edit_allowed = User.current.allowed_to?(:edit_issues, @project) @time_entry = TimeEntry.new - @notes = params[:notes] + @notes = params[:notes] || (params[:issue].present? ? params[:issue][:notes] : nil) @issue.init_journal(User.current, @notes) # User can change issue attributes only if he has :edit permission or if a workflow transition is allowed if (@edit_allowed || !@allowed_statuses.empty?) && params[:issue] diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/news_controller.rb.svn-base --- a/app/controllers/.svn/text-base/news_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/news_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -18,9 +18,9 @@ class NewsController < ApplicationController default_search_scope :news model_object News - before_filter :find_model_object, :except => [:new, :index, :preview] - before_filter :find_project_from_association, :except => [:new, :index, :preview] - before_filter :find_project, :only => [:new, :preview] + before_filter :find_model_object, :except => [:new, :create, :index, :preview] + before_filter :find_project_from_association, :except => [:new, :create, :index, :preview] + before_filter :find_project, :only => [:new, :create, :preview] before_filter :authorize, :except => [:index, :preview] before_filter :find_optional_project, :only => :index accept_key_auth :index @@ -46,38 +46,32 @@ def new @news = News.new(:project => @project, :author => User.current) + end + + def create + @news = News.new(:project => @project, :author => User.current) if request.post? @news.attributes = params[:news] if @news.save flash[:notice] = l(:notice_successful_create) redirect_to :controller => 'news', :action => 'index', :project_id => @project + else + render :action => 'new' end end end + + def edit + end - def edit - if request.post? and @news.update_attributes(params[:news]) + def update + if request.put? and @news.update_attributes(params[:news]) flash[:notice] = l(:notice_successful_update) redirect_to :action => 'show', :id => @news + else + render :action => 'edit' end end - - def add_comment - @comment = Comment.new(params[:comment]) - @comment.author = User.current - if @news.comments << @comment - flash[:notice] = l(:label_comment_added) - redirect_to :action => 'show', :id => @news - else - show - render :action => 'show' - end - end - - def destroy_comment - @news.comments.find(params[:comment_id]).destroy - redirect_to :action => 'show', :id => @news - end def destroy @news.destroy diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/project_enumerations_controller.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/.svn/text-base/project_enumerations_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,26 @@ +class ProjectEnumerationsController < ApplicationController + before_filter :find_project_by_project_id + before_filter :authorize + + def update + if request.put? && params[:enumerations] + Project.transaction do + params[:enumerations].each do |id, activity| + @project.update_or_create_time_entry_activity(id, activity) + end + end + flash[:notice] = l(:notice_successful_update) + end + + redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project + end + + def destroy + @project.time_entry_activities.each do |time_entry_activity| + time_entry_activity.destroy(time_entry_activity.parent) + end + flash[:notice] = l(:notice_successful_update) + redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/projects_controller.rb.svn-base --- a/app/controllers/.svn/text-base/projects_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/projects_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -17,24 +17,24 @@ class ProjectsController < ApplicationController menu_item :overview - menu_item :activity, :only => :activity menu_item :roadmap, :only => :roadmap - menu_item :files, :only => [:list_files, :add_file] menu_item :settings, :only => :settings - before_filter :find_project, :except => [ :index, :list, :add, :copy, :activity ] - before_filter :find_optional_project, :only => :activity - before_filter :authorize, :except => [ :index, :list, :add, :copy, :archive, :unarchive, :destroy, :activity ] - before_filter :authorize_global, :only => :add + before_filter :find_project, :except => [ :index, :list, :new, :create, :copy ] + before_filter :authorize, :except => [ :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy] + before_filter :authorize_global, :only => [:new, :create] before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ] - accept_key_auth :activity, :index - - after_filter :only => [:add, :edit, :archive, :unarchive, :destroy] do |controller| + accept_key_auth :index + + after_filter :only => [:create, :edit, :update, :archive, :unarchive, :destroy] do |controller| if controller.request.post? controller.send :expire_action, :controller => 'welcome', :action => 'robots.txt' end end - + + # TODO: convert to PUT only + verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed } + helper :sort include SortHelper helper :custom_fields @@ -63,40 +63,45 @@ end end - # Add a new project - def add + def new @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position") @trackers = Tracker.all @project = Project.new(params[:project]) - if request.get? - @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers? - @project.trackers = Tracker.all - @project.is_public = Setting.default_projects_public? - @project.enabled_module_names = Setting.default_projects_modules + + @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers? + @project.trackers = Tracker.all + @project.is_public = Setting.default_projects_public? + @project.enabled_module_names = Setting.default_projects_modules + end + + def create + @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position") + @trackers = Tracker.all + @project = Project.new(params[:project]) + + @project.enabled_module_names = params[:enabled_modules] + if validate_parent_id && @project.save + @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + # Add current user as a project member if he is not admin + unless User.current.admin? + r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + m = Member.new(:user => User.current, :roles => [r]) + @project.members << m + end + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_create) + redirect_to :controller => 'projects', :action => 'settings', :id => @project + } + format.xml { head :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } + end else - @project.enabled_module_names = params[:enabled_modules] - if validate_parent_id && @project.save - @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') - # Add current user as a project member if he is not admin - unless User.current.admin? - r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first - m = Member.new(:user => User.current, :roles => [r]) - @project.members << m - end - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_create) - redirect_to :controller => 'projects', :action => 'settings', :id => @project - } - format.xml { head :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } - end - else - respond_to do |format| - format.html - format.xml { render :xml => @project.errors, :status => :unprocessable_entity } - end + respond_to do |format| + format.html { render :action => 'new' } + format.xml { render :xml => @project.errors, :status => :unprocessable_entity } end - end + end + end def copy @@ -177,28 +182,27 @@ @wiki ||= @project.wiki end - # Edit @project def edit - if request.get? + end + + def update + @project.attributes = params[:project] + if validate_parent_id && @project.save + @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_update) + redirect_to :action => 'settings', :id => @project + } + format.xml { head :ok } + end else - @project.attributes = params[:project] - if validate_parent_id && @project.save - @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_update) - redirect_to :action => 'settings', :id => @project - } - format.xml { head :ok } - end - else - respond_to do |format| - format.html { - settings - render :action => 'settings' - } - format.xml { render :xml => @project.errors, :status => :unprocessable_entity } - end + respond_to do |format| + format.html { + settings + render :action => 'settings' + } + format.xml { render :xml => @project.errors, :status => :unprocessable_entity } end end end @@ -241,120 +245,6 @@ @project = nil end - def add_file - if request.post? - container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id])) - attachments = Attachment.attach_files(container, params[:attachments]) - render_attachment_warning_if_needed(container) - - if !attachments.empty? && Setting.notified_events.include?('file_added') - Mailer.deliver_attachments_added(attachments[:files]) - end - redirect_to :controller => 'projects', :action => 'list_files', :id => @project - return - end - @versions = @project.versions.sort - end - - def save_activities - if request.post? && params[:enumerations] - Project.transaction do - params[:enumerations].each do |id, activity| - @project.update_or_create_time_entry_activity(id, activity) - end - end - flash[:notice] = l(:notice_successful_update) - end - - redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project - end - - def reset_activities - @project.time_entry_activities.each do |time_entry_activity| - time_entry_activity.destroy(time_entry_activity.parent) - end - flash[:notice] = l(:notice_successful_update) - redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project - end - - def list_files - sort_init 'filename', 'asc' - sort_update 'filename' => "#{Attachment.table_name}.filename", - 'created_on' => "#{Attachment.table_name}.created_on", - 'size' => "#{Attachment.table_name}.filesize", - 'downloads' => "#{Attachment.table_name}.downloads" - - @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)] - @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse - render :layout => !request.xhr? - end - - def roadmap - @trackers = @project.trackers.find(:all, :order => 'position') - retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?}) - @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') - project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id] - - @versions = @project.shared_versions || [] - @versions += @project.rolled_up_versions.visible if @with_subprojects - @versions = @versions.uniq.sort - @versions.reject! {|version| version.closed? || version.completed? } unless params[:completed] - - @issues_by_version = {} - unless @selected_tracker_ids.empty? - @versions.each do |version| - issues = version.fixed_issues.visible.find(:all, - :include => [:project, :status, :tracker, :priority], - :conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids}, - :order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id") - @issues_by_version[version] = issues - end - end - @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?} - end - - def activity - @days = Setting.activity_days_default.to_i - - if params[:from] - begin; @date_to = params[:from].to_date + 1; rescue; end - end - - @date_to ||= Date.today + 1 - @date_from = @date_to - @days - @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') - @author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id])) - - @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, - :with_subprojects => @with_subprojects, - :author => @author) - @activity.scope_select {|t| !params["show_#{t}"].nil?} - @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? - - events = @activity.events(@date_from, @date_to) - - if events.empty? || stale?(:etag => [events.first, User.current]) - respond_to do |format| - format.html { - @events_by_day = events.group_by(&:event_date) - render :layout => false if request.xhr? - } - format.atom { - title = l(:label_activity) - if @author - title = @author.name - elsif @activity.scope.size == 1 - title = l("label_#{@activity.scope.first.singularize}_plural") - end - render_feed(events, :title => "#{@project || Setting.app_title}: #{title}") - } - end - end - - rescue ActiveRecord::RecordNotFound - render_404 - end - private def find_optional_project return true unless params[:id] @@ -364,14 +254,6 @@ render_404 end - def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil) - if ids = params[:tracker_ids] - @selected_tracker_ids = (ids.is_a? Array) ? ids.collect { |id| id.to_i.to_s } : ids.split('/').collect { |id| id.to_i.to_s } - else - @selected_tracker_ids = (default_trackers || selectable_trackers).collect {|t| t.id.to_s } - end - end - # Validates parent_id param according to user's permissions # TODO: move it to Project model in a validation that depends on User.current def validate_parent_id diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/timelog_controller.rb.svn-base --- a/app/controllers/.svn/text-base/timelog_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/timelog_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -260,8 +260,8 @@ end @from, @to = @to, @from if @from && @to && @from > @to - @from ||= (TimeEntry.minimum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today) - 1 - @to ||= (TimeEntry.maximum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today) + @from ||= (TimeEntry.earilest_date_for_project(@project) || Date.today) + @to ||= (TimeEntry.latest_date_for_project(@project) || Date.today) end def load_available_criterias diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/users_controller.rb.svn-base --- a/app/controllers/.svn/text-base/users_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/users_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -95,7 +95,9 @@ if request.post? @user.admin = params[:user][:admin] if params[:user][:admin] @user.login = params[:user][:login] if params[:user][:login] - @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless params[:password].nil? or params[:password].empty? or @user.auth_source_id + if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) + @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] + end @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids] @user.attributes = params[:user] # Was the account actived ? (do it before User#save clears the change) diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/.svn/text-base/versions_controller.rb.svn-base --- a/app/controllers/.svn/text-base/versions_controller.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/.svn/text-base/versions_controller.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -18,13 +18,37 @@ class VersionsController < ApplicationController menu_item :roadmap model_object Version - before_filter :find_model_object, :except => [:new, :close_completed] - before_filter :find_project_from_association, :except => [:new, :close_completed] - before_filter :find_project, :only => [:new, :close_completed] + before_filter :find_model_object, :except => [:index, :new, :create, :close_completed] + before_filter :find_project_from_association, :except => [:index, :new, :create, :close_completed] + before_filter :find_project, :only => [:index, :new, :create, :close_completed] before_filter :authorize helper :custom_fields helper :projects + + def index + @trackers = @project.trackers.find(:all, :order => 'position') + retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?}) + @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') + project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id] + + @versions = @project.shared_versions || [] + @versions += @project.rolled_up_versions.visible if @with_subprojects + @versions = @versions.uniq.sort + @versions.reject! {|version| version.closed? || version.completed? } unless params[:completed] + + @issues_by_version = {} + unless @selected_tracker_ids.empty? + @versions.each do |version| + issues = version.fixed_issues.visible.find(:all, + :include => [:project, :status, :tracker, :priority], + :conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids}, + :order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id") + @issues_by_version[version] = issues + end + end + @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?} + end def show @issues = @version.fixed_issues.visible.find(:all, @@ -39,6 +63,17 @@ attributes.delete('sharing') unless attributes.nil? || @version.allowed_sharings.include?(attributes['sharing']) @version.attributes = attributes end + end + + def create + # TODO: refactor with code above in #new + @version = @project.versions.build + if params[:version] + attributes = params[:version].dup + attributes.delete('sharing') unless attributes.nil? || @version.allowed_sharings.include?(attributes['sharing']) + @version.attributes = attributes + end + if request.post? if @version.save respond_to do |format| @@ -55,7 +90,7 @@ end else respond_to do |format| - format.html + format.html { render :action => 'new' } format.js do render(:update) {|page| page.alert(@version.errors.full_messages.join('\n')) } end @@ -63,9 +98,12 @@ end end end + + def edit + end - def edit - if request.post? && params[:version] + def update + if request.put? && params[:version] attributes = params[:version].dup attributes.delete('sharing') unless @version.allowed_sharings.include?(attributes['sharing']) if @version.update_attributes(attributes) @@ -76,7 +114,7 @@ end def close_completed - if request.post? + if request.put? @project.close_completed_versions end redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project @@ -105,4 +143,13 @@ rescue ActiveRecord::RecordNotFound render_404 end + + def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil) + if ids = params[:tracker_ids] + @selected_tracker_ids = (ids.is_a? Array) ? ids.collect { |id| id.to_i.to_s } : ids.split('/').collect { |id| id.to_i.to_s } + else + @selected_tracker_ids = (default_trackers || selectable_trackers).collect {|t| t.id.to_s } + end + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/activities_controller.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/activities_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,59 @@ +class ActivitiesController < ApplicationController + menu_item :activity + before_filter :find_optional_project + accept_key_auth :index + + def index + @days = Setting.activity_days_default.to_i + + if params[:from] + begin; @date_to = params[:from].to_date + 1; rescue; end + end + + @date_to ||= Date.today + 1 + @date_from = @date_to - @days + @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') + @author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id])) + + @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, + :with_subprojects => @with_subprojects, + :author => @author) + @activity.scope_select {|t| !params["show_#{t}"].nil?} + @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? + + events = @activity.events(@date_from, @date_to) + + if events.empty? || stale?(:etag => [events.first, User.current]) + respond_to do |format| + format.html { + @events_by_day = events.group_by(&:event_date) + render :layout => false if request.xhr? + } + format.atom { + title = l(:label_activity) + if @author + title = @author.name + elsif @activity.scope.size == 1 + title = l("label_#{@activity.scope.first.singularize}_plural") + end + render_feed(events, :title => "#{@project || Setting.app_title}: #{title}") + } + end + end + + rescue ActiveRecord::RecordNotFound + render_404 + end + + private + + # TODO: refactor, duplicated in projects_controller + def find_optional_project + return true unless params[:id] + @project = Project.find(params[:id]) + authorize + rescue ActiveRecord::RecordNotFound + render_404 + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/application_controller.rb --- a/app/controllers/application_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/application_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -169,6 +169,13 @@ render_404 end + # Find project of id params[:project_id] + def find_project_by_project_id + @project = Project.find(params[:project_id]) + rescue ActiveRecord::RecordNotFound + render_404 + end + # Find a project based on params[:project_id] # TODO: some subclasses override this, see about merging their logic def find_optional_project diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/calendars_controller.rb --- a/app/controllers/calendars_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/calendars_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -32,8 +32,11 @@ @calendar.events = events end - render :layout => false if request.xhr? + render :action => 'show', :layout => false if request.xhr? end + def update + show + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/comments_controller.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/comments_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,36 @@ +class CommentsController < ApplicationController + default_search_scope :news + model_object News + before_filter :find_model_object + before_filter :find_project_from_association + before_filter :authorize + + verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed } + def create + @comment = Comment.new(params[:comment]) + @comment.author = User.current + if @news.comments << @comment + flash[:notice] = l(:label_comment_added) + end + + redirect_to :controller => 'news', :action => 'show', :id => @news + end + + verify :method => :delete, :only => :destroy, :render => {:nothing => true, :status => :method_not_allowed } + def destroy + @news.comments.find(params[:comment_id]).destroy + redirect_to :controller => 'news', :action => 'show', :id => @news + end + + private + + # ApplicationController's find_model_object sets it based on the controller + # name so it needs to be overriden and set to @news instead + def find_model_object + super + @news = @object + @comment = nil + @news + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/context_menus_controller.rb --- a/app/controllers/context_menus_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/context_menus_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -6,9 +6,15 @@ if (@issues.size == 1) @issue = @issues.first @allowed_statuses = @issue.new_statuses_allowed_to(User.current) + else + @allowed_statuses = @issues.map do |i| + i.new_statuses_allowed_to(User.current) + end.inject do |memo,s| + memo & s + end end - projects = @issues.collect(&:project).compact.uniq - @project = projects.first if projects.size == 1 + @projects = @issues.collect(&:project).compact.uniq + @project = @projects.first if @projects.size == 1 @can = {:edit => (@project && User.current.allowed_to?(:edit_issues, @project)), :log_time => (@project && User.current.allowed_to?(:log_time, @project)), diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/files_controller.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/files_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,36 @@ +class FilesController < ApplicationController + menu_item :files + + before_filter :find_project_by_project_id + before_filter :authorize + + helper :sort + include SortHelper + + def index + sort_init 'filename', 'asc' + sort_update 'filename' => "#{Attachment.table_name}.filename", + 'created_on' => "#{Attachment.table_name}.created_on", + 'size' => "#{Attachment.table_name}.filesize", + 'downloads' => "#{Attachment.table_name}.downloads" + + @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)] + @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse + render :layout => !request.xhr? + end + + def new + @versions = @project.versions.sort + end + + def create + container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id])) + attachments = Attachment.attach_files(container, params[:attachments]) + render_attachment_warning_if_needed(container) + + if !attachments.empty? && Setting.notified_events.include?('file_added') + Mailer.deliver_attachments_added(attachments[:files]) + end + redirect_to project_files_path(@project) + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/gantts_controller.rb --- a/app/controllers/gantts_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/gantts_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -4,6 +4,7 @@ rescue_from Query::StatementInvalid, :with => :query_statement_invalid + helper :gantt helper :issues helper :projects helper :queries @@ -14,33 +15,22 @@ def show @gantt = Redmine::Helpers::Gantt.new(params) + @gantt.project = @project retrieve_query @query.group_by = nil - if @query.valid? - events = [] - # Issues that have start and due dates - events += @query.issues(:include => [:tracker, :assigned_to, :priority], - :order => "start_date, due_date", - :conditions => ["(((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?) or (start_date?)) and start_date is not null and due_date is not null)", @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to] - ) - # Issues that don't have a due date but that are assigned to a version with a date - events += @query.issues(:include => [:tracker, :assigned_to, :priority, :fixed_version], - :order => "start_date, effective_date", - :conditions => ["(((start_date>=? and start_date<=?) or (effective_date>=? and effective_date<=?) or (start_date?)) and start_date is not null and due_date is null and effective_date is not null)", @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to, @gantt.date_from, @gantt.date_to] - ) - # Versions - events += @query.versions(:conditions => ["effective_date BETWEEN ? AND ?", @gantt.date_from, @gantt.date_to]) - - @gantt.events = events - end + @gantt.query = @query if @query.valid? basename = (@project ? "#{@project.identifier}-" : '') + 'gantt' respond_to do |format| format.html { render :action => "show", :layout => !request.xhr? } - format.png { send_data(@gantt.to_image(@project), :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image') - format.pdf { send_data(gantt_to_pdf(@gantt, @project), :type => 'application/pdf', :filename => "#{basename}.pdf") } + format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image') + format.pdf { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => "#{basename}.pdf") } end end + def update + show + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/issues_controller.rb --- a/app/controllers/issues_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/issues_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -47,6 +47,7 @@ include SortHelper include IssuesHelper helper :timelog + helper :gantt include Redmine::Export::PDF verify :method => [:post, :delete], @@ -133,7 +134,7 @@ call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue}) respond_to do |format| format.html { - redirect_to(params[:continue] ? { :action => 'new', :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } : + redirect_to(params[:continue] ? { :action => 'new', :project_id => @project, :issue => {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} } : { :action => 'show', :id => @issue }) } format.xml { render :action => 'show', :status => :created, :location => url_for(:controller => 'issues', :action => 'show', :id => @issue) } @@ -270,7 +271,7 @@ @edit_allowed = User.current.allowed_to?(:edit_issues, @project) @time_entry = TimeEntry.new - @notes = params[:notes] + @notes = params[:notes] || (params[:issue].present? ? params[:issue][:notes] : nil) @issue.init_journal(User.current, @notes) # User can change issue attributes only if he has :edit permission or if a workflow transition is allowed if (@edit_allowed || !@allowed_statuses.empty?) && params[:issue] diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/news_controller.rb --- a/app/controllers/news_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/news_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -18,9 +18,9 @@ class NewsController < ApplicationController default_search_scope :news model_object News - before_filter :find_model_object, :except => [:new, :index, :preview] - before_filter :find_project_from_association, :except => [:new, :index, :preview] - before_filter :find_project, :only => [:new, :preview] + before_filter :find_model_object, :except => [:new, :create, :index, :preview] + before_filter :find_project_from_association, :except => [:new, :create, :index, :preview] + before_filter :find_project, :only => [:new, :create, :preview] before_filter :authorize, :except => [:index, :preview] before_filter :find_optional_project, :only => :index accept_key_auth :index @@ -46,38 +46,32 @@ def new @news = News.new(:project => @project, :author => User.current) + end + + def create + @news = News.new(:project => @project, :author => User.current) if request.post? @news.attributes = params[:news] if @news.save flash[:notice] = l(:notice_successful_create) redirect_to :controller => 'news', :action => 'index', :project_id => @project + else + render :action => 'new' end end end + + def edit + end - def edit - if request.post? and @news.update_attributes(params[:news]) + def update + if request.put? and @news.update_attributes(params[:news]) flash[:notice] = l(:notice_successful_update) redirect_to :action => 'show', :id => @news + else + render :action => 'edit' end end - - def add_comment - @comment = Comment.new(params[:comment]) - @comment.author = User.current - if @news.comments << @comment - flash[:notice] = l(:label_comment_added) - redirect_to :action => 'show', :id => @news - else - show - render :action => 'show' - end - end - - def destroy_comment - @news.comments.find(params[:comment_id]).destroy - redirect_to :action => 'show', :id => @news - end def destroy @news.destroy diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/project_enumerations_controller.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controllers/project_enumerations_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,26 @@ +class ProjectEnumerationsController < ApplicationController + before_filter :find_project_by_project_id + before_filter :authorize + + def update + if request.put? && params[:enumerations] + Project.transaction do + params[:enumerations].each do |id, activity| + @project.update_or_create_time_entry_activity(id, activity) + end + end + flash[:notice] = l(:notice_successful_update) + end + + redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project + end + + def destroy + @project.time_entry_activities.each do |time_entry_activity| + time_entry_activity.destroy(time_entry_activity.parent) + end + flash[:notice] = l(:notice_successful_update) + redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/projects_controller.rb --- a/app/controllers/projects_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/projects_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -17,24 +17,24 @@ class ProjectsController < ApplicationController menu_item :overview - menu_item :activity, :only => :activity menu_item :roadmap, :only => :roadmap - menu_item :files, :only => [:list_files, :add_file] menu_item :settings, :only => :settings - before_filter :find_project, :except => [ :index, :list, :add, :copy, :activity ] - before_filter :find_optional_project, :only => :activity - before_filter :authorize, :except => [ :index, :list, :add, :copy, :archive, :unarchive, :destroy, :activity ] - before_filter :authorize_global, :only => :add + before_filter :find_project, :except => [ :index, :list, :new, :create, :copy ] + before_filter :authorize, :except => [ :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy] + before_filter :authorize_global, :only => [:new, :create] before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ] - accept_key_auth :activity, :index - - after_filter :only => [:add, :edit, :archive, :unarchive, :destroy] do |controller| + accept_key_auth :index + + after_filter :only => [:create, :edit, :update, :archive, :unarchive, :destroy] do |controller| if controller.request.post? controller.send :expire_action, :controller => 'welcome', :action => 'robots.txt' end end - + + # TODO: convert to PUT only + verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed } + helper :sort include SortHelper helper :custom_fields @@ -63,40 +63,45 @@ end end - # Add a new project - def add + def new @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position") @trackers = Tracker.all @project = Project.new(params[:project]) - if request.get? - @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers? - @project.trackers = Tracker.all - @project.is_public = Setting.default_projects_public? - @project.enabled_module_names = Setting.default_projects_modules + + @project.identifier = Project.next_identifier if Setting.sequential_project_identifiers? + @project.trackers = Tracker.all + @project.is_public = Setting.default_projects_public? + @project.enabled_module_names = Setting.default_projects_modules + end + + def create + @issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position") + @trackers = Tracker.all + @project = Project.new(params[:project]) + + @project.enabled_module_names = params[:enabled_modules] + if validate_parent_id && @project.save + @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + # Add current user as a project member if he is not admin + unless User.current.admin? + r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + m = Member.new(:user => User.current, :roles => [r]) + @project.members << m + end + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_create) + redirect_to :controller => 'projects', :action => 'settings', :id => @project + } + format.xml { head :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } + end else - @project.enabled_module_names = params[:enabled_modules] - if validate_parent_id && @project.save - @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') - # Add current user as a project member if he is not admin - unless User.current.admin? - r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first - m = Member.new(:user => User.current, :roles => [r]) - @project.members << m - end - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_create) - redirect_to :controller => 'projects', :action => 'settings', :id => @project - } - format.xml { head :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } - end - else - respond_to do |format| - format.html - format.xml { render :xml => @project.errors, :status => :unprocessable_entity } - end + respond_to do |format| + format.html { render :action => 'new' } + format.xml { render :xml => @project.errors, :status => :unprocessable_entity } end - end + end + end def copy @@ -177,28 +182,27 @@ @wiki ||= @project.wiki end - # Edit @project def edit - if request.get? + end + + def update + @project.attributes = params[:project] + if validate_parent_id && @project.save + @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_update) + redirect_to :action => 'settings', :id => @project + } + format.xml { head :ok } + end else - @project.attributes = params[:project] - if validate_parent_id && @project.save - @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_update) - redirect_to :action => 'settings', :id => @project - } - format.xml { head :ok } - end - else - respond_to do |format| - format.html { - settings - render :action => 'settings' - } - format.xml { render :xml => @project.errors, :status => :unprocessable_entity } - end + respond_to do |format| + format.html { + settings + render :action => 'settings' + } + format.xml { render :xml => @project.errors, :status => :unprocessable_entity } end end end @@ -241,120 +245,6 @@ @project = nil end - def add_file - if request.post? - container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id])) - attachments = Attachment.attach_files(container, params[:attachments]) - render_attachment_warning_if_needed(container) - - if !attachments.empty? && Setting.notified_events.include?('file_added') - Mailer.deliver_attachments_added(attachments[:files]) - end - redirect_to :controller => 'projects', :action => 'list_files', :id => @project - return - end - @versions = @project.versions.sort - end - - def save_activities - if request.post? && params[:enumerations] - Project.transaction do - params[:enumerations].each do |id, activity| - @project.update_or_create_time_entry_activity(id, activity) - end - end - flash[:notice] = l(:notice_successful_update) - end - - redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project - end - - def reset_activities - @project.time_entry_activities.each do |time_entry_activity| - time_entry_activity.destroy(time_entry_activity.parent) - end - flash[:notice] = l(:notice_successful_update) - redirect_to :controller => 'projects', :action => 'settings', :tab => 'activities', :id => @project - end - - def list_files - sort_init 'filename', 'asc' - sort_update 'filename' => "#{Attachment.table_name}.filename", - 'created_on' => "#{Attachment.table_name}.created_on", - 'size' => "#{Attachment.table_name}.filesize", - 'downloads' => "#{Attachment.table_name}.downloads" - - @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)] - @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse - render :layout => !request.xhr? - end - - def roadmap - @trackers = @project.trackers.find(:all, :order => 'position') - retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?}) - @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') - project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id] - - @versions = @project.shared_versions || [] - @versions += @project.rolled_up_versions.visible if @with_subprojects - @versions = @versions.uniq.sort - @versions.reject! {|version| version.closed? || version.completed? } unless params[:completed] - - @issues_by_version = {} - unless @selected_tracker_ids.empty? - @versions.each do |version| - issues = version.fixed_issues.visible.find(:all, - :include => [:project, :status, :tracker, :priority], - :conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids}, - :order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id") - @issues_by_version[version] = issues - end - end - @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?} - end - - def activity - @days = Setting.activity_days_default.to_i - - if params[:from] - begin; @date_to = params[:from].to_date + 1; rescue; end - end - - @date_to ||= Date.today + 1 - @date_from = @date_to - @days - @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') - @author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id])) - - @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, - :with_subprojects => @with_subprojects, - :author => @author) - @activity.scope_select {|t| !params["show_#{t}"].nil?} - @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? - - events = @activity.events(@date_from, @date_to) - - if events.empty? || stale?(:etag => [events.first, User.current]) - respond_to do |format| - format.html { - @events_by_day = events.group_by(&:event_date) - render :layout => false if request.xhr? - } - format.atom { - title = l(:label_activity) - if @author - title = @author.name - elsif @activity.scope.size == 1 - title = l("label_#{@activity.scope.first.singularize}_plural") - end - render_feed(events, :title => "#{@project || Setting.app_title}: #{title}") - } - end - end - - rescue ActiveRecord::RecordNotFound - render_404 - end - private def find_optional_project return true unless params[:id] @@ -364,14 +254,6 @@ render_404 end - def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil) - if ids = params[:tracker_ids] - @selected_tracker_ids = (ids.is_a? Array) ? ids.collect { |id| id.to_i.to_s } : ids.split('/').collect { |id| id.to_i.to_s } - else - @selected_tracker_ids = (default_trackers || selectable_trackers).collect {|t| t.id.to_s } - end - end - # Validates parent_id param according to user's permissions # TODO: move it to Project model in a validation that depends on User.current def validate_parent_id diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/timelog_controller.rb --- a/app/controllers/timelog_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/timelog_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -260,8 +260,8 @@ end @from, @to = @to, @from if @from && @to && @from > @to - @from ||= (TimeEntry.minimum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today) - 1 - @to ||= (TimeEntry.maximum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today) + @from ||= (TimeEntry.earilest_date_for_project(@project) || Date.today) + @to ||= (TimeEntry.latest_date_for_project(@project) || Date.today) end def load_available_criterias diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/users_controller.rb --- a/app/controllers/users_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/users_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -95,7 +95,9 @@ if request.post? @user.admin = params[:user][:admin] if params[:user][:admin] @user.login = params[:user][:login] if params[:user][:login] - @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless params[:password].nil? or params[:password].empty? or @user.auth_source_id + if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) + @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] + end @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids] @user.attributes = params[:user] # Was the account actived ? (do it before User#save clears the change) diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/controllers/versions_controller.rb --- a/app/controllers/versions_controller.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/controllers/versions_controller.rb Fri Sep 24 14:06:04 2010 +0100 @@ -18,13 +18,37 @@ class VersionsController < ApplicationController menu_item :roadmap model_object Version - before_filter :find_model_object, :except => [:new, :close_completed] - before_filter :find_project_from_association, :except => [:new, :close_completed] - before_filter :find_project, :only => [:new, :close_completed] + before_filter :find_model_object, :except => [:index, :new, :create, :close_completed] + before_filter :find_project_from_association, :except => [:index, :new, :create, :close_completed] + before_filter :find_project, :only => [:index, :new, :create, :close_completed] before_filter :authorize helper :custom_fields helper :projects + + def index + @trackers = @project.trackers.find(:all, :order => 'position') + retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?}) + @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') + project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id] + + @versions = @project.shared_versions || [] + @versions += @project.rolled_up_versions.visible if @with_subprojects + @versions = @versions.uniq.sort + @versions.reject! {|version| version.closed? || version.completed? } unless params[:completed] + + @issues_by_version = {} + unless @selected_tracker_ids.empty? + @versions.each do |version| + issues = version.fixed_issues.visible.find(:all, + :include => [:project, :status, :tracker, :priority], + :conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids}, + :order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id") + @issues_by_version[version] = issues + end + end + @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?} + end def show @issues = @version.fixed_issues.visible.find(:all, @@ -39,6 +63,17 @@ attributes.delete('sharing') unless attributes.nil? || @version.allowed_sharings.include?(attributes['sharing']) @version.attributes = attributes end + end + + def create + # TODO: refactor with code above in #new + @version = @project.versions.build + if params[:version] + attributes = params[:version].dup + attributes.delete('sharing') unless attributes.nil? || @version.allowed_sharings.include?(attributes['sharing']) + @version.attributes = attributes + end + if request.post? if @version.save respond_to do |format| @@ -55,7 +90,7 @@ end else respond_to do |format| - format.html + format.html { render :action => 'new' } format.js do render(:update) {|page| page.alert(@version.errors.full_messages.join('\n')) } end @@ -63,9 +98,12 @@ end end end + + def edit + end - def edit - if request.post? && params[:version] + def update + if request.put? && params[:version] attributes = params[:version].dup attributes.delete('sharing') unless @version.allowed_sharings.include?(attributes['sharing']) if @version.update_attributes(attributes) @@ -76,7 +114,7 @@ end def close_completed - if request.post? + if request.put? @project.close_completed_versions end redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project @@ -105,4 +143,13 @@ rescue ActiveRecord::RecordNotFound render_404 end + + def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil) + if ids = params[:tracker_ids] + @selected_tracker_ids = (ids.is_a? Array) ? ids.collect { |id| id.to_i.to_s } : ids.split('/').collect { |id| id.to_i.to_s } + else + @selected_tracker_ids = (default_trackers || selectable_trackers).collect {|t| t.id.to_s } + end + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/all-wcprops --- a/app/helpers/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 36 -/svn/!svn/ver/4014/trunk/app/helpers +/svn/!svn/ver/4166/trunk/app/helpers END trackers_helper.rb K 25 @@ -43,7 +43,7 @@ K 25 svn:wc:ra_dav:version-url V 52 -/svn/!svn/ver/2304/trunk/app/helpers/admin_helper.rb +/svn/!svn/ver/4080/trunk/app/helpers/admin_helper.rb END projects_helper.rb K 25 @@ -57,6 +57,12 @@ V 53 /svn/!svn/ver/333/trunk/app/helpers/account_helper.rb END +calendars_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/!svn/ver/4046/trunk/app/helpers/calendars_helper.rb +END issue_categories_helper.rb K 25 svn:wc:ra_dav:version-url @@ -85,7 +91,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/3952/trunk/app/helpers/issues_helper.rb +/svn/!svn/ver/4166/trunk/app/helpers/issues_helper.rb END queries_helper.rb K 25 @@ -93,6 +99,12 @@ V 54 /svn/!svn/ver/3924/trunk/app/helpers/queries_helper.rb END +gantt_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 52 +/svn/!svn/ver/4072/trunk/app/helpers/gantt_helper.rb +END mail_handler_helper.rb K 25 svn:wc:ra_dav:version-url @@ -123,29 +135,29 @@ V 53 /svn/!svn/ver/333/trunk/app/helpers/welcome_helper.rb END +journals_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/!svn/ver/4062/trunk/app/helpers/journals_helper.rb +END workflows_helper.rb K 25 svn:wc:ra_dav:version-url V 56 /svn/!svn/ver/1914/trunk/app/helpers/workflows_helper.rb END -journals_helper.rb -K 25 -svn:wc:ra_dav:version-url -V 55 -/svn/!svn/ver/3941/trunk/app/helpers/journals_helper.rb -END reports_helper.rb K 25 svn:wc:ra_dav:version-url V 53 /svn/!svn/ver/629/trunk/app/helpers/reports_helper.rb END -custom_fields_helper.rb +timelog_helper.rb K 25 svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/3675/trunk/app/helpers/custom_fields_helper.rb +V 54 +/svn/!svn/ver/3708/trunk/app/helpers/timelog_helper.rb END settings_helper.rb K 25 @@ -153,11 +165,17 @@ V 55 /svn/!svn/ver/3222/trunk/app/helpers/settings_helper.rb END -timelog_helper.rb +custom_fields_helper.rb K 25 svn:wc:ra_dav:version-url -V 54 -/svn/!svn/ver/3708/trunk/app/helpers/timelog_helper.rb +V 60 +/svn/!svn/ver/3675/trunk/app/helpers/custom_fields_helper.rb +END +issue_moves_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/!svn/ver/3936/trunk/app/helpers/issue_moves_helper.rb END users_helper.rb K 25 @@ -165,17 +183,11 @@ V 52 /svn/!svn/ver/3237/trunk/app/helpers/users_helper.rb END -issue_moves_helper.rb -K 25 -svn:wc:ra_dav:version-url -V 58 -/svn/!svn/ver/3936/trunk/app/helpers/issue_moves_helper.rb -END application_helper.rb K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/4014/trunk/app/helpers/application_helper.rb +/svn/!svn/ver/4103/trunk/app/helpers/application_helper.rb END auth_sources_helper.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/entries --- a/app/helpers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/helpers http://redmine.rubyforge.org/svn -2010-08-22T19:12:21.015911Z -4014 +2010-09-20T18:50:14.663319Z +4166 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.431779Z e1b19c2c81df384b2026001d1d9605fd 2007-03-12T17:59:02.654744Z 333 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.427784Z ab0af291fb143223852a6edddc64b74b 2009-09-12T08:36:46.650954Z 2869 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.427784Z 0cd3093356b7034ee950ca327fc7aabc 2007-03-12T17:59:02.654744Z 333 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.431779Z 69869e026dc6cbacc618214e4bb13b1b 2007-03-12T17:59:02.654744Z 333 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.431779Z 491ead5828edb57adcd7333943656c94 2010-03-27T16:55:20.312262Z 3618 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-24T11:56:52.900009Z d617582e4bc6a3eedbc4f37f8fa3d509 2010-04-11T15:18:49.769279Z 3659 @@ -236,11 +236,11 @@ -2010-07-23T14:49:44.280140Z -836fbe23af73953fa253844a97f42ea7 -2009-01-24T11:31:15.122844Z -2304 -jplang +2010-09-24T12:48:25.903794Z +258ebc9ad13b3111585e5118ec607d1b +2010-09-10T23:07:10.817821Z +4080 +edavis10 has-props @@ -262,7 +262,7 @@ -1161 +976 projects_helper.rb file @@ -270,7 +270,7 @@ -2010-08-25T15:27:52.882610Z +2010-09-23T14:37:44.427784Z 19efbd2b30f44f233d5140437e2707a0 2010-08-08T07:07:20.961363Z 3924 @@ -304,7 +304,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.423776Z 42d20ee00a3c45e3411634dbb09e2447 2007-03-12T17:59:02.654744Z 333 @@ -332,13 +332,47 @@ 817 +calendars_helper.rb +file + + + + +2010-09-24T12:48:25.903794Z +c8780c65337211f34097d74a8c3c9f6e +2010-08-26T16:37:26.575205Z +4046 +edavis10 + + + + + + + + + + + + + + + + + + + + + +1462 + issue_categories_helper.rb file -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.427784Z 1257aafe6669c839ab46dac2b2732ae0 2007-03-12T17:59:02.654744Z 333 @@ -372,7 +406,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.423776Z ceb0fce7a4c271df3ae182c29caf9c03 2007-03-12T17:59:02.654744Z 333 @@ -406,7 +440,7 @@ -2010-07-23T14:49:44.280140Z +2010-09-23T14:37:44.431779Z aee0a578b4bbfe95d2ede93a418824a6 2009-06-28T11:55:49.957729Z 2794 @@ -440,7 +474,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.427784Z fc5ec20dd0ca3ce1d954b219417eff70 2007-03-12T17:59:02.654744Z 333 @@ -474,10 +508,10 @@ -2010-08-25T15:27:52.886524Z -cee3b3c259a71a111285bdf4e756af29 -2010-08-19T03:43:33.818285Z -3952 +2010-09-24T12:48:25.903794Z +f45b693d0286eacc66fde223d7306002 +2010-09-20T18:50:14.663319Z +4166 edavis10 has-props @@ -500,7 +534,7 @@ -10746 +11249 queries_helper.rb file @@ -508,7 +542,7 @@ -2010-08-25T15:27:52.886524Z +2010-09-23T14:37:44.427784Z 403463e02373d20faf0ed8988cfae033 2010-08-08T07:07:20.961363Z 3924 @@ -536,13 +570,47 @@ 3785 +gantt_helper.rb +file + + + + +2010-09-24T12:48:25.903794Z +bed98c36b12ec59c120d8da45f1511e0 +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +1027 + mail_handler_helper.rb file -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.427784Z c79faf6237abac40fabce0eacbfbb4cb 2008-06-25T19:25:28.386590Z 1584 @@ -576,7 +644,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z fc71d3a83fe0178e0c6d9519c7a62dde 2010-03-13T17:45:41.194736Z 3579 @@ -610,7 +678,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.427784Z d7134d76eff99aef107d8930903b10e0 2007-03-12T17:59:02.654744Z 333 @@ -644,7 +712,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.427784Z cc94b2fd5c6a87acac13bbe6e91bd39a 2007-03-12T17:59:02.654744Z 333 @@ -678,7 +746,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 2d03eb3683f312ec26736c696319ec76 2007-03-12T17:59:02.654744Z 333 @@ -712,10 +780,10 @@ -2010-08-25T15:27:52.886524Z +2010-09-24T12:48:25.903794Z b64edde44bceed7fb0911f87dba971aa -2010-08-16T16:25:04.741303Z -3941 +2010-09-05T22:57:20.669640Z +4062 edavis10 has-props @@ -746,7 +814,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 4f7bcbe149363ecb18080e3ce6c3f761 2008-09-28T12:03:17.584169Z 1914 @@ -780,7 +848,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 9daafcfffa933849b3ee09fe5fd7b0cc 2007-08-13T17:00:59.400243Z 629 @@ -814,7 +882,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 1888fd2d4a1be5fa0d6ad8a63238e2b4 2010-04-30T12:18:11.536180Z 3708 @@ -848,7 +916,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 72a1f70b395a94a9efae4d1046d5df2b 2009-12-23T17:56:39.685148Z 3222 @@ -882,7 +950,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.423776Z 97753365c8eb76a948d7417d5db31079 2010-04-16T15:34:05.970144Z 3675 @@ -916,7 +984,7 @@ -2010-07-23T14:49:44.284157Z +2010-09-23T14:37:44.431779Z 051113e44a01776675b1a38144a5fb8c 2009-12-24T16:14:15.868995Z 3237 @@ -950,7 +1018,7 @@ -2010-08-25T15:27:52.886524Z +2010-09-23T14:37:44.427784Z 66e99bd3af036c92a773a91e92a725f9 2010-08-11T14:42:10.119704Z 3936 @@ -984,10 +1052,10 @@ -2010-08-25T15:27:52.886524Z -93af3e244c658ab28a4da65322eba7ac -2010-08-22T19:12:21.015911Z -4014 +2010-09-24T12:48:25.903794Z +fed6be9c1540dab50fb9e194984395b3 +2010-09-20T02:55:14.397976Z +4103 edavis10 has-props @@ -1010,7 +1078,7 @@ -32211 +33297 auth_sources_helper.rb file @@ -1018,7 +1086,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.423776Z 19759b6e665f9063140da8ac473d9e31 2007-03-12T17:59:02.654744Z 333 @@ -1052,7 +1120,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.431779Z da0566fb2a355566f38723e4a11d1aab 2009-07-18T09:46:20.387008Z 2822 @@ -1086,7 +1154,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.427784Z 70db854f3fd0a38d203a65c44d93bb13 2010-02-06T12:54:13.653502Z 3373 @@ -1120,7 +1188,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.431779Z fd18226266f3e53f6af000ac07a13313 2007-12-07T10:26:07.864320Z 955 @@ -1154,7 +1222,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.427784Z fef3a97e6644b418b44f9551aa65af95 2007-05-05T13:22:27.245135Z 506 @@ -1188,7 +1256,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.423776Z 0ca8f33522734ee0417089366037a7cb 2007-05-13T17:09:56.765659Z 529 @@ -1222,7 +1290,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.423776Z 6e15ada8c772d8daf8062cec2885ad9c 2008-12-09T16:54:46.963649Z 2116 @@ -1256,7 +1324,7 @@ -2010-07-23T14:49:44.288130Z +2010-09-23T14:37:44.427784Z d808f6794a2fa7cd059ed56d5c8d1b28 2007-03-12T17:59:02.654744Z 333 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/text-base/admin_helper.rb.svn-base --- a/app/helpers/.svn/text-base/admin_helper.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/.svn/text-base/admin_helper.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -20,12 +20,4 @@ options_for_select([[l(:label_all), ''], [l(:status_active), 1]], selected) end - - def css_project_classes(project) - s = 'project' - s << ' root' if project.root? - s << ' child' if project.child? - s << (project.leaf? ? ' leaf' : ' parent') - s - end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/text-base/application_helper.rb.svn-base --- a/app/helpers/.svn/text-base/application_helper.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/.svn/text-base/application_helper.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -32,8 +32,27 @@ end # Display a link if user is authorized + # + # @param [String] name Anchor text (passed to link_to) + # @param [Hash, String] options Hash params or url for the link target (passed to link_to). + # This will checked by authorize_for to see if the user is authorized + # @param [optional, Hash] html_options Options passed to link_to + # @param [optional, Hash] parameters_for_method_reference Extra parameters for link_to def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference) - link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller] || params[:controller], options[:action]) + if options.is_a?(String) + begin + route = ActionController::Routing::Routes.recognize_path(options.gsub(/\?.*/,''), :method => options[:method] || :get) + link_controller = route[:controller] + link_action = route[:action] + rescue ActionController::RoutingError # Parse failed, not a route + link_controller, link_action = nil, nil + end + else + link_controller = options[:controller] || params[:controller] + link_action = options[:action] + end + + link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(link_controller, link_action) end # Display a link to remote if user is authorized @@ -102,6 +121,11 @@ link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => revision}, :title => l(:label_revision_id, revision)) end + + def link_to_project(project, options={}) + options[:class] ||= 'project' + link_to(h(project), {:controller => 'projects', :action => 'show', :id => project}, :class => options[:class]) + end # Generates a link to a project if active # Examples: @@ -302,7 +326,7 @@ def time_tag(time) text = distance_of_time_in_words(Time.now, time) if @project - link_to(text, {:controller => 'projects', :action => 'activity', :id => @project, :from => time.to_date}, :title => format_time(time)) + link_to(text, {:controller => 'activities', :action => 'index', :id => @project, :from => time.to_date}, :title => format_time(time)) else content_tag('acronym', text, :title => format_time(time)) end @@ -805,7 +829,7 @@ # +user+ can be a User or a string that will be scanned for an email address (eg. 'joe ') def avatar(user, options = { }) if Setting.gravatar_enabled? - options.merge!({:ssl => Setting.protocol == 'https', :default => Setting.gravatar_default}) + options.merge!({:ssl => (defined?(request) && request.ssl?), :default => Setting.gravatar_default}) email = nil if user.respond_to?(:mail) email = user.mail @@ -813,6 +837,8 @@ email = $1 end return gravatar(email.to_s.downcase, options) unless email.blank? rescue nil + else + '' end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/text-base/calendars_helper.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/helpers/.svn/text-base/calendars_helper.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,45 @@ +module CalendarsHelper + def link_to_previous_month(year, month, options={}) + target_year, target_month = if month == 1 + [year - 1, 12] + else + [year, month - 1] + end + + name = if target_month == 12 + "#{month_name(target_month)} #{target_year}" + else + "#{month_name(target_month)}" + end + + link_to_month(('« ' + name), target_year, target_month, options) + end + + def link_to_next_month(year, month, options={}) + target_year, target_month = if month == 12 + [year + 1, 1] + else + [year, month + 1] + end + + name = if target_month == 1 + "#{month_name(target_month)} #{target_year}" + else + "#{month_name(target_month)}" + end + + link_to_month((name + ' »'), target_year, target_month, options) + end + + def link_to_month(link_name, year, month, options={}) + project_id = options[:project].present? ? options[:project].to_param : nil + + link_target = calendar_path(:year => year, :month => month, :project_id => project_id) + + link_to_remote(link_name, + {:update => "content", :url => link_target, :method => :put}, + {:href => link_target}) + + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/text-base/gantt_helper.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/helpers/.svn/text-base/gantt_helper.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,24 @@ +# redMine - project management software +# Copyright (C) 2006 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. + +module GanttHelper + def number_of_issues_on_versions(gantt) + versions = gantt.events.collect {|event| (event.is_a? Version) ? event : nil}.compact + + versions.sum {|v| v.fixed_issues.for_gantt.with_query(@query).count} + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/.svn/text-base/issues_helper.rb.svn-base --- a/app/helpers/.svn/text-base/issues_helper.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/.svn/text-base/issues_helper.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -28,15 +28,26 @@ ancestors << issue unless issue.leaf? end end - + + # Renders a HTML/CSS tooltip + # + # To use, a trigger div is needed. This is a div with the class of "tooltip" + # that contains this method wrapped in a span with the class of "tip" + # + #
<%= link_to_issue(issue) %> + # <%= render_issue_tooltip(issue) %> + #
+ # def render_issue_tooltip(issue) @cached_label_status ||= l(:field_status) @cached_label_start_date ||= l(:field_start_date) @cached_label_due_date ||= l(:field_due_date) @cached_label_assigned_to ||= l(:field_assigned_to) @cached_label_priority ||= l(:field_priority) - + @cached_label_project ||= l(:field_project) + link_to_issue(issue) + "

" + + "#{@cached_label_project}: #{link_to_project(issue.project)}
" + "#{@cached_label_status}: #{issue.status.name}
" + "#{@cached_label_start_date}: #{format_date(issue.start_date)}
" + "#{@cached_label_due_date}: #{format_date(issue.due_date)}
" + @@ -243,7 +254,7 @@ when :in if gantt.zoom < 4 link_to_remote(l(:text_zoom_in) + image_tag('zoom_in.png', img_attributes.merge(:alt => l(:text_zoom_in))), - {:url => gantt.params.merge(:zoom => (gantt.zoom+1)), :update => 'content'}, + {:url => gantt.params.merge(:zoom => (gantt.zoom+1)), :method => :get, :update => 'content'}, {:href => url_for(gantt.params.merge(:zoom => (gantt.zoom+1)))}) else l(:text_zoom_in) + @@ -253,7 +264,7 @@ when :out if gantt.zoom > 1 link_to_remote(l(:text_zoom_out) + image_tag('zoom_out.png', img_attributes.merge(:alt => l(:text_zoom_out))), - {:url => gantt.params.merge(:zoom => (gantt.zoom-1)), :update => 'content'}, + {:url => gantt.params.merge(:zoom => (gantt.zoom-1)), :method => :get, :update => 'content'}, {:href => url_for(gantt.params.merge(:zoom => (gantt.zoom-1)))}) else l(:text_zoom_out) + diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/admin_helper.rb --- a/app/helpers/admin_helper.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/admin_helper.rb Fri Sep 24 14:06:04 2010 +0100 @@ -20,12 +20,4 @@ options_for_select([[l(:label_all), ''], [l(:status_active), 1]], selected) end - - def css_project_classes(project) - s = 'project' - s << ' root' if project.root? - s << ' child' if project.child? - s << (project.leaf? ? ' leaf' : ' parent') - s - end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/application_helper.rb --- a/app/helpers/application_helper.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/application_helper.rb Fri Sep 24 14:06:04 2010 +0100 @@ -32,8 +32,27 @@ end # Display a link if user is authorized + # + # @param [String] name Anchor text (passed to link_to) + # @param [Hash, String] options Hash params or url for the link target (passed to link_to). + # This will checked by authorize_for to see if the user is authorized + # @param [optional, Hash] html_options Options passed to link_to + # @param [optional, Hash] parameters_for_method_reference Extra parameters for link_to def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference) - link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller] || params[:controller], options[:action]) + if options.is_a?(String) + begin + route = ActionController::Routing::Routes.recognize_path(options.gsub(/\?.*/,''), :method => options[:method] || :get) + link_controller = route[:controller] + link_action = route[:action] + rescue ActionController::RoutingError # Parse failed, not a route + link_controller, link_action = nil, nil + end + else + link_controller = options[:controller] || params[:controller] + link_action = options[:action] + end + + link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(link_controller, link_action) end # Display a link to remote if user is authorized @@ -102,6 +121,11 @@ link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => revision}, :title => l(:label_revision_id, revision)) end + + def link_to_project(project, options={}) + options[:class] ||= 'project' + link_to(h(project), {:controller => 'projects', :action => 'show', :id => project}, :class => options[:class]) + end # Generates a link to a project if active # Examples: @@ -302,7 +326,7 @@ def time_tag(time) text = distance_of_time_in_words(Time.now, time) if @project - link_to(text, {:controller => 'projects', :action => 'activity', :id => @project, :from => time.to_date}, :title => format_time(time)) + link_to(text, {:controller => 'activities', :action => 'index', :id => @project, :from => time.to_date}, :title => format_time(time)) else content_tag('acronym', text, :title => format_time(time)) end @@ -805,7 +829,7 @@ # +user+ can be a User or a string that will be scanned for an email address (eg. 'joe ') def avatar(user, options = { }) if Setting.gravatar_enabled? - options.merge!({:ssl => Setting.protocol == 'https', :default => Setting.gravatar_default}) + options.merge!({:ssl => (defined?(request) && request.ssl?), :default => Setting.gravatar_default}) email = nil if user.respond_to?(:mail) email = user.mail @@ -813,6 +837,8 @@ email = $1 end return gravatar(email.to_s.downcase, options) unless email.blank? rescue nil + else + '' end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/calendars_helper.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/helpers/calendars_helper.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,45 @@ +module CalendarsHelper + def link_to_previous_month(year, month, options={}) + target_year, target_month = if month == 1 + [year - 1, 12] + else + [year, month - 1] + end + + name = if target_month == 12 + "#{month_name(target_month)} #{target_year}" + else + "#{month_name(target_month)}" + end + + link_to_month(('« ' + name), target_year, target_month, options) + end + + def link_to_next_month(year, month, options={}) + target_year, target_month = if month == 12 + [year + 1, 1] + else + [year, month + 1] + end + + name = if target_month == 1 + "#{month_name(target_month)} #{target_year}" + else + "#{month_name(target_month)}" + end + + link_to_month((name + ' »'), target_year, target_month, options) + end + + def link_to_month(link_name, year, month, options={}) + project_id = options[:project].present? ? options[:project].to_param : nil + + link_target = calendar_path(:year => year, :month => month, :project_id => project_id) + + link_to_remote(link_name, + {:update => "content", :url => link_target, :method => :put}, + {:href => link_target}) + + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/gantt_helper.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/helpers/gantt_helper.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,24 @@ +# redMine - project management software +# Copyright (C) 2006 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. + +module GanttHelper + def number_of_issues_on_versions(gantt) + versions = gantt.events.collect {|event| (event.is_a? Version) ? event : nil}.compact + + versions.sum {|v| v.fixed_issues.for_gantt.with_query(@query).count} + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/helpers/issues_helper.rb --- a/app/helpers/issues_helper.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/helpers/issues_helper.rb Fri Sep 24 14:06:04 2010 +0100 @@ -28,15 +28,26 @@ ancestors << issue unless issue.leaf? end end - + + # Renders a HTML/CSS tooltip + # + # To use, a trigger div is needed. This is a div with the class of "tooltip" + # that contains this method wrapped in a span with the class of "tip" + # + #
<%= link_to_issue(issue) %> + # <%= render_issue_tooltip(issue) %> + #
+ # def render_issue_tooltip(issue) @cached_label_status ||= l(:field_status) @cached_label_start_date ||= l(:field_start_date) @cached_label_due_date ||= l(:field_due_date) @cached_label_assigned_to ||= l(:field_assigned_to) @cached_label_priority ||= l(:field_priority) - + @cached_label_project ||= l(:field_project) + link_to_issue(issue) + "

" + + "#{@cached_label_project}: #{link_to_project(issue.project)}
" + "#{@cached_label_status}: #{issue.status.name}
" + "#{@cached_label_start_date}: #{format_date(issue.start_date)}
" + "#{@cached_label_due_date}: #{format_date(issue.due_date)}
" + @@ -243,7 +254,7 @@ when :in if gantt.zoom < 4 link_to_remote(l(:text_zoom_in) + image_tag('zoom_in.png', img_attributes.merge(:alt => l(:text_zoom_in))), - {:url => gantt.params.merge(:zoom => (gantt.zoom+1)), :update => 'content'}, + {:url => gantt.params.merge(:zoom => (gantt.zoom+1)), :method => :get, :update => 'content'}, {:href => url_for(gantt.params.merge(:zoom => (gantt.zoom+1)))}) else l(:text_zoom_in) + @@ -253,7 +264,7 @@ when :out if gantt.zoom > 1 link_to_remote(l(:text_zoom_out) + image_tag('zoom_out.png', img_attributes.merge(:alt => l(:text_zoom_out))), - {:url => gantt.params.merge(:zoom => (gantt.zoom-1)), :update => 'content'}, + {:url => gantt.params.merge(:zoom => (gantt.zoom-1)), :method => :get, :update => 'content'}, {:href => url_for(gantt.params.merge(:zoom => (gantt.zoom-1)))}) else l(:text_zoom_out) + diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/all-wcprops --- a/app/models/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 35 -/svn/!svn/ver/3929/trunk/app/models +/svn/!svn/ver/4167/trunk/app/models END document.rb K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/3232/trunk/app/models/time_entry.rb +/svn/!svn/ver/4087/trunk/app/models/time_entry.rb END token.rb K 25 @@ -49,7 +49,7 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/3678/trunk/app/models/principal.rb +/svn/!svn/ver/4076/trunk/app/models/principal.rb END version_custom_field.rb K 25 @@ -81,6 +81,12 @@ V 50 /svn/!svn/ver/3240/trunk/app/models/enumeration.rb END +time_entry_activity_custom_field.rb +K 25 +svn:wc:ra_dav:version-url +V 71 +/svn/!svn/ver/2952/trunk/app/models/time_entry_activity_custom_field.rb +END member_role.rb K 25 svn:wc:ra_dav:version-url @@ -91,13 +97,7 @@ K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/3821/trunk/app/models/issue.rb -END -time_entry_activity_custom_field.rb -K 25 -svn:wc:ra_dav:version-url -V 71 -/svn/!svn/ver/2952/trunk/app/models/time_entry_activity_custom_field.rb +/svn/!svn/ver/4105/trunk/app/models/issue.rb END issue_priority.rb K 25 @@ -111,17 +111,23 @@ V 55 /svn/!svn/ver/3169/trunk/app/models/message_observer.rb END +wiki_content.rb +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/3632/trunk/app/models/wiki_content.rb +END watcher.rb K 25 svn:wc:ra_dav:version-url V 46 /svn/!svn/ver/3167/trunk/app/models/watcher.rb END -wiki_content.rb +wiki_page.rb K 25 svn:wc:ra_dav:version-url -V 51 -/svn/!svn/ver/3632/trunk/app/models/wiki_content.rb +V 48 +/svn/!svn/ver/3632/trunk/app/models/wiki_page.rb END enabled_module.rb K 25 @@ -129,12 +135,6 @@ V 53 /svn/!svn/ver/2970/trunk/app/models/enabled_module.rb END -wiki_page.rb -K 25 -svn:wc:ra_dav:version-url -V 48 -/svn/!svn/ver/3632/trunk/app/models/wiki_page.rb -END comment.rb K 25 svn:wc:ra_dav:version-url @@ -151,7 +151,7 @@ K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/3927/trunk/app/models/query.rb +/svn/!svn/ver/4079/trunk/app/models/query.rb END member.rb K 25 @@ -169,13 +169,7 @@ K 25 svn:wc:ra_dav:version-url V 45 -/svn/!svn/ver/3907/trunk/app/models/mailer.rb -END -journal.rb -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/2615/trunk/app/models/journal.rb +/svn/!svn/ver/4167/trunk/app/models/mailer.rb END workflow.rb K 25 @@ -183,6 +177,12 @@ V 47 /svn/!svn/ver/3709/trunk/app/models/workflow.rb END +journal.rb +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4062/trunk/app/models/journal.rb +END user_custom_field.rb K 25 svn:wc:ra_dav:version-url @@ -211,7 +211,7 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/3906/trunk/app/models/user.rb +/svn/!svn/ver/4164/trunk/app/models/user.rb END auth_source.rb K 25 @@ -253,7 +253,7 @@ K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/3761/trunk/app/models/version.rb +/svn/!svn/ver/4073/trunk/app/models/version.rb END issue_priority_custom_field.rb K 25 @@ -349,7 +349,7 @@ K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/3760/trunk/app/models/project.rb +/svn/!svn/ver/4087/trunk/app/models/project.rb END document_category.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/entries --- a/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/models http://redmine.rubyforge.org/svn -2010-08-09T05:10:00.803890Z -3929 -jbbarth +2010-09-20T23:17:51.402972Z +4167 +edavis10 @@ -35,7 +35,7 @@ -2010-07-23T14:49:44.579794Z +2010-09-23T14:37:44.471831Z 6edd75717c818c718387e30ec7aee840 2010-02-01T18:57:12.733490Z 3358 @@ -69,7 +69,7 @@ -2010-07-23T14:49:44.579794Z +2010-09-23T14:37:44.475780Z 009baaf8ec2c62e225d84f9dc9898a23 2010-06-20T16:22:36.211973Z 3801 @@ -103,7 +103,7 @@ -2010-07-23T14:49:44.579794Z +2010-09-24T11:56:52.924049Z 6d9599543924edc24abb739bd3f7e718 2010-02-21T14:42:45.276472Z 3472 @@ -137,11 +137,11 @@ -2010-07-23T14:49:44.579794Z -4f5b2c82132bd0855b0ba27be9b52df5 -2009-12-23T20:05:46.097327Z -3232 -jplang +2010-09-24T12:48:25.923798Z +005148fc17a331f651990b8784f70a3e +2010-09-14T19:02:25.847894Z +4087 +edavis10 has-props @@ -163,7 +163,7 @@ -3359 +4089 token.rb file @@ -171,7 +171,7 @@ -2010-07-23T14:49:44.579794Z +2010-09-23T14:37:44.487730Z 441a5648e149e471c91928dc7f3f29a6 2009-06-02T17:24:50.360628Z 2778 @@ -205,7 +205,7 @@ -2010-07-23T14:49:44.579794Z +2010-09-23T14:37:44.475780Z 0c8188293bba080a074aeb40a86e49f7 2009-03-28T00:38:57.780983Z 2637 @@ -239,7 +239,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.467732Z 87f2ff0401993963de36fe7502cd6949 2010-02-26T09:13:12.187275Z 3492 @@ -273,11 +273,11 @@ -2010-07-23T14:49:44.584123Z -98ae15cdf9ad4985dcefc04167b5004c -2010-04-17T12:14:52.002114Z -3678 -jplang +2010-09-24T12:48:25.923798Z +01332c0957f952b76c01e7c7ebd112f0 +2010-09-10T18:46:23.747988Z +4076 +edavis10 has-props @@ -299,7 +299,7 @@ -2223 +2265 version_custom_field.rb file @@ -307,7 +307,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.491776Z 6bf31c0491d87fff1481a91519f66363 2009-11-15T15:22:55.021661Z 3064 @@ -341,7 +341,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.471831Z cd405a055651d29541f2ebcf4e22f8dc 2007-03-15T22:11:02.843262Z 337 @@ -375,7 +375,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.471831Z da42817b3f290549a03ada82a93dc5d0 2007-12-07T10:26:07.864320Z 955 @@ -409,7 +409,7 @@ -2010-07-28T11:07:47.068192Z +2010-09-23T14:37:44.467732Z 622826f16c01373c631876eb1e480a65 2010-07-24T00:19:32.307471Z 3860 @@ -443,7 +443,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.471831Z 90ec955317994a58df9a5a7f85b810e7 2009-12-25T17:13:58.090736Z 3240 @@ -477,10 +477,10 @@ -2010-07-23T14:49:44.584123Z -b330a85d4583cb685560da776636ec8e -2010-06-30T02:45:34.835470Z -3821 +2010-09-24T12:48:25.923798Z +d169fc23e9a8686dba8f414b92e0fe26 +2010-09-20T02:55:26.436604Z +4105 edavis10 has-props @@ -503,7 +503,7 @@ -30712 +31528 member_role.rb file @@ -511,7 +511,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.475780Z 95caba31fc55fea2d5ff257e70cf14b2 2009-12-26T16:14:55.591181Z 3250 @@ -545,7 +545,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.487730Z d5549b2847a255d4bdd7185a670988b5 2009-10-21T22:35:03.091600Z 2952 @@ -579,7 +579,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.471831Z 028b9a9be35e74573921f9865f953439 2009-12-25T17:13:58.090736Z 3240 @@ -613,7 +613,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.475780Z 50c2305c38ffecfb2138cd437e1c255c 2009-12-13T14:26:54.396245Z 3169 @@ -647,7 +647,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.491776Z c72443f206052fafae720378fba40163 2009-12-13T12:39:22.716082Z 3167 @@ -681,7 +681,7 @@ -2010-07-23T14:49:44.584123Z +2010-09-23T14:37:44.491776Z 2ce4521051866ff5f654f8a8bddfc824 2010-04-11T12:56:18.077630Z 3632 @@ -715,7 +715,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.471831Z 56631baa5560f63cbb213855761c8fcc 2009-10-25T10:31:01.135799Z 2970 @@ -749,7 +749,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.491776Z e6b3c8e83cb441a021358acf5d246d21 2010-04-11T12:56:18.077630Z 3632 @@ -783,7 +783,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.467732Z 0ca314834c39ddc12f2993caf5722e79 2007-04-25T15:06:20.062636Z 479 @@ -817,7 +817,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.491776Z a6804cb0c0abc6de72a184e7384ed36d 2009-05-17T09:55:13.601447Z 2749 @@ -851,11 +851,11 @@ -2010-08-25T15:27:52.946649Z -e3b2224c743932dc842f590dd70571e9 -2010-08-08T09:01:25.536716Z -3927 -jbbarth +2010-09-24T12:48:25.923798Z +1cbc803eff5cf06cb8f3f133e5e7bed2 +2010-09-10T19:53:57.028875Z +4079 +edavis10 has-props @@ -877,7 +877,7 @@ -23988 +26050 member.rb file @@ -885,7 +885,7 @@ -2010-08-25T15:27:52.946649Z +2010-09-23T14:37:44.475780Z 84d28844bbac90dab2c56a27ed58db18 2010-08-09T05:10:00.803890Z 3929 @@ -919,7 +919,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.471831Z 60dadf29c4da2a4e97f463a647b8e98d 2009-10-21T22:34:22.740755Z 2945 @@ -953,10 +953,10 @@ -2010-08-25T15:27:52.946649Z -41eda2aaf7baa40d51eb2f3359bb0877 -2010-08-03T16:01:53.564278Z -3907 +2010-09-24T12:48:25.923798Z +46fe26aa1e0c5f59bdc2eab01a1c88e0 +2010-09-20T23:17:51.402972Z +4167 edavis10 has-props @@ -979,7 +979,7 @@ -18277 +18478 journal.rb file @@ -987,11 +987,11 @@ -2010-07-23T14:49:44.588155Z -f70b37ff314f738b5f76fbb708534cd3 -2009-03-23T17:18:04.829029Z -2615 -jplang +2010-09-24T12:48:25.923798Z +f3797cd6a4b7e4d256aba15e317e98b1 +2010-09-05T22:57:20.669640Z +4062 +edavis10 has-props @@ -1013,7 +1013,7 @@ -3041 +3214 workflow.rb file @@ -1021,7 +1021,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.491776Z 4561dfcb12b3fa066a9516c59a9eef94 2010-04-30T12:19:51.238583Z 3709 @@ -1055,7 +1055,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.487730Z 47067c42f4d6607335adf75d11c3323b 2007-03-12T17:59:02.654744Z 333 @@ -1089,7 +1089,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.487730Z 7dbc4f88d9fcd8f1057ea6d5982a1099 2008-07-22T18:52:00.008047Z 1689 @@ -1123,7 +1123,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.467732Z 48b90644181e44606c63f82c3655baa1 2010-04-16T15:33:49.924704Z 3672 @@ -1157,7 +1157,7 @@ -2010-07-23T14:49:44.588155Z +2010-09-23T14:37:44.487730Z 5a0ad520fc95e7fefd2c6e6a1c9c3e76 2010-02-12T22:08:02.981984Z 3417 @@ -1191,10 +1191,10 @@ -2010-08-25T15:27:52.950484Z -002bada85b2d0e4104ecc304e99b457c -2010-08-03T15:26:50.842290Z -3906 +2010-09-24T12:48:25.927735Z +911221c7bce8ea7ed20a36477f72d457 +2010-09-20T16:38:00.519430Z +4164 edavis10 has-props @@ -1217,7 +1217,7 @@ -13018 +13260 auth_source.rb file @@ -1225,7 +1225,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.467732Z 837db713425e094779466a392a668679 2010-05-23T03:16:37.499264Z 3745 @@ -1259,7 +1259,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.475780Z b98015db4679606ee5f8d75e55574745 2009-03-28T00:38:57.780983Z 2637 @@ -1293,7 +1293,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.475780Z 66b09263cf7988c661307523991d83d5 2010-02-06T12:54:13.653502Z 3373 @@ -1327,7 +1327,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.491776Z 4e4c64bab677a9e081fc1230ff6a3773 2007-09-09T17:05:38.846724Z 720 @@ -1361,7 +1361,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.475780Z c90f5daaa6fe06429b93f2010ba90fa0 2010-05-01T14:07:36.553776Z 3729 @@ -1395,7 +1395,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.471831Z b76852d33bcfab19bb6c4e3e727da0ed 2009-03-28T00:38:57.780983Z 2637 @@ -1429,10 +1429,10 @@ -2010-07-23T14:49:44.592153Z -d4492e02fbd6a0b297edb76c9c61a902 -2010-05-27T17:16:15.732495Z -3761 +2010-09-24T12:48:25.927735Z +7f91847223c06c86cef6696956c67846 +2010-09-10T03:09:11.557425Z +4073 edavis10 has-props @@ -1455,7 +1455,7 @@ -7222 +7741 issue_priority_custom_field.rb file @@ -1463,7 +1463,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.475780Z 478dceec50480a17a7f2c321fc59e794 2009-10-21T22:34:22.740755Z 2945 @@ -1497,7 +1497,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.467732Z 9927f674ea1f10f785af7adfd11e6f83 2009-12-13T12:39:22.716082Z 3167 @@ -1531,7 +1531,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.467732Z 56226fcf13a57b18ed9faf979b5cf1bc 2010-06-19T03:54:28.250424Z 3774 @@ -1565,7 +1565,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.471831Z 2c07c440361210f71d2eb821ce95ce12 2009-09-12T08:36:46.650954Z 2869 @@ -1599,7 +1599,7 @@ -2010-07-28T11:07:47.068192Z +2010-09-23T14:37:44.475780Z 44dc499c4e4dfc3601165f07e6daa4b5 2010-07-25T10:48:27.199057Z 3881 @@ -1633,7 +1633,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.487730Z 2508e3911e5bb016a9925502244b358f 2009-12-25T17:13:58.090736Z 3240 @@ -1667,7 +1667,7 @@ -2010-07-23T14:49:44.592153Z +2010-09-23T14:37:44.487730Z 00670b3218d9d2d2a8435809f524827f 2009-12-18T15:41:32.828284Z 3188 @@ -1701,7 +1701,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.475780Z 4b700215d4c3bf72071a45448fa2b0e3 2007-04-24T18:26:42.003879Z 478 @@ -1735,7 +1735,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.471831Z 7fa34bcff98b6a84bbe125d949af18af 2009-09-12T08:36:46.650954Z 2869 @@ -1769,7 +1769,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.471831Z d4026d660fcb2601834d26268468aec2 2009-03-28T00:38:57.780983Z 2637 @@ -1803,7 +1803,7 @@ -2010-08-25T15:27:52.950484Z +2010-09-24T11:56:52.912062Z 434403a24695ff195df946e1db456ca7 2010-08-08T20:26:33.212059Z 3928 @@ -1837,7 +1837,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.487730Z 47730c63e98da3fdb40ab8551ee3d509 2010-02-03T17:47:47.868223Z 3363 @@ -1871,7 +1871,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.479733Z 926ef98901f13ba13688fdc3ab0184fc 2007-03-12T17:59:02.654744Z 333 @@ -1905,7 +1905,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.491776Z 5012ec7e38525085a500671f68708ba5 2010-04-11T12:56:18.077630Z 3632 @@ -1939,7 +1939,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.471831Z 2fdf508dceb97028a97b4fee91368d92 2009-11-20T12:57:52.379950Z 3077 @@ -1973,10 +1973,10 @@ -2010-07-23T14:49:44.596180Z -0d205046f384270082f33ecc0495289d -2010-05-27T17:16:10.557962Z -3760 +2010-09-24T12:48:25.927735Z +fc2bd6fba523135882690f2d4b218277 +2010-09-14T19:02:25.847894Z +4087 edavis10 has-props @@ -1999,7 +1999,7 @@ -27886 +29540 document_category.rb file @@ -2007,7 +2007,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.471831Z aeaf540cf9f940cbec4ddfc984dd6af5 2009-12-25T17:13:58.090736Z 3240 @@ -2041,7 +2041,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.475780Z b1b4aa93c05ff00a28d777ecdd77d66d 2010-02-01T18:57:12.733490Z 3358 @@ -2075,7 +2075,7 @@ -2010-07-23T14:49:44.596180Z +2010-09-23T14:37:44.487730Z 41ea06399352eb7b8c2903357abe1ab0 2008-07-04T17:58:14.743502Z 1623 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/issue.rb.svn-base --- a/app/models/.svn/text-base/issue.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/issue.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -62,10 +62,28 @@ named_scope :open, :conditions => ["#{IssueStatus.table_name}.is_closed = ?", false], :include => :status - named_scope :recently_updated, :order => "#{self.table_name}.updated_on DESC" + named_scope :recently_updated, :order => "#{Issue.table_name}.updated_on DESC" named_scope :with_limit, lambda { |limit| { :limit => limit} } named_scope :on_active_project, :include => [:status, :project, :tracker], :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"] + named_scope :for_gantt, lambda { + { + :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version], + :order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC" + } + } + + named_scope :without_version, lambda { + { + :conditions => { :fixed_version_id => nil} + } + } + + named_scope :with_query, lambda {|query| + { + :conditions => Query.merge_conditions(query.statement) + } + } before_create :default_assign before_save :reschedule_following_issues, :close_duplicates, :update_done_ratio_from_issue_status @@ -357,6 +375,18 @@ def overdue? !due_date.nil? && (due_date < Date.today) && !status.is_closed? end + + # Is the amount of work done less than it should for the due date + def behind_schedule? + return false if start_date.nil? || due_date.nil? + done_date = start_date + ((due_date - start_date+1)* done_ratio/100).floor + return done_date <= Date.today + end + + # Does this issue have children? + def children? + !leaf? + end # Users the issue can be assigned to def assignable_users @@ -821,7 +851,7 @@ j.id as #{select_field}, count(i.id) as total from - #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins} as j + #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins} j where i.status_id=s.id and #{where} diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/journal.rb.svn-base --- a/app/models/.svn/text-base/journal.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/journal.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -65,4 +65,12 @@ def attachments journalized.respond_to?(:attachments) ? journalized.attachments : nil end + + # Returns a string of css classes + def css_classes + s = 'journal' + s << ' has-notes' unless notes.blank? + s << ' has-details' unless details.blank? + s + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/mailer.rb.svn-base --- a/app/models/.svn/text-base/mailer.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/mailer.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require 'ar_condition' + class Mailer < ActionMailer::Base layout 'mailer' helper :application @@ -306,13 +308,16 @@ # * :days => how many days in the future to remind about (defaults to 7) # * :tracker => id of tracker for filtering issues (defaults to all trackers) # * :project => id or identifier of project to process (defaults to all projects) + # * :users => array of user ids who should be reminded def self.reminders(options={}) days = options[:days] || 7 project = options[:project] ? Project.find(options[:project]) : nil tracker = options[:tracker] ? Tracker.find(options[:tracker]) : nil + user_ids = options[:users] s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date] s << "#{Issue.table_name}.assigned_to_id IS NOT NULL" + s << ["#{Issue.table_name}.assigned_to_id IN (?)", user_ids] if user_ids.present? s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}" s << "#{Issue.table_name}.project_id = #{project.id}" if project s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/principal.rb.svn-base --- a/app/models/.svn/text-base/principal.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/principal.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -33,7 +33,11 @@ } before_create :set_default_empty_values - + + def name(formatter = nil) + to_s + end + def <=>(principal) if self.class.name == principal.class.name self.to_s.downcase <=> principal.to_s.downcase diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/project.rb.svn-base --- a/app/models/.svn/text-base/project.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/project.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -412,6 +412,58 @@ def short_description(length = 255) description.gsub(/^(.{#{length}}[^\n\r]*).*$/m, '\1...').strip if description end + + def css_classes + s = 'project' + s << ' root' if root? + s << ' child' if child? + s << (leaf? ? ' leaf' : ' parent') + s + end + + # The earliest start date of a project, based on it's issues and versions + def start_date + if module_enabled?(:issue_tracking) + [ + issues.minimum('start_date'), + shared_versions.collect(&:effective_date), + shared_versions.collect {|v| v.fixed_issues.minimum('start_date')} + ].flatten.compact.min + end + end + + # The latest due date of an issue or version + def due_date + if module_enabled?(:issue_tracking) + [ + issues.maximum('due_date'), + shared_versions.collect(&:effective_date), + shared_versions.collect {|v| v.fixed_issues.maximum('due_date')} + ].flatten.compact.max + end + end + + def overdue? + active? && !due_date.nil? && (due_date < Date.today) + end + + # Returns the percent completed for this project, based on the + # progress on it's versions. + def completed_percent(options={:include_subprojects => false}) + if options.delete(:include_subprojects) + total = self_and_descendants.collect(&:completed_percent).sum + + total / self_and_descendants.count + else + if versions.count > 0 + total = versions.collect(&:completed_pourcent).sum + + total / versions.count + else + 100 + end + end + end # Return true if this project is allowed to do the specified action. # action can be: @@ -441,6 +493,15 @@ enabled_modules.clear end end + + # Returns an array of projects that are in this project's hierarchy + # + # Example: parents, children, siblings + def hierarchy + parents = project.self_and_ancestors || [] + descendants = project.descendants || [] + project_hierarchy = parents | descendants # Set union + end # Returns an auto-generated project identifier based on the last identifier used def self.next_identifier diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/query.rb.svn-base --- a/app/models/.svn/text-base/query.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/query.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -195,6 +195,12 @@ end @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty? @available_filters["author_id"] = { :type => :list, :order => 5, :values => user_values } unless user_values.empty? + + group_values = Group.all.collect {|g| [g.name, g.id] } + @available_filters["member_of_group"] = { :type => :list_optional, :order => 6, :values => group_values } unless group_values.empty? + + role_values = Role.givable.collect {|r| [r.name, r.id] } + @available_filters["assigned_to_role"] = { :type => :list_optional, :order => 7, :values => role_values } unless role_values.empty? if User.current.logged? @available_filters["watcher_id"] = { :type => :list, :order => 15, :values => [["<< #{l(:label_me)} >>", "me"]] } @@ -432,6 +438,47 @@ db_field = 'user_id' sql << "#{Issue.table_name}.id #{ operator == '=' ? 'IN' : 'NOT IN' } (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND " sql << sql_for_field(field, '=', v, db_table, db_field) + ')' + elsif field == "member_of_group" # named field + if operator == '*' # Any group + groups = Group.all + operator = '=' # Override the operator since we want to find by assigned_to + elsif operator == "!*" + groups = Group.all + operator = '!' # Override the operator since we want to find by assigned_to + else + groups = Group.find_all_by_id(v) + end + groups ||= [] + + members_of_groups = groups.inject([]) {|user_ids, group| + if group && group.user_ids.present? + user_ids << group.user_ids + end + user_ids.flatten.uniq.compact + }.sort.collect(&:to_s) + + sql << '(' + sql_for_field("assigned_to_id", operator, members_of_groups, Issue.table_name, "assigned_to_id", false) + ')' + + elsif field == "assigned_to_role" # named field + if operator == "*" # Any Role + roles = Role.givable + operator = '=' # Override the operator since we want to find by assigned_to + elsif operator == "!*" # No role + roles = Role.givable + operator = '!' # Override the operator since we want to find by assigned_to + else + roles = Role.givable.find_all_by_id(v) + end + roles ||= [] + + members_of_roles = roles.inject([]) {|user_ids, role| + if role && role.members + user_ids << role.members.collect(&:user_id) + end + user_ids.flatten.uniq.compact + }.sort.collect(&:to_s) + + sql << '(' + sql_for_field("assigned_to_id", operator, members_of_roles, Issue.table_name, "assigned_to_id", false) + ')' else # regular field db_table = Issue.table_name diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/time_entry.rb.svn-base --- a/app/models/.svn/text-base/time_entry.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/time_entry.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -81,4 +81,20 @@ yield end end + + def self.earilest_date_for_project(project=nil) + finder_conditions = ARCondition.new(Project.allowed_to_condition(User.current, :view_time_entries)) + if project + finder_conditions << ["project_id IN (?)", project.hierarchy.collect(&:id)] + end + TimeEntry.minimum(:spent_on, :include => :project, :conditions => finder_conditions.conditions) + end + + def self.latest_date_for_project(project=nil) + finder_conditions = ARCondition.new(Project.allowed_to_condition(User.current, :view_time_entries)) + if project + finder_conditions << ["project_id IN (?)", project.hierarchy.collect(&:id)] + end + TimeEntry.maximum(:spent_on, :include => :project, :conditions => finder_conditions.conditions) + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/user.rb.svn-base --- a/app/models/.svn/text-base/user.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/user.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -352,6 +352,12 @@ false end end + + # Is the user allowed to do the specified action on any project? + # See allowed_to? for the actions and valid options. + def allowed_to_globally?(action, options) + allowed_to?(action, nil, options.reverse_merge(:global => true)) + end def self.current=(user) @current_user = user diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/.svn/text-base/version.rb.svn-base --- a/app/models/.svn/text-base/version.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/.svn/text-base/version.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -73,6 +73,18 @@ def completed? effective_date && (effective_date <= Date.today) && (open_issues_count == 0) end + + def behind_schedule? + if completed_pourcent == 100 + return false + elsif due_date && fixed_issues.present? && fixed_issues.minimum('start_date') # TODO: should use #start_date but that method is wrong... + start_date = fixed_issues.minimum('start_date') + done_date = start_date + ((due_date - start_date+1)* completed_pourcent/100).floor + return done_date <= Date.today + else + false # No issues so it's not late + end + end # Returns the completion percentage of this version based on the amount of open/closed issues # and the time spent on the open issues. @@ -123,6 +135,10 @@ end def to_s; name end + + def to_s_with_project + "#{project} - #{name}" + end # Versions are sorted by effective_date and "Project Name - Version name" # Those with no effective_date are at the end, sorted by "Project Name - Version name" diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/issue.rb --- a/app/models/issue.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/issue.rb Fri Sep 24 14:06:04 2010 +0100 @@ -62,10 +62,28 @@ named_scope :open, :conditions => ["#{IssueStatus.table_name}.is_closed = ?", false], :include => :status - named_scope :recently_updated, :order => "#{self.table_name}.updated_on DESC" + named_scope :recently_updated, :order => "#{Issue.table_name}.updated_on DESC" named_scope :with_limit, lambda { |limit| { :limit => limit} } named_scope :on_active_project, :include => [:status, :project, :tracker], :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"] + named_scope :for_gantt, lambda { + { + :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version], + :order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC" + } + } + + named_scope :without_version, lambda { + { + :conditions => { :fixed_version_id => nil} + } + } + + named_scope :with_query, lambda {|query| + { + :conditions => Query.merge_conditions(query.statement) + } + } before_create :default_assign before_save :reschedule_following_issues, :close_duplicates, :update_done_ratio_from_issue_status @@ -357,6 +375,18 @@ def overdue? !due_date.nil? && (due_date < Date.today) && !status.is_closed? end + + # Is the amount of work done less than it should for the due date + def behind_schedule? + return false if start_date.nil? || due_date.nil? + done_date = start_date + ((due_date - start_date+1)* done_ratio/100).floor + return done_date <= Date.today + end + + # Does this issue have children? + def children? + !leaf? + end # Users the issue can be assigned to def assignable_users @@ -821,7 +851,7 @@ j.id as #{select_field}, count(i.id) as total from - #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins} as j + #{Issue.table_name} i, #{IssueStatus.table_name} s, #{joins} j where i.status_id=s.id and #{where} diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/journal.rb --- a/app/models/journal.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/journal.rb Fri Sep 24 14:06:04 2010 +0100 @@ -65,4 +65,12 @@ def attachments journalized.respond_to?(:attachments) ? journalized.attachments : nil end + + # Returns a string of css classes + def css_classes + s = 'journal' + s << ' has-notes' unless notes.blank? + s << ' has-details' unless details.blank? + s + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/mailer.rb --- a/app/models/mailer.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/mailer.rb Fri Sep 24 14:06:04 2010 +0100 @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require 'ar_condition' + class Mailer < ActionMailer::Base layout 'mailer' helper :application @@ -306,13 +308,16 @@ # * :days => how many days in the future to remind about (defaults to 7) # * :tracker => id of tracker for filtering issues (defaults to all trackers) # * :project => id or identifier of project to process (defaults to all projects) + # * :users => array of user ids who should be reminded def self.reminders(options={}) days = options[:days] || 7 project = options[:project] ? Project.find(options[:project]) : nil tracker = options[:tracker] ? Tracker.find(options[:tracker]) : nil + user_ids = options[:users] s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date] s << "#{Issue.table_name}.assigned_to_id IS NOT NULL" + s << ["#{Issue.table_name}.assigned_to_id IN (?)", user_ids] if user_ids.present? s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}" s << "#{Issue.table_name}.project_id = #{project.id}" if project s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/principal.rb --- a/app/models/principal.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/principal.rb Fri Sep 24 14:06:04 2010 +0100 @@ -33,7 +33,11 @@ } before_create :set_default_empty_values - + + def name(formatter = nil) + to_s + end + def <=>(principal) if self.class.name == principal.class.name self.to_s.downcase <=> principal.to_s.downcase diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/project.rb --- a/app/models/project.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/project.rb Fri Sep 24 14:06:04 2010 +0100 @@ -412,6 +412,58 @@ def short_description(length = 255) description.gsub(/^(.{#{length}}[^\n\r]*).*$/m, '\1...').strip if description end + + def css_classes + s = 'project' + s << ' root' if root? + s << ' child' if child? + s << (leaf? ? ' leaf' : ' parent') + s + end + + # The earliest start date of a project, based on it's issues and versions + def start_date + if module_enabled?(:issue_tracking) + [ + issues.minimum('start_date'), + shared_versions.collect(&:effective_date), + shared_versions.collect {|v| v.fixed_issues.minimum('start_date')} + ].flatten.compact.min + end + end + + # The latest due date of an issue or version + def due_date + if module_enabled?(:issue_tracking) + [ + issues.maximum('due_date'), + shared_versions.collect(&:effective_date), + shared_versions.collect {|v| v.fixed_issues.maximum('due_date')} + ].flatten.compact.max + end + end + + def overdue? + active? && !due_date.nil? && (due_date < Date.today) + end + + # Returns the percent completed for this project, based on the + # progress on it's versions. + def completed_percent(options={:include_subprojects => false}) + if options.delete(:include_subprojects) + total = self_and_descendants.collect(&:completed_percent).sum + + total / self_and_descendants.count + else + if versions.count > 0 + total = versions.collect(&:completed_pourcent).sum + + total / versions.count + else + 100 + end + end + end # Return true if this project is allowed to do the specified action. # action can be: @@ -441,6 +493,15 @@ enabled_modules.clear end end + + # Returns an array of projects that are in this project's hierarchy + # + # Example: parents, children, siblings + def hierarchy + parents = project.self_and_ancestors || [] + descendants = project.descendants || [] + project_hierarchy = parents | descendants # Set union + end # Returns an auto-generated project identifier based on the last identifier used def self.next_identifier diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/query.rb --- a/app/models/query.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/query.rb Fri Sep 24 14:06:04 2010 +0100 @@ -195,6 +195,12 @@ end @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty? @available_filters["author_id"] = { :type => :list, :order => 5, :values => user_values } unless user_values.empty? + + group_values = Group.all.collect {|g| [g.name, g.id] } + @available_filters["member_of_group"] = { :type => :list_optional, :order => 6, :values => group_values } unless group_values.empty? + + role_values = Role.givable.collect {|r| [r.name, r.id] } + @available_filters["assigned_to_role"] = { :type => :list_optional, :order => 7, :values => role_values } unless role_values.empty? if User.current.logged? @available_filters["watcher_id"] = { :type => :list, :order => 15, :values => [["<< #{l(:label_me)} >>", "me"]] } @@ -432,6 +438,47 @@ db_field = 'user_id' sql << "#{Issue.table_name}.id #{ operator == '=' ? 'IN' : 'NOT IN' } (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND " sql << sql_for_field(field, '=', v, db_table, db_field) + ')' + elsif field == "member_of_group" # named field + if operator == '*' # Any group + groups = Group.all + operator = '=' # Override the operator since we want to find by assigned_to + elsif operator == "!*" + groups = Group.all + operator = '!' # Override the operator since we want to find by assigned_to + else + groups = Group.find_all_by_id(v) + end + groups ||= [] + + members_of_groups = groups.inject([]) {|user_ids, group| + if group && group.user_ids.present? + user_ids << group.user_ids + end + user_ids.flatten.uniq.compact + }.sort.collect(&:to_s) + + sql << '(' + sql_for_field("assigned_to_id", operator, members_of_groups, Issue.table_name, "assigned_to_id", false) + ')' + + elsif field == "assigned_to_role" # named field + if operator == "*" # Any Role + roles = Role.givable + operator = '=' # Override the operator since we want to find by assigned_to + elsif operator == "!*" # No role + roles = Role.givable + operator = '!' # Override the operator since we want to find by assigned_to + else + roles = Role.givable.find_all_by_id(v) + end + roles ||= [] + + members_of_roles = roles.inject([]) {|user_ids, role| + if role && role.members + user_ids << role.members.collect(&:user_id) + end + user_ids.flatten.uniq.compact + }.sort.collect(&:to_s) + + sql << '(' + sql_for_field("assigned_to_id", operator, members_of_roles, Issue.table_name, "assigned_to_id", false) + ')' else # regular field db_table = Issue.table_name diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/repository/.svn/entries --- a/app/models/repository/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/repository/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/models/repository http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-23T14:37:44.487730Z b02ecaea01c5990cbde09689be12ec7d 2010-02-02T17:02:32.020293Z 3360 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-23T14:37:44.483732Z 84591e1c5afa1b74a10954dd521ceb4e 2008-06-14T15:44:36.838876Z 1537 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-24T11:56:52.924049Z b3a159a082904eaf5e084eb0ea2a6988 2010-02-07T15:17:21.677785Z 3394 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-24T11:56:52.932091Z 6ca7d031f8d4d508518892a607462b88 2010-02-02T17:02:32.020293Z 3360 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-23T14:37:44.483732Z ed75a7df6cfdc54b7059c9bb20c079d3 2008-06-08T15:40:24.603157Z 1508 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-23T14:37:44.483732Z 4bf6afb2a5e03df854a06fb116fc6fd2 2008-08-26T12:28:15.338708Z 1768 @@ -236,7 +236,7 @@ -2010-07-23T14:49:44.340095Z +2010-09-23T14:37:44.483732Z 75c2836fd6ba92e0aef7a9cfc249ebb7 2010-02-02T17:02:32.020293Z 3360 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/time_entry.rb --- a/app/models/time_entry.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/time_entry.rb Fri Sep 24 14:06:04 2010 +0100 @@ -81,4 +81,20 @@ yield end end + + def self.earilest_date_for_project(project=nil) + finder_conditions = ARCondition.new(Project.allowed_to_condition(User.current, :view_time_entries)) + if project + finder_conditions << ["project_id IN (?)", project.hierarchy.collect(&:id)] + end + TimeEntry.minimum(:spent_on, :include => :project, :conditions => finder_conditions.conditions) + end + + def self.latest_date_for_project(project=nil) + finder_conditions = ARCondition.new(Project.allowed_to_condition(User.current, :view_time_entries)) + if project + finder_conditions << ["project_id IN (?)", project.hierarchy.collect(&:id)] + end + TimeEntry.maximum(:spent_on, :include => :project, :conditions => finder_conditions.conditions) + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/user.rb --- a/app/models/user.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/user.rb Fri Sep 24 14:06:04 2010 +0100 @@ -352,6 +352,12 @@ false end end + + # Is the user allowed to do the specified action on any project? + # See allowed_to? for the actions and valid options. + def allowed_to_globally?(action, options) + allowed_to?(action, nil, options.reverse_merge(:global => true)) + end def self.current=(user) @current_user = user diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/models/version.rb --- a/app/models/version.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/models/version.rb Fri Sep 24 14:06:04 2010 +0100 @@ -73,6 +73,18 @@ def completed? effective_date && (effective_date <= Date.today) && (open_issues_count == 0) end + + def behind_schedule? + if completed_pourcent == 100 + return false + elsif due_date && fixed_issues.present? && fixed_issues.minimum('start_date') # TODO: should use #start_date but that method is wrong... + start_date = fixed_issues.minimum('start_date') + done_date = start_date + ((due_date - start_date+1)* completed_pourcent/100).floor + return done_date <= Date.today + else + false # No issues so it's not late + end + end # Returns the completion percentage of this version based on the amount of open/closed issues # and the time spent on the open issues. @@ -123,6 +135,10 @@ end def to_s; name end + + def to_s_with_project + "#{project} - #{name}" + end # Versions are sorted by effective_date and "Project Name - Version name" # Those with no effective_date are at the end, sorted by "Project Name - Version name" diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/sweepers/.svn/entries --- a/app/sweepers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/sweepers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/sweepers http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/.svn/all-wcprops --- a/app/views/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 34 -/svn/!svn/ver/4037/trunk/app/views +/svn/!svn/ver/4172/trunk/app/views END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/.svn/entries --- a/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -71,13 +71,16 @@ issue_moves dir -ldap_auth_sources +files +dir + +previews dir auth_sources dir -previews +ldap_auth_sources dir search @@ -86,10 +89,10 @@ messages dir -issue_relations +versions dir -versions +issue_relations dir mailer @@ -149,6 +152,9 @@ wiki dir +activities +dir + enumerations dir diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/account/.svn/entries --- a/app/views/account/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/account/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/account http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.456133Z +2010-09-23T14:37:44.495777Z 232ce32581d2f869b81c300244decff5 2010-01-28T18:54:51.800438Z 3341 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.456133Z +2010-09-23T14:37:44.495777Z cf3d603bbb4825640988086c7871c165 2007-09-22T13:17:49.935719Z 747 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.456133Z +2010-09-23T14:37:44.495777Z 82c6920dc6c95e35b0248de4be82885b 2009-04-21T13:43:57.529967Z 2678 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.456133Z +2010-09-23T14:37:44.495777Z 72b586f183037fcab519bc7575d3b2b5 2010-03-03T20:21:05.265018Z 3530 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/activities/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/activities/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 45 +/svn/!svn/ver/4047/trunk/app/views/activities +END +index.html.erb +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4047/trunk/app/views/activities/index.html.erb +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/activities/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/activities/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,62 @@ +10 + +dir +4173 +http://redmine.rubyforge.org/svn/trunk/app/views/activities +http://redmine.rubyforge.org/svn + + + +2010-08-27T14:05:54.014502Z +4047 +edavis10 + + + + + + + + + + + + + + +e93f8b46-1217-0410-a6f0-8f06a7374b81 + +index.html.erb +file + + + + +2010-09-24T12:48:29.578245Z +9e6d9091be2c8769f8e262500d974f84 +2010-08-27T14:05:54.014502Z +4047 +edavis10 +has-props + + + + + + + + + + + + + + + + + + + + +3266 + diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/activities/.svn/prop-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/activities/.svn/prop-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,5 @@ +K 13 +svn:eol-style +V 6 +native +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/activities/.svn/text-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/activities/.svn/text-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,61 @@ +

<%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)) %>

+

<%= l(:label_date_from_to, :start => format_date(@date_to - @days), :end => format_date(@date_to-1)) %>

+ +
+<% @events_by_day.keys.sort.reverse.each do |day| %> +

<%= format_activity_day(day) %>

+
+<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%> +
+ <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %> + <%= format_time(e.event_datetime, false) %> + <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %> + <%= link_to format_activity_title(e.event_title), e.event_url %>
+
<%= format_activity_description(e.event_description) %> + <%= e.event_author if e.respond_to?(:event_author) %>
+<% end -%> +
+<% end -%> +
+ +<%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %> + +
+<%= link_to_remote(('« ' + l(:label_previous)), + {:update => "content", :url => params.merge(:from => @date_to - @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, + {:href => url_for(params.merge(:from => @date_to - @days - 1)), + :title => l(:label_date_from_to, :start => format_date(@date_to - 2*@days), :end => format_date(@date_to - @days - 1))}) %> +
+
+<%= link_to_remote((l(:label_next) + ' »'), + {:update => "content", :url => params.merge(:from => @date_to + @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, + {:href => url_for(params.merge(:from => @date_to + @days - 1)), + :title => l(:label_date_from_to, :start => format_date(@date_to), :end => format_date(@date_to + @days - 1))}) unless @date_to >= Date.today %> +
+  +<% other_formats_links do |f| %> + <%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %> +<% end %> + +<% content_for :header_tags do %> +<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %> +<% end %> + +<% content_for :sidebar do %> +<% form_tag({}, :method => :get) do %> +

<%= l(:label_activity) %>

+

<% @activity.event_types.each do |t| %> +<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %> +<%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%> +
+<% end %>

+<% if @project && @project.descendants.active.any? %> + <%= hidden_field_tag 'with_subprojects', 0 %> +

+<% end %> +<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %> +

<%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

+<% end %> +<% end %> + +<% html_title(l(:label_activity), @author) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/activities/index.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/activities/index.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,61 @@ +

<%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)) %>

+

<%= l(:label_date_from_to, :start => format_date(@date_to - @days), :end => format_date(@date_to-1)) %>

+ +
+<% @events_by_day.keys.sort.reverse.each do |day| %> +

<%= format_activity_day(day) %>

+
+<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%> +
+ <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %> + <%= format_time(e.event_datetime, false) %> + <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %> + <%= link_to format_activity_title(e.event_title), e.event_url %>
+
<%= format_activity_description(e.event_description) %> + <%= e.event_author if e.respond_to?(:event_author) %>
+<% end -%> +
+<% end -%> +
+ +<%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %> + +
+<%= link_to_remote(('« ' + l(:label_previous)), + {:update => "content", :url => params.merge(:from => @date_to - @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, + {:href => url_for(params.merge(:from => @date_to - @days - 1)), + :title => l(:label_date_from_to, :start => format_date(@date_to - 2*@days), :end => format_date(@date_to - @days - 1))}) %> +
+
+<%= link_to_remote((l(:label_next) + ' »'), + {:update => "content", :url => params.merge(:from => @date_to + @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, + {:href => url_for(params.merge(:from => @date_to + @days - 1)), + :title => l(:label_date_from_to, :start => format_date(@date_to), :end => format_date(@date_to + @days - 1))}) unless @date_to >= Date.today %> +
+  +<% other_formats_links do |f| %> + <%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %> +<% end %> + +<% content_for :header_tags do %> +<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %> +<% end %> + +<% content_for :sidebar do %> +<% form_tag({}, :method => :get) do %> +

<%= l(:label_activity) %>

+

<% @activity.event_types.each do |t| %> +<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %> +<%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%> +
+<% end %>

+<% if @project && @project.descendants.active.any? %> + <%= hidden_field_tag 'with_subprojects', 0 %> +

+<% end %> +<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %> +

<%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

+<% end %> +<% end %> + +<% html_title(l(:label_activity), @author) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/admin/.svn/all-wcprops --- a/app/views/admin/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/admin/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 40 -/svn/!svn/ver/3924/trunk/app/views/admin +/svn/!svn/ver/4080/trunk/app/views/admin END info.rhtml K 25 @@ -37,5 +37,5 @@ K 25 svn:wc:ra_dav:version-url V 55 -/svn/!svn/ver/3924/trunk/app/views/admin/projects.rhtml +/svn/!svn/ver/4080/trunk/app/views/admin/projects.rhtml END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/admin/.svn/entries --- a/app/views/admin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/admin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/admin http://redmine.rubyforge.org/svn -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-10T23:07:10.817821Z +4080 +edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.296098Z +2010-09-23T14:37:44.499776Z a7b3d0461b8dac7e68d5b758e6b93b45 2009-12-19T20:33:24.113306Z 3200 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.296098Z +2010-09-23T14:37:44.503775Z aacfd3ff934f52585eba4f460f52df31 2008-11-16T17:12:02.001794Z 2041 @@ -100,7 +100,7 @@ -2010-08-25T15:27:56.438939Z +2010-09-23T14:37:44.499776Z a2dcf50c0d70604e64f18cd28f15280b 2010-08-04T00:38:22.739166Z 3909 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.296098Z +2010-09-23T14:37:44.499776Z 8db715728d1f5851c242e085110f2bb6 2008-01-05T11:33:49.132886Z 1040 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.296098Z +2010-09-23T14:37:44.499776Z 35378eb3f0e385475e3bd0586f22324a 2009-12-17T18:21:02.630202Z 3176 @@ -202,11 +202,11 @@ -2010-08-25T15:27:56.442501Z -2081d02ddb2f22d04716f9ebfc9c7cdf -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-24T12:48:28.359820Z +5ed19629dda93ba07ab4e356099d19c4 +2010-09-10T23:07:10.817821Z +4080 +edavis10 has-props @@ -228,5 +228,5 @@ -2237 +2198 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/admin/.svn/text-base/projects.rhtml.svn-base --- a/app/views/admin/.svn/text-base/projects.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/admin/.svn/text-base/projects.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@
-<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add' %> +<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add' %>

<%=l(:label_project_plural)%>

@@ -26,7 +26,7 @@ <% project_tree(@projects) do |project, level| %> - <%= css_project_classes(project) %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>"> + <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>"> <%= link_to_project(project, :action => 'settings') %> <%= textilizable project.short_description, :project => project %> <%= checked_image project.is_public? %> @@ -35,7 +35,7 @@ <%= link_to(l(:button_archive), { :controller => 'projects', :action => 'archive', :id => project, :status => params[:status] }, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-lock') if project.active? %> <%= link_to(l(:button_unarchive), { :controller => 'projects', :action => 'unarchive', :id => project, :status => params[:status] }, :method => :post, :class => 'icon icon-unlock') if !project.active? && (project.parent.nil? || project.parent.active?) %> <%= link_to(l(:button_copy), { :controller => 'projects', :action => 'copy', :id => project }, :class => 'icon icon-copy') %> - <%= link_to(l(:button_delete), { :controller => 'projects', :action => 'destroy', :id => project }, :class => 'icon icon-del') %> + <%= link_to(l(:button_delete), project_destroy_confirm_path(project), :class => 'icon icon-del') %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/admin/projects.rhtml --- a/app/views/admin/projects.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/admin/projects.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@
-<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add' %> +<%= link_to l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add' %>

<%=l(:label_project_plural)%>

@@ -26,7 +26,7 @@ <% project_tree(@projects) do |project, level| %> - <%= css_project_classes(project) %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>"> + <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>"> <%= link_to_project(project, :action => 'settings') %> <%= textilizable project.short_description, :project => project %> <%= checked_image project.is_public? %> @@ -35,7 +35,7 @@ <%= link_to(l(:button_archive), { :controller => 'projects', :action => 'archive', :id => project, :status => params[:status] }, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-lock') if project.active? %> <%= link_to(l(:button_unarchive), { :controller => 'projects', :action => 'unarchive', :id => project, :status => params[:status] }, :method => :post, :class => 'icon icon-unlock') if !project.active? && (project.parent.nil? || project.parent.active?) %> <%= link_to(l(:button_copy), { :controller => 'projects', :action => 'copy', :id => project }, :class => 'icon icon-copy') %> - <%= link_to(l(:button_delete), { :controller => 'projects', :action => 'destroy', :id => project }, :class => 'icon icon-del') %> + <%= link_to(l(:button_delete), project_destroy_confirm_path(project), :class => 'icon icon-del') %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/attachments/.svn/entries --- a/app/views/attachments/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/attachments/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/attachments http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.172125Z +2010-09-23T14:37:44.503775Z 6f5329a1a81f3798a84a26b0261f5000 2008-12-09T16:54:46.963649Z 2116 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.176152Z +2010-09-23T14:37:44.507774Z b8bc854a91c56c3e3d45390e8ed4bb8d 2009-04-25T09:35:14.494071Z 2693 @@ -100,7 +100,7 @@ -2010-07-28T11:07:47.180203Z +2010-09-23T14:37:44.503775Z 9cd3f9685ce632814961d9f7e67c4d26 2010-07-25T10:34:55.569539Z 3879 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.176152Z +2010-09-23T14:37:44.503775Z 43e4ae1b5703daa55b37eb438a169304 2009-04-25T09:35:14.494071Z 2693 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/auth_sources/.svn/entries --- a/app/views/auth_sources/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/auth_sources/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/auth_sources http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.120128Z +2010-09-23T14:37:44.507774Z 2f1b944eb2979ed37624c653969fa6bf 2010-02-15T16:41:21.789274Z 3436 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.120128Z +2010-09-23T14:37:44.507774Z 6f4f645b6d66417180eaadb0e204a56e 2007-03-12T17:59:02.654744Z 333 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.120128Z +2010-09-23T14:37:44.507774Z 4ea0fc7f46738e3709d552778de7a756 2010-05-23T03:16:31.304135Z 3744 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.120128Z +2010-09-23T14:37:44.507774Z 1cc2f5049536de6e5d6d4e926f96ab38 2007-03-12T17:59:02.654744Z 333 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/auto_completes/.svn/entries --- a/app/views/auto_completes/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/auto_completes/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/auto_completes http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-08-25T15:27:53.952117Z +2010-09-23T14:37:44.511773Z d325b0677890591680b96985e16a0139 2010-08-17T15:03:58.074505Z 3945 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/boards/.svn/all-wcprops --- a/app/views/boards/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/boards/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/3426/trunk/app/views/boards +/svn/!svn/ver/4047/trunk/app/views/boards END show.rhtml K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/3179/trunk/app/views/boards/index.rhtml +/svn/!svn/ver/4047/trunk/app/views/boards/index.rhtml END new.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/boards/.svn/entries --- a/app/views/boards/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/boards/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/boards http://redmine.rubyforge.org/svn -2010-02-14T11:52:12.027647Z -3426 -jplang +2010-08-27T14:05:54.014502Z +4047 +edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.168155Z +2010-09-23T14:37:44.515775Z 74a37f0fbb3bb635f2c0389a2624988e 2010-02-14T11:52:12.027647Z 3426 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.168155Z +2010-09-23T14:37:44.515775Z 0416740cf4bf599b0da68e597c0cd44c 2007-05-13T17:09:56.765659Z 529 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.168155Z +2010-09-23T14:37:44.515775Z 00f3643ebd3d5af2322b92c885a6eec6 2007-05-13T17:09:56.765659Z 529 @@ -134,11 +134,11 @@ -2010-07-23T14:49:45.168155Z -6596c3dc136a8dda86d432f8e3039bc3 -2009-12-17T18:52:28.593583Z -3179 -jplang +2010-09-24T12:48:28.319823Z +5c323ebf8fea05f556896ed49186773b +2010-08-27T14:05:54.014502Z +4047 +edavis10 has-props @@ -160,7 +160,7 @@ -1331 +1329 new.rhtml file @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.172125Z +2010-09-23T14:37:44.515775Z b951b4d73988508c5a42fdb7b7df695c 2007-05-13T17:09:56.765659Z 529 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/boards/.svn/text-base/index.rhtml.svn-base --- a/app/views/boards/.svn/text-base/index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/boards/.svn/text-base/index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -30,11 +30,11 @@ <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_messages => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_messages => 1, :key => User.current.rss_key} %> <% end %> <% content_for :header_tags do %> - <%= auto_discovery_link_tag(:atom, {:controller => 'projects', :action => 'activity', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.rss_key}) %> + <%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.rss_key}) %> <% end %> <% html_title l(:label_board_plural) %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/boards/index.rhtml --- a/app/views/boards/index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/boards/index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -30,11 +30,11 @@ <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_messages => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_messages => 1, :key => User.current.rss_key} %> <% end %> <% content_for :header_tags do %> - <%= auto_discovery_link_tag(:atom, {:controller => 'projects', :action => 'activity', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.rss_key}) %> + <%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.rss_key}) %> <% end %> <% html_title l(:label_board_plural) %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/calendars/.svn/all-wcprops --- a/app/views/calendars/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/calendars/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/3746/trunk/app/views/calendars +/svn/!svn/ver/4045/trunk/app/views/calendars END show.html.erb K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/3746/trunk/app/views/calendars/show.html.erb +/svn/!svn/ver/4045/trunk/app/views/calendars/show.html.erb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/calendars/.svn/entries --- a/app/views/calendars/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/calendars/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/calendars http://redmine.rubyforge.org/svn -2010-05-24T18:07:43.351533Z -3746 +2010-08-26T16:37:21.560510Z +4045 edavis10 @@ -32,10 +32,10 @@ -2010-07-23T14:49:45.456133Z -b5bed50058708c361eda9dc5d2f83e7b -2010-05-24T18:07:43.351533Z -3746 +2010-09-24T12:48:28.963902Z +a8b2469aff09bc51d836f40717281a44 +2010-08-26T16:37:21.560510Z +4045 edavis10 has-props @@ -58,5 +58,5 @@ -2478 +1880 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/calendars/.svn/text-base/show.html.erb.svn-base --- a/app/views/calendars/.svn/text-base/show.html.erb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/calendars/.svn/text-base/show.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,7 @@

<%= l(:label_calendar) %>

-<% form_tag({}, :id => 'query_form') do %> +<% form_tag(calendar_path, :method => :put, :id => 'query_form') do %> + <%= hidden_field_tag('project_id', @project.to_param) if @project%>
<%= l(:label_filter_plural) %>
@@ -9,14 +10,7 @@

-<%= link_to_remote ('« ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")), - {:update => "content", :url => { :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1) }}, - {:href => url_for(:action => 'show', :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1))} - %> | -<%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' »'), - {:update => "content", :url => { :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1) }}, - {:href => url_for(:action => 'show', :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1))} - %> + <%= link_to_previous_month(@year, @month, :project => @project) %> | <%= link_to_next_month(@year, @month, :project => @project) %>

diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/calendars/show.html.erb --- a/app/views/calendars/show.html.erb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/calendars/show.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,7 @@

<%= l(:label_calendar) %>

-<% form_tag({}, :id => 'query_form') do %> +<% form_tag(calendar_path, :method => :put, :id => 'query_form') do %> + <%= hidden_field_tag('project_id', @project.to_param) if @project%>
<%= l(:label_filter_plural) %>
@@ -9,14 +10,7 @@

-<%= link_to_remote ('« ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")), - {:update => "content", :url => { :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1) }}, - {:href => url_for(:action => 'show', :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1))} - %> | -<%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' »'), - {:update => "content", :url => { :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1) }}, - {:href => url_for(:action => 'show', :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1))} - %> + <%= link_to_previous_month(@year, @month, :project => @project) %> | <%= link_to_next_month(@year, @month, :project => @project) %>

diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/common/.svn/entries --- a/app/views/common/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/common/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/common http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.288130Z +2010-09-23T14:37:44.523788Z f95c4268a6ac374ab617da665e57a3ad 2010-03-14T13:22:50.317701Z 3585 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.288130Z +2010-09-23T14:37:44.523788Z e2b0309f637e9a49ef39f8401f3190c5 2009-05-26T08:28:36.964305Z 2768 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.288130Z +2010-09-23T14:37:44.523788Z d03b1c3719bd49af7d930d210a8e8328 2008-07-26T12:54:54.604420Z 1699 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.292095Z +2010-09-23T14:37:44.523788Z 6d702bd53ba3e3fb3b1849b20ea05932 2008-01-02T22:41:53.166620Z 1032 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.292095Z +2010-09-23T14:37:44.523788Z c6f0413a62e887c7638111e882e33d20 2008-01-02T22:41:53.166620Z 1032 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.292095Z +2010-09-23T14:37:44.523788Z a03541085a4ee595977cbf760d20bf19 2010-03-14T13:22:50.317701Z 3585 @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.292095Z +2010-09-23T14:37:44.523788Z 18b2d631fabd5720aa07d369da11d0de 2010-06-19T22:52:15.523619Z 3790 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.292095Z +2010-09-23T14:37:44.523788Z 6e7716818f87ed1ad9839c6e9a92ed1b 2009-12-14T20:13:29.438642Z 3174 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/context_menus/.svn/all-wcprops --- a/app/views/context_menus/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/context_menus/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/4006/trunk/app/views/context_menus +/svn/!svn/ver/4059/trunk/app/views/context_menus END issues.html.erb K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/4006/trunk/app/views/context_menus/issues.html.erb +/svn/!svn/ver/4059/trunk/app/views/context_menus/issues.html.erb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/context_menus/.svn/entries --- a/app/views/context_menus/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/context_menus/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/context_menus http://redmine.rubyforge.org/svn -2010-08-19T18:16:54.064576Z -4006 -edavis10 +2010-09-03T21:43:07.906158Z +4059 +jbbarth @@ -32,11 +32,11 @@ -2010-08-25T15:27:54.520556Z -f4e19aafbbd18ea944b564c43a4dfcd3 -2010-08-19T18:16:54.064576Z -4006 -edavis10 +2010-09-24T12:48:26.291820Z +8cf639a9f676637f0825ccf06013495c +2010-09-03T21:43:07.906158Z +4059 +jbbarth has-props @@ -58,5 +58,5 @@ -6556 +6709 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/context_menus/.svn/text-base/issues.html.erb.svn-base --- a/app/views/context_menus/.svn/text-base/issues.html.erb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/context_menus/.svn/text-base/issues.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -4,19 +4,22 @@ <% if !@issue.nil? -%>

  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, :class => 'icon-edit', :disabled => !@can[:edit] %>
  • +<% else %> +
  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, + :class => 'icon-edit', :disabled => !@can[:edit] %>
  • +<% end %> + + <% unless @allowed_statuses.empty? %>
  • <%= l(:field_status) %>
      <% @statuses.each do |s| -%> -
    • <%= context_menu_link s.name, {:controller => 'issues', :action => 'update', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :put, - :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
    • +
    • <%= context_menu_link s.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), :issue => {:status_id => s}, :back_url => @back}, :method => :post, + :selected => (@issue && s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
    • <% end -%>
  • -<% else %> -
  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, - :class => 'icon-edit', :disabled => !@can[:edit] %>
  • -<% end %> + <% end %> <% unless @trackers.nil? %>
  • @@ -29,6 +32,8 @@
  • <% end %> + + <% if @projects.size == 1 %>
  • <%= l(:field_priority) %>
      @@ -38,6 +43,8 @@ <% end -%>
  • + <% end %> + <% unless @project.nil? || @project.shared_versions.open.empty? -%>
  • <%= l(:field_fixed_version) %> @@ -77,7 +84,8 @@
  • <% end -%> - <% if Issue.use_field_for_done_ratio? %> + + <% if Issue.use_field_for_done_ratio? && @projects.size == 1 %>
  • <%= l(:field_done_ratio) %>
      @@ -88,6 +96,7 @@
  • <% end %> + <% if !@issue.nil? %> <% if @can[:log_time] -%>
  • <%= context_menu_link l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue}, diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/context_menus/issues.html.erb --- a/app/views/context_menus/issues.html.erb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/context_menus/issues.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -4,19 +4,22 @@ <% if !@issue.nil? -%>
  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, :class => 'icon-edit', :disabled => !@can[:edit] %>
  • +<% else %> +
  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, + :class => 'icon-edit', :disabled => !@can[:edit] %>
  • +<% end %> + + <% unless @allowed_statuses.empty? %>
  • <%= l(:field_status) %>
      <% @statuses.each do |s| -%> -
    • <%= context_menu_link s.name, {:controller => 'issues', :action => 'update', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :put, - :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
    • +
    • <%= context_menu_link s.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), :issue => {:status_id => s}, :back_url => @back}, :method => :post, + :selected => (@issue && s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
    • <% end -%>
  • -<% else %> -
  • <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, - :class => 'icon-edit', :disabled => !@can[:edit] %>
  • -<% end %> + <% end %> <% unless @trackers.nil? %>
  • @@ -29,6 +32,8 @@
  • <% end %> + + <% if @projects.size == 1 %>
  • <%= l(:field_priority) %>
      @@ -38,6 +43,8 @@ <% end -%>
  • + <% end %> + <% unless @project.nil? || @project.shared_versions.open.empty? -%>
  • <%= l(:field_fixed_version) %> @@ -77,7 +84,8 @@
  • <% end -%> - <% if Issue.use_field_for_done_ratio? %> + + <% if Issue.use_field_for_done_ratio? && @projects.size == 1 %>
  • <%= l(:field_done_ratio) %>
      @@ -88,6 +96,7 @@
  • <% end %> + <% if !@issue.nil? %> <% if @can[:log_time] -%>
  • <%= context_menu_link l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue}, diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/custom_fields/.svn/entries --- a/app/views/custom_fields/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/custom_fields/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/custom_fields http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.940127Z +2010-09-23T14:37:44.527783Z 4a422eb0f307906a5015134deef6e66a 2010-02-28T10:55:24.417498Z 3510 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.940127Z +2010-09-23T14:37:44.527783Z 0c149f63c965988c70ecf48bde3222b3 2009-12-09T10:49:58.529326Z 3144 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.944095Z +2010-09-23T14:37:44.527783Z 3372a4aeafa9f940744f07c4ce8ca434 2010-04-16T15:33:49.924704Z 3672 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.944095Z +2010-09-23T14:37:44.527783Z 6441c559d374310cabfc9649eb5b3617 2009-09-12T09:13:13.676884Z 2871 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.944095Z +2010-09-23T14:37:44.527783Z 7658107f6af4536cedfc075202ad3f7c 2009-12-09T10:49:58.529326Z 3144 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/documents/.svn/entries --- a/app/views/documents/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/documents/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/documents http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.468128Z +2010-09-23T14:37:44.531783Z 755690362ea0b5f92a82326872d3b0ea 2010-03-18T20:02:17.358992Z 3602 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.468128Z +2010-09-23T14:37:44.535729Z a7c10b428fb4d74827a6ffdcc3651a25 2010-03-18T20:06:16.936785Z 3603 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.472128Z +2010-09-23T14:37:44.535729Z 9d05f76602471c3dc339d8c54d2f4abc 2009-05-30T23:30:36.923541Z 2777 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.472128Z +2010-09-23T14:37:44.535729Z 41a0e984e939e8fad03f2be67b33a4fc 2007-03-12T17:59:02.654744Z 333 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.472128Z +2010-09-23T14:37:44.535729Z cf8b8406d31262625c1f2ab2b66020b2 2009-01-22T16:34:54.303755Z 2295 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.472128Z +2010-09-23T14:37:44.535729Z 60e54f2c42af4454d69bfc812bbf55ca 2008-02-29T19:46:58.834023Z 1180 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/enumerations/.svn/entries --- a/app/views/enumerations/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/enumerations/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/enumerations http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.488155Z +2010-09-23T14:37:44.539728Z b4f45f24d2fb9546e609fd3299912be6 2010-05-09T11:19:15.980195Z 3734 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.488155Z +2010-09-23T14:37:44.539728Z 0a47386b406e4f425fe541d12c780467 2009-10-21T22:34:28.905707Z 2946 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.488155Z +2010-09-23T14:37:44.539728Z 668687299206262ccf34ac3a44f57c33 2009-07-05T12:22:02.133266Z 2810 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.488155Z +2010-09-23T14:37:44.539728Z b9c8a97c172197a30cbb6c08000a9fa7 2008-06-17T19:10:54.015252Z 1558 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.488155Z +2010-09-23T14:37:44.539728Z e6eaade1aac54267080f56f5a09d3fd1 2009-07-05T12:22:02.133266Z 2810 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 40 +/svn/!svn/ver/4085/trunk/app/views/files +END +index.html.erb +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/!svn/ver/4085/trunk/app/views/files/index.html.erb +END +new.html.erb +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/!svn/ver/4085/trunk/app/views/files/new.html.erb +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,96 @@ +10 + +dir +4173 +http://redmine.rubyforge.org/svn/trunk/app/views/files +http://redmine.rubyforge.org/svn + + + +2010-09-14T16:24:07.840869Z +4085 +edavis10 + + + + + + + + + + + + + + +e93f8b46-1217-0410-a6f0-8f06a7374b81 + +index.html.erb +file + + + + +2010-09-24T12:48:27.722352Z +178f4ae5a5527ba5ab517e9e5685d670 +2010-09-14T16:24:07.840869Z +4085 +edavis10 +has-props + + + + + + + + + + + + + + + + + + + + +1838 + +new.html.erb +file + + + + +2010-09-24T12:48:27.722352Z +7cd15d28fd27afa1f10b921c8b35cd7a +2010-09-14T16:24:07.840869Z +4085 +edavis10 +has-props + + + + + + + + + + + + + + + + + + + + +569 + diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/prop-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/prop-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,5 @@ +K 13 +svn:eol-style +V 6 +native +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/prop-base/new.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/prop-base/new.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,5 @@ +K 13 +svn:eol-style +V 6 +native +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/text-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/text-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,46 @@ +
    +<%= link_to_if_authorized l(:label_attachment_new), new_project_file_path(@project), :class => 'icon icon-add' %> +
    + +

    <%=l(:label_attachment_plural)%>

    + +<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %> + + + + <%= sort_header_tag('filename', :caption => l(:field_filename)) %> + <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %> + <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %> + <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %> + + + + +<% @containers.each do |container| %> + <% next if container.attachments.empty? -%> + <% if container.is_a?(Version) -%> + + + + <% end -%> + <% container.attachments.each do |file| %> + "> + + + + + + + + <% end + reset_cycle %> +<% end %> + +
    MD5
    + <%= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package") %> +
    <%= link_to_attachment file, :download => true, :title => file.description %><%= format_time(file.created_on) %><%= number_to_human_size(file.filesize) %><%= file.downloads %><%= file.digest %> + <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file}, + :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %> +
    + +<% html_title(l(:label_attachment_plural)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/.svn/text-base/new.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/.svn/text-base/new.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,16 @@ +

    <%=l(:label_attachment_new)%>

    + +<%= error_messages_for 'attachment' %> +
    +<% form_tag(project_files_path(@project), :multipart => true, :class => "tabular") do %> + +<% if @versions.any? %> +

    +<%= select_tag "version_id", content_tag('option', '') + + options_from_collection_for_select(@versions, "id", "name") %>

    +<% end %> + +

    <%= render :partial => 'attachments/form' %>

    +
    +<%= submit_tag l(:button_add) %> +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/index.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/index.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,46 @@ +
    +<%= link_to_if_authorized l(:label_attachment_new), new_project_file_path(@project), :class => 'icon icon-add' %> +
    + +

    <%=l(:label_attachment_plural)%>

    + +<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %> + + + + <%= sort_header_tag('filename', :caption => l(:field_filename)) %> + <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %> + <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %> + <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %> + + + + +<% @containers.each do |container| %> + <% next if container.attachments.empty? -%> + <% if container.is_a?(Version) -%> + + + + <% end -%> + <% container.attachments.each do |file| %> + "> + + + + + + + + <% end + reset_cycle %> +<% end %> + +
    MD5
    + <%= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package") %> +
    <%= link_to_attachment file, :download => true, :title => file.description %><%= format_time(file.created_on) %><%= number_to_human_size(file.filesize) %><%= file.downloads %><%= file.digest %> + <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file}, + :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %> +
    + +<% html_title(l(:label_attachment_plural)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/files/new.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/files/new.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,16 @@ +

    <%=l(:label_attachment_new)%>

    + +<%= error_messages_for 'attachment' %> +
    +<% form_tag(project_files_path(@project), :multipart => true, :class => "tabular") do %> + +<% if @versions.any? %> +

    +<%= select_tag "version_id", content_tag('option', '') + + options_from_collection_for_select(@versions, "id", "name") %>

    +<% end %> + +

    <%= render :partial => 'attachments/form' %>

    +
    +<%= submit_tag l(:button_add) %> +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/gantts/.svn/all-wcprops --- a/app/views/gantts/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/gantts/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/3756/trunk/app/views/gantts +/svn/!svn/ver/4074/trunk/app/views/gantts END show.html.erb K 25 svn:wc:ra_dav:version-url V 55 -/svn/!svn/ver/3756/trunk/app/views/gantts/show.html.erb +/svn/!svn/ver/4074/trunk/app/views/gantts/show.html.erb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/gantts/.svn/entries --- a/app/views/gantts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/gantts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/gantts http://redmine.rubyforge.org/svn -2010-05-26T22:48:17.752417Z -3756 +2010-09-10T03:09:18.467829Z +4074 edavis10 @@ -32,10 +32,10 @@ -2010-07-23T14:49:45.464127Z -d4db03388bce62e75af82eb31d3d3575 -2010-05-26T22:48:17.752417Z -3756 +2010-09-24T12:48:28.971835Z +821f1ef595aacb4d32e9a449742c4d67 +2010-09-10T03:09:18.467829Z +4074 edavis10 has-props @@ -58,5 +58,5 @@ -8416 +6152 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/gantts/.svn/text-base/show.html.erb.svn-base --- a/app/views/gantts/.svn/text-base/show.html.erb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/gantts/.svn/text-base/show.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,8 @@ +<% @gantt.view = self %>

    <%= l(:label_gantt) %>

    -<% form_tag(params.merge(:month => nil, :year => nil, :months => nil), :id => 'query_form') do %> +<% form_tag(gantt_path(:month => params[:month], :year => params[:year], :months => params[:months]), :method => :put, :id => 'query_form') do %> + <%= hidden_field_tag('project_id', @project.to_param) if @project%>
    <%= l(:label_filter_plural) %>
    @@ -54,11 +56,12 @@ end end +# Width of the entire chart g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom -g_height = [(20 * @gantt.events.length + 6)+150, 206].max +# Collect the number of issues on Versions +g_height = [(20 * (@gantt.number_of_rows + 6))+150, 206].max t_height = g_height + headers_height %> - @@ -34,7 +34,7 @@
    <% if @project.versions.any? %> - <%= link_to l(:label_close_versions), {:controller => 'versions', :action => 'close_completed', :project_id => @project}, :method => :post %> + <%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %> <% end %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/show.rhtml --- a/app/views/projects/show.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/show.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@
    <% if User.current.allowed_to?(:add_subprojects, @project) %> - <%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'add', :parent_id => @project}, :class => 'icon icon-add' %> + <%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'new', :parent_id => @project}, :class => 'icon icon-add' %> <% end %>
    @@ -74,7 +74,7 @@ <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, {:action => 'activity', :id => @project, :format => 'atom', :key => User.current.rss_key}) %> +<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %> <% end %> <% html_title(l(:label_overview)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/queries/.svn/all-wcprops --- a/app/views/queries/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/queries/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 42 -/svn/!svn/ver/3746/trunk/app/views/queries +/svn/!svn/ver/4093/trunk/app/views/queries END _columns.rhtml K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 57 -/svn/!svn/ver/3746/trunk/app/views/queries/_filters.rhtml +/svn/!svn/ver/4093/trunk/app/views/queries/_filters.rhtml END index.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/queries/.svn/entries --- a/app/views/queries/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/queries/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/queries http://redmine.rubyforge.org/svn -2010-05-24T18:07:43.351533Z -3746 -edavis10 +2010-09-16T21:33:49.399868Z +4093 +jbbarth @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.584094Z +2010-09-23T14:37:44.655737Z 409f5db0d48427b0a9077eb0804d13f9 2009-11-28T11:59:45.246623Z 3106 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.584094Z +2010-09-23T14:37:44.655737Z 9d6312b02ab4243f7f899de6e37e260b 2009-11-28T11:34:12.256986Z 3105 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.584094Z +2010-09-23T14:37:44.655737Z b2d901380f08af968240e5dc82b90fc4 2007-10-01T11:39:34.113865Z 784 @@ -134,11 +134,11 @@ -2010-07-23T14:49:45.584094Z -0a182dd7a2d7e6fd511625d9450c4004 -2010-05-24T18:07:43.351533Z -3746 -edavis10 +2010-09-24T12:48:29.616044Z +d479118259de825ac50b66801909c8f4 +2010-09-16T21:33:49.399868Z +4093 +jbbarth has-props @@ -160,7 +160,7 @@ -3973 +4456 index.rhtml file @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.584094Z +2010-09-23T14:37:44.655737Z 214378e8574ddebfc274513b423f51a2 2007-11-05T18:38:42.932265Z 887 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.584094Z +2010-09-23T14:37:44.655737Z d42e88aaf70a65db3b609d51857fb711 2009-09-20T14:06:57.257282Z 2895 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/queries/.svn/text-base/_filters.rhtml.svn-base --- a/app/views/queries/.svn/text-base/_filters.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/queries/.svn/text-base/_filters.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -53,6 +53,18 @@ select.multiple = true; } } + +function apply_filters_observer() { + $$("#query_form input[type=text]").invoke("observe", "keypress", function(e){ + if(e.keyCode == Event.KEY_RETURN) { + <%= remote_function(:url => { :set_filter => 1}, + :update => "content", + :with => "Form.serialize('query_form')", + :complete => "e.stop(); apply_filters_observer()") %> + } + }); +} +Event.observe(document,"dom:loaded", apply_filters_observer); //]]> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/queries/_filters.rhtml --- a/app/views/queries/_filters.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/queries/_filters.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -53,6 +53,18 @@ select.multiple = true; } } + +function apply_filters_observer() { + $$("#query_form input[type=text]").invoke("observe", "keypress", function(e){ + if(e.keyCode == Event.KEY_RETURN) { + <%= remote_function(:url => { :set_filter => 1}, + :update => "content", + :with => "Form.serialize('query_form')", + :complete => "e.stop(); apply_filters_observer()") %> + } + }); +} +Event.observe(document,"dom:loaded", apply_filters_observer); //]]> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/reports/.svn/entries --- a/app/views/reports/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/reports/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/reports http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.916131Z +2010-09-23T14:37:44.659737Z d150c943c49d910431268e3b5b148f5d 2010-06-20T03:37:42.430179Z 3797 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.916131Z +2010-09-23T14:37:44.659737Z faf9d3d189ffa44154f1272c333808b5 2010-01-07T21:12:16.849243Z 3283 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.916131Z +2010-09-23T14:37:44.659737Z b0028f798f34512aa7c5f8c014ad73f7 2010-01-07T21:12:16.849243Z 3283 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.916131Z +2010-09-23T14:37:44.659737Z 58b8758e6fc3da959cb412ae64e9237f 2007-03-12T17:59:02.654744Z 333 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/repositories/.svn/all-wcprops --- a/app/views/repositories/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/repositories/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 47 -/svn/!svn/ver/3939/trunk/app/views/repositories +/svn/!svn/ver/4100/trunk/app/views/repositories END -_navigation.rhtml +stats.rhtml K 25 svn:wc:ra_dav:version-url -V 65 -/svn/!svn/ver/3086/trunk/app/views/repositories/_navigation.rhtml +V 59 +/svn/!svn/ver/2895/trunk/app/views/repositories/stats.rhtml END revision.rhtml K 25 @@ -15,11 +15,11 @@ V 62 /svn/!svn/ver/3216/trunk/app/views/repositories/revision.rhtml END -stats.rhtml +_navigation.rhtml K 25 svn:wc:ra_dav:version-url -V 59 -/svn/!svn/ver/2895/trunk/app/views/repositories/stats.rhtml +V 65 +/svn/!svn/ver/3086/trunk/app/views/repositories/_navigation.rhtml END entry.rhtml K 25 @@ -33,11 +33,11 @@ V 71 /svn/!svn/ver/3309/trunk/app/views/repositories/_dir_list_content.rhtml END -_dir_list.rhtml +diff.rhtml K 25 svn:wc:ra_dav:version-url -V 63 -/svn/!svn/ver/1032/trunk/app/views/repositories/_dir_list.rhtml +V 58 +/svn/!svn/ver/4100/trunk/app/views/repositories/diff.rhtml END changes.rhtml K 25 @@ -45,11 +45,11 @@ V 61 /svn/!svn/ver/2840/trunk/app/views/repositories/changes.rhtml END -diff.rhtml +_dir_list.rhtml K 25 svn:wc:ra_dav:version-url -V 58 -/svn/!svn/ver/3939/trunk/app/views/repositories/diff.rhtml +V 63 +/svn/!svn/ver/1032/trunk/app/views/repositories/_dir_list.rhtml END annotate.rhtml K 25 @@ -57,36 +57,36 @@ V 62 /svn/!svn/ver/3585/trunk/app/views/repositories/annotate.rhtml END +show.rhtml +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/!svn/ver/2849/trunk/app/views/repositories/show.rhtml +END _revisions.rhtml K 25 svn:wc:ra_dav:version-url V 64 /svn/!svn/ver/3216/trunk/app/views/repositories/_revisions.rhtml END -show.rhtml -K 25 -svn:wc:ra_dav:version-url -V 58 -/svn/!svn/ver/2849/trunk/app/views/repositories/show.rhtml -END revisions.rhtml K 25 svn:wc:ra_dav:version-url V 63 /svn/!svn/ver/2840/trunk/app/views/repositories/revisions.rhtml END +committers.rhtml +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/!svn/ver/2137/trunk/app/views/repositories/committers.rhtml +END _link_to_functions.rhtml K 25 svn:wc:ra_dav:version-url V 72 /svn/!svn/ver/2849/trunk/app/views/repositories/_link_to_functions.rhtml END -committers.rhtml -K 25 -svn:wc:ra_dav:version-url -V 64 -/svn/!svn/ver/2137/trunk/app/views/repositories/committers.rhtml -END _breadcrumbs.rhtml K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/repositories/.svn/entries --- a/app/views/repositories/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/repositories/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/repositories http://redmine.rubyforge.org/svn -2010-08-13T06:09:38.390923Z -3939 +2010-09-18T16:50:08.696338Z +4100 jbbarth @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z bafc924316c90c31dc1cd9a6daf124ef 2009-09-20T14:06:57.257282Z 2895 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-24T11:56:52.963971Z bd525284ca2c21084be84d21823b552a 2009-12-22T23:23:54.920563Z 3216 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z 59dbb643c447518053d9cdb1a86cb5ef 2009-11-24T17:55:45.336708Z 3086 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z 012e1437dd062433556a6281439b3900 2009-08-15T22:41:40.505056Z 2840 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-24T11:56:52.940032Z 6aa753bae9bc68aad5b77b2114b10a32 2010-01-13T17:27:37.119848Z 3309 @@ -202,10 +202,10 @@ -2010-08-25T15:27:56.362489Z -cec4b3fb05e92e567a4d4139e3ff5871 -2010-08-13T06:09:38.390923Z -3939 +2010-09-24T12:48:28.351870Z +c13f0d8b3dc374fad7b308711950dc4d +2010-09-18T16:50:08.696338Z +4100 jbbarth has-props @@ -228,7 +228,7 @@ -976 +991 changes.rhtml file @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.284128Z +2010-09-23T14:37:44.671737Z cde7a86a5ec0cf9915b0540c9acbb820 2009-08-15T22:41:40.505056Z 2840 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.284128Z +2010-09-23T14:37:44.667779Z 8c004b6e433ac1a6ca64c97a35512f28 2008-01-02T22:41:53.166620Z 1032 @@ -304,7 +304,7 @@ -2010-07-23T14:49:45.284128Z +2010-09-24T11:56:52.959974Z 0c8eb649e97f4f9335fb916ac76146f3 2010-03-14T13:22:50.317701Z 3585 @@ -338,7 +338,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z 5608dc13675382cd62688058ca0b77d1 2009-09-01T12:13:17.386587Z 2849 @@ -372,7 +372,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-24T11:56:52.952009Z e7a6bdebdc02cae051102093180af71e 2009-12-22T23:23:54.920563Z 3216 @@ -406,7 +406,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z f2efac3274e0c46cf32037372907a644 2009-08-15T22:41:40.505056Z 2840 @@ -440,7 +440,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.671737Z 2db96b0dcaab42c8e67b7fc590618fd3 2008-12-15T18:02:25.843227Z 2137 @@ -474,7 +474,7 @@ -2010-07-23T14:49:45.280131Z +2010-09-23T14:37:44.667779Z a86ac8a045315f57fa32acb29c08f19f 2009-09-01T12:13:17.386587Z 2849 @@ -508,7 +508,7 @@ -2010-07-23T14:49:45.284128Z +2010-09-23T14:37:44.667779Z 17818458dc60da031d02ae162930c320 2010-03-27T12:46:45.030950Z 3613 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/repositories/.svn/text-base/diff.rhtml.svn-base --- a/app/views/repositories/.svn/text-base/diff.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/repositories/.svn/text-base/diff.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@

    <%= l(:label_revision) %> <%= format_revision(@rev_to) + ':' if @rev_to %><%= format_revision(@rev) %> <%=h @path %>

    -<% form_tag({:path => @path}, :method => 'get') do %> +<% form_tag({:path => to_path_param(@path)}, :method => 'get') do %> <%= hidden_field_tag('rev', params[:rev]) if params[:rev] %> <%= hidden_field_tag('rev_to', params[:rev_to]) if params[:rev_to] %>

    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/repositories/diff.rhtml --- a/app/views/repositories/diff.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/repositories/diff.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@

    <%= l(:label_revision) %> <%= format_revision(@rev_to) + ':' if @rev_to %><%= format_revision(@rev) %> <%=h @path %>

    -<% form_tag({:path => @path}, :method => 'get') do %> +<% form_tag({:path => to_path_param(@path)}, :method => 'get') do %> <%= hidden_field_tag('rev', params[:rev]) if params[:rev] %> <%= hidden_field_tag('rev_to', params[:rev_to]) if params[:rev_to] %>

    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/roles/.svn/entries --- a/app/views/roles/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/roles/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/roles http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.675736Z cbcd3851055c3f5a5aa20d005b086872 2009-07-05T12:22:02.133266Z 2810 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.675736Z 82f5657ab6c01b56b039af0cf2312ade 2010-02-15T16:41:16.346582Z 3435 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.675736Z 652c40985320a23285c8e27439418f22 2008-10-24T15:24:35.832581Z 1943 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.675736Z 4bcaa15de1de193dd1f98128b71a420b 2009-10-25T13:28:36.522470Z 2979 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.675736Z 0ff8206c0e77e6356f9d16ccaeff13e2 2009-07-05T12:22:02.133266Z 2810 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/search/.svn/entries --- a/app/views/search/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/search/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/search http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.124147Z +2010-09-23T14:37:44.679779Z 0235b1dd9d5f01dbaaab2b59dc006f2e 2009-09-20T14:06:57.257282Z 2895 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/settings/.svn/entries --- a/app/views/settings/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/settings/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/settings http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z cafaf758de88dd8df50aeb849e398b77 2009-12-19T20:07:09.039389Z 3198 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z c0378ca172ae32638c076f39dd11e980 2010-02-06T10:40:21.867545Z 3372 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z 2de580f7dfb3779ee4f31dc76e717482 2010-07-20T23:50:15.173990Z 3859 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z 1da887b84f272fe4cde6fafaf198529a 2009-12-23T18:35:19.208194Z 3226 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.687777Z 1836fa87f24f7f62eafaed8d1886ca67 2007-10-13T14:11:06.987513Z 837 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z af00d651b626c36ca365bd748f55ec40 2009-12-19T20:07:09.039389Z 3198 @@ -236,7 +236,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.687777Z a629426fc7edef8be6c4545bce9a5abd 2009-09-12T09:13:13.676884Z 2871 @@ -270,7 +270,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.687777Z 25dd64f95ba856913a30a41296c7de0a 2010-02-16T22:41:59.625572Z 3440 @@ -304,7 +304,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.683778Z 92e1b26a91b51f283320507abecc8871 2009-12-19T20:07:09.039389Z 3198 @@ -338,7 +338,7 @@ -2010-07-23T14:49:44.932128Z +2010-09-23T14:37:44.687777Z de489dd7dc60d569a855c1f33d941552 2009-12-19T20:07:09.039389Z 3198 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/timelog/.svn/entries --- a/app/views/timelog/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/timelog/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/timelog http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z 4ccce502c5846d291cb6f447a270088c 2009-11-14T14:10:09.589573Z 3043 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z d4d7e674e383ee8ff3ec998c7f79c0e3 2009-09-20T09:30:41.402075Z 2893 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z 5fa73daf0a67b2a39fd10320bcd7ab45 2008-06-07T15:08:59.933638Z 1503 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z dd63fc253dacd5a2276337c08eef6ff5 2009-09-20T14:06:57.257282Z 2895 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z 8a0ba6a20c98dd2462e40f684f623874 2009-10-21T22:34:28.905707Z 2946 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.924095Z +2010-09-23T14:37:44.691790Z 2b0b5861c9909cd61032b34b2c224052 2009-09-25T00:39:02.685664Z 2902 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/trackers/.svn/entries --- a/app/views/trackers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/trackers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/trackers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.184128Z +2010-09-23T14:37:44.695779Z 952031a6216d1b67897c30936b8c656c 2010-02-15T16:41:27.289923Z 3437 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.184128Z +2010-09-23T14:37:44.695779Z 0b8a4f0aead4d21c20c9cc8dd29141e5 2009-12-12T15:23:22.060140Z 3162 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.184128Z +2010-09-23T14:37:44.695779Z ac4b0e11130741048a5f7c7405bff3de 2009-12-09T11:03:55.646494Z 3146 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.184128Z +2010-09-23T14:37:44.695779Z cf313c286d40c5c44da29ad261b01421 2009-12-09T11:03:55.646494Z 3146 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/users/.svn/all-wcprops --- a/app/views/users/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/users/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 40 -/svn/!svn/ver/3924/trunk/app/views/users +/svn/!svn/ver/4047/trunk/app/views/users END _general.rhtml K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 51 -/svn/!svn/ver/3924/trunk/app/views/users/show.rhtml +/svn/!svn/ver/4047/trunk/app/views/users/show.rhtml END _form.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/users/.svn/entries --- a/app/views/users/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/users/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/users http://redmine.rubyforge.org/svn -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-08-27T14:05:54.014502Z +4047 +edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.112090Z +2010-09-23T14:37:44.699769Z 1ab6a8599eeede034b90f463a85d1042 2009-11-13T18:11:10.447527Z 3037 @@ -66,7 +66,7 @@ -2010-08-25T15:27:55.698551Z +2010-09-23T14:37:44.699769Z f5982959a0afd1bb9e499afe303de33d 2010-08-08T07:07:20.961363Z 3924 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.112090Z +2010-09-23T14:37:44.699769Z fd7d948f1de9d087496cfb8f01ff76db 2009-12-12T11:05:06.206786Z 3160 @@ -134,11 +134,11 @@ -2010-08-25T15:27:55.698551Z -8d9426ee08ca8d71477ddfe9041768b7 -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-24T12:48:26.319756Z +a56205296f0730d3ca46c249abcab568 +2010-08-27T14:05:54.014502Z +4047 +edavis10 has-props @@ -160,7 +160,7 @@ -2601 +2598 _form.rhtml file @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.116101Z +2010-09-23T14:37:44.699769Z e0a6a33bb1cfe7131245520d553108e4 2009-11-13T18:11:10.447527Z 3037 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.116101Z +2010-09-23T14:37:44.703792Z 029f53d8ee91ea4b11874008ee6f3a71 2010-02-26T16:01:04.817813Z 3495 @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.116101Z +2010-09-23T14:37:44.703792Z 16c60ad979f898ab6bfce6739979836c 2010-03-17T20:46:22.413470Z 3600 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.116101Z +2010-09-23T14:37:44.703792Z bcadf1f2d1761aa7cdd622920597f4bb 2009-12-20T10:51:33.049429Z 3204 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/users/.svn/text-base/show.rhtml.svn-base --- a/app/views/users/.svn/text-base/show.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/users/.svn/text-base/show.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -35,7 +35,7 @@

    <% unless @events_by_day.empty? %> -

    <%= link_to l(:label_activity), :controller => 'projects', :action => 'activity', :id => nil, :user_id => @user, :from => @events_by_day.keys.first %>

    +

    <%= link_to l(:label_activity), :controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :from => @events_by_day.keys.first %>

    <%=l(:label_reported_issues)%>: <%= Issue.count(:conditions => ["author_id=?", @user.id]) %> @@ -57,11 +57,11 @@

    <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => nil, :user_id => @user, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :key => User.current.rss_key} %> <% end %> <% content_for :header_tags do %> - <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key) %> + <%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :user_id => @user, :format => :atom, :key => User.current.rss_key) %> <% end %> <% end %> <%= call_hook :view_account_right_bottom, :user => @user %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/users/show.rhtml --- a/app/views/users/show.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/users/show.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -35,7 +35,7 @@
    <% unless @events_by_day.empty? %> -

    <%= link_to l(:label_activity), :controller => 'projects', :action => 'activity', :id => nil, :user_id => @user, :from => @events_by_day.keys.first %>

    +

    <%= link_to l(:label_activity), :controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :from => @events_by_day.keys.first %>

    <%=l(:label_reported_issues)%>: <%= Issue.count(:conditions => ["author_id=?", @user.id]) %> @@ -57,11 +57,11 @@

    <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => nil, :user_id => @user, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :key => User.current.rss_key} %> <% end %> <% content_for :header_tags do %> - <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :user_id => @user, :format => :atom, :key => User.current.rss_key) %> + <%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :user_id => @user, :format => :atom, :key => User.current.rss_key) %> <% end %> <% end %> <%= call_hook :view_account_right_bottom, :user => @user %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/all-wcprops --- a/app/views/versions/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,19 +1,25 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/3865/trunk/app/views/versions +/svn/!svn/ver/4101/trunk/app/views/versions +END +index.html.erb +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/!svn/ver/4082/trunk/app/views/versions/index.html.erb END new.html.erb K 25 svn:wc:ra_dav:version-url V 56 -/svn/!svn/ver/3548/trunk/app/views/versions/new.html.erb +/svn/!svn/ver/4097/trunk/app/views/versions/new.html.erb END show.rhtml K 25 svn:wc:ra_dav:version-url V 54 -/svn/!svn/ver/3865/trunk/app/views/versions/show.rhtml +/svn/!svn/ver/4101/trunk/app/views/versions/show.rhtml END _form.rhtml K 25 @@ -24,8 +30,8 @@ _issue_counts.rhtml K 25 svn:wc:ra_dav:version-url -V 62 -/svn/!svn/ver/955/trunk/app/views/versions/_issue_counts.rhtml +V 63 +/svn/!svn/ver/4098/trunk/app/views/versions/_issue_counts.rhtml END _overview.rhtml K 25 @@ -36,6 +42,6 @@ edit.rhtml K 25 svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/333/trunk/app/views/versions/edit.rhtml +V 54 +/svn/!svn/ver/4097/trunk/app/views/versions/edit.rhtml END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/entries --- a/app/views/versions/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/versions http://redmine.rubyforge.org/svn -2010-07-25T09:29:17.138530Z -3865 -jplang +2010-09-18T17:30:22.509570Z +4101 +jbbarth @@ -26,17 +26,51 @@ e93f8b46-1217-0410-a6f0-8f06a7374b81 +index.html.erb +file + + + + +2010-09-24T12:48:28.303878Z +a50c2acc01c8d25be8e2c8cd082a2272 +2010-09-11T14:00:23.147923Z +4082 +jbbarth +has-props + + + + + + + + + + + + + + + + + + + + +2070 + new.html.erb file -2010-07-23T14:49:45.132098Z -1a57274279e91ae8c8da8124cd7fa957 -2010-03-06T18:25:01.409596Z -3548 -jplang +2010-09-24T12:48:28.303878Z +d53190d87d1c24abce0fc949f816a706 +2010-09-17T15:55:08.377083Z +4097 +edavis10 has-props @@ -58,7 +92,7 @@ -236 +248 show.rhtml file @@ -66,11 +100,11 @@ -2010-07-28T11:07:47.152444Z -8379ceed7dc6c8649080fbc6460897c5 -2010-07-25T09:29:17.138530Z -3865 -jplang +2010-09-24T12:48:28.303878Z +ead91e611c5c576ba9128ca9bd97277f +2010-09-18T17:30:22.509570Z +4101 +jbbarth has-props @@ -92,7 +126,7 @@ -1664 +1954 _form.rhtml file @@ -100,7 +134,7 @@ -2010-07-23T14:49:45.136102Z +2010-09-23T14:37:44.707788Z acf01b501fb1e345fd7abf572233ead9 2009-12-06T10:28:20.099964Z 3123 @@ -134,11 +168,11 @@ -2010-07-23T14:49:45.136102Z -f77eb48614079f656db49bfe44e9d52f -2007-12-07T10:26:07.864320Z -955 -jplang +2010-09-24T12:48:28.303878Z +b5364f2d6f4cb92d1f747cd3dda5098f +2010-09-17T16:11:43.740142Z +4098 +edavis10 has-props @@ -160,7 +194,7 @@ -1335 +1350 _overview.rhtml file @@ -168,7 +202,7 @@ -2010-07-23T14:49:45.136102Z +2010-09-23T14:37:44.707788Z 6e68f24a6d6571388df3018bc915d37a 2009-11-15T15:22:55.021661Z 3064 @@ -202,11 +236,11 @@ -2010-07-23T14:49:45.136102Z -4d1512bdb4d5a66d342d4d3c0d90438c -2007-03-12T17:59:02.654744Z -333 -jplang +2010-09-24T12:48:28.303878Z +85ddc3502659176221220bebef002d6c +2010-09-17T15:55:08.377083Z +4097 +edavis10 has-props @@ -228,5 +262,5 @@ -224 +271 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/prop-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/versions/.svn/prop-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,5 @@ +K 13 +svn:eol-style +V 6 +native +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/text-base/_issue_counts.rhtml.svn-base --- a/app/views/versions/.svn/text-base/_issue_counts.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/text-base/_issue_counts.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -5,7 +5,7 @@ select_tag('status_by', status_by_options_for_select(criteria), :id => 'status_by_select', - :onchange => remote_function(:url => { :action => :status_by, :id => version }, + :onchange => remote_function(:url => status_by_project_version_path(version.project, version), :with => "Form.serialize('status_by_form')"))) %> <% if counts.empty? %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/text-base/edit.rhtml.svn-base --- a/app/views/versions/.svn/text-base/edit.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/text-base/edit.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@

    <%=l(:label_version)%>

    -<% labelled_tabular_form_for :version, @version, :url => { :action => 'edit' } do |f| %> +<% labelled_tabular_form_for :version, @version, :url => project_version_path(@project, @version), :html => {:method => :put} do |f| %> <%= render :partial => 'form', :locals => { :f => f } %> <%= submit_tag l(:button_save) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/text-base/index.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/versions/.svn/text-base/index.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,54 @@ +

    <%=l(:label_roadmap)%>

    + +<% if @versions.empty? %> +

    <%= l(:label_no_data) %>

    +<% else %> +
    +<% @versions.each do |version| %> +

    <%= tag 'a', :name => version.name %><%= link_to_version version %>

    + <%= render :partial => 'versions/overview', :locals => {:version => version} %> + <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> + + <% if (issues = @issues_by_version[version]) && issues.size > 0 %> + <% form_tag({}) do -%> +
    @@ -66,26 +69,10 @@
    -<% -# -# Tasks subjects -# -top = headers_height + 8 -@gantt.events.each do |i| -left = 4 + (i.is_a?(Issue) ? i.level * 16 : 0) - %> -
    - <% if i.is_a? Issue %> - <%= h("#{i.project} -") unless @project && @project == i.project %> - <%= link_to_issue i %> - <% else %> - - <%= link_to_version i %> - - <% end %> -
    - <% top = top + 20 -end %> +<% top = headers_height + 8 %> + +<%= @gantt.subjects(:headers_height => headers_height, :top => top, :g_width => g_width) %> +
    @@ -163,53 +150,9 @@ end end %> -<% -# -# Tasks -# -top = headers_height + 10 -@gantt.events.each do |i| - if i.is_a? Issue - i_start_date = (i.start_date >= @gantt.date_from ? i.start_date : @gantt.date_from ) - i_end_date = (i.due_before <= @gantt.date_to ? i.due_before : @gantt.date_to ) - - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= @gantt.date_from ? @gantt.date_from : i_done_date ) - i_done_date = (i_done_date >= @gantt.date_to ? @gantt.date_to : i_done_date ) - - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = ((i_start_date - @gantt.date_from)*zoom).floor - i_width = ((i_end_date - i_start_date + 1)*zoom).floor - 2 # total width of the issue (- 2 for left and right borders) - d_width = ((i_done_date - i_start_date)*zoom).floor - 2 # done width - l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor - 2 : 0 # delay width - css = "task " + (i.leaf? ? 'leaf' : 'parent') - %> -
     
    - <% if l_width > 0 %> -
     
    - <% end %> - <% if d_width > 0 %> -
     
    - <% end %> -
    - <%= i.status.name %> - <%= (i.done_ratio).to_i %>% -
    -
    - - <%= render_issue_tooltip i %> -
    -<% else - i_left = ((i.start_date - @gantt.date_from)*zoom).floor - %> -
     
    -
    - <%= format_version_name i %> -
    -<% end %> - <% top = top + 20 -end %> +<% top = headers_height + 10 %> + +<%= @gantt.lines(:top => top, :zoom => zoom, :g_width => g_width ) %> <% # @@ -226,8 +169,8 @@ - - + +
    <%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %><%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :method => :get, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :method => :get, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/gantts/show.html.erb --- a/app/views/gantts/show.html.erb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/gantts/show.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,8 @@ +<% @gantt.view = self %>

    <%= l(:label_gantt) %>

    -<% form_tag(params.merge(:month => nil, :year => nil, :months => nil), :id => 'query_form') do %> +<% form_tag(gantt_path(:month => params[:month], :year => params[:year], :months => params[:months]), :method => :put, :id => 'query_form') do %> + <%= hidden_field_tag('project_id', @project.to_param) if @project%>
    <%= l(:label_filter_plural) %>
    @@ -54,11 +56,12 @@ end end +# Width of the entire chart g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom -g_height = [(20 * @gantt.events.length + 6)+150, 206].max +# Collect the number of issues on Versions +g_height = [(20 * (@gantt.number_of_rows + 6))+150, 206].max t_height = g_height + headers_height %> - @@ -34,7 +34,7 @@
    <% if @project.versions.any? %> - <%= link_to l(:label_close_versions), {:controller => 'versions', :action => 'close_completed', :project_id => @project}, :method => :post %> + <%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %> <% end %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/_activities.rhtml --- a/app/views/projects/settings/_activities.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/_activities.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,4 +1,4 @@ -<% form_tag({:controller => 'projects', :action => 'save_activities', :id => @project}, :class => "tabular") do %> +<% form_tag(project_project_enumerations_path(@project), :method => :put, :class => "tabular") do %>
    @@ -66,26 +69,10 @@
    -<% -# -# Tasks subjects -# -top = headers_height + 8 -@gantt.events.each do |i| -left = 4 + (i.is_a?(Issue) ? i.level * 16 : 0) - %> -
    - <% if i.is_a? Issue %> - <%= h("#{i.project} -") unless @project && @project == i.project %> - <%= link_to_issue i %> - <% else %> - - <%= link_to_version i %> - - <% end %> -
    - <% top = top + 20 -end %> +<% top = headers_height + 8 %> + +<%= @gantt.subjects(:headers_height => headers_height, :top => top, :g_width => g_width) %> +
    @@ -163,53 +150,9 @@ end end %> -<% -# -# Tasks -# -top = headers_height + 10 -@gantt.events.each do |i| - if i.is_a? Issue - i_start_date = (i.start_date >= @gantt.date_from ? i.start_date : @gantt.date_from ) - i_end_date = (i.due_before <= @gantt.date_to ? i.due_before : @gantt.date_to ) - - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= @gantt.date_from ? @gantt.date_from : i_done_date ) - i_done_date = (i_done_date >= @gantt.date_to ? @gantt.date_to : i_done_date ) - - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = ((i_start_date - @gantt.date_from)*zoom).floor - i_width = ((i_end_date - i_start_date + 1)*zoom).floor - 2 # total width of the issue (- 2 for left and right borders) - d_width = ((i_done_date - i_start_date)*zoom).floor - 2 # done width - l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor - 2 : 0 # delay width - css = "task " + (i.leaf? ? 'leaf' : 'parent') - %> -
     
    - <% if l_width > 0 %> -
     
    - <% end %> - <% if d_width > 0 %> -
     
    - <% end %> -
    - <%= i.status.name %> - <%= (i.done_ratio).to_i %>% -
    -
    - - <%= render_issue_tooltip i %> -
    -<% else - i_left = ((i.start_date - @gantt.date_from)*zoom).floor - %> -
     
    -
    - <%= format_version_name i %> -
    -<% end %> - <% top = top + 20 -end %> +<% top = headers_height + 10 %> + +<%= @gantt.lines(:top => top, :zoom => zoom, :g_width => g_width ) %> <% # @@ -226,8 +169,8 @@ - - + +
    <%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %><%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :method => :get, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :method => :get, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/groups/.svn/entries --- a/app/views/groups/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/groups/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/groups http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 8798190a9ed51cd47a32f7fa3b14962b 2009-09-11T21:11:20.141433Z 2864 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 77b68adb1216f00c034d0afa77a50bff 2009-09-12T09:13:13.676884Z 2871 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 61731ddfe926e25ea2108a99a7dc594d 2009-07-05T11:38:40.659710Z 2807 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z f122118621575d0b74331d392b4aba4b 2010-02-06T13:26:29.318273Z 3375 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 5fc442e9118fe012a7d4049daa4d68b4 2009-09-12T16:12:42.876344Z 2879 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 5f484ae9be041e266944cc2710caa394 2010-05-09T11:19:15.980195Z 3734 @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z eff82d54d4b9afef8e057bce83a79055 2010-05-09T11:19:15.980195Z 3734 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z ee1e9b07710ccd0b0dee7791dddc93bb 2009-07-05T13:54:34.821434Z 2812 @@ -304,7 +304,7 @@ -2010-07-23T14:49:45.192172Z +2010-09-23T14:37:44.547775Z 09eeec211f50994f28b31bcff9be43ef 2009-09-05T11:19:00.617770Z 2858 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issue_categories/.svn/entries --- a/app/views/issue_categories/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issue_categories/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/issue_categories http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.460113Z +2010-09-23T14:37:44.551784Z 61ef938e10897a71008d145439614aa8 2010-03-06T18:43:00.594668Z 3549 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.460113Z +2010-09-23T14:37:44.551784Z 18eb89247454858a8ee0d9ffe9f0e8f6 2007-06-29T17:21:37.739022Z 577 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.460113Z +2010-09-23T14:37:44.551784Z fc3f04670edce3c08e645d254198a89c 2007-09-14T11:34:08.234701Z 725 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.460113Z +2010-09-23T14:37:44.551784Z f7b34c60cf2f117d3c53be7b0840fe28 2008-02-29T22:54:07.325361Z 1182 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issue_moves/.svn/entries --- a/app/views/issue_moves/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issue_moves/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/issue_moves http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-08-25T15:27:55.692000Z +2010-09-23T14:37:44.555783Z 75404bb56747fe4f58e979b3452af027 2010-08-11T14:42:10.119704Z 3936 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issue_relations/.svn/entries --- a/app/views/issue_relations/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issue_relations/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/issue_relations http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.136102Z +2010-09-23T14:37:44.555783Z 36d83be727a082a187650a3604005824 2007-09-22T13:17:49.935719Z 747 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issue_statuses/.svn/entries --- a/app/views/issue_statuses/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issue_statuses/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/issue_statuses http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.260456Z +2010-09-23T14:37:44.559788Z 2d8b318bb1dbbe6dbb478716d52e65e9 2010-03-17T20:46:22.413470Z 3600 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.260456Z +2010-09-23T14:37:44.559788Z e4ea04eeab7c1f7265858a9dd09f1b7b 2009-12-12T10:33:12.138303Z 3157 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.260456Z +2010-09-23T14:37:44.559788Z 21f8b2f134a83413d09ae7e4d004c642 2009-07-05T12:22:02.133266Z 2810 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.260456Z +2010-09-23T14:37:44.559788Z af751ca552f43d9954a0cb1bbdb6e362 2009-07-05T12:22:02.133266Z 2810 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/all-wcprops --- a/app/views/issues/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,25 +1,31 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/4037/trunk/app/views/issues +/svn/!svn/ver/4165/trunk/app/views/issues END _relations.rhtml K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/3915/trunk/app/views/issues/_relations.rhtml +/svn/!svn/ver/4065/trunk/app/views/issues/_relations.rhtml +END +_action_menu.rhtml +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4105/trunk/app/views/issues/_action_menu.rhtml END _history.rhtml K 25 svn:wc:ra_dav:version-url V 56 -/svn/!svn/ver/3898/trunk/app/views/issues/_history.rhtml +/svn/!svn/ver/4062/trunk/app/views/issues/_history.rhtml END -_action_menu.rhtml +_form.rhtml K 25 svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/3936/trunk/app/views/issues/_action_menu.rhtml +V 53 +/svn/!svn/ver/4165/trunk/app/views/issues/_form.rhtml END bulk_edit.rhtml K 25 @@ -27,12 +33,6 @@ V 57 /svn/!svn/ver/4037/trunk/app/views/issues/bulk_edit.rhtml END -_form.rhtml -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/4011/trunk/app/views/issues/_form.rhtml -END _form_update.rhtml K 25 svn:wc:ra_dav:version-url @@ -49,7 +49,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/4034/trunk/app/views/issues/index.rhtml +/svn/!svn/ver/4093/trunk/app/views/issues/index.rhtml END _sidebar.rhtml K 25 @@ -61,7 +61,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/3625/trunk/app/views/issues/_list.rhtml +/svn/!svn/ver/4056/trunk/app/views/issues/_list.rhtml END show.xml.builder K 25 @@ -81,18 +81,18 @@ V 67 /svn/!svn/ver/2827/trunk/app/views/issues/_form_custom_fields.rhtml END +_changesets.rhtml +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/!svn/ver/3898/trunk/app/views/issues/_changesets.rhtml +END _list_simple.rhtml K 25 svn:wc:ra_dav:version-url V 60 /svn/!svn/ver/3924/trunk/app/views/issues/_list_simple.rhtml END -_changesets.rhtml -K 25 -svn:wc:ra_dav:version-url -V 59 -/svn/!svn/ver/3898/trunk/app/views/issues/_changesets.rhtml -END _edit.rhtml K 25 svn:wc:ra_dav:version-url @@ -103,7 +103,7 @@ K 25 svn:wc:ra_dav:version-url V 59 -/svn/!svn/ver/3573/trunk/app/views/issues/_attributes.rhtml +/svn/!svn/ver/4090/trunk/app/views/issues/_attributes.rhtml END edit.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/entries --- a/app/views/issues/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/issues http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-20T18:50:09.519311Z +4165 edavis10 @@ -32,11 +32,11 @@ -2010-08-25T15:27:56.690702Z -44ad446adb6ca89953743ad2b9400b51 -2010-08-04T20:52:31.100179Z -3915 -jbbarth +2010-09-24T12:48:29.596042Z +4659150afe6ae87105eaa29894e4d488 +2010-09-06T00:48:44.764418Z +4065 +edavis10 has-props @@ -58,7 +58,7 @@ -1739 +1816 _history.rhtml file @@ -66,11 +66,11 @@ -2010-08-25T15:27:56.690702Z -6430716ac245ae05c393c1dcd04e575f -2010-07-29T15:48:53.812065Z -3898 -winterheart +2010-09-24T12:48:29.596042Z +8d719ade30044f529f104cda9dcdd6f4 +2010-09-05T22:57:20.669640Z +4062 +edavis10 has-props @@ -92,7 +92,7 @@ -840 +859 _action_menu.rhtml file @@ -100,10 +100,10 @@ -2010-08-25T15:27:56.690702Z -04350a5b35404e971ff6eabb0d432c39 -2010-08-11T14:42:10.119704Z -3936 +2010-09-24T12:48:29.596042Z +d39cbd8da926ba1c0912674a25e0bbae +2010-09-20T02:55:26.436604Z +4105 edavis10 @@ -126,7 +126,7 @@ -1173 +1228 bulk_edit.rhtml file @@ -134,7 +134,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.571741Z 2118a1220c381352190040dc4b80e7d4 2010-08-24T15:27:12.793586Z 4037 @@ -168,10 +168,10 @@ -2010-08-25T15:27:56.690702Z -90b9031a1f1f9e40a88ab7b2080e880c -2010-08-20T15:22:19.680224Z -4011 +2010-09-24T12:48:29.596042Z +c95e7aec098a5197f699f7ff5d9cfea5 +2010-09-20T18:50:09.519311Z +4165 edavis10 has-props @@ -194,7 +194,7 @@ -1944 +2034 _form_update.rhtml file @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.572128Z +2010-09-23T14:37:44.571741Z 00a1336147a304d10f556a97f7105a83 2009-12-11T18:48:34.197724Z 3151 @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.572128Z +2010-09-23T14:37:44.575742Z ed6c218138334e3950cb971252374472 2010-04-13T17:51:06.988056Z 3671 @@ -270,11 +270,11 @@ -2010-08-25T15:27:56.690702Z -bf8411a9c7c60d8dc201a26f8df2c8b9 -2010-08-23T15:04:36.844654Z -4034 -edavis10 +2010-09-24T12:48:29.596042Z +5a8516dceeaac8769ab1780f8e9cccd9 +2010-09-16T21:33:49.399868Z +4093 +jbbarth has-props @@ -296,7 +296,7 @@ -4031 +4097 _sidebar.rhtml file @@ -304,7 +304,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.571741Z c2e4e73b27a58d99224ccc2d7f35dc84 2010-08-22T18:30:26.413363Z 4012 @@ -338,11 +338,11 @@ -2010-07-23T14:49:45.572128Z -d9dcb8e4d8e03e2c3b156c90b0cdfcc4 -2010-03-29T19:50:00.163655Z -3625 -jplang +2010-09-24T12:48:29.596042Z +b5bd20e1b16f321b87b14ec6d0b7a9e7 +2010-09-03T19:59:49.465806Z +4056 +jbbarth has-props @@ -364,7 +364,7 @@ -1725 +1772 show.xml.builder file @@ -372,7 +372,7 @@ -2010-07-23T14:49:45.572128Z +2010-09-23T14:37:44.575742Z 1a197244651b647927c95d8bcbb2b46d 2010-05-01T14:07:36.553776Z 3729 @@ -406,7 +406,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.575742Z 81fcfef3bb688e30577916647e05f02a 2010-08-22T19:12:21.015911Z 4014 @@ -440,7 +440,7 @@ -2010-07-23T14:49:45.576133Z +2010-09-23T14:37:44.571741Z 5cac68d4655699c1a4ce40ef17da7b0a 2009-07-29T19:04:27.717761Z 2827 @@ -474,7 +474,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.571741Z 334ec8cd87b661a181185092c242c41d 2010-08-08T07:07:20.961363Z 3924 @@ -508,7 +508,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.571741Z 4c03735a361a24cc60a70975502bace7 2010-07-29T15:48:53.812065Z 3898 @@ -542,7 +542,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.571741Z ebae2e20ea4028620967382b877b5860 2010-08-18T15:01:35.032314Z 3946 @@ -576,11 +576,11 @@ -2010-07-23T14:49:45.576133Z -1d828717b9849fe89fa822654ede0211 -2010-03-13T14:56:49.379682Z -3573 -jplang +2010-09-24T12:48:29.599802Z +e2c801f0755567e34186cdbbc510d29d +2010-09-16T18:27:33.887969Z +4090 +edavis10 has-props @@ -602,7 +602,7 @@ -2451 +2461 edit.rhtml file @@ -610,7 +610,7 @@ -2010-07-23T14:49:45.576133Z +2010-09-23T14:37:44.575742Z 4b6048de503364b0ef668df08cceb602 2008-02-09T16:11:18.249226Z 1129 @@ -644,7 +644,7 @@ -2010-07-23T14:49:45.576133Z +2010-09-23T14:37:44.571741Z b429d0e7dd6b3ef7bc1a28bdf0aeaf34 2009-04-24T17:18:36.117696Z 2685 @@ -678,7 +678,7 @@ -2010-08-25T15:27:56.690702Z +2010-09-23T14:37:44.575742Z c1a3c605c3eed0e46487a4455acefad7 2010-08-18T15:01:35.032314Z 3946 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_action_menu.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_action_menu.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_action_menu.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -6,5 +6,5 @@ <%= link_to_if_authorized l(:button_duplicate), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue }, :class => 'icon icon-duplicate' %> <%= link_to_if_authorized l(:button_copy), new_issue_move_path(:id => @issue, :copy_options => {:copy => 't'}), :class => 'icon icon-copy' %> <%= link_to_if_authorized l(:button_move), new_issue_move_path(:id => @issue), :class => 'icon icon-move' %> -<%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> +<%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => (@issue.leaf? ? l(:text_are_you_sure) : l(:text_are_you_sure_with_children)), :method => :post, :class => 'icon icon-del' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_attributes.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_attributes.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_attributes.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -23,7 +23,7 @@ <%= prompt_to_remote(image_tag('add.png', :style => 'vertical-align: middle;'), l(:label_version_new), 'version[name]', - {:controller => 'versions', :action => 'new', :project_id => @project}, + {:controller => 'versions', :action => 'create', :project_id => @project}, :title => l(:label_version_new), :tabindex => 200) if authorize_for('versions', 'new') %>

    @@ -40,6 +40,6 @@
    -<%= render :partial => 'form_custom_fields' %> +<%= render :partial => 'issues/form_custom_fields' %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_form.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_form.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_form.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,3 +1,5 @@ +<%= call_hook(:view_issues_form_details_top, { :issue => @issue, :form => f }) %> +
    >

    <%= f.select :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %>

    <%= observe_field :issue_tracker_id, :url => { :action => :new, :project_id => @project, :id => @issue }, @@ -20,7 +22,7 @@
    - <%= render :partial => 'attributes' %> + <%= render :partial => 'issues/attributes' %>
    <% if @issue.new_record? %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_history.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_history.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_history.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@ <% reply_links = authorize_for('issues', 'edit') -%> <% for journal in journals %> -
    +

    <%= avatar(journal.user, :size => "24") %> <%= content_tag('a', '', :name => "note-#{journal.indice}")%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_list.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_list.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_list.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -3,7 +3,7 @@
    - <%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %> @@ -25,7 +25,7 @@ <% previous_group = group %> <% end %> "> - + <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/_relations.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_relations.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/_relations.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -28,6 +28,7 @@ <% remote_form_for(:relation, @relation, :url => {:controller => 'issue_relations', :action => 'new', :issue_id => @issue}, :method => :post, + :complete => "Form.Element.focus('relation_issue_to_id');", :html => {:id => 'new-relation-form', :style => (@relation ? '' : 'display: none;')}) do |f| %> <%= render :partial => 'issue_relations/form', :locals => {:f => f}%> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/.svn/text-base/index.rhtml.svn-base --- a/app/views/issues/.svn/text-base/index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/.svn/text-base/index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -39,6 +39,7 @@ { :url => { :set_filter => 1 }, :before => 'selectAllOptions("selected_columns");', :update => "content", + :complete => "apply_filters_observer()", :with => "Form.serialize('query_form')" }, :class => 'icon icon-checked' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_action_menu.rhtml --- a/app/views/issues/_action_menu.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_action_menu.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -6,5 +6,5 @@ <%= link_to_if_authorized l(:button_duplicate), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue }, :class => 'icon icon-duplicate' %> <%= link_to_if_authorized l(:button_copy), new_issue_move_path(:id => @issue, :copy_options => {:copy => 't'}), :class => 'icon icon-copy' %> <%= link_to_if_authorized l(:button_move), new_issue_move_path(:id => @issue), :class => 'icon icon-move' %> -<%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> +<%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => (@issue.leaf? ? l(:text_are_you_sure) : l(:text_are_you_sure_with_children)), :method => :post, :class => 'icon icon-del' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_attributes.rhtml --- a/app/views/issues/_attributes.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_attributes.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -23,7 +23,7 @@ <%= prompt_to_remote(image_tag('add.png', :style => 'vertical-align: middle;'), l(:label_version_new), 'version[name]', - {:controller => 'versions', :action => 'new', :project_id => @project}, + {:controller => 'versions', :action => 'create', :project_id => @project}, :title => l(:label_version_new), :tabindex => 200) if authorize_for('versions', 'new') %>

    @@ -40,6 +40,6 @@
    -<%= render :partial => 'form_custom_fields' %> +<%= render :partial => 'issues/form_custom_fields' %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_form.rhtml --- a/app/views/issues/_form.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_form.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,3 +1,5 @@ +<%= call_hook(:view_issues_form_details_top, { :issue => @issue, :form => f }) %> +
    >

    <%= f.select :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %>

    <%= observe_field :issue_tracker_id, :url => { :action => :new, :project_id => @project, :id => @issue }, @@ -20,7 +22,7 @@
    - <%= render :partial => 'attributes' %> + <%= render :partial => 'issues/attributes' %>
    <% if @issue.new_record? %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_history.rhtml --- a/app/views/issues/_history.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_history.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@ <% reply_links = authorize_for('issues', 'edit') -%> <% for journal in journals %> -
    +

    <%= avatar(journal.user, :size => "24") %> <%= content_tag('a', '', :name => "note-#{journal.indice}")%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_list.rhtml --- a/app/views/issues/_list.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_list.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -3,7 +3,7 @@

    <%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;', + <%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;', :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
    <%= check_box_tag("ids[]", issue.id, false, :id => nil) %><%= check_box_tag("ids[]", issue.id, false, :id => nil) %> <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %>
    - <%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %> @@ -25,7 +25,7 @@ <% previous_group = group %> <% end %> "> - + <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/_relations.rhtml --- a/app/views/issues/_relations.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/_relations.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -28,6 +28,7 @@ <% remote_form_for(:relation, @relation, :url => {:controller => 'issue_relations', :action => 'new', :issue_id => @issue}, :method => :post, + :complete => "Form.Element.focus('relation_issue_to_id');", :html => {:id => 'new-relation-form', :style => (@relation ? '' : 'display: none;')}) do |f| %> <%= render :partial => 'issue_relations/form', :locals => {:f => f}%> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/issues/index.rhtml --- a/app/views/issues/index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/issues/index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -39,6 +39,7 @@ { :url => { :set_filter => 1 }, :before => 'selectAllOptions("selected_columns");', :update => "content", + :complete => "apply_filters_observer()", :with => "Form.serialize('query_form')" }, :class => 'icon icon-checked' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/journals/.svn/entries --- a/app/views/journals/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/journals/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/journals http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.908124Z +2010-09-23T14:37:44.579750Z fb8a5b1bfdbadbbaaa17ce7fc1dfcf3c 2009-10-11T10:36:11.599175Z 2924 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.908124Z +2010-09-23T14:37:44.579750Z 269ec86216a5d0340e02940f1b190d51 2010-03-17T04:13:05.342620Z 3596 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.908124Z +2010-09-23T14:37:44.579750Z ce552c52f7c423630412d0593cc1ee61 2008-02-02T10:50:31.694950Z 1105 @@ -134,7 +134,7 @@ -2010-08-25T15:27:55.118495Z +2010-09-23T14:37:44.579750Z ef7f777c9318cee52e909377c4f96e8b 2010-08-23T15:04:36.844654Z 4034 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/layouts/.svn/entries --- a/app/views/layouts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/layouts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/layouts http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-08-25T15:27:55.122634Z +2010-09-24T11:56:52.936024Z 2e429e8cf551d964a7e1a528ca56242d 2010-08-19T16:57:44.231882Z 4005 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.936188Z +2010-09-23T14:37:44.583752Z 9631cc13a2471d1bdde52f4d8cee6f18 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.936188Z +2010-09-23T14:37:44.583752Z bd4792711b615ebda6bb50b1f1158f0c 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.936188Z +2010-09-23T14:37:44.583752Z cc6ca08e56314fb510561e8eeb4ede46 2009-12-17T18:21:02.630202Z 3176 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/ldap_auth_sources/.svn/entries --- a/app/views/ldap_auth_sources/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/ldap_auth_sources/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/ldap_auth_sources http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.116101Z +2010-09-23T14:37:44.583752Z 7eaca2b2857c3c1ef6fa72633333d56f 2010-05-23T03:16:31.304135Z 3744 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/mailer/.svn/entries --- a/app/views/mailer/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/mailer/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/mailer http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.156129Z +2010-09-23T14:37:44.607738Z 882607e6f82c2c4e7db74136ee974a5b 2009-05-17T09:55:13.601447Z 2749 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.156129Z +2010-09-23T14:37:44.599741Z e54fccdf5cf9e146cddf2adc5797d76f 2009-02-20T17:04:47.905923Z 2484 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.156129Z +2010-09-23T14:37:44.607738Z 55d268cfc5ec4c2375739d401a00e9ca 2007-11-04T10:43:39.403792Z 877 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.156129Z +2010-09-23T14:37:44.603754Z 157b6123ac6990f3cb83d1a24c441599 2007-11-18T17:46:55.863051Z 915 @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.156129Z +2010-09-23T14:37:44.603754Z 99836d2f584d6975add91d6f4885dfa3 2010-02-18T19:13:38.135448Z 3452 @@ -202,7 +202,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z 0fcec4c9195f18d0d58724feb863a27e 2007-11-04T10:43:39.403792Z 877 @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z 501bcdc81562733bce55a29655f6fd89 2009-02-21T11:04:50.579477Z 2493 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z 746db1ca981aa5fc37569de58a3be57b 2010-02-18T19:13:38.135448Z 3452 @@ -304,7 +304,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z 55b994ef0e81fdc6d78f280c8716f230 2010-02-18T19:13:38.135448Z 3452 @@ -338,7 +338,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z 76b612bb95df0f232af66dcfa75908a9 2010-02-18T19:13:38.135448Z 3452 @@ -372,7 +372,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 6a0fb1622f40125ab40706fa05705436 2009-02-21T11:04:50.579477Z 2493 @@ -406,7 +406,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 6efcff34ccd9ec0ebd5c501a38bd9e61 2009-07-05T14:14:44.411724Z 2814 @@ -440,7 +440,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 21acbb8688d350bccc49d0b9f0fa7964 2009-05-17T09:55:13.601447Z 2749 @@ -474,7 +474,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 62a282059a34f2aaa4d56b609e94e27c 2007-11-04T10:43:39.403792Z 877 @@ -508,7 +508,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z b95faada3d8a7eac9ddd90de85d377eb 2007-11-04T10:43:39.403792Z 877 @@ -542,7 +542,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.599741Z b6dee3a7f5ce5253d3d66ea2d0aed032 2009-02-20T17:04:47.905923Z 2484 @@ -576,7 +576,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 382940abff8d469305e2b82eaac09875 2007-11-04T10:43:39.403792Z 877 @@ -610,7 +610,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.599741Z 1f73b58bdc0fd4474073437ce2e219bd 2007-11-04T10:43:39.403792Z 877 @@ -644,7 +644,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.599741Z 871cf6abc13d895f9de91ef4ac36c2bd 2010-02-18T19:13:38.135448Z 3452 @@ -678,7 +678,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.607738Z 0cbce1fe1b288482af3095ce9bc555ed 2007-11-04T10:43:39.403792Z 877 @@ -712,7 +712,7 @@ -2010-07-23T14:49:45.160129Z +2010-09-23T14:37:44.603754Z db9ef17343824d59b7a19db7036ee2f1 2010-02-18T19:13:38.135448Z 3452 @@ -746,7 +746,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.607738Z 7dffb9cfc22aef3b03d0d771179f26d6 2010-02-18T19:13:38.135448Z 3452 @@ -780,7 +780,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z d4eae87a9e17f49caeb6913659b9c42d 2007-11-04T10:43:39.403792Z 877 @@ -814,7 +814,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z 06d5fbff057e28328f2be88419207f80 2010-02-18T19:13:38.135448Z 3452 @@ -848,7 +848,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z 52a0f774acd5b7aeeb3768de943af901 2009-02-21T11:04:50.579477Z 2493 @@ -882,7 +882,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z 2b46c7d28f33cec521374ccae2fd8451 2007-11-04T10:43:39.403792Z 877 @@ -916,7 +916,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z 9b7ab36ebc57f0c02756d2b076e67b19 2007-11-26T18:47:49.588558Z 932 @@ -950,7 +950,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z e7e91d7f18dd1547cfebafdf4822a18f 2010-02-18T19:13:38.135448Z 3452 @@ -984,7 +984,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.607738Z 801160f7633227c04b4a3a8c249feeff 2009-05-17T09:55:13.601447Z 2749 @@ -1018,7 +1018,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z 44018a44ceaecb5c9be3fed66e759064 2008-07-21T19:13:46.546624Z 1683 @@ -1052,7 +1052,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.603754Z a53d9ea13c19cbce1edc375a01b5753d 2010-02-18T19:13:38.135448Z 3452 @@ -1086,7 +1086,7 @@ -2010-07-23T14:49:45.164129Z +2010-09-23T14:37:44.607738Z f7cca2b19b22b64036fdba45803b6805 2009-05-17T09:55:13.601447Z 2749 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/members/.svn/entries --- a/app/views/members/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/members/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/members http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.611740Z 9e105ea0b16e73250d47d57f07d71cff 2009-09-12T08:36:46.650954Z 2869 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/messages/.svn/entries --- a/app/views/messages/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/messages/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/messages http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-28T11:07:47.120163Z +2010-09-23T14:37:44.615740Z c68f1ef8a922f2a408e0349d80db4376 2010-07-25T10:02:12.905073Z 3877 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.128097Z +2010-09-23T14:37:44.611740Z 4fecf6ec48e549e01ada68dc8d623f38 2010-01-25T17:26:02.255593Z 3339 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.128097Z +2010-09-23T14:37:44.611740Z 72a4fb6eecd42aceb751370901633f24 2008-03-07T17:49:44.664945Z 1205 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.128097Z +2010-09-23T14:37:44.611740Z 3512563f842c2e951d7738870f2d4065 2008-03-07T17:49:44.664945Z 1205 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/my/.svn/entries --- a/app/views/my/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/my/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/my http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.898275Z +2010-09-23T14:37:44.619750Z 4fb90e7d5633e4ec24100c38acdad03d 2010-05-23T03:16:37.499264Z 3745 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.623783Z afa83dffe27e19383284d8177f1f4687 2010-03-04T19:02:57.949679Z 3542 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.623783Z a43c901172c8b1750d24612b24f2db22 2009-04-21T13:43:57.529967Z 2678 @@ -137,7 +137,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.619750Z 91a0469f13d98fd2504ca036e16660f1 2010-06-19T16:50:13.340830Z 3775 @@ -171,7 +171,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.619750Z efb09bc859f5527d219f0dd3d5c12fe8 2009-02-26T16:15:07.718565Z 2528 @@ -205,7 +205,7 @@ -2010-07-23T14:49:44.900164Z +2010-09-23T14:37:44.623783Z c1260ac20d704693b8748cef7b7c58f9 2010-05-26T21:52:03.637924Z 3755 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/my/blocks/.svn/entries --- a/app/views/my/blocks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/my/blocks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/my/blocks http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z 0b880299704151a6acd66b5632f60426 2010-03-10T05:10:43.201527Z 3557 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z 6aa71a8cc8a018c4c564915c10355709 2007-04-20T09:53:44.242780Z 449 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z 55339408a7e093de86505f92845ed977 2009-03-17T17:34:49.297132Z 2598 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z bf22b792b1b79c60dc866718c074f370 2009-05-30T23:30:36.923541Z 2777 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z 4dfff03583b1da52a7f2fb8d20398928 2010-05-09T11:19:15.980195Z 3734 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.768125Z +2010-09-23T14:37:44.623783Z a21d8649f0daec69caabb118e9b6375c 2008-08-26T11:08:45.487893Z 1766 @@ -236,7 +236,7 @@ -2010-07-23T14:49:44.772126Z +2010-09-23T14:37:44.623783Z 3894ab9b2f76b3622a362843be2162be 2010-01-30T11:23:17.508662Z 3351 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/news/.svn/all-wcprops --- a/app/views/news/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/news/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 39 -/svn/!svn/ver/3924/trunk/app/views/news +/svn/!svn/ver/4172/trunk/app/views/news END _news.rhtml K 25 @@ -13,7 +13,7 @@ K 25 svn:wc:ra_dav:version-url V 50 -/svn/!svn/ver/3425/trunk/app/views/news/show.rhtml +/svn/!svn/ver/4172/trunk/app/views/news/show.rhtml END _form.rhtml K 25 @@ -25,17 +25,17 @@ K 25 svn:wc:ra_dav:version-url V 50 -/svn/!svn/ver/1677/trunk/app/views/news/edit.rhtml +/svn/!svn/ver/4168/trunk/app/views/news/edit.rhtml END index.rhtml K 25 svn:wc:ra_dav:version-url V 51 -/svn/!svn/ver/3924/trunk/app/views/news/index.rhtml +/svn/!svn/ver/4163/trunk/app/views/news/index.rhtml END new.rhtml K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/1677/trunk/app/views/news/new.rhtml +/svn/!svn/ver/4163/trunk/app/views/news/new.rhtml END diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/news/.svn/entries --- a/app/views/news/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/news/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/news http://redmine.rubyforge.org/svn -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-23T15:20:19.085385Z +4172 +edavis10 @@ -32,7 +32,7 @@ -2010-08-25T15:27:56.353675Z +2010-09-23T14:37:44.627781Z 8a95983c16121228642f685334a98b43 2010-08-08T07:07:20.961363Z 3924 @@ -66,11 +66,11 @@ -2010-07-23T14:49:45.180146Z -7abfb74e27ed92fb331e0904686f1d52 -2010-02-14T11:49:29.679515Z -3425 -jplang +2010-09-24T12:48:28.335892Z +fb4ed9638d6d3f708b140d2ccbc013de +2010-09-23T15:20:19.085385Z +4172 +edavis10 has-props @@ -92,7 +92,7 @@ -2987 +3025 _form.rhtml file @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.180146Z +2010-09-23T14:37:44.627781Z e06c154a981d18d975bcba8eb682df30 2007-09-22T17:52:43.686392Z 750 @@ -134,11 +134,11 @@ -2010-07-23T14:49:45.180146Z -dce78016c437a94a529717f88539e4b4 -2008-07-19T07:29:05.324971Z -1677 -jplang +2010-09-24T12:48:28.335892Z +03cd635f1021f3f088155b7106062d98 +2010-09-21T15:20:37.706826Z +4168 +edavis10 has-props @@ -160,7 +160,7 @@ -672 +771 index.rhtml file @@ -168,11 +168,11 @@ -2010-08-25T15:27:56.353675Z -dc12388537796be5d0dc19bf9b68b28b -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-24T12:48:28.335892Z +22895814fee421f0a7e4654059ede065 +2010-09-20T15:13:48.212792Z +4163 +edavis10 has-props @@ -194,7 +194,7 @@ -2222 +2260 new.rhtml file @@ -202,11 +202,11 @@ -2010-07-23T14:49:45.180146Z -98d730e89eb4c9b54c1298037f9ff707 -2008-07-19T07:29:05.324971Z -1677 -jplang +2010-09-24T12:48:28.335892Z +834dc30ca0d2f96a37f2ef2a60d9aaf9 +2010-09-20T15:13:48.212792Z +4163 +edavis10 has-props @@ -228,5 +228,5 @@ -730 +733 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/news/.svn/text-base/edit.rhtml.svn-base --- a/app/views/news/.svn/text-base/edit.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/news/.svn/text-base/edit.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@

    <%=l(:label_news)%>

    -<% labelled_tabular_form_for :news, @news, :url => { :action => "edit" }, - :html => { :id => 'news-form' } do |f| %> +<% labelled_tabular_form_for :news, @news, :url => { :action => "update" }, + :html => { :id => 'news-form', :method => :put } do |f| %> <%= render :partial => 'form', :locals => { :f => f } %> <%= submit_tag l(:button_save) %> <%= link_to_remote l(:label_preview), @@ -12,3 +12,7 @@ }, :accesskey => accesskey(:preview) %> <% end %>
    + +<% content_for :header_tags do %> + <%= stylesheet_link_tag 'scm' %> +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/news/.svn/text-base/index.rhtml.svn-base --- a/app/views/news/.svn/text-base/index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/news/.svn/text-base/index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -7,7 +7,7 @@
    <%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;', + <%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;', :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
    <%= check_box_tag("ids[]", issue.id, false, :id => nil) %><%= check_box_tag("ids[]", issue.id, false, :id => nil) %> <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %>
    - - <%= sort_header_tag('filename', :caption => l(:field_filename)) %> - <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %> - <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %> - <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %> - - - - -<% @containers.each do |container| %> - <% next if container.attachments.empty? -%> - <% if container.is_a?(Version) -%> - - - - <% end -%> - <% container.attachments.each do |file| %> - "> - - - - - - - - <% end - reset_cycle %> -<% end %> - -
    MD5
    - <%= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package") %> -
    <%= link_to_attachment file, :download => true, :title => file.description %><%= format_time(file.created_on) %><%= number_to_human_size(file.filesize) %><%= file.downloads %><%= file.digest %> - <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file}, - :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %> -
    - -<% html_title(l(:label_attachment_plural)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/.svn/text-base/new.html.erb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/projects/.svn/text-base/new.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,17 @@ +

    <%=l(:label_project_new)%>

    + +<% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %> +<%= render :partial => 'form', :locals => { :f => f } %> + +
    <%= l(:label_module_plural) %> +<% Redmine::AccessControl.available_project_modules.each do |m| %> + +<% end %> +
    + +<%= submit_tag l(:button_save) %> +<%= javascript_tag "Form.Element.focus('project_name');" %> +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/.svn/text-base/roadmap.rhtml.svn-base --- a/app/views/projects/.svn/text-base/roadmap.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -

    <%=l(:label_roadmap)%>

    - -<% if @versions.empty? %> -

    <%= l(:label_no_data) %>

    -<% else %> -
    -<% @versions.each do |version| %> -

    <%= tag 'a', :name => version.name %><%= link_to_version version %>

    - <%= render :partial => 'versions/overview', :locals => {:version => version} %> - <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> - - <% if (issues = @issues_by_version[version]) && issues.size > 0 %> - <% form_tag({}) do -%> - - - <%- issues.each do |issue| -%> - - - - - <%- end -%> - - <% end %> - <% end %> - <%= call_hook :view_projects_roadmap_version_bottom, :version => version %> -<% end %> -
    -<% end %> - -<% content_for :sidebar do %> -<% form_tag({}, :method => :get) do %> -

    <%= l(:label_roadmap) %>

    -<% @trackers.each do |tracker| %> -
    -<% end %> -
    - -<% if @project.descendants.active.any? %> - <%= hidden_field_tag 'with_subprojects', 0 %> -
    -<% end %> -

    <%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

    -<% end %> - -

    <%= l(:label_version_plural) %>

    -<% @versions.each do |version| %> -<%= link_to format_version_name(version), "##{version.name}" %>
    -<% end %> -<% end %> - -<% html_title(l(:label_roadmap)) %> - -<%= context_menu :controller => 'issues', :action => 'context_menu' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/.svn/text-base/show.rhtml.svn-base --- a/app/views/projects/.svn/text-base/show.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/.svn/text-base/show.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@
    <% if User.current.allowed_to?(:add_subprojects, @project) %> - <%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'add', :parent_id => @project}, :class => 'icon icon-add' %> + <%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'new', :parent_id => @project}, :class => 'icon icon-add' %> <% end %>
    @@ -74,7 +74,7 @@ <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, {:action => 'activity', :id => @project, :format => 'atom', :key => User.current.rss_key}) %> +<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %> <% end %> <% html_title(l(:label_overview)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/_edit.rhtml --- a/app/views/projects/_edit.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/_edit.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,4 +1,4 @@ -<% labelled_tabular_form_for :project, @project, :url => { :action => "edit", :id => @project } do |f| %> +<% labelled_tabular_form_for :project, @project, :url => project_path(@project), :html => {:method => (@project.new_record? ? :post : :put) } do |f| %> <%= render :partial => 'form', :locals => { :f => f } %> <%= submit_tag l(:button_save) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/activity.rhtml --- a/app/views/projects/activity.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -

    <%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)) %>

    -

    <%= l(:label_date_from_to, :start => format_date(@date_to - @days), :end => format_date(@date_to-1)) %>

    - -
    -<% @events_by_day.keys.sort.reverse.each do |day| %> -

    <%= format_activity_day(day) %>

    -
    -<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%> -
    - <%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %> - <%= format_time(e.event_datetime, false) %> - <%= content_tag('span', h(e.project), :class => 'project') if @project.nil? || @project != e.project %> - <%= link_to format_activity_title(e.event_title), e.event_url %>
    -
    <%= format_activity_description(e.event_description) %> - <%= e.event_author if e.respond_to?(:event_author) %>
    -<% end -%> -
    -<% end -%> -
    - -<%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %> - -
    -<%= link_to_remote(('« ' + l(:label_previous)), - {:update => "content", :url => params.merge(:from => @date_to - @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, - {:href => url_for(params.merge(:from => @date_to - @days - 1)), - :title => l(:label_date_from_to, :start => format_date(@date_to - 2*@days), :end => format_date(@date_to - @days - 1))}) %> -
    -
    -<%= link_to_remote((l(:label_next) + ' »'), - {:update => "content", :url => params.merge(:from => @date_to + @days - 1), :method => :get, :complete => 'window.scrollTo(0,0)'}, - {:href => url_for(params.merge(:from => @date_to + @days - 1)), - :title => l(:label_date_from_to, :start => format_date(@date_to), :end => format_date(@date_to + @days - 1))}) unless @date_to >= Date.today %> -
    -  -<% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %> -<% end %> - -<% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %> -<% end %> - -<% content_for :sidebar do %> -<% form_tag({}, :method => :get) do %> -

    <%= l(:label_activity) %>

    -

    <% @activity.event_types.each do |t| %> -<%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %> -<%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%> -
    -<% end %>

    -<% if @project && @project.descendants.active.any? %> - <%= hidden_field_tag 'with_subprojects', 0 %> -

    -<% end %> -<%= hidden_field_tag('user_id', params[:user_id]) unless params[:user_id].blank? %> -

    <%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

    -<% end %> -<% end %> - -<% html_title(l(:label_activity), @author) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/add.rhtml --- a/app/views/projects/add.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -

    <%=l(:label_project_new)%>

    - -<% labelled_tabular_form_for :project, @project, :url => { :action => "add" } do |f| %> -<%= render :partial => 'form', :locals => { :f => f } %> - -
    <%= l(:label_module_plural) %> -<% Redmine::AccessControl.available_project_modules.each do |m| %> - -<% end %> -
    - -<%= submit_tag l(:button_save) %> -<%= javascript_tag "Form.Element.focus('project_name');" %> -<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/add_file.rhtml --- a/app/views/projects/add_file.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -

    <%=l(:label_attachment_new)%>

    - -<%= error_messages_for 'attachment' %> -
    -<% form_tag({ :action => 'add_file', :id => @project }, :multipart => true, :class => "tabular") do %> - -<% if @versions.any? %> -

    -<%= select_tag "version_id", content_tag('option', '') + - options_from_collection_for_select(@versions, "id", "name") %>

    -<% end %> - -

    <%= render :partial => 'attachments/form' %>

    -
    -<%= submit_tag l(:button_add) %> -<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/destroy.rhtml --- a/app/views/projects/destroy.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/destroy.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -8,7 +8,7 @@ <% end %>

    - <% form_tag({:controller => 'projects', :action => 'destroy', :id => @project_to_destroy}) do %> + <% form_tag(project_path(@project_to_destroy), :method => :delete) do %> <%= submit_tag l(:button_delete) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/index.rhtml --- a/app/views/projects/index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -3,10 +3,10 @@ <% end %>

    - <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') + ' |' if User.current.allowed_to?(:add_project, nil, :global => true) %> + <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add') + ' |' if User.current.allowed_to?(:add_project, nil, :global => true) %> <%= link_to(l(:label_issue_view_all), { :controller => 'issues' }) + ' |' if User.current.allowed_to?(:view_issues, nil, :global => true) %> <%= link_to(l(:label_overall_spent_time), { :controller => 'time_entries' }) + ' |' if User.current.allowed_to?(:view_time_entries, nil, :global => true) %> - <%= link_to l(:label_overall_activity), { :controller => 'projects', :action => 'activity' }%> + <%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }%>

    <%=l(:label_project_plural)%>

    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/list_files.rhtml --- a/app/views/projects/list_files.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -
    -<%= link_to_if_authorized l(:label_attachment_new), {:controller => 'projects', :action => 'add_file', :id => @project}, :class => 'icon icon-add' %> -
    - -

    <%=l(:label_attachment_plural)%>

    - -<% delete_allowed = User.current.allowed_to?(:manage_files, @project) %> - - - - <%= sort_header_tag('filename', :caption => l(:field_filename)) %> - <%= sort_header_tag('created_on', :caption => l(:label_date), :default_order => 'desc') %> - <%= sort_header_tag('size', :caption => l(:field_filesize), :default_order => 'desc') %> - <%= sort_header_tag('downloads', :caption => l(:label_downloads_abbr), :default_order => 'desc') %> - - - - -<% @containers.each do |container| %> - <% next if container.attachments.empty? -%> - <% if container.is_a?(Version) -%> - - - - <% end -%> - <% container.attachments.each do |file| %> - "> - - - - - - - - <% end - reset_cycle %> -<% end %> - -
    MD5
    - <%= link_to(h(container), {:controller => 'versions', :action => 'show', :id => container}, :class => "icon icon-package") %> -
    <%= link_to_attachment file, :download => true, :title => file.description %><%= format_time(file.created_on) %><%= number_to_human_size(file.filesize) %><%= file.downloads %><%= file.digest %> - <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file}, - :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %> -
    - -<% html_title(l(:label_attachment_plural)) -%> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/new.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/projects/new.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,17 @@ +

    <%=l(:label_project_new)%>

    + +<% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %> +<%= render :partial => 'form', :locals => { :f => f } %> + +
    <%= l(:label_module_plural) %> +<% Redmine::AccessControl.available_project_modules.each do |m| %> + +<% end %> +
    + +<%= submit_tag l(:button_save) %> +<%= javascript_tag "Form.Element.focus('project_name');" %> +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/roadmap.rhtml --- a/app/views/projects/roadmap.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -

    <%=l(:label_roadmap)%>

    - -<% if @versions.empty? %> -

    <%= l(:label_no_data) %>

    -<% else %> -
    -<% @versions.each do |version| %> -

    <%= tag 'a', :name => version.name %><%= link_to_version version %>

    - <%= render :partial => 'versions/overview', :locals => {:version => version} %> - <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> - - <% if (issues = @issues_by_version[version]) && issues.size > 0 %> - <% form_tag({}) do -%> - - - <%- issues.each do |issue| -%> - - - - - <%- end -%> - - <% end %> - <% end %> - <%= call_hook :view_projects_roadmap_version_bottom, :version => version %> -<% end %> -
    -<% end %> - -<% content_for :sidebar do %> -<% form_tag({}, :method => :get) do %> -

    <%= l(:label_roadmap) %>

    -<% @trackers.each do |tracker| %> -
    -<% end %> -
    - -<% if @project.descendants.active.any? %> - <%= hidden_field_tag 'with_subprojects', 0 %> -
    -<% end %> -

    <%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

    -<% end %> - -

    <%= l(:label_version_plural) %>

    -<% @versions.each do |version| %> -<%= link_to format_version_name(version), "##{version.name}" %>
    -<% end %> -<% end %> - -<% html_title(l(:label_roadmap)) %> - -<%= context_menu :controller => 'issues', :action => 'context_menu' %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/.svn/all-wcprops --- a/app/views/projects/settings/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 52 -/svn/!svn/ver/3748/trunk/app/views/projects/settings +/svn/!svn/ver/4097/trunk/app/views/projects/settings END _issue_categories.rhtml K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 70 -/svn/!svn/ver/3734/trunk/app/views/projects/settings/_activities.rhtml +/svn/!svn/ver/4075/trunk/app/views/projects/settings/_activities.rhtml END _modules.rhtml K 25 @@ -37,7 +37,7 @@ K 25 svn:wc:ra_dav:version-url V 68 -/svn/!svn/ver/3734/trunk/app/views/projects/settings/_versions.rhtml +/svn/!svn/ver/4097/trunk/app/views/projects/settings/_versions.rhtml END _boards.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/.svn/entries --- a/app/views/projects/settings/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/projects/settings http://redmine.rubyforge.org/svn -2010-05-24T20:21:08.426768Z -3748 +2010-09-17T15:55:08.377083Z +4097 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.647782Z 3f93ad7df3a43b70f004499bacc76cdf 2010-05-09T11:19:15.980195Z 3734 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.651752Z 1fd25ea9af565c8a79ac61c918cbd3fc 2010-01-21T18:21:56.082191Z 3336 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.651752Z 1ee550d6ee54d0c528eee8bb142c496d 2008-02-12T22:43:37.870107Z 1143 @@ -134,11 +134,11 @@ -2010-07-23T14:49:45.440128Z -a8681045d6e179a2b229697f5fbd50dc -2010-05-09T11:19:15.980195Z -3734 -jplang +2010-09-24T12:48:28.400004Z +14f07f16cc36c896e6dc4d975c7ef807 +2010-09-10T16:00:49.687515Z +4075 +edavis10 @@ -160,7 +160,7 @@ -1467 +1421 _modules.rhtml file @@ -168,7 +168,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.651752Z 2a5ae51933e3fabbecd609e3cfbf1d7d 2010-01-21T18:21:56.082191Z 3336 @@ -202,11 +202,11 @@ -2010-07-23T14:49:45.440128Z -9fe08e7dd841c1caaa9438e8e55ed5b7 -2010-05-09T11:19:15.980195Z -3734 -jplang +2010-09-24T12:48:28.400004Z +968f7fd3c259f3f7d4b173c4e6096cb6 +2010-09-17T15:55:08.377083Z +4097 +edavis10 has-props @@ -228,7 +228,7 @@ -2013 +1979 _boards.rhtml file @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.647782Z 1d2eb75d2aa1ff66975f701d6b45c059 2010-05-09T11:19:15.980195Z 3734 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.440128Z +2010-09-23T14:37:44.651752Z 0f929da546db6f63f0ecbf2b3647fa6d 2010-05-24T20:21:08.426768Z 3748 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/.svn/text-base/_activities.rhtml.svn-base --- a/app/views/projects/settings/.svn/text-base/_activities.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/.svn/text-base/_activities.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,4 +1,4 @@ -<% form_tag({:controller => 'projects', :action => 'save_activities', :id => @project}, :class => "tabular") do %> +<% form_tag(project_project_enumerations_path(@project), :method => :put, :class => "tabular") do %> @@ -32,7 +32,7 @@
    -<%= link_to(l(:button_reset), {:controller => 'projects', :action => 'reset_activities', :id => @project}, +<%= link_to(l(:button_reset), project_project_enumerations_path(@project), :method => :delete, :confirm => l(:text_are_you_sure), :class => 'icon icon-del') %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/.svn/text-base/_versions.rhtml.svn-base --- a/app/views/projects/settings/.svn/text-base/_versions.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/.svn/text-base/_versions.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -21,7 +21,7 @@

    <% if version.project == @project %> <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => version }, :class => 'icon icon-edit' %> - <%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy', :id => version}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> + <%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy', :id => version}, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %> <% end %>
    @@ -32,7 +32,7 @@
    -<%= link_to(l(:button_reset), {:controller => 'projects', :action => 'reset_activities', :id => @project}, +<%= link_to(l(:button_reset), project_project_enumerations_path(@project), :method => :delete, :confirm => l(:text_are_you_sure), :class => 'icon icon-del') %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/projects/settings/_versions.rhtml --- a/app/views/projects/settings/_versions.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/projects/settings/_versions.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -21,7 +21,7 @@
    <% if version.project == @project %> <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => version }, :class => 'icon icon-edit' %> - <%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy', :id => version}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> + <%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy', :id => version}, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %> <% end %>
    + + <%- issues.each do |issue| -%> + + + + + <%- end -%> + + <% end %> + <% end %> + <%= call_hook :view_projects_roadmap_version_bottom, :version => version %> +<% end %> +
    +<% end %> + +<% content_for :sidebar do %> +<% form_tag({}, :method => :get) do %> +

    <%= l(:label_roadmap) %>

    +<% @trackers.each do |tracker| %> +
    +<% end %> +
    + +<% if @project.descendants.active.any? %> + <%= hidden_field_tag 'with_subprojects', 0 %> +
    +<% end %> +

    <%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

    +<% end %> + +

    <%= l(:label_version_plural) %>

    +<% @versions.each do |version| %> +<%= link_to format_version_name(version), "##{version.name}" %>
    +<% end %> +<% end %> + +<% html_title(l(:label_roadmap)) %> + +<%= context_menu issues_context_menu_path %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/text-base/new.html.erb.svn-base --- a/app/views/versions/.svn/text-base/new.html.erb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/text-base/new.html.erb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@

    <%=l(:label_version_new)%>

    -<% labelled_tabular_form_for :version, @version, :url => { :action => 'new' } do |f| %> +<% labelled_tabular_form_for :version, @version, :url => project_versions_path(@project) do |f| %> <%= render :partial => 'versions/form', :locals => { :f => f } %> <%= submit_tag l(:button_create) %> -<% end %> \ No newline at end of file +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/.svn/text-base/show.rhtml.svn-base --- a/app/views/versions/.svn/text-base/show.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/.svn/text-base/show.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,6 @@
    <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => @version}, :class => 'icon icon-edit' %> +<%= link_to_if_authorized(l(:button_edit_associated_wikipage, :page_title => @version.wiki_page_title), {:controller => 'wiki', :action => 'edit', :page => Wiki.titleize(@version.wiki_page_title)}, :class => 'icon icon-edit') unless @version.wiki_page_title.blank? || @project.wiki.nil? %> <%= call_hook(:view_versions_show_contextual, { :version => @version, :project => @project }) %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/_issue_counts.rhtml --- a/app/views/versions/_issue_counts.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/_issue_counts.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -5,7 +5,7 @@ select_tag('status_by', status_by_options_for_select(criteria), :id => 'status_by_select', - :onchange => remote_function(:url => { :action => :status_by, :id => version }, + :onchange => remote_function(:url => status_by_project_version_path(version.project, version), :with => "Form.serialize('status_by_form')"))) %> <% if counts.empty? %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/edit.rhtml --- a/app/views/versions/edit.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/edit.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@

    <%=l(:label_version)%>

    -<% labelled_tabular_form_for :version, @version, :url => { :action => 'edit' } do |f| %> +<% labelled_tabular_form_for :version, @version, :url => project_version_path(@project, @version), :html => {:method => :put} do |f| %> <%= render :partial => 'form', :locals => { :f => f } %> <%= submit_tag l(:button_save) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/index.html.erb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/versions/index.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,54 @@ +

    <%=l(:label_roadmap)%>

    + +<% if @versions.empty? %> +

    <%= l(:label_no_data) %>

    +<% else %> +
    +<% @versions.each do |version| %> +

    <%= tag 'a', :name => version.name %><%= link_to_version version %>

    + <%= render :partial => 'versions/overview', :locals => {:version => version} %> + <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> + + <% if (issues = @issues_by_version[version]) && issues.size > 0 %> + <% form_tag({}) do -%> + + + <%- issues.each do |issue| -%> + + + + + <%- end -%> + + <% end %> + <% end %> + <%= call_hook :view_projects_roadmap_version_bottom, :version => version %> +<% end %> +
    +<% end %> + +<% content_for :sidebar do %> +<% form_tag({}, :method => :get) do %> +

    <%= l(:label_roadmap) %>

    +<% @trackers.each do |tracker| %> +
    +<% end %> +
    + +<% if @project.descendants.active.any? %> + <%= hidden_field_tag 'with_subprojects', 0 %> +
    +<% end %> +

    <%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>

    +<% end %> + +

    <%= l(:label_version_plural) %>

    +<% @versions.each do |version| %> +<%= link_to format_version_name(version), "##{version.name}" %>
    +<% end %> +<% end %> + +<% html_title(l(:label_roadmap)) %> + +<%= context_menu issues_context_menu_path %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/new.html.erb --- a/app/views/versions/new.html.erb Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/new.html.erb Fri Sep 24 14:06:04 2010 +0100 @@ -1,6 +1,6 @@

    <%=l(:label_version_new)%>

    -<% labelled_tabular_form_for :version, @version, :url => { :action => 'new' } do |f| %> +<% labelled_tabular_form_for :version, @version, :url => project_versions_path(@project) do |f| %> <%= render :partial => 'versions/form', :locals => { :f => f } %> <%= submit_tag l(:button_create) %> -<% end %> \ No newline at end of file +<% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/versions/show.rhtml --- a/app/views/versions/show.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/versions/show.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,6 @@
    <%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => @version}, :class => 'icon icon-edit' %> +<%= link_to_if_authorized(l(:button_edit_associated_wikipage, :page_title => @version.wiki_page_title), {:controller => 'wiki', :action => 'edit', :page => Wiki.titleize(@version.wiki_page_title)}, :class => 'icon icon-edit') unless @version.wiki_page_title.blank? || @project.wiki.nil? %> <%= call_hook(:view_versions_show_contextual, { :version => @version, :project => @project }) %>
    diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/watchers/.svn/entries --- a/app/views/watchers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/watchers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/watchers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.760099Z +2010-09-23T14:37:44.707788Z 7ece4fb161c765ac7e63c30883733d99 2010-03-13T17:45:41.194736Z 3579 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/welcome/.svn/all-wcprops --- a/app/views/welcome/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/welcome/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 42 -/svn/!svn/ver/3924/trunk/app/views/welcome +/svn/!svn/ver/4047/trunk/app/views/welcome END index.rhtml K 25 svn:wc:ra_dav:version-url V 54 -/svn/!svn/ver/3924/trunk/app/views/welcome/index.rhtml +/svn/!svn/ver/4047/trunk/app/views/welcome/index.rhtml END robots.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/welcome/.svn/entries --- a/app/views/welcome/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/welcome/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/welcome http://redmine.rubyforge.org/svn -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-08-27T14:05:54.014502Z +4047 +edavis10 @@ -32,11 +32,11 @@ -2010-08-25T15:27:54.546517Z -925016e02489262b9d888c920e1ee78e -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-24T12:48:26.303754Z +df32441c6802182ffb9a205c97ec8f3b +2010-08-27T14:05:54.014502Z +4047 +edavis10 has-props @@ -58,7 +58,7 @@ -1420 +1419 robots.rhtml file @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.904118Z +2010-09-23T14:37:44.711779Z dbe04ed0b787a5470a99a1f286c0685e 2009-01-27T17:27:50.299725Z 2319 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/welcome/.svn/text-base/index.rhtml.svn-base --- a/app/views/welcome/.svn/text-base/index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/welcome/.svn/text-base/index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -34,6 +34,6 @@ <% content_for :header_tags do %> <%= auto_discovery_link_tag(:atom, {:controller => 'news', :action => 'index', :key => User.current.rss_key, :format => 'atom'}, :title => "#{Setting.app_title}: #{l(:label_news_latest)}") %> -<%= auto_discovery_link_tag(:atom, {:controller => 'projects', :action => 'activity', :key => User.current.rss_key, :format => 'atom'}, +<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :key => User.current.rss_key, :format => 'atom'}, :title => "#{Setting.app_title}: #{l(:label_activity)}") %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/welcome/index.rhtml --- a/app/views/welcome/index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/welcome/index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -34,6 +34,6 @@ <% content_for :header_tags do %> <%= auto_discovery_link_tag(:atom, {:controller => 'news', :action => 'index', :key => User.current.rss_key, :format => 'atom'}, :title => "#{Setting.app_title}: #{l(:label_news_latest)}") %> -<%= auto_discovery_link_tag(:atom, {:controller => 'projects', :action => 'activity', :key => User.current.rss_key, :format => 'atom'}, +<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :key => User.current.rss_key, :format => 'atom'}, :title => "#{Setting.app_title}: #{l(:label_activity)}") %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/.svn/all-wcprops --- a/app/views/wiki/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 39 -/svn/!svn/ver/3632/trunk/app/views/wiki +/svn/!svn/ver/4092/trunk/app/views/wiki END export_multiple.rhtml K 25 @@ -31,13 +31,13 @@ K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/3371/trunk/app/views/wiki/special_page_index.rhtml +/svn/!svn/ver/4092/trunk/app/views/wiki/special_page_index.rhtml END special_date_index.rhtml K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/3371/trunk/app/views/wiki/special_date_index.rhtml +/svn/!svn/ver/4047/trunk/app/views/wiki/special_date_index.rhtml END edit.rhtml K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/.svn/entries --- a/app/views/wiki/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/wiki http://redmine.rubyforge.org/svn -2010-04-11T12:56:18.077630Z -3632 -jplang +2010-09-16T21:26:30.564728Z +4092 +jbbarth @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.480130Z +2010-09-23T14:37:44.719778Z 071f00658656d063a029ff9efcfda553 2009-11-11T11:10:03.406528Z 3026 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.480130Z +2010-09-23T14:37:44.719778Z cd34ce34ba4d75de58ad8c2643dd1858 2010-02-06T09:30:53.659842Z 3371 @@ -100,7 +100,7 @@ -2010-07-23T14:49:45.480130Z +2010-09-23T14:37:44.719778Z 2ec7fba790578844437bd62bf95a9856 2009-11-11T11:10:03.406528Z 3026 @@ -134,7 +134,7 @@ -2010-07-23T14:49:45.480130Z +2010-09-23T14:37:44.719778Z 00384fcdff6734983e2d36ed71f666bf 2010-03-10T19:16:03.577089Z 3559 @@ -168,11 +168,11 @@ -2010-07-23T14:49:45.480130Z -cd707f047bf26d13f80ab05e109bbf69 -2010-02-06T09:30:53.659842Z -3371 -jplang +2010-09-24T12:48:29.015971Z +7c00c56b3b3fb34c4ebdc4d7f20c5e01 +2010-09-16T21:26:30.564728Z +4092 +jbbarth has-props @@ -194,7 +194,7 @@ -918 +916 special_date_index.rhtml file @@ -202,11 +202,11 @@ -2010-07-23T14:49:45.480130Z -eb19be8436f4e5603a80df6668038083 -2010-02-06T09:30:53.659842Z -3371 -jplang +2010-09-24T12:48:29.015971Z +a2538a8dea3592d9592ce74b95c88184 +2010-08-27T14:05:54.014502Z +4047 +edavis10 has-props @@ -228,7 +228,7 @@ -1115 +1113 edit.rhtml file @@ -236,7 +236,7 @@ -2010-07-23T14:49:45.480130Z +2010-09-23T14:37:44.719778Z f53404549c5ad3730761d4afd025c3bc 2010-02-28T09:43:13.073123Z 3500 @@ -270,7 +270,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z 9231847b74349b93a946c5046daa4bcb 2008-07-26T11:46:24.917066Z 1698 @@ -304,7 +304,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z baf90328359ee59f0123edd67897d66e 2010-04-11T12:56:18.077630Z 3632 @@ -338,7 +338,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z a50fef8895fe6a7bf414f919d7dbec8b 2009-12-06T17:04:33.026531Z 3128 @@ -372,7 +372,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z 8705c97ebf1405603afbbd8614ee9d2b 2007-11-12T14:36:33.182682Z 897 @@ -406,7 +406,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z ea9a5c54a16a716cdc40736caac6d954 2010-03-14T13:22:50.317701Z 3585 @@ -440,7 +440,7 @@ -2010-07-23T14:49:45.484139Z +2010-09-23T14:37:44.719778Z c4faab8bee0cd06ba2460db5f9333a32 2009-04-21T12:19:56.547537Z 2676 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/.svn/text-base/special_date_index.rhtml.svn-base --- a/app/views/wiki/.svn/text-base/special_date_index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/.svn/text-base/special_date_index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -23,11 +23,11 @@ <% unless @pages.empty? %> <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %> <% end %> <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> +<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/.svn/text-base/special_page_index.rhtml.svn-base --- a/app/views/wiki/.svn/text-base/special_page_index.rhtml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/.svn/text-base/special_page_index.rhtml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -16,11 +16,11 @@ <% unless @pages.empty? %> <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %> <% end %> <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> +<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/special_date_index.rhtml --- a/app/views/wiki/special_date_index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/special_date_index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -23,11 +23,11 @@ <% unless @pages.empty? %> <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %> <% end %> <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> +<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wiki/special_page_index.rhtml --- a/app/views/wiki/special_page_index.rhtml Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wiki/special_page_index.rhtml Fri Sep 24 14:06:04 2010 +0100 @@ -16,11 +16,11 @@ <% unless @pages.empty? %> <% other_formats_links do |f| %> - <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> + <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %> <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %> <% end %> <% end %> <% content_for :header_tags do %> -<%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> +<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %> <% end %> diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/wikis/.svn/entries --- a/app/views/wikis/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/wikis/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/wikis http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.268157Z +2010-09-23T14:37:44.723734Z 6edeee3130b12027d4d8dbfeca809abb 2007-09-14T11:34:08.234701Z 725 diff -r 1d32c0a0efbf -r 40f7cfd4df19 app/views/workflows/.svn/entries --- a/app/views/workflows/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/app/views/workflows/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/app/views/workflows http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.912126Z +2010-09-23T14:37:44.727733Z d7c2b6481788394f541fe6af5dadd598 2009-12-12T10:06:07.860865Z 3154 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.912126Z +2010-09-23T14:37:44.727733Z 2457a85600aa051fcf9edf06010e6fcc 2009-12-12T10:06:07.860865Z 3154 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.912126Z +2010-09-23T14:37:44.727733Z ee551cfe66cd8df0fbd5bc7bac081200 2010-04-27T17:54:27.767853Z 3694 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.912126Z +2010-09-23T14:37:44.727733Z 6c10e101a2f8ac7a61b6355d3ec7e959 2009-12-12T10:06:07.860865Z 3154 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/.svn/all-wcprops --- a/config/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/config/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 31 -/svn/!svn/ver/4039/trunk/config +/svn/!svn/ver/4173/trunk/config END settings.yml K 25 @@ -19,7 +19,7 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/4037/trunk/config/routes.rb +/svn/!svn/ver/4172/trunk/config/routes.rb END boot.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/.svn/entries --- a/config/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/config/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/config http://redmine.rubyforge.org/svn -2010-08-24T16:15:14.958943Z -4039 +2010-09-23T16:23:39.070168Z +4173 winterheart has-props @@ -32,7 +32,7 @@ -2010-08-25T15:27:57.822497Z +2010-09-23T14:37:44.815730Z a95b266d8b929a282cfb7bcc8441227b 2010-08-22T18:42:00.112555Z 4013 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.340126Z +2010-09-23T14:37:44.731779Z a1c44811380e661aff4e67b6b366f2db 2010-02-18T05:20:52.515080Z 3448 @@ -103,10 +103,10 @@ -2010-08-25T15:27:57.822497Z -fa4caa1d35eca98d10e2937f11ec677b -2010-08-24T15:27:12.793586Z -4037 +2010-09-24T12:48:29.787906Z +ec1a5ef5a75a55fb2b1edbbfca6725d4 +2010-09-23T15:20:19.085385Z +4172 edavis10 has-props @@ -129,7 +129,7 @@ -17937 +16319 boot.rb file @@ -137,7 +137,7 @@ -2010-07-23T14:49:47.340126Z +2010-09-23T14:37:44.731779Z cfce6ac16974777a93c14be034b2fdec 2009-09-13T17:14:35.707881Z 2887 @@ -174,7 +174,7 @@ -2010-07-23T14:49:47.340126Z +2010-09-23T14:37:44.731779Z 197d8958c94ce40f08a4b8f1d2c49f6e 2010-02-06T10:40:21.867545Z 3372 @@ -211,7 +211,7 @@ -2010-07-23T14:49:47.340126Z +2010-09-23T14:37:44.731779Z 6b63489cdd262e653712af1aa96cd390 2009-11-08T02:16:42.659918Z 3018 @@ -245,7 +245,7 @@ -2010-07-23T14:49:47.340126Z +2010-09-23T14:37:44.731779Z b315245d4b4a47a512931d087b03435f 2010-03-12T13:48:14.426661Z 3564 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/.svn/text-base/routes.rb.svn-base --- a/config/.svn/text-base/routes.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/.svn/text-base/routes.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -104,58 +104,39 @@ end map.resources :issue_moves, :only => [:new, :create], :path_prefix => '/issues', :as => 'move' + + # Misc issue routes. TODO: move into resources map.auto_complete_issues '/issues/auto_complete', :controller => 'auto_completes', :action => 'issues' - # TODO: would look nicer as /issues/:id/preview - map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' + map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' # TODO: would look nicer as /issues/:id/preview map.issues_context_menu '/issues/context_menu', :controller => 'context_menus', :action => 'issues' map.issue_changes '/issues/changes', :controller => 'journals', :action => 'index' + map.bulk_edit_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_edit', :conditions => { :method => :get } + map.bulk_update_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_update', :conditions => { :method => :post } + map.quoted_issue '/issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/, :conditions => { :method => :post } + map.connect '/issues/:id/destroy', :controller => 'issues', :action => 'destroy', :conditions => { :method => :post } # legacy + + map.resource :gantt, :path_prefix => '/issues', :controller => 'gantts', :only => [:show, :update] + map.resource :gantt, :path_prefix => '/projects/:project_id/issues', :controller => 'gantts', :only => [:show, :update] + map.resource :calendar, :path_prefix => '/issues', :controller => 'calendars', :only => [:show, :update] + map.resource :calendar, :path_prefix => '/projects/:project_id/issues', :controller => 'calendars', :only => [:show, :update] + + map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| + reports.connect 'projects/:id/issues/report', :action => 'issue_report' + reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' + end + + # Following two routes conflict with the resources because #index allows POST + map.connect '/issues', :controller => 'issues', :action => 'index', :conditions => { :method => :post } + map.connect '/issues/create', :controller => 'issues', :action => 'index', :conditions => { :method => :post } - map.with_options :controller => 'issues' do |issues_routes| - issues_routes.with_options :conditions => {:method => :get} do |issues_views| - issues_views.connect 'issues', :action => 'index' - issues_views.connect 'issues.:format', :action => 'index' - issues_views.connect 'projects/:project_id/issues', :action => 'index' - issues_views.connect 'projects/:project_id/issues.:format', :action => 'index' - issues_views.connect 'projects/:project_id/issues/new', :action => 'new' - issues_views.connect 'projects/:project_id/issues/gantt', :controller => 'gantts', :action => 'show' - issues_views.connect 'projects/:project_id/issues/calendar', :controller => 'calendars', :action => 'show' - issues_views.connect 'projects/:project_id/issues/:copy_from/copy', :action => 'new' - issues_views.connect 'issues/:id', :action => 'show', :id => /\d+/ - issues_views.connect 'issues/:id.:format', :action => 'show', :id => /\d+/ - issues_views.connect 'issues/:id/edit', :action => 'edit', :id => /\d+/ - end - issues_routes.with_options :conditions => {:method => :post} do |issues_actions| - issues_actions.connect 'issues', :action => 'index' - issues_actions.connect 'projects/:project_id/issues', :action => 'create' - issues_actions.connect 'projects/:project_id/issues/gantt', :controller => 'gantts', :action => 'show' - issues_actions.connect 'projects/:project_id/issues/calendar', :controller => 'calendars', :action => 'show' - issues_actions.connect 'issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/ - issues_actions.connect 'issues/:id/:action', :action => /edit|destroy/, :id => /\d+/ - issues_actions.connect 'issues.:format', :action => 'create', :format => /xml/ - issues_actions.connect 'issues/bulk_edit', :action => 'bulk_update' - end - issues_routes.with_options :conditions => {:method => :put} do |issues_actions| - issues_actions.connect 'issues/:id/edit', :action => 'update', :id => /\d+/ - issues_actions.connect 'issues/:id.:format', :action => 'update', :id => /\d+/, :format => /xml/ - end - issues_routes.with_options :conditions => {:method => :delete} do |issues_actions| - issues_actions.connect 'issues/:id.:format', :action => 'destroy', :id => /\d+/, :format => /xml/ - end - issues_routes.connect 'issues/gantt', :controller => 'gantts', :action => 'show' - issues_routes.connect 'issues/calendar', :controller => 'calendars', :action => 'show' - issues_routes.connect 'issues/:action' - end + map.resources :issues, :member => { :edit => :post }, :collection => {} + map.resources :issues, :path_prefix => '/projects/:project_id', :collection => { :create => :post } map.with_options :controller => 'issue_relations', :conditions => {:method => :post} do |relations| relations.connect 'issues/:issue_id/relations/:id', :action => 'new' relations.connect 'issues/:issue_id/relations/:id/destroy', :action => 'destroy' end - map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| - reports.connect 'projects/:id/issues/report', :action => 'issue_report' - reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' - end - map.with_options :controller => 'news' do |news_routes| news_routes.with_options :conditions => {:method => :get} do |news_views| news_views.connect 'news', :action => 'index' @@ -167,10 +148,13 @@ news_views.connect 'news/:id/edit', :action => 'edit' end news_routes.with_options do |news_actions| - news_actions.connect 'projects/:project_id/news', :action => 'new' - news_actions.connect 'news/:id/edit', :action => 'edit' + news_actions.connect 'projects/:project_id/news', :action => 'create', :conditions => {:method => :post} news_actions.connect 'news/:id/destroy', :action => 'destroy' end + news_routes.connect 'news/:id/edit', :action => 'update', :conditions => {:method => :put} + + news_routes.connect 'news/:id/comments', :controller => 'comments', :action => 'create', :conditions => {:method => :post} + news_routes.connect 'news/:id/comments/:comment_id', :controller => 'comments', :action => 'destroy', :conditions => {:method => :delete} end map.connect 'projects/:id/members/new', :controller => 'members', :action => 'new' @@ -191,53 +175,41 @@ user_actions.connect 'users/:id/memberships/:membership_id/destroy', :action => 'destroy_membership' end end - - map.with_options :controller => 'projects' do |projects| - projects.with_options :conditions => {:method => :get} do |project_views| - project_views.connect 'projects', :action => 'index' - project_views.connect 'projects.:format', :action => 'index' - project_views.connect 'projects/new', :action => 'add' - project_views.connect 'projects/:id', :action => 'show' - project_views.connect 'projects/:id.:format', :action => 'show' - project_views.connect 'projects/:id/:action', :action => /roadmap|destroy|settings/ - project_views.connect 'projects/:id/files', :action => 'list_files' - project_views.connect 'projects/:id/files/new', :action => 'add_file' - project_views.connect 'projects/:id/settings/:tab', :action => 'settings' - end - projects.with_options :action => 'activity', :conditions => {:method => :get} do |activity| - activity.connect 'projects/:id/activity' - activity.connect 'projects/:id/activity.:format' - activity.connect 'activity', :id => nil - activity.connect 'activity.:format', :id => nil - end - - projects.with_options :conditions => {:method => :post} do |project_actions| - project_actions.connect 'projects/new', :action => 'add' - project_actions.connect 'projects', :action => 'add' - project_actions.connect 'projects.:format', :action => 'add', :format => /xml/ - project_actions.connect 'projects/:id/:action', :action => /edit|destroy|archive|unarchive/ - project_actions.connect 'projects/:id/files/new', :action => 'add_file' - project_actions.connect 'projects/:id/activities/save', :action => 'save_activities' - end + # For nice "roadmap" in the url for the index action + map.connect 'projects/:project_id/roadmap', :controller => 'versions', :action => 'index' - projects.with_options :conditions => {:method => :put} do |project_actions| - project_actions.conditions 'projects/:id.:format', :action => 'edit', :format => /xml/ - end + map.resources :projects, :member => { + :copy => [:get, :post], + :settings => :get, + :modules => :post, + :archive => :post, + :unarchive => :post + } do |project| + project.resource :project_enumerations, :as => 'enumerations', :only => [:update, :destroy] + project.resources :files, :only => [:index, :new, :create] + project.resources :versions, :collection => {:close_completed => :put}, :member => {:status_by => :post} + end - projects.with_options :conditions => {:method => :delete} do |project_actions| - project_actions.conditions 'projects/:id.:format', :action => 'destroy', :format => /xml/ - project_actions.conditions 'projects/:id/reset_activities', :action => 'reset_activities' + # Destroy uses a get request to prompt the user before the actual DELETE request + map.project_destroy_confirm 'projects/:id/destroy', :controller => 'projects', :action => 'destroy', :conditions => {:method => :get} + + # TODO: port to be part of the resources route(s) + map.with_options :controller => 'projects' do |project_mapper| + project_mapper.with_options :conditions => {:method => :get} do |project_views| + project_views.connect 'projects/:id/settings/:tab', :controller => 'projects', :action => 'settings' + project_views.connect 'projects/:project_id/issues/:copy_from/copy', :controller => 'issues', :action => 'new' end end - map.with_options :controller => 'versions' do |versions| - versions.connect 'projects/:project_id/versions/new', :action => 'new' - versions.with_options :conditions => {:method => :post} do |version_actions| - version_actions.connect 'projects/:project_id/versions/close_completed', :action => 'close_completed' - end + map.with_options :controller => 'activities', :action => 'index', :conditions => {:method => :get} do |activity| + activity.connect 'projects/:id/activity' + activity.connect 'projects/:id/activity.:format' + activity.connect 'activity', :id => nil + activity.connect 'activity.:format', :id => nil end - + + map.with_options :controller => 'issue_categories' do |categories| categories.connect 'projects/:project_id/issue_categories/new', :action => 'new' end diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/environments/.svn/all-wcprops --- a/config/environments/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/config/environments/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/3782/trunk/config/environments +/svn/!svn/ver/4096/trunk/config/environments END test.rb K 25 @@ -36,6 +36,6 @@ production.rb K 25 svn:wc:ra_dav:version-url -V 57 -/svn/!svn/ver/772/trunk/config/environments/production.rb +V 58 +/svn/!svn/ver/4096/trunk/config/environments/production.rb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/environments/.svn/entries --- a/config/environments/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/config/environments/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/config/environments http://redmine.rubyforge.org/svn -2010-06-19T19:01:53.900446Z -3782 +2010-09-17T04:31:17.141340Z +4096 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.336098Z +2010-09-23T14:37:44.735734Z 1fa42b22c11a8e93841c995532c617ae 2010-06-19T19:01:53.900446Z 3782 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.336098Z +2010-09-23T14:37:44.735734Z 02eadf22aa59353271c702e4865138b1 2007-12-10T17:58:07.273873Z 975 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.336098Z +2010-09-23T14:37:44.739734Z 213279c73e8c922d0a9d43f3c1cc6943 2010-02-08T18:53:07.634937Z 3397 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.336098Z +2010-09-23T14:37:44.735734Z d08152d4dda4608f254785b23840140a 2007-09-27T22:30:57.196220Z 772 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.336098Z +2010-09-23T14:37:44.739734Z 213279c73e8c922d0a9d43f3c1cc6943 2010-02-08T18:53:07.634937Z 3397 @@ -202,11 +202,11 @@ -2010-07-23T14:49:47.336098Z -0a06c83acabf6a31a6d1f3f29ced0cde -2007-09-27T22:30:57.196220Z -772 -jplang +2010-09-24T12:48:29.771795Z +5446300cf963a718609cb6d37eca8bc4 +2010-09-17T04:31:17.141340Z +4096 +edavis10 has-props @@ -228,5 +228,5 @@ -846 +1064 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/environments/.svn/text-base/production.rb.svn-base --- a/config/environments/.svn/text-base/production.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/environments/.svn/text-base/production.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -4,9 +4,14 @@ # Code is not reloaded between requests config.cache_classes = true +##### +# Customize the default logger (http://ruby-doc.org/core/classes/Logger.html) +# # Use a different logger for distributed setups # config.logger = SyslogLogger.new - +# +# Rotate logs bigger than 1MB, keeps no more than 7 rotated logs around. +# config.logger = Logger.new(config.log_path, 7, 1048576) # Full error reports are disabled and caching is turned on config.action_controller.consider_all_requests_local = false diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/environments/production.rb --- a/config/environments/production.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/config/environments/production.rb Fri Sep 24 14:06:04 2010 +0100 @@ -4,9 +4,14 @@ # Code is not reloaded between requests config.cache_classes = true +##### +# Customize the default logger (http://ruby-doc.org/core/classes/Logger.html) +# # Use a different logger for distributed setups # config.logger = SyslogLogger.new - +# +# Rotate logs bigger than 1MB, keeps no more than 7 rotated logs around. +# config.logger = Logger.new(config.log_path, 7, 1048576) # Full error reports are disabled and caching is turned on config.action_controller.consider_all_requests_local = false diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/initializers/.svn/entries --- a/config/initializers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/config/initializers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/config/initializers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.328155Z +2010-09-23T14:37:44.743734Z acc71445fc1c65ebe6fdeba695fea714 2009-09-20T14:06:57.257282Z 2895 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.328155Z +2010-09-23T14:37:44.743734Z ceff5e8f4ea4a2540c9303dcdf936aed 2009-02-21T11:04:50.579477Z 2493 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.328155Z +2010-09-23T14:37:44.743734Z 56e489ddcf34c62aa4f7f690b747f521 2009-12-23T20:55:42.873227Z 3235 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.328155Z +2010-09-23T14:37:44.743734Z ca8db2f40b067cb8615263fa5a238517 2009-09-20T14:06:57.257282Z 2895 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.332096Z +2010-09-23T14:37:44.743734Z 386c37f359a87852920a3c3f3e4bbc84 2008-07-04T18:55:45.736676Z 1625 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.332096Z +2010-09-23T14:37:44.743734Z 0005ed7b233f71646e0f75b9994cf219 2008-09-10T18:26:13.133776Z 1797 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.332096Z +2010-09-23T14:37:44.743734Z a7948d8e86bcd799c74945fe91b4a8b1 2009-09-20T14:06:57.257282Z 2895 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/all-wcprops --- a/config/locales/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,257 +1,263 @@ K 25 svn:wc:ra_dav:version-url V 39 -/svn/!svn/ver/4039/trunk/config/locales +/svn/!svn/ver/4173/trunk/config/locales END lt.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/lt.yml +/svn/!svn/ver/4169/trunk/config/locales/lt.yml END sr-YU.yml K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/4036/trunk/config/locales/sr-YU.yml +/svn/!svn/ver/4169/trunk/config/locales/sr-YU.yml END ro.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/ro.yml +/svn/!svn/ver/4169/trunk/config/locales/ro.yml END lv.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/lv.yml +/svn/!svn/ver/4169/trunk/config/locales/lv.yml END zh.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/zh.yml +/svn/!svn/ver/4169/trunk/config/locales/zh.yml END pt.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/pt.yml +/svn/!svn/ver/4169/trunk/config/locales/pt.yml END ca.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/ca.yml +/svn/!svn/ver/4169/trunk/config/locales/ca.yml END pt-BR.yml K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/4036/trunk/config/locales/pt-BR.yml +/svn/!svn/ver/4169/trunk/config/locales/pt-BR.yml END tr.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/tr.yml +/svn/!svn/ver/4169/trunk/config/locales/tr.yml END ru.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/ru.yml +/svn/!svn/ver/4171/trunk/config/locales/ru.yml END en-GB.yml K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/4036/trunk/config/locales/en-GB.yml +/svn/!svn/ver/4169/trunk/config/locales/en-GB.yml END id.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/id.yml +/svn/!svn/ver/4169/trunk/config/locales/id.yml END el.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/el.yml +/svn/!svn/ver/4169/trunk/config/locales/el.yml END en.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/en.yml +/svn/!svn/ver/4169/trunk/config/locales/en.yml END gl.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/gl.yml +/svn/!svn/ver/4169/trunk/config/locales/gl.yml END cs.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/cs.yml +/svn/!svn/ver/4173/trunk/config/locales/cs.yml END es.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/es.yml +/svn/!svn/ver/4169/trunk/config/locales/es.yml +END +mk.yml +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4169/trunk/config/locales/mk.yml +END +zh-TW.yml +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/!svn/ver/4173/trunk/config/locales/zh-TW.yml +END +eu.yml +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4169/trunk/config/locales/eu.yml END ko.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/ko.yml -END -eu.yml -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/4036/trunk/config/locales/eu.yml -END -zh-TW.yml -K 25 -svn:wc:ra_dav:version-url -V 49 -/svn/!svn/ver/4039/trunk/config/locales/zh-TW.yml +/svn/!svn/ver/4169/trunk/config/locales/ko.yml END mn.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/mn.yml +/svn/!svn/ver/4169/trunk/config/locales/mn.yml END it.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/it.yml +/svn/!svn/ver/4169/trunk/config/locales/it.yml END sk.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/sk.yml +/svn/!svn/ver/4169/trunk/config/locales/sk.yml END sl.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/sl.yml +/svn/!svn/ver/4169/trunk/config/locales/sl.yml END uk.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/uk.yml +/svn/!svn/ver/4169/trunk/config/locales/uk.yml +END +sr.yml +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4169/trunk/config/locales/sr.yml END da.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/da.yml +/svn/!svn/ver/4169/trunk/config/locales/da.yml END -sr.yml +sv.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/sr.yml +/svn/!svn/ver/4169/trunk/config/locales/sv.yml +END +de.yml +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4169/trunk/config/locales/de.yml END bg.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/bg.yml -END -de.yml -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/4038/trunk/config/locales/de.yml -END -sv.yml -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/4036/trunk/config/locales/sv.yml +/svn/!svn/ver/4169/trunk/config/locales/bg.yml END ja.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4038/trunk/config/locales/ja.yml +/svn/!svn/ver/4173/trunk/config/locales/ja.yml END he.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/he.yml +/svn/!svn/ver/4169/trunk/config/locales/he.yml END fi.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/fi.yml +/svn/!svn/ver/4169/trunk/config/locales/fi.yml END bs.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/bs.yml +/svn/!svn/ver/4169/trunk/config/locales/bs.yml END fr.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/fr.yml +/svn/!svn/ver/4169/trunk/config/locales/fr.yml END nl.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/nl.yml +/svn/!svn/ver/4169/trunk/config/locales/nl.yml END hr.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/hr.yml +/svn/!svn/ver/4169/trunk/config/locales/hr.yml END pl.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/pl.yml +/svn/!svn/ver/4169/trunk/config/locales/pl.yml END th.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/th.yml +/svn/!svn/ver/4169/trunk/config/locales/th.yml END no.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/no.yml +/svn/!svn/ver/4169/trunk/config/locales/no.yml END hu.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/hu.yml +/svn/!svn/ver/4169/trunk/config/locales/hu.yml END vi.yml K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/4036/trunk/config/locales/vi.yml +/svn/!svn/ver/4169/trunk/config/locales/vi.yml END diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/entries --- a/config/locales/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/config/locales http://redmine.rubyforge.org/svn -2010-08-24T16:15:14.958943Z -4039 +2010-09-23T16:23:39.070168Z +4173 winterheart @@ -32,10 +32,10 @@ -2010-08-25T15:27:57.770486Z -164dd69a1b5202ab357494645d6a21c2 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.703937Z +8d312a53522467462ce1e04d6dc8559c +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -58,7 +58,7 @@ -42620 +42971 sr-YU.yml file @@ -66,10 +66,10 @@ -2010-08-25T15:27:57.770486Z -8f3f6dfb6a1ee223f30b5f4ea44dbaff -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.703937Z +dc55d1b76bd2609ff50f0eeba066f0f2 +2010-09-22T16:06:29.391472Z +4169 winterheart @@ -92,7 +92,7 @@ -39815 +40089 ro.yml file @@ -100,10 +100,10 @@ -2010-08-25T15:27:57.774480Z -36163682b04d507b589498203e98c51c -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.703937Z +a53816dd2bef5bdb8cd5673d75ff476d +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -126,7 +126,7 @@ -38790 +39144 lv.yml file @@ -134,10 +134,10 @@ -2010-08-25T15:27:57.774480Z -4151aa5d23830cff3448b432affa317d -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.707889Z +04c7d28b6c34d34e280f5bccb09cc990 +2010-09-22T16:06:29.391472Z +4169 winterheart @@ -160,7 +160,7 @@ -39757 +40111 zh.yml file @@ -168,10 +168,10 @@ -2010-08-25T15:27:57.774480Z -ee3187fd5cce79de8bf33bf722456f8e -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.707889Z +c2dcc09a003836b556dd2e332b988131 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -194,7 +194,7 @@ -36858 +37212 pt.yml file @@ -202,10 +202,10 @@ -2010-08-25T15:27:57.774480Z -4af2d111a93184a59f36694f3ac37290 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.707889Z +2d38e6a7c8c1989d3c31b1d6865ec265 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -228,7 +228,7 @@ -39400 +39754 ca.yml file @@ -236,10 +236,10 @@ -2010-08-25T15:27:57.774480Z -4c34bac30ad92443ef107d140bde3b5b -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.707889Z +b0b5be4539b723cbf97185851d355552 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -262,7 +262,7 @@ -39710 +40954 pt-BR.yml file @@ -270,10 +270,10 @@ -2010-08-25T15:27:57.778486Z -37d6588191e37a50ccec8161a0b7f567 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.711820Z +ca8305cd99de4bed0ba08a8edaa3ef83 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -296,7 +296,7 @@ -40137 +40501 tr.yml file @@ -304,10 +304,10 @@ -2010-08-25T15:27:57.778486Z -11a844270df426ba7f8ae23e94451758 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.711820Z +e782356e16dc42959977cb5a9aaa1f45 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -330,7 +330,7 @@ -38851 +39205 ru.yml file @@ -338,10 +338,10 @@ -2010-08-25T15:27:57.778486Z -fa2affc2bdb2f27c24cdc2420f742bd1 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.711820Z +73be51c0cede8bce9c37d710aaef1ff1 +2010-09-22T19:45:30.172104Z +4171 winterheart has-props @@ -364,7 +364,7 @@ -60326 +60838 en-GB.yml file @@ -372,10 +372,10 @@ -2010-08-25T15:27:57.778486Z -2a4b8688fb33a5bfff574c8fea8ff0c4 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.711820Z +d959f171f66003fe8191d8e47a5fe67b +2010-09-22T16:06:29.391472Z +4169 winterheart @@ -398,7 +398,7 @@ -37103 +37457 id.yml file @@ -406,10 +406,10 @@ -2010-08-25T15:27:57.778486Z -b86ea3ca9d165167cbab5a2cca0b928c -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.715835Z +ea5458eb3e0d4b38f5c9b73ef03fe90d +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -432,7 +432,7 @@ -38430 +38784 el.yml file @@ -440,10 +440,10 @@ -2010-08-25T15:27:57.782480Z -493f859c72589fc1766addb4a1aa012b -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.715835Z +43266733dbb73649edddb2d5815fa51b +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -466,7 +466,7 @@ -53569 +53923 en.yml file @@ -474,10 +474,10 @@ -2010-08-25T15:27:57.782480Z -245a552c7f1e1b8bdd5fe9471261df01 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.715835Z +255f81f55e0d6c8ff82b29b61ffed871 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -500,7 +500,7 @@ -37224 +37482 gl.yml file @@ -508,10 +508,10 @@ -2010-08-25T15:27:57.782480Z -becc8c05d2e8a79a6e8127f83db717fb -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.715835Z +abc632b18133f3500b3dd05f57e9378b +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -534,7 +534,7 @@ -39460 +39814 cs.yml file @@ -542,10 +542,10 @@ -2010-08-25T15:27:57.782480Z -09c33a9de5cd5b403722cdcf510f529b -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.719859Z +6e8071957b966d6a8f86e1c05ab54cae +2010-09-23T16:23:39.070168Z +4173 winterheart has-props @@ -568,7 +568,7 @@ -39277 +39630 es.yml file @@ -576,10 +576,10 @@ -2010-08-25T15:27:57.782480Z -fbfa0f261ac856d3a9b2f3e0b5dc6373 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.719859Z +dfe54b5b3df4729ccd32457e9bd4e411 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -602,7 +602,41 @@ -42165 +42519 + +mk.yml +file + + + + +2010-09-24T12:48:29.719859Z +29ccbe63f00197715dac0af7a48948bf +2010-09-22T16:06:29.391472Z +4169 +winterheart + + + + + + + + + + + + + + + + + + + + + +47241 ko.yml file @@ -610,10 +644,10 @@ -2010-08-25T15:27:57.786481Z -8fd2a4fbe626bb9697034243ba589d81 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.723862Z +b772e80bc84527c52c65fc3ba323d83e +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -636,7 +670,7 @@ -42856 +43255 eu.yml file @@ -644,10 +678,10 @@ -2010-08-25T15:27:57.786481Z -96a7a988cf7c10a2c594e3b9b813e0fe -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.719859Z +8e45505ae9b216b825f6653d976fed30 +2010-09-22T16:06:29.391472Z +4169 winterheart @@ -670,7 +704,7 @@ -39803 +40157 zh-TW.yml file @@ -678,10 +712,10 @@ -2010-08-25T15:27:57.782480Z -2f07e8fb92ea16e12a209f1f0469dc71 -2010-08-24T16:15:14.958943Z -4039 +2010-09-24T12:48:29.719859Z +771ede071092664861220ffb0e975fe8 +2010-09-23T16:23:39.070168Z +4173 winterheart has-props @@ -704,7 +738,7 @@ -41128 +41483 mn.yml file @@ -712,10 +746,10 @@ -2010-08-25T15:27:57.786481Z -af5484f42b0f7f335d7de354fbb739a0 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.723862Z +dd4ce6787e9315f3346c8f56a85a0fe9 +2010-09-22T16:06:29.391472Z +4169 winterheart @@ -738,7 +772,7 @@ -51572 +51926 it.yml file @@ -746,10 +780,10 @@ -2010-08-25T15:27:57.786481Z -b0f901ede4f701279400ee79352cba65 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.723862Z +4eca662beac78c06a4b1919de9f56556 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -772,7 +806,7 @@ -39824 +40178 sk.yml file @@ -780,10 +814,10 @@ -2010-08-25T15:27:57.786481Z -1c8ba05f9b23b7cdf4ded2f766ea7232 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.723862Z +a5fd7d501ceab618ba6808dd5f56ac5e +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -806,7 +840,7 @@ -40065 +40419 sl.yml file @@ -814,10 +848,10 @@ -2010-08-25T15:27:57.786481Z -d116229e8373be451b7871bf1d6e27b9 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.723862Z +b3008af867361f371f067c96aa0117fc +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -840,7 +874,7 @@ -38246 +38600 uk.yml file @@ -848,10 +882,10 @@ -2010-08-25T15:27:57.790480Z -869975cb649617895ad36abae0157639 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.727858Z +4d320f6006d26969f08e2efb483bd709 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -874,7 +908,7 @@ -45865 +46219 da.yml file @@ -882,10 +916,10 @@ -2010-08-25T15:27:57.790480Z -272d94a2908dd0c839a03155da03387b -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.731846Z +c5d900369c88522a92ba2546882646de +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -908,7 +942,7 @@ -38339 +38693 sr.yml file @@ -916,10 +950,10 @@ -2010-08-25T15:27:57.790480Z -532de5ecb6c21e2c637a316aacdd0250 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.727858Z +ebf019d58581ebc1fd17553c09f7acd1 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -942,7 +976,7 @@ -53013 +53325 bg.yml file @@ -950,10 +984,10 @@ -2010-08-25T15:27:57.794486Z -7f2e51814ac5348f6a8b2b9610d4abb0 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.731846Z +352a62d205b07b845f0adce28cb63d15 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -976,7 +1010,7 @@ -45116 +45470 de.yml file @@ -984,10 +1018,10 @@ -2010-08-25T15:27:57.790480Z -b191395dabb7f3055d2a80642d681d32 -2010-08-24T15:32:11.444497Z -4038 +2010-09-24T12:48:29.731846Z +56091e110569c87df775a1a9935060dc +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1010,7 +1044,7 @@ -41018 +41281 sv.yml file @@ -1018,10 +1052,10 @@ -2010-08-25T15:27:57.790480Z -d7af8a60c3d9add17463d8445c058436 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.731846Z +baa63e9443671e1fd346d60e4ddc1521 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1044,7 +1078,7 @@ -40678 +41037 ja.yml file @@ -1052,10 +1086,10 @@ -2010-08-25T15:27:57.794486Z -b283e8af1f8bff130ad35a854179f4c0 -2010-08-24T15:32:11.444497Z -4038 +2010-09-24T12:48:29.731846Z +1e3539913eaf8d37ea7a2a57fabc3e8c +2010-09-23T16:23:39.070168Z +4173 winterheart has-props @@ -1078,7 +1112,7 @@ -44525 +44980 he.yml file @@ -1086,10 +1120,10 @@ -2010-08-25T15:27:57.794486Z -c4b4f3171cc8fc888d6616783d1ff6d2 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.735865Z +f7992b036be151f88a9e0966780c612a +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1112,7 +1146,7 @@ -43557 +43911 fi.yml file @@ -1120,10 +1154,10 @@ -2010-08-25T15:27:57.794486Z -623a15ffed3059fcbefad76a3fe0f416 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.735865Z +0a188f9b2652801a82be0d1e378b7aa7 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1146,7 +1180,7 @@ -39498 +39851 bs.yml file @@ -1154,10 +1188,10 @@ -2010-08-25T15:27:57.798480Z -a0972e3c341e2e3541599309ed1be27f -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.735865Z +608c8fa2f482f744f0cefb0f4248a1cc +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1180,7 +1214,7 @@ -39256 +39610 fr.yml file @@ -1188,10 +1222,10 @@ -2010-08-25T15:27:57.798480Z -710200eb6f30485a55412254dc095f4a -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.735865Z +76819e14f31cc7d6afba22b00e1944da +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1214,7 +1248,7 @@ -41416 +41681 nl.yml file @@ -1222,10 +1256,10 @@ -2010-08-25T15:27:57.798480Z -90dd2a5148bd2caacac1008431e2c0e0 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.739830Z +9c8ae2781ab6840c9c3812337a0b736a +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1248,7 +1282,7 @@ -38746 +39162 hr.yml file @@ -1256,10 +1290,10 @@ -2010-08-25T15:27:57.798480Z -51e7e214ceec548b06bf61e74ecd87d2 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.739830Z +8a3ca64a856a4cd1ea792941be1051db +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1282,7 +1316,7 @@ -38917 +39271 pl.yml file @@ -1290,10 +1324,10 @@ -2010-08-25T15:27:57.798480Z -2fd8226134f129e192091c9591ca6949 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.739830Z +139a3bc99dba793a92f9b4f797c9d04c +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1316,7 +1350,7 @@ -41183 +41757 th.yml file @@ -1324,10 +1358,10 @@ -2010-08-25T15:27:57.802489Z -e5f13a132bbc6517ef57005106f775a8 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.739830Z +a522d5ecaa0583e30a7e592e98ce6bac +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1350,7 +1384,7 @@ -51745 +52099 no.yml file @@ -1358,10 +1392,10 @@ -2010-08-25T15:27:57.802489Z -32c6071a62b471a7c84f8f5c3e205d87 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.743854Z +ebbbed8ecfff22c16b6cfe0bcecd3f12 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1384,7 +1418,7 @@ -37302 +37656 hu.yml file @@ -1392,10 +1426,10 @@ -2010-08-25T15:27:57.802489Z -b05edcccc0a1f075275cfb52b614a6f0 -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.743854Z +7ec87ad7dd6926dacda0f12c3dce91fb +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1418,7 +1452,7 @@ -41831 +42185 vi.yml file @@ -1426,10 +1460,10 @@ -2010-08-25T15:27:57.802489Z -8c6ff176efc36371deb2f21af4d9548a -2010-08-23T19:39:35.435209Z -4036 +2010-09-24T12:48:29.743854Z +d2da1eed28eb609e12ab3cae38ea1f69 +2010-09-22T16:06:29.391472Z +4169 winterheart has-props @@ -1452,5 +1486,5 @@ -42408 +42762 diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/bg.yml.svn-base --- a/config/locales/.svn/text-base/bg.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/bg.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "трябва да е след началната дата" not_same_project: "не е от същия проект" circular_dependency: "Тази релация ще доведе до безкрайна зависимост" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Изберете @@ -906,3 +907,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/bs.yml.svn-base --- a/config/locales/.svn/text-base/bs.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/bs.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "mora biti veći nego početni datum" not_same_project: "ne pripada istom projektu" circular_dependency: "Ova relacija stvar cirkularnu zavisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Molimo odaberite @@ -926,3 +927,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/ca.yml.svn-base --- a/config/locales/.svn/text-base/ca.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/ca.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,4 +1,8 @@ +# Redmine catalan translation: +# by Joan Duran + ca: + # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) direction: ltr date: formats: @@ -65,6 +69,7 @@ other: "almost {{count}} years" number: + # Default format for numbers format: separator: "." delimiter: "" @@ -83,6 +88,7 @@ mb: "MB" gb: "GB" tb: "TB" + # Used in array.to_sentence. support: @@ -116,6 +122,7 @@ greater_than_start_date: "ha de ser superior que la data inicial" not_same_project: "no pertany al mateix projecte" circular_dependency: "Aquesta relació crearia una dependència circular" + cant_link_an_issue_with_a_descendant: "Un assumpte no es pot enllaçar a una de les seves subtasques" actionview_instancetag_blank_option: Seleccioneu @@ -149,18 +156,33 @@ notice_email_sent: "S'ha enviat un correu electrònic a {{value}}" notice_email_error: "S'ha produït un error en enviar el correu ({{value}})" notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS." + notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API." notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de {{count}} seleccionats: {{ids}}." + notice_failed_to_save_members: "No s'han pogut desar els membres: {{errors}}." notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar." notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador." notice_default_data_loaded: "S'ha carregat correctament la configuració predeterminada." notice_unable_delete_version: "No s'ha pogut suprimir la versió." + notice_unable_delete_time_entry: "No s'ha pogut suprimir l'entrada del registre de temps." + notice_issue_done_ratios_updated: "S'ha actualitzat el tant per cent dels assumptes." error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: {{value}} " error_scm_not_found: "No s'ha trobat l'entrada o la revisió en el dipòsit." error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: {{value}}" error_scm_annotate: "L'entrada no existeix o no s'ha pogut anotar." error_issue_not_found_in_project: "No s'ha trobat l'assumpte o no pertany a aquest projecte" - + error_no_tracker_in_project: "Aquest projecte no té seguidor associat. Comproveu els paràmetres del projecte." + error_no_default_issue_status: "No s'ha definit cap estat d'assumpte predeterminat. Comproveu la configuració (aneu a «Administració -> Estats de l'assumpte»)." + error_can_not_delete_custom_field: "No s'ha pogut suprimir el camp personalitat" + error_can_not_delete_tracker: "Aquest seguidor conté assumptes i no es pot suprimir." + error_can_not_remove_role: "Aquest rol s'està utilitzant i no es pot suprimir." + error_can_not_reopen_issue_on_closed_version: "Un assumpte assignat a una versió tancada no es pot tornar a obrir" + error_can_not_archive_project: "Aquest projecte no es pot arxivar" + error_issue_done_ratios_not_updated: "No s'ha actualitza el tant per cent dels assumptes." + error_workflow_copy_source: "Seleccioneu un seguidor o rol font" + error_workflow_copy_target: "Seleccioneu seguidors i rols objectiu" + error_unable_delete_issue_status: "No s'ha pogut suprimir l'estat de l'assumpte" + error_unable_to_connect: "No s'ha pogut connectar ({{value}})" warning_attachments_not_saved: "No s'han pogut desar {{count}} fitxers." mail_subject_lost_password: "Contrasenya de {{value}}" @@ -173,6 +195,10 @@ mail_body_account_activation_request: "S'ha registrat un usuari nou ({{value}}). El seu compte està pendent d'aprovació:" mail_subject_reminder: "{{count}} assumptes venceran els següents {{days}} dies" mail_body_reminder: "{{count}} assumptes que teniu assignades venceran els següents {{days}} dies:" + mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «{{page}}»" + mail_body_wiki_content_added: "En {{author}} ha afegit la pàgina wiki «{{page}}»." + mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «{{page}}»" + mail_body_wiki_content_updated: "En {{author}} ha actualitzat la pàgina wiki «{{page}}»." gui_validation_error: 1 error gui_validation_error_plural: "{{count}} errors" @@ -212,6 +238,7 @@ field_priority: Prioritat field_fixed_version: Versió objectiu field_user: Usuari + field_principal: Principal field_role: Rol field_homepage: Pàgina web field_is_public: Públic @@ -256,6 +283,7 @@ field_redirect_existing_links: Redirigeix els enllaços existents field_estimated_hours: Temps previst field_column_names: Columnes + field_time_entries: "Registre de temps" field_time_zone: Zona horària field_searchable: Es pot cercar field_default_value: Valor predeterminat @@ -265,6 +293,9 @@ field_watcher: Vigilància field_identity_url: URL OpenID field_content: Contingut + field_group_by: "Agrupa els resultats per" + field_sharing: Compartició + field_parent_issue: "Tasca pare" setting_app_title: "Títol de l'aplicació" setting_app_subtitle: "Subtítol de l'aplicació" @@ -300,20 +331,35 @@ setting_activity_days_default: "Dies a mostrar l'activitat del projecte" setting_display_subprojects_issues: "Mostra els assumptes d'un subprojecte en el projecte pare per defecte" setting_enabled_scm: "Habilita l'SCM" + setting_mail_handler_body_delimiters: "Trunca els correus electrònics després d'una d'aquestes línies" setting_mail_handler_api_enabled: "Habilita el WS per correus electrònics d'entrada" setting_mail_handler_api_key: Clau API setting_sequential_project_identifiers: Genera identificadors de projecte seqüencials setting_gravatar_enabled: "Utilitza les icones d'usuari Gravatar" + setting_gravatar_default: "Imatge Gravatar predeterminada" setting_diff_max_lines_displayed: Número màxim de línies amb diferències mostrades setting_file_max_size_displayed: Mida màxima dels fitxers de text mostrats en línia setting_repository_log_display_limit: Número màxim de revisions que es mostren al registre de fitxers setting_openid: "Permet entrar i registrar-se amb l'OpenID" - + setting_password_min_length: "Longitud mínima de la contrasenya" + setting_new_project_user_role_id: "Aquest rol es dóna a un usuari no administrador per a crear projectes" + setting_default_projects_modules: "Mòduls activats per defecte en els projectes nous" + setting_issue_done_ratio: "Calcula tant per cent realitzat de l'assumpte amb" + setting_issue_done_ratio_issue_status: "Utilitza l'estat de l'assumpte" + setting_issue_done_ratio_issue_field: "Utilitza el camp de l'assumpte" + setting_start_of_week: "Inicia les setmanes en" + setting_rest_api_enabled: "Habilita el servei web REST" + setting_cache_formatted_text: Cache formatted text + + permission_add_project: "Crea projectes" + permission_add_subprojects: "Crea subprojectes" permission_edit_project: Edita el projecte permission_select_project_modules: Selecciona els mòduls del projecte permission_manage_members: Gestiona els membres + permission_manage_project_activities: "Gestiona les activitats del projecte" permission_manage_versions: Gestiona les versions permission_manage_categories: Gestiona les categories dels assumptes + permission_view_issues: "Visualitza els assumptes" permission_add_issues: Afegeix assumptes permission_edit_issues: Edita els assumptes permission_manage_issue_relations: Gestiona les relacions dels assumptes @@ -328,6 +374,7 @@ permission_view_calendar: Visualitza el calendari permission_view_issue_watchers: Visualitza la llista de vigilàncies permission_add_issue_watchers: Afegeix vigilàncies + permission_delete_issue_watchers: Suprimeix els vigilants permission_log_time: Registra el temps invertit permission_view_time_entries: Visualitza el temps invertit permission_edit_time_entries: Edita els registres de temps @@ -357,6 +404,8 @@ permission_edit_own_messages: Edita els missatges propis permission_delete_messages: Suprimeix els missatges permission_delete_own_messages: Suprimeix els missatges propis + permission_export_wiki_pages: "Exporta les pàgines wiki" + permission_manage_subtasks: "Gestiona subtasques" project_module_issue_tracking: "Seguidor d'assumptes" project_module_time_tracking: Seguidor de temps @@ -366,10 +415,13 @@ project_module_wiki: Wiki project_module_repository: Dipòsit project_module_boards: Taulers + project_module_calendar: Calendari + project_module_gantt: Gantt label_user: Usuari label_user_plural: Usuaris label_user_new: Usuari nou + label_user_anonymous: Anònim label_project: Projecte label_project_new: Projecte nou label_project_plural: Projectes @@ -416,12 +468,13 @@ label_information_plural: Informació label_please_login: Entreu label_register: Registre - label_login_with_open_id_option: o entra amb l'OpenID + label_login_with_open_id_option: "o entra amb l'OpenID" label_password_lost: Contrasenya perduda label_home: Inici label_my_page: La meva pàgina label_my_account: El meu compte label_my_projects: Els meus projectes + label_my_page_block: "Els meus blocs de pàgina" label_administration: Administració label_login: Entra label_logout: Surt @@ -441,6 +494,7 @@ label_auth_source_new: "Mode d'autenticació nou" label_auth_source_plural: "Modes d'autenticació" label_subproject_plural: Subprojectes + label_subproject_new: "Subprojecte nou" label_and_its_subprojects: "{{value}} i els seus subprojectes" label_min_max_length: Longitud mín - max label_list: Llist @@ -475,8 +529,9 @@ label_version: Versió label_version_new: Versió nova label_version_plural: Versions + label_close_versions: "Tanca les versions completades" label_confirmation: Confirmació - label_export_to: 'També disponible a:' + label_export_to: "També disponible a:" label_read: Llegeix... label_public_projects: Projectes públics label_open_issues: obert @@ -533,6 +588,8 @@ label_not_equals: no és label_in_less_than: en menys de label_in_more_than: en més de + label_greater_or_equal: ">=" + label_less_or_equal: <= label_in: en label_today: avui label_all_time: tot el temps @@ -555,17 +612,21 @@ label_browse: Navega label_modification: "{{count}} canvi" label_modification_plural: "{{count}} canvis" + label_branch: Branca + label_tag: Etiqueta label_revision: Revisió label_revision_plural: Revisions + label_revision_id: "Revisió {{value}}" label_associated_revisions: Revisions associades label_added: afegit label_modified: modificat + label_copied: copiat label_renamed: reanomenat - label_copied: copiat label_deleted: suprimit label_latest_revision: Última revisió label_latest_revision_plural: Últimes revisions label_view_revisions: Visualitza les revisions + label_view_all_revisions: "Visualitza totes les revisions" label_max_size: Mida màxima label_sort_highest: Mou a la part superior label_sort_higher: Mou cap amunt @@ -591,6 +652,7 @@ label_changes_details: Detalls de tots els canvis label_issue_tracking: "Seguiment d'assumptes" label_spent_time: Temps invertit + label_overall_spent_time: "Temps total invertit" label_f_hour: "{{value}} hora" label_f_hour_plural: "{{value}} hores" label_time_tracking: Temps de seguiment @@ -628,6 +690,8 @@ label_board: Fòrum label_board_new: Fòrum nou label_board_plural: Fòrums + label_board_locked: Bloquejat + label_board_sticky: Sticky label_topic_plural: Temes label_message_plural: Missatges label_message_last: Últim missatge @@ -643,6 +707,8 @@ label_language_based: "Basat en l'idioma de l'usuari" label_sort_by: "Ordena per {{value}}" label_send_test_email: Envia un correu electrònic de prova + label_feeds_access_key: "Clau d'accés del RSS" + label_missing_feeds_access_key: "Falta una clau d'accés del RSS" label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa {{value}}" label_module_plural: Mòduls label_added_time_by: "Afegit per {{author}} fa {{age}}" @@ -688,6 +754,28 @@ label_ascending: Ascendent label_descending: Descendent label_date_from_to: Des de {{start}} a {{end}} + label_wiki_content_added: "S'ha afegit la pàgina wiki" + label_wiki_content_updated: "S'ha actualitzat la pàgina wiki" + label_group: Grup + label_group_plural: Grups + label_group_new: Grup nou + label_time_entry_plural: Temps invertit + label_version_sharing_hierarchy: "Amb la jerarquia del projecte" + label_version_sharing_system: "Amb tots els projectes" + label_version_sharing_descendants: "Amb tots els subprojectes" + label_version_sharing_tree: "Amb l'arbre del projecte" + label_version_sharing_none: "Sense compartir" + label_update_issue_done_ratios: "Actualitza el tant per cent dels assumptes realitzats" + label_copy_source: Font + label_copy_target: Objectiu + label_copy_same_as_target: "El mateix que l'objectiu" + label_display_used_statuses_only: "Mostra només els estats que utilitza aquest seguidor" + label_api_access_key: "Clau d'accés a l'API" + label_missing_api_access_key: "Falta una clau d'accés de l'API" + label_api_access_key_created_on: "Clau d'accés de l'API creada fa {{value}}" + label_profile: Perfil + label_subtask_plural: Subtasques + label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte" button_login: Entra button_submit: Tramet @@ -709,11 +797,12 @@ button_list: Llista button_view: Visualitza button_move: Mou + button_move_and_follow: "Mou i segueix" button_back: Enrere button_cancel: Cancel·la button_activate: Activa button_sort: Ordena - button_log_time: "Hora d'entrada" + button_log_time: "Registre de temps" button_rollback: Torna a aquesta versió button_watch: Vigila button_unwatch: No vigilis @@ -724,15 +813,24 @@ button_rename: Reanomena button_change_password: Canvia la contrasenya button_copy: Copia + button_copy_and_follow: "Copia i segueix" button_annotate: Anota button_update: Actualitza button_configure: Configura button_quote: Cita + button_duplicate: Duplica + button_show: Mostra status_active: actiu status_registered: informat status_locked: bloquejat + version_status_open: oberta + version_status_locked: bloquejada + version_status_closed: tancada + + field_active: Actiu + text_select_mail_notifications: "Seleccioneu les accions per les quals s'hauria d'enviar una notificació per correu electrònic." text_regexp_info: ex. ^[A-Z0-9]+$ text_min_max_length_info: 0 significa sense restricció @@ -740,6 +838,10 @@ text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: {{value}}." text_workflow_edit: Seleccioneu un rol i un seguidor per a editar el flux de treball text_are_you_sure: Segur? + text_journal_changed: "{{label}} ha canviat de {{old}} a {{new}}" + text_journal_set_to: "{{label}} s'ha establert a {{value}}" + text_journal_deleted: "{{label}} s'ha suprimit ({{old}})" + text_journal_added: "S'ha afegit {{label}} {{value}}" text_tip_task_begin_day: "tasca que s'inicia aquest dia" text_tip_task_end_day: tasca que finalitza aquest dia text_tip_task_begin_end_day: "tasca que s'inicia i finalitza aquest dia" @@ -750,6 +852,7 @@ text_tracker_no_workflow: "No s'ha definit cap flux de treball per a aquest seguidor" text_unallowed_characters: Caràcters no permesos text_comma_separated: Es permeten valors múltiples (separats per una coma). + text_line_separated: "Es permeten diversos valors (una línia per cada valor)." text_issues_ref_in_commit_messages: Referència i soluciona els assumptes en els missatges publicats text_issue_added: "L'assumpte {{id}} ha sigut informat per {{author}}." text_issue_updated: "L'assumpte {{id}} ha sigut actualitzat per {{author}}." @@ -770,14 +873,21 @@ text_destroy_time_entries_question: "S'han informat {{hours}} hores en els assumptes que aneu a suprimir. Què voleu fer?" text_destroy_time_entries: Suprimeix les hores informades text_assign_time_entries_to_project: Assigna les hores informades al projecte - text_reassign_time_entries: 'Torna a assignar les hores informades a aquest assumpte:' + text_reassign_time_entries: "Torna a assignar les hores informades a aquest assumpte:" text_user_wrote: "{{value}} va escriure:" text_enumeration_destroy_question: "{{count}} objectes estan assignats a aquest valor." - text_enumeration_category_reassign_to: 'Torna a assignar-los a aquest valor:' + text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:" text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo." text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament." text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar." - text_custom_field_possible_values_info: 'Una línia per a cada valor' + text_custom_field_possible_values_info: "Una línia per a cada valor" + text_wiki_page_destroy_question: "Aquesta pàgina té {{descendants}} pàgines fill i descendents. Què voleu fer?" + text_wiki_page_nullify_children: "Deixa les pàgines fill com a pàgines arrel" + text_wiki_page_destroy_children: "Suprimeix les pàgines fill i tots els seus descendents" + text_wiki_page_reassign_children: "Reasigna les pàgines fill a aquesta pàgina pare" + text_own_membership_delete_confirmation: "Esteu a punt de suprimir algun o tots els vostres permisos i potser no podreu editar més aquest projecte.\nSegur que voleu continuar?" + text_zoom_in: Redueix + text_zoom_out: Amplia default_role_manager: Gestor default_role_developer: Desenvolupador @@ -804,108 +914,10 @@ enumeration_issue_priorities: Prioritat dels assumptes enumeration_doc_categories: Categories del document enumeration_activities: Activitats (seguidor de temps) - label_greater_or_equal: ">=" - label_less_or_equal: <= - text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do? - text_wiki_page_reassign_children: Reassign child pages to this parent page - text_wiki_page_nullify_children: Keep child pages as root pages - text_wiki_page_destroy_children: Delete child pages and all their descendants - setting_password_min_length: Minimum password length - field_group_by: Group results by - mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated" - label_wiki_content_added: Wiki page added - mail_subject_wiki_content_added: "'{{page}}' wiki page has been added" - mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}. - label_wiki_content_updated: Wiki page updated - mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}. - permission_add_project: Create project - setting_new_project_user_role_id: Role given to a non-admin user who creates a project - label_view_all_revisions: View all revisions - label_tag: Tag - label_branch: Branch - error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings. - error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses"). - text_journal_changed: "{{label}} changed from {{old}} to {{new}}" - text_journal_set_to: "{{label}} set to {{value}}" - text_journal_deleted: "{{label}} deleted ({{old}})" - label_group_plural: Groups - label_group: Group - label_group_new: New group - label_time_entry_plural: Spent time - text_journal_added: "{{label}} {{value}} added" - field_active: Active - enumeration_system_activity: System Activity - permission_delete_issue_watchers: Delete watchers - version_status_closed: closed - version_status_locked: locked - version_status_open: open - error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened - label_user_anonymous: Anonymous - button_move_and_follow: Move and follow - setting_default_projects_modules: Default enabled modules for new projects - setting_gravatar_default: Default Gravatar image - field_sharing: Sharing - label_version_sharing_hierarchy: With project hierarchy - label_version_sharing_system: With all projects - label_version_sharing_descendants: With subprojects - label_version_sharing_tree: With project tree - label_version_sharing_none: Not shared - error_can_not_archive_project: This project can not be archived - button_duplicate: Duplicate - button_copy_and_follow: Copy and follow - label_copy_source: Source - setting_issue_done_ratio: Calculate the issue done ratio with - setting_issue_done_ratio_issue_status: Use the issue status - error_issue_done_ratios_not_updated: Issue done ratios not updated. - error_workflow_copy_target: Please select target tracker(s) and role(s) - setting_issue_done_ratio_issue_field: Use the issue field - label_copy_same_as_target: Same as target - label_copy_target: Target - notice_issue_done_ratios_updated: Issue done ratios updated. - error_workflow_copy_source: Please select a source tracker or role - label_update_issue_done_ratios: Update issue done ratios - setting_start_of_week: Start calendars on - permission_view_issues: View Issues - label_display_used_statuses_only: Only display statuses that are used by this tracker - label_revision_id: Revision {{value}} - label_api_access_key: API access key - label_api_access_key_created_on: API access key created {{value}} ago - label_feeds_access_key: RSS access key - notice_api_access_key_reseted: Your API access key was reset. - setting_rest_api_enabled: Enable REST web service - label_missing_api_access_key: Missing an API access key - label_missing_feeds_access_key: Missing a RSS access key - button_show: Show - text_line_separated: Multiple values allowed (one line for each value). - setting_mail_handler_body_delimiters: Truncate emails after one of these lines - permission_add_subprojects: Create subprojects - label_subproject_new: New subproject - text_own_membership_delete_confirmation: |- - You are about to remove some or all of your permissions and may no longer be able to edit this project after that. - Are you sure you want to continue? - label_close_versions: Close completed versions - label_board_sticky: Sticky - label_board_locked: Locked - permission_export_wiki_pages: Export wiki pages - setting_cache_formatted_text: Cache formatted text - permission_manage_project_activities: Manage project activities - error_unable_delete_issue_status: Unable to delete issue status - label_profile: Profile - permission_manage_subtasks: Manage subtasks - field_parent_issue: Parent task - label_subtask_plural: Subtasks - label_project_copy_notifications: Send email notifications during the project copy - error_can_not_delete_custom_field: Unable to delete custom field - error_unable_to_connect: Unable to connect ({{value}}) - error_can_not_remove_role: This role is in use and can not be deleted. - error_can_not_delete_tracker: This tracker contains issues and can't be deleted. - field_principal: Principal - label_my_page_block: My page block - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + enumeration_system_activity: Activitat del sistema + + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/cs.yml.svn-base --- a/config/locales/.svn/text-base/cs.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/cs.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "musí být větší než počáteční datum" not_same_project: "nepatří stejnému projektu" circular_dependency: "Tento vztah by vytvořil cyklickou závislost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # Updated by Josef Liška # CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz @@ -393,7 +394,7 @@ label_attachment_delete: Odstranit soubor label_attachment_plural: Soubory label_file_added: Soubor přidán - label_report: Přeheled + label_report: Přehled label_report_plural: Přehledy label_news: Novinky label_news_new: Přidat novinku @@ -912,3 +913,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/da.yml.svn-base --- a/config/locales/.svn/text-base/da.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/da.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "skal være senere end startdatoen" not_same_project: "hører ikke til samme projekt" circular_dependency: "Denne relation vil skabe et afhængighedsforhold" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" template: header: @@ -928,3 +929,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/de.yml.svn-base --- a/config/locales/.svn/text-base/de.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/de.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -803,6 +803,7 @@ button_create_and_continue: Anlegen + nächstes Ticket button_test: Testen button_edit: Bearbeiten + button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: {{page_title}}" button_add: Hinzufügen button_change: Wechseln button_apply: Anwenden @@ -932,3 +933,7 @@ enumeration_activities: Aktivitäten (Zeiterfassung) enumeration_system_activity: System-Aktivität + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/el.yml.svn-base --- a/config/locales/.svn/text-base/el.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/el.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -119,6 +119,7 @@ greater_than_start_date: "πρέπει να είναι αργότερα από την ημερομηνία έναρξης" not_same_project: "δεν ανήκει στο ίδιο έργο" circular_dependency: "Αυτή η σχέση θα δημιουργήσει κυκλικές εξαρτήσεις" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Παρακαλώ επιλέξτε @@ -912,3 +913,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/en-GB.yml.svn-base --- a/config/locales/.svn/text-base/en-GB.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/en-GB.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -122,6 +122,7 @@ greater_than_start_date: "must be greater than start date" not_same_project: "doesn't belong to the same project" circular_dependency: "This relation would create a circular dependency" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Please select @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/en.yml.svn-base --- a/config/locales/.svn/text-base/en.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/en.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -293,6 +293,9 @@ field_group_by: Group results by field_sharing: Sharing field_parent_issue: Parent task + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + field_text: Text field setting_app_title: Application title setting_app_subtitle: Application subtitle @@ -784,6 +787,7 @@ button_create_and_continue: Create and continue button_test: Test button_edit: Edit + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" button_add: Add button_change: Change button_apply: Apply @@ -835,6 +839,7 @@ text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted." text_workflow_edit: Select a role and a tracker to edit the workflow text_are_you_sure: Are you sure ? + text_are_you_sure_with_children: "Delete issue and all child issues?" text_journal_changed: "{{label}} changed from {{old}} to {{new}}" text_journal_set_to: "{{label}} set to {{value}}" text_journal_deleted: "{{label}} deleted ({{old}})" diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/es.yml.svn-base --- a/config/locales/.svn/text-base/es.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/es.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -132,6 +132,7 @@ greater_than_start_date: "debe ser posterior a la fecha de comienzo" not_same_project: "no pertenece al mismo proyecto" circular_dependency: "Esta relación podría crear una dependencia circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # Append your own errors here or at the model/attributes scope. @@ -952,3 +953,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/eu.yml.svn-base --- a/config/locales/.svn/text-base/eu.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/eu.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -121,6 +121,7 @@ greater_than_start_date: "hasiera data baino handiagoa izan behar du" not_same_project: "ez dago proiektu berdinean" circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Hautatu mesedez @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/fi.yml.svn-base --- a/config/locales/.svn/text-base/fi.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/fi.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -147,7 +147,7 @@ greater_than_start_date: "tulee olla aloituspäivän jälkeinen" not_same_project: "ei kuulu samaan projektiin" circular_dependency: "Tämä suhde loisi kehän." - + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Valitse, ole hyvä @@ -938,3 +938,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/fr.yml.svn-base --- a/config/locales/.svn/text-base/fr.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/fr.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -931,3 +931,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Modifier la page de Wiki associée: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/gl.yml.svn-base --- a/config/locales/.svn/text-base/gl.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/gl.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -150,6 +150,7 @@ greater_than_start_date: "debe ser posterior á data de comezo" not_same_project: "non pertence ao mesmo proxecto" circular_dependency: "Esta relación podería crear unha dependencia circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Por favor seleccione @@ -928,3 +929,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/he.yml.svn-base --- a/config/locales/.svn/text-base/he.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/he.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -123,6 +123,7 @@ greater_than_start_date: "חייב להיות מאוחר יותר מתאריך ההתחלה" not_same_project: "לא שייך לאותו הפרויקט" circular_dependency: "הקשר הזה יצור תלות מעגלית" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: בחר בבקשה @@ -917,3 +918,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/hr.yml.svn-base --- a/config/locales/.svn/text-base/hr.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/hr.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -117,6 +117,7 @@ greater_than_start_date: "mora biti veci nego pocetni datum" not_same_project: "ne pripada istom projektu" circular_dependency: "Ovaj relacija stvara kružnu ovisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Molimo odaberite @@ -919,3 +920,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/hu.yml.svn-base --- a/config/locales/.svn/text-base/hu.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/hu.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "nagyobbnak kell lennie, mint az indítás dátuma" not_same_project: "nem azonos projekthez tartozik" circular_dependency: "Ez a kapcsolat egy körkörös függőséget eredményez" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Kérem válasszon @@ -935,3 +936,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/id.yml.svn-base --- a/config/locales/.svn/text-base/id.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/id.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -119,6 +119,7 @@ greater_than_start_date: "harus lebih besar dari tanggal mulai" not_same_project: "tidak tergabung dalam proyek yang sama" circular_dependency: "kaitan ini akan menghasilkan circular dependency" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Silakan pilih @@ -920,3 +921,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/it.yml.svn-base --- a/config/locales/.svn/text-base/it.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/it.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -126,6 +126,7 @@ greater_than_start_date: "deve essere maggiore della data di partenza" not_same_project: "non appartiene allo stesso progetto" circular_dependency: "Questa relazione creerebbe una dipendenza circolare" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Scegli @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/ja.yml.svn-base --- a/config/locales/.svn/text-base/ja.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/ja.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -144,6 +144,7 @@ greater_than_start_date: "を開始日より後にしてください" not_same_project: "同じプロジェクトに属していません" circular_dependency: "この関係では、循環依存になります" + cant_link_an_issue_with_a_descendant: "指定したチケットとは親子関係になっているため関連づけられません" actionview_instancetag_blank_option: 選んでください @@ -318,6 +319,9 @@ field_group_by: グループ条件 field_sharing: 共有 field_parent_issue: 親チケット + field_member_of_group: 担当者のグループ + field_assigned_to_role: 担当者のロール + field_text: テキスト setting_app_title: アプリケーションのタイトル setting_app_subtitle: アプリケーションのサブタイトル @@ -809,6 +813,7 @@ button_create_and_continue: 連続作成 button_test: テスト button_edit: 編集 + button_edit_associated_wikipage: "関連するWikiページを編集: {{page_title}}" button_add: 追加 button_change: 変更 button_apply: 適用 @@ -860,6 +865,7 @@ text_subprojects_destroy_warning: "サブプロジェクト {{value}} も削除されます。" text_workflow_edit: ワークフローを編集するロールとトラッカーを選んでください text_are_you_sure: よろしいですか? + text_are_you_sure_with_children: チケットとその子チケット全てを削除しますか? text_journal_changed: "{{label}} を {{old}} から {{new}} に変更" text_journal_set_to: "{{label}} を {{value}} にセット" text_journal_deleted: "{{label}} を削除 ({{old}})" diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/ko.yml.svn-base --- a/config/locales/.svn/text-base/ko.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/ko.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -2,7 +2,7 @@ # by Kihyun Yoon(ddumbugie@gmail.com),http://plenum.textcube.com/ # by John Hwang (jhwang@tavon.org),http://github.com/tavon # by Yonghwan SO(please insert your email), last update at 2009-09-11 -# last update at 2010-01-23 by Kihyun Yoon +# last update at 2010-09-06 by Kihyun Yoon ko: direction: ltr date: @@ -173,6 +173,7 @@ greater_than_start_date: "는 시작날짜보다 커야 합니다" not_same_project: "는 같은 프로젝트에 속해 있지 않습니다" circular_dependency: "이 관계는 순환 의존관계를 만들 수 있습니다" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: 선택하세요 @@ -958,13 +959,18 @@ error_unable_to_connect: 연결할 수 없습니다(({{value}}) error_can_not_remove_role: 이 역할은 현재 사용 중이이서 삭제할 수 없습니다. error_can_not_delete_tracker: 이 유형의 일감들이 있에서 삭제할 수 없습니다. - field_principal: Principal - label_my_page_block: My page block + field_principal: 신원 + label_my_page_block: 내 페이지 출력화면 notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + text_zoom_out: 더 작게 + text_zoom_in: 더 크게 + notice_unable_delete_time_entry: 시간 기록 항목을 삭제할 수 없습니다. + label_overall_spent_time: 총 소요시간 + field_time_entries: 기록된 시간 + project_module_gantt: Gantt 챠트 + project_module_calendar: 달력 + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/lt.yml.svn-base --- a/config/locales/.svn/text-base/lt.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/lt.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -143,7 +143,7 @@ other: "Išsaugant objektą {{model}} rastos {{count}} klaidos" body: "Šiuose laukuose yra klaidų:" - pranešimus: + messages: inclusion: "nenumatyta reikšmė" exclusion: "užimtas" invalid: "neteisingas" @@ -179,6 +179,7 @@ greater_than_start_date: "turi būti didesnė negu pradžios data" not_same_project: "nepriklauso tam pačiam projektui" circular_dependency: "Šis ryšys sukurtų ciklinę priklausomybę" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: prašom parinkti @@ -976,3 +977,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/lv.yml.svn-base --- a/config/locales/.svn/text-base/lv.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/lv.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -113,6 +113,7 @@ greater_than_start_date: "jābūt vēlākam par sākuma datumu" not_same_project: "nepieder pie tā paša projekta" circular_dependency: "Šī relācija radītu ciklisku atkarību" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Izvēlieties @@ -907,3 +908,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/mn.yml.svn-base --- a/config/locales/.svn/text-base/mn.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/mn.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -117,6 +117,7 @@ greater_than_start_date: "must be greater than start date" not_same_project: "нэг ижил төсөлд хамаарахгүй байна" circular_dependency: "Энэ харьцаа нь гинжин(рекурсив) харьцаа үүсгэх юм байна" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Сонгоно уу @@ -913,3 +914,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/nl.yml.svn-base --- a/config/locales/.svn/text-base/nl.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/nl.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "moet na de startdatum liggen" not_same_project: "hoort niet bij hetzelfde project" circular_dependency: "Deze relatie zou een circulaire afhankelijkheid tot gevolg hebben" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Selecteer @@ -701,7 +702,7 @@ setting_date_format: Datumformaat setting_default_language: Standaard taal setting_default_projects_public: Nieuwe projecten zijn standaard publiek - setting_diff_max_lines_displayed: Max number of diff lines displayed + setting_diff_max_lines_displayed: Max aantal diff regels weer te geven setting_display_subprojects_issues: Standaard issues van subproject tonen setting_emails_footer: E-mails footer setting_enabled_scm: SCM ingeschakeld @@ -709,7 +710,7 @@ setting_gravatar_enabled: Gebruik Gravatar gebruikersiconen setting_host_name: Hostnaam setting_issue_list_default_columns: Standaardkolommen getoond op de lijst met issues - setting_issues_export_limit: Limiet export issues + setting_issues_export_limit: Max aantal te exporteren issues setting_login_required: Authenticatie vereist setting_mail_from: Afzender e-mail adres setting_mail_handler_api_enabled: Schakel WS in voor inkomende mail. @@ -727,7 +728,7 @@ setting_welcome_text: Welkomsttekst setting_wiki_compression: Wikigeschiedenis comprimeren status_active: actief - status_locked: gelockt + status_locked: vergrendeld status_registered: geregistreerd text_are_you_sure: Weet u het zeker? text_assign_time_entries_to_project: Gerapporteerde uren toevoegen aan dit project @@ -753,7 +754,7 @@ text_load_default_configuration: Laad de standaardconfiguratie text_min_max_length_info: 0 betekent geen restrictie text_no_configuration_data: "Rollen, trackers, issue statussen en workflows zijn nog niet geconfigureerd.\nHet is ten zeerste aangeraden om de standaard configuratie in te laden. U kunt deze aanpassen nadat deze is ingeladen." - text_plugin_assets_writable: Plugin assets directory writable + text_plugin_assets_writable: Plugin assets directory beschrijfbaar text_project_destroy_confirmation: Weet u zeker dat u dit project en alle gerelateerde gegevens wilt verwijderen? text_project_identifier_info: 'kleine letters (a-z), cijfers en liggende streepjes toegestaan.
    Eenmaal bewaard kan de identificatiecode niet meer worden gewijzigd.' text_reassign_time_entries: 'Gerapporteerde uren opnieuw toewijzen:' @@ -778,7 +779,7 @@ text_custom_field_possible_values_info: 'Per lijn een waarde' label_display: Toon field_editable: Bewerkbaar - setting_repository_log_display_limit: Maximum hoeveelheid van revisies zichbaar + setting_repository_log_display_limit: Max aantal revisies zichbaar setting_file_max_size_displayed: Max grootte van tekst bestanden inline zichtbaar field_watcher: Watcher setting_openid: Sta OpenID login en registratie toe @@ -824,7 +825,7 @@ version_status_closed: gesloten version_status_locked: vergrendeld version_status_open: open - error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + error_can_not_reopen_issue_on_closed_version: Een issue toegewezen aan een gesloten versie kan niet heropend worden label_user_anonymous: Anoniem button_move_and_follow: Verplaats en volg setting_default_projects_modules: Standaard geactiveerde modules voor nieuwe projecten @@ -833,36 +834,36 @@ label_version_sharing_hierarchy: Met project hiërarchie label_version_sharing_system: Met alle projecten label_version_sharing_descendants: Met subprojecten - label_version_sharing_tree: With project tree + label_version_sharing_tree: Met project boom label_version_sharing_none: Niet gedeeld error_can_not_archive_project: Dit project kan niet worden gearchiveerd button_duplicate: Dupliceer button_copy_and_follow: Kopiëer en volg label_copy_source: Bron - setting_issue_done_ratio: Bereken issue done ratio met + setting_issue_done_ratio: Bereken issue percentage voldaan met setting_issue_done_ratio_issue_status: Gebruik de issue status - error_issue_done_ratios_not_updated: Issue done ratios niet geupdate. + error_issue_done_ratios_not_updated: Issue percentage voldaan niet geupdate. error_workflow_copy_target: Selecteer tracker(s) en rol(len) setting_issue_done_ratio_issue_field: Gebruik het issue veld label_copy_same_as_target: Zelfde als doel label_copy_target: Doel - notice_issue_done_ratios_updated: Issue done ratios updated. + notice_issue_done_ratios_updated: Issue percentage voldaan geupdate. error_workflow_copy_source: Selecteer een bron tracker of rol - label_update_issue_done_ratios: Update issue done ratios + label_update_issue_done_ratios: Update issue percentage voldaan setting_start_of_week: Week begint op permission_view_issues: Bekijk Issues label_display_used_statuses_only: Laat alleen statussen zien die gebruikt worden door deze tracker - label_revision_id: Revision {{value}} + label_revision_id: Revisie {{value}} label_api_access_key: API access key label_api_access_key_created_on: API access key gemaakt {{value}} geleden label_feeds_access_key: RSS access key notice_api_access_key_reseted: Uw API access key was gereset. - setting_rest_api_enabled: Enable REST web service + setting_rest_api_enabled: Activeer REST web service label_missing_api_access_key: Geen API access key label_missing_feeds_access_key: Geen RSS access key button_show: Laat zien text_line_separated: Meerdere waarden toegestaan (elke regel is een waarde). - setting_mail_handler_body_delimiters: Truncate emails after one of these lines + setting_mail_handler_body_delimiters: Breek email verwerking af na een van deze regels permission_add_subprojects: Maak subprojecten label_subproject_new: Nieuw subproject text_own_membership_delete_confirmation: |- @@ -873,10 +874,10 @@ label_board_locked: Vergrendeld permission_export_wiki_pages: Exporteer wiki pagina's setting_cache_formatted_text: Cache opgemaakte tekst - permission_manage_project_activities: Manage project activities + permission_manage_project_activities: Beheer project activiteiten error_unable_delete_issue_status: Verwijderen van issue status niet gelukt label_profile: Profiel - permission_manage_subtasks: Manage subtasks + permission_manage_subtasks: Beheer subtasks field_parent_issue: Parent task label_subtask_plural: Subtasks label_project_copy_notifications: Stuur email notificaties voor de project kopie @@ -891,6 +892,11 @@ text_zoom_in: Zoom in notice_unable_delete_time_entry: Verwijderen niet mogelijk van tijd log invoer. label_overall_spent_time: Totaal bestede tijd - field_time_entries: Log time + field_time_entries: Log tijd project_module_gantt: Gantt - project_module_calendar: Calendar + project_module_calendar: Kalender + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/no.yml.svn-base --- a/config/locales/.svn/text-base/no.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/no.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -111,6 +111,7 @@ greater_than_start_date: "må være større enn startdato" not_same_project: "hører ikke til samme prosjekt" circular_dependency: "Denne relasjonen ville lagd en sirkulær avhengighet" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Vennligst velg @@ -903,3 +904,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/pl.yml.svn-base --- a/config/locales/.svn/text-base/pl.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/pl.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -96,8 +96,8 @@ few: "ponad {{count}} lata" other: "ponad {{count}} lat" almost_x_years: - one: "almost 1 year" - other: "almost {{count}} years" + one: "prawie rok" + other: "prawie {{count}} lata" activerecord: errors: @@ -122,13 +122,14 @@ greater_than: "musi być większe niż {{count}}" greater_than_or_equal_to: "musi być większe lub równe {{count}}" equal_to: "musi być równe {{count}}" - less_than: "musie być mniejsze niż {{count}}" + less_than: "musi być mniejsze niż {{count}}" less_than_or_equal_to: "musi być mniejsze lub równe {{count}}" odd: "musi być nieparzyste" even: "musi być parzyste" greater_than_start_date: "musi być większe niż początkowa data" not_same_project: "nie należy do tego samego projektu" circular_dependency: "Ta relacja może wytworzyć kołową zależność" + cant_link_an_issue_with_a_descendant: "Zagadnienie nie może zostać powiązane z jednym z własnych podzagadnień" support: array: @@ -159,19 +160,19 @@ button_edit: Edytuj button_list: Lista button_lock: Zablokuj - button_log_time: Log czasu + button_log_time: Dziennik button_login: Login button_move: Przenieś button_quote: Cytuj button_rename: Zmień nazwę button_reply: Odpowiedz button_reset: Resetuj - button_rollback: Przywróc do tej wersji + button_rollback: Przywróć do tej wersji button_save: Zapisz button_sort: Sortuj button_submit: Wyślij button_test: Testuj - button_unarchive: Przywróc z archiwum + button_unarchive: Przywróć z archiwum button_uncheck_all: Odznacz wszystko button_unlock: Odblokuj button_unwatch: Nie obserwuj @@ -538,12 +539,12 @@ label_project_latest: Ostatnie projekty label_project_new: Nowy projekt label_project_plural234: Projekty - label_project_plural5: Projekty + label_project_plural5: Projektów label_project_plural: Projekty label_x_projects: - zero: no projects - one: 1 project - other: "{{count}} projects" + zero: brak projektów + one: jeden projekt + other: "{{count}} projektów" label_public_projects: Projekty publiczne label_query: Kwerenda label_query_new: Nowa kwerenda @@ -589,7 +590,7 @@ label_sort_highest: Przesuń na górę label_sort_lower: Do dołu label_sort_lowest: Przesuń na dół - label_spent_time: Spędzony czas + label_spent_time: Przepracowany czas label_start_to_end: początek do końca label_start_to_start: początek do początku label_statistics: Statystyki @@ -601,7 +602,7 @@ label_this_month: ten miesiąc label_this_week: ten tydzień label_this_year: ten rok - label_time_tracking: Śledzenie czasu + label_time_tracking: Śledzenie czasu pracy label_today: dzisiaj label_topic_plural: Tematy label_total: Ogółem @@ -683,11 +684,11 @@ permission_edit_messages: Edycja wiadomości permission_edit_own_issue_notes: Edycja własnych notatek permission_edit_own_messages: Edycja własnych wiadomości - permission_edit_own_time_entries: Edycja własnego logu czasu + permission_edit_own_time_entries: Edycja własnego dziennika permission_edit_project: Edycja projektów - permission_edit_time_entries: Edycja logów czasu + permission_edit_time_entries: Edycja wpisów dziennika permission_edit_wiki_pages: Edycja stron wiki - permission_log_time: Zapisywanie spędzonego czasu + permission_log_time: Zapisywanie przepracowanego czasu permission_manage_boards: Zarządzanie forami permission_manage_categories: Zarządzanie kategoriami zaganień permission_manage_documents: Zarządzanie dokumentami @@ -711,7 +712,7 @@ permission_view_gantt: Podgląd diagramu Gantta permission_view_issue_watchers: Podgląd listy obserwatorów permission_view_messages: Podgląd wiadomości - permission_view_time_entries: Podgląd spędzonego czasu + permission_view_time_entries: Podgląd przepracowanego czasu permission_view_wiki_edits: Podgląd historii wiki permission_view_wiki_pages: Podgląd wiki project_module_boards: Fora @@ -720,7 +721,7 @@ project_module_issue_tracking: Śledzenie zagadnień project_module_news: Komunikaty project_module_repository: Repozytorium - project_module_time_tracking: Śledzenie czasu + project_module_time_tracking: Śledzenie czasu pracy project_module_wiki: Wiki setting_activity_days_default: Dni wyświetlane w aktywności projektu setting_app_subtitle: Podtytuł aplikacji @@ -742,7 +743,7 @@ setting_feeds_limit: Limit danych RSS setting_gravatar_enabled: Używaj ikon użytkowników Gravatar setting_host_name: Nazwa hosta i ścieżka - setting_issue_list_default_columns: Domyślne kolumny wiświetlane na liście zagadnień + setting_issue_list_default_columns: Domyślne kolumny wyświetlane na liście zagadnień setting_issues_export_limit: Limit eksportu zagadnień setting_login_required: Identyfikacja wymagana setting_mail_from: Adres email wysyłki @@ -764,20 +765,20 @@ status_locked: zablokowany status_registered: zarejestrowany text_are_you_sure: Jesteś pewien ? - text_assign_time_entries_to_project: Przypisz logowany czas do projektu + text_assign_time_entries_to_project: Przypisz wpisy dziennika do projektu text_caracters_maximum: "{{count}} znaków maksymalnie." text_caracters_minimum: "Musi być nie krótsze niż {{count}} znaków." text_comma_separated: Wielokrotne wartości dozwolone (rozdzielone przecinkami). text_default_administrator_account_changed: Zmieniono domyślne hasło administratora - text_destroy_time_entries: Usuń zalogowany czas - text_destroy_time_entries_question: Zalogowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić? + text_destroy_time_entries: Usuń wpisy dziennika + text_destroy_time_entries_question: Przepracowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić? text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml a następnie zrestartuj aplikację i uaktywnij to." text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:' text_enumeration_destroy_question: "{{count}} obiektów jest przypisana do tej wartości." text_file_repository_writable: Zapisywalne repozytorium plików text_issue_added: "Zagadnienie {{id}} zostało wprowadzone (by {{author}})." text_issue_category_destroy_assignments: Usuń przydziały kategorii - text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz uczynić?" + text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz zrobić?" text_issue_category_reassign_to: Przydziel zagadnienie do tej kategorii text_issue_updated: "Zagadnienie {{id}} zostało zaktualizowane (by {{author}})." text_issues_destroy_confirmation: 'Czy jestes pewien, że chcesz usunąć wskazane zagadnienia?' @@ -786,9 +787,9 @@ text_load_default_configuration: Załaduj domyślną konfigurację text_min_max_length_info: 0 oznacza brak restrykcji text_no_configuration_data: "Role użytkowników, typy zagadnień, statusy zagadnień oraz przepływ pracy nie zostały jeszcze skonfigurowane.\nJest wysoce rekomendowane by załadować domyślną konfigurację. Po załadowaniu będzie możliwość edycji tych danych." - text_project_destroy_confirmation: Jesteś pewien, że chcesz usunąć ten projekt i wszyskie powiązane dane? + text_project_destroy_confirmation: Jesteś pewien, że chcesz usunąć ten projekt i wszystkie powiązane dane? text_project_identifier_info: 'Małe litery (a-z), liczby i myślniki dozwolone.
    Raz zapisany, identyfikator nie może być zmieniony.' - text_reassign_time_entries: 'Przepnij zalogowany czas do tego zagadnienia:' + text_reassign_time_entries: 'Przepnij przepracowany czas do tego zagadnienia:' text_regexp_info: np. ^[A-Z0-9]+$ text_repository_usernames_mapping: "Wybierz lub uaktualnij przyporządkowanie użytkowników Redmine do użytkowników repozytorium.\nUżytkownicy z taką samą nazwą lub adresem email są przyporządkowani automatycznie." text_rmagick_available: RMagick dostępne (opcjonalnie) @@ -799,9 +800,9 @@ text_tip_task_begin_day: zadanie zaczynające się dzisiaj text_tip_task_begin_end_day: zadanie zaczynające i kończące się dzisiaj text_tip_task_end_day: zadanie kończące się dzisiaj - text_tracker_no_workflow: Brak przepływu zefiniowanego dla tego typu zagadnienia + text_tracker_no_workflow: Brak przepływu zdefiniowanego dla tego typu zagadnienia text_unallowed_characters: Niedozwolone znaki - text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnien, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)." + text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnień, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)." text_user_wrote: "{{value}} napisał:" text_wiki_destroy_confirmation: Jesteś pewien, że chcesz usunąć to wiki i całą jego zawartość ? text_workflow_edit: Zaznacz rolę i typ zagadnienia do edycji przepływu @@ -817,7 +818,7 @@ button_create_and_continue: Stwórz i dodaj kolejne text_custom_field_possible_values_info: 'Każda wartość w osobnej linii' setting_repository_log_display_limit: Maksymalna liczba rewizji pokazywanych w logu pliku - setting_file_max_size_displayed: Maksymalny rozmiar plików tekstowych zagnieżdżanych w stronie + setting_file_max_size_displayed: Maksymalny rozmiar plików tekstowych osadzanych w stronie field_watcher: Obserwator setting_openid: Logowanie i rejestracja przy użyciu OpenID field_identity_url: Identyfikator OpenID (URL) @@ -829,10 +830,10 @@ label_date_from_to: Od {{start}} do {{end}} label_greater_or_equal: ">=" label_less_or_equal: <= - text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do? - text_wiki_page_reassign_children: Reassign child pages to this parent page - text_wiki_page_nullify_children: Keep child pages as root pages - text_wiki_page_destroy_children: Delete child pages and all their descendants + text_wiki_page_destroy_question: Ta strona posiada podstrony ({{descendants}}). Co chcesz zrobić? + text_wiki_page_reassign_children: Podepnij je do strony nadrzędnej względem usuwanej + text_wiki_page_nullify_children: Przesuń je na szczyt hierarchii + text_wiki_page_destroy_children: Usuń wszystkie podstrony setting_password_min_length: Minimalna długość hasła field_group_by: Grupuj wyniki wg mail_subject_wiki_content_updated: "Strona wiki '{{page}}' została uaktualniona" @@ -844,7 +845,7 @@ permission_add_project: Tworzenie projektu setting_new_project_user_role_id: Rola nadawana twórcom projektów, którzy nie posiadają uprawnień administatora label_view_all_revisions: Pokaż wszystkie rewizje - label_tag: Tag + label_tag: Słowo kluczowe label_branch: Gałąź error_no_tracker_in_project: Projekt nie posiada powiązanych typów zagadnień. Sprawdź ustawienia projektu. error_no_default_issue_status: Nie zdefiniowano domyślnego statusu zagadnień. Sprawdź konfigurację (Przejdź do "Administracja -> Statusy zagadnień). @@ -854,7 +855,7 @@ label_group_plural: Grupy label_group: Grupa label_group_new: Nowa grupa - label_time_entry_plural: Spędzony czas + label_time_entry_plural: Przepracowany czas text_journal_added: "Dodano {{label}} {{value}}" field_active: Aktywne enumeration_system_activity: Aktywność Systemowa @@ -912,24 +913,29 @@ label_board_locked: Zamknięta permission_export_wiki_pages: Eksport stron wiki permission_manage_project_activities: Zarządzanie aktywnościami projektu - setting_cache_formatted_text: Cache formatted text - error_unable_delete_issue_status: Unable to delete issue status - label_profile: Profile - permission_manage_subtasks: Manage subtasks - field_parent_issue: Parent task - label_subtask_plural: Subtasks - label_project_copy_notifications: Send email notifications during the project copy - error_can_not_delete_custom_field: Unable to delete custom field - error_unable_to_connect: Unable to connect ({{value}}) - error_can_not_remove_role: This role is in use and can not be deleted. - error_can_not_delete_tracker: This tracker contains issues and can't be deleted. - field_principal: Principal - label_my_page_block: My page block - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + setting_cache_formatted_text: Buforuj sformatowany tekst + error_unable_delete_issue_status: Nie można usunąć statusu zagadnienia + label_profile: Profil + permission_manage_subtasks: Zarządzanie podzagadnieniami + field_parent_issue: Zagadnienie nadrzędne + label_subtask_plural: Podzagadnienia + label_project_copy_notifications: Wyślij powiadomienia mailowe przy kopiowaniu projektu + error_can_not_delete_custom_field: Nie można usunąć tego pola + error_unable_to_connect: Nie można połączyć ({{value}}) + error_can_not_remove_role: Ta rola przypisana jest niektórym użytkownikom i nie może zostać usunięta. + error_can_not_delete_tracker: Ten typ przypisany jest do części zagadnień i nie może zostać usunięty. + field_principal: Przełożony + label_my_page_block: Elementy + notice_failed_to_save_members: "Nie można zapisać uczestników: {{errors}}." + text_zoom_out: Zmniejsz czcionkę + text_zoom_in: Powiększ czcionkę + notice_unable_delete_time_entry: Nie można usunąć wpisu z dziennika. + label_overall_spent_time: Przepracowany czas + field_time_entries: Dziennik + project_module_gantt: Diagram Gantta + project_module_calendar: Kalendarz + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/pt-BR.yml.svn-base --- a/config/locales/.svn/text-base/pt-BR.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/pt-BR.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "deve ser maior que a data inicial" not_same_project: "não pertence ao mesmo projeto" circular_dependency: "Esta relação geraria uma dependência circular" + cant_link_an_issue_with_a_descendant: "Uma tarefa não pode ser relaciona a uma de suas subtarefas" actionview_instancetag_blank_option: Selecione @@ -936,3 +937,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/pt.yml.svn-base --- a/config/locales/.svn/text-base/pt.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/pt.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -128,6 +128,7 @@ greater_than_start_date: "deve ser maior que a data inicial" not_same_project: "não pertence ao mesmo projecto" circular_dependency: "Esta relação iria criar uma dependência circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" ## Translated by: Pedro Araújo actionview_instancetag_blank_option: Seleccione @@ -920,3 +921,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/ro.yml.svn-base --- a/config/locales/.svn/text-base/ro.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/ro.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -110,6 +110,7 @@ greater_than_start_date: "trebuie să fie după data de început" not_same_project: "trebuie să aparțină aceluiași proiect" circular_dependency: "Această relație ar crea o dependență circulară" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Selectați @@ -905,3 +906,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/ru.yml.svn-base --- a/config/locales/.svn/text-base/ru.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/ru.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -192,11 +192,12 @@ equal_to: "может иметь лишь значение, равное {{count}}" less_than: "может иметь значение меньшее чем {{count}}" less_than_or_equal_to: "может иметь значение меньшее или равное {{count}}" - odd: "может иметь лишь четное значение" - even: "может иметь лишь нечетное значение" + odd: "может иметь лишь нечетное значение" + even: "может иметь лишь четное значение" greater_than_start_date: "должна быть позднее даты начала" - not_same_project: "не относятся к одному проекту" + not_same_project: "не относится к одному проекту" circular_dependency: "Такая связь приведет к циклической зависимости" + cant_link_an_issue_with_a_descendant: "Задача не может быть связана со своей подзадачей" support: array: @@ -229,6 +230,7 @@ button_delete: Удалить button_download: Загрузить button_edit: Редактировать + button_edit_associated_wikipage: "Редактировать связанную wiki-страницу: {{page_title}}" button_list: Список button_lock: Заблокировать button_login: Вход @@ -293,6 +295,7 @@ field_admin: Администратор field_assignable: Задача может быть назначена этой роли field_assigned_to: Назначена + field_assigned_to_role: Роль участника field_attr_firstname: Имя field_attr_lastname: Фамилия field_attr_login: Атрибут Регистрация @@ -342,6 +345,7 @@ field_mail: Email field_mail_notification: Уведомления по email field_max_length: Максимальная длина + field_member_of_group: Группа участника field_min_length: Минимальная длина field_name: Имя field_new_password: Новый пароль @@ -367,6 +371,7 @@ field_subject: Тема field_subproject: Подпроект field_summary: Сводка + field_text: Текстовое поле field_time_entries: Затраченное время field_time_zone: Часовой пояс field_title: Название @@ -895,7 +900,8 @@ status_active: активен status_locked: заблокирован status_registered: зарегистрирован - + + text_are_you_sure_with_children: Удалить задачу и все ее подзадачи? text_are_you_sure: Подтвердите text_assign_time_entries_to_project: Прикрепить зарегистрированное время к проекту text_caracters_maximum: "Максимум {{count}} символов(а)." diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/sk.yml.svn-base --- a/config/locales/.svn/text-base/sk.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/sk.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -112,6 +112,7 @@ greater_than_start_date: "musí byť neskôr ako počiatočný dátum" not_same_project: "nepatrí rovnakému projektu" circular_dependency: "Tento vzťah by vytvoril cyklickú závislosť" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # SK translation by Stanislav Pach | stano.pach@seznam.cz @@ -907,3 +908,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/sl.yml.svn-base --- a/config/locales/.svn/text-base/sl.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/sl.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "mora biti kasnejši kot začeten datum" not_same_project: "ne pripada istemu projektu" circular_dependency: "Ta odnos bi povzročil krožno odvisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Prosimo izberite @@ -908,3 +909,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/sr-YU.yml.svn-base --- a/config/locales/.svn/text-base/sr-YU.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/sr-YU.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -68,7 +68,7 @@ number: format: - separator: "." + separator: "," delimiter: "" precision: 3 human: @@ -910,6 +910,11 @@ enumeration_activities: Aktivnosti (praćenje vremena) enumeration_system_activity: Sistemska aktivnost - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_time_entries: Vreme evidencije + project_module_gantt: Gantov dijagram + project_module_calendar: Kalendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/sr.yml.svn-base --- a/config/locales/.svn/text-base/sr.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/sr.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -68,7 +68,7 @@ number: format: - separator: "." + separator: "," delimiter: "" precision: 3 human: @@ -910,6 +910,12 @@ enumeration_activities: Активности (праћење времена) enumeration_system_activity: Системска активност - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_time_entries: Време евиденције + project_module_gantt: Гантов дијаграм + project_module_calendar: Календар + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/sv.yml.svn-base --- a/config/locales/.svn/text-base/sv.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/sv.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "måste vara senare än startdatumet" not_same_project: "tillhör inte samma projekt" circular_dependency: "Denna relation skulle skapa ett cirkulärt beroende" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" direction: ltr date: @@ -325,6 +326,7 @@ field_redirect_existing_links: Omdirigera existerande länkar field_estimated_hours: Estimerad tid field_column_names: Kolumner + field_time_entries: Spenderad tid field_time_zone: Tidszon field_searchable: Sökbar field_default_value: Standardvärde @@ -456,6 +458,8 @@ project_module_wiki: Wiki project_module_repository: Versionsarkiv project_module_boards: Forum + project_module_calendar: Kalender + project_module_gantt: Gantt label_user: Användare label_user_plural: Användare @@ -857,7 +861,7 @@ button_update: Uppdatera button_configure: Konfigurera button_quote: Citera - button_duplicate: Duplisera + button_duplicate: Duplicera button_show: Visa status_active: aktiv @@ -954,6 +958,8 @@ enumeration_doc_categories: Dokumentkategorier enumeration_activities: Aktiviteter (tidsuppföljning) enumeration_system_activity: Systemaktivitet - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/th.yml.svn-base --- a/config/locales/.svn/text-base/th.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/th.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "ต้องมากกว่าวันเริ่ม" not_same_project: "ไม่ได้อยู่ในโครงการเดียวกัน" circular_dependency: "ความสัมพันธ์อ้างอิงเป็นวงกลม" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: กรุณาเลือก @@ -909,3 +910,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/tr.yml.svn-base --- a/config/locales/.svn/text-base/tr.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/tr.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "başlangıç tarihinden büyük olmalı" not_same_project: "aynı projeye ait değil" circular_dependency: "Bu ilişki döngüsel bağımlılık meydana getirecektir" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" models: actionview_instancetag_blank_option: Lütfen Seçin @@ -935,3 +936,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/uk.yml.svn-base --- a/config/locales/.svn/text-base/uk.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/uk.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "повинна бути пізніша за дату початку" not_same_project: "не відносяться до одного проекту" circular_dependency: "Такий зв'язок приведе до циклічної залежності" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Оберіть @@ -908,3 +909,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/vi.yml.svn-base --- a/config/locales/.svn/text-base/vi.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/vi.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -139,6 +139,7 @@ greater_than_start_date: "phải đi sau ngày bắt đầu" not_same_project: "không thuộc cùng dự án" circular_dependency: "quan hệ có thể gây ra lặp vô tận" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" direction: ltr date: @@ -967,3 +968,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/zh-TW.yml.svn-base --- a/config/locales/.svn/text-base/zh-TW.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/zh-TW.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -177,6 +177,7 @@ greater_than_start_date: "必須在起始日期之後" not_same_project: "不屬於同一個專案" circular_dependency: "這個關聯會導致環狀相依" + cant_link_an_issue_with_a_descendant: "項目無法被連結至自己的子項目" # You can define own errors for models or model attributes. # The values :model, :attribute and :value are always available for interpolation. @@ -365,6 +366,7 @@ field_redirect_existing_links: 重新導向現有連結 field_estimated_hours: 預估工時 field_column_names: 欄位 + field_time_entries: 耗用工時 field_time_zone: 時區 field_searchable: 可用做搜尋條件 field_default_value: 預設值 @@ -377,8 +379,10 @@ field_group_by: 結果分組方式 field_sharing: 共用 field_parent_issue: 父工作項目 - field_time_entries: 耗用工時 - + field_member_of_group: 所屬群組 + field_assigned_to_role: 所屬角色 + field_text: 內容文字 + setting_app_title: 標題 setting_app_subtitle: 副標題 setting_welcome_text: 歡迎詞 @@ -869,6 +873,7 @@ button_create_and_continue: 繼續建立 button_test: 測試 button_edit: 編輯 + button_edit_associated_wikipage: "編輯相關 Wiki 頁面: {{page_title}}" button_add: 新增 button_change: 修改 button_apply: 套用 @@ -920,6 +925,7 @@ text_subprojects_destroy_warning: "下列子專案: {{value}} 將一併被刪除。" text_workflow_edit: 選擇角色與追蹤標籤以設定其工作流程 text_are_you_sure: 確定執行? + text_are_you_sure_with_children: "確定刪除此工作項目及其子項目?" text_journal_changed: "{{label}} 從 {{old}} 變更為 {{new}}" text_journal_set_to: "{{label}} 設定為 {{value}}" text_journal_deleted: "{{label}} 已刪除 ({{old}})" @@ -997,3 +1003,4 @@ enumeration_doc_categories: 文件分類 enumeration_activities: 活動 (時間追蹤) enumeration_system_activity: 系統活動 + diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/.svn/text-base/zh.yml.svn-base --- a/config/locales/.svn/text-base/zh.yml.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/.svn/text-base/zh.yml.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -137,6 +137,7 @@ greater_than_start_date: "必须在起始日期之后" not_same_project: "不属于同一个项目" circular_dependency: "此关联将导致循环依赖" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: 请选择 @@ -930,3 +931,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/bg.yml --- a/config/locales/bg.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/bg.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "трябва да е след началната дата" not_same_project: "не е от същия проект" circular_dependency: "Тази релация ще доведе до безкрайна зависимост" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Изберете @@ -906,3 +907,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/bs.yml --- a/config/locales/bs.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/bs.yml Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "mora biti veći nego početni datum" not_same_project: "ne pripada istom projektu" circular_dependency: "Ova relacija stvar cirkularnu zavisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Molimo odaberite @@ -926,3 +927,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/ca.yml --- a/config/locales/ca.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/ca.yml Fri Sep 24 14:06:04 2010 +0100 @@ -1,4 +1,8 @@ +# Redmine catalan translation: +# by Joan Duran + ca: + # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) direction: ltr date: formats: @@ -65,6 +69,7 @@ other: "almost {{count}} years" number: + # Default format for numbers format: separator: "." delimiter: "" @@ -83,6 +88,7 @@ mb: "MB" gb: "GB" tb: "TB" + # Used in array.to_sentence. support: @@ -116,6 +122,7 @@ greater_than_start_date: "ha de ser superior que la data inicial" not_same_project: "no pertany al mateix projecte" circular_dependency: "Aquesta relació crearia una dependència circular" + cant_link_an_issue_with_a_descendant: "Un assumpte no es pot enllaçar a una de les seves subtasques" actionview_instancetag_blank_option: Seleccioneu @@ -149,18 +156,33 @@ notice_email_sent: "S'ha enviat un correu electrònic a {{value}}" notice_email_error: "S'ha produït un error en enviar el correu ({{value}})" notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS." + notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API." notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de {{count}} seleccionats: {{ids}}." + notice_failed_to_save_members: "No s'han pogut desar els membres: {{errors}}." notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar." notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador." notice_default_data_loaded: "S'ha carregat correctament la configuració predeterminada." notice_unable_delete_version: "No s'ha pogut suprimir la versió." + notice_unable_delete_time_entry: "No s'ha pogut suprimir l'entrada del registre de temps." + notice_issue_done_ratios_updated: "S'ha actualitzat el tant per cent dels assumptes." error_can_t_load_default_data: "No s'ha pogut carregar la configuració predeterminada: {{value}} " error_scm_not_found: "No s'ha trobat l'entrada o la revisió en el dipòsit." error_scm_command_failed: "S'ha produït un error en intentar accedir al dipòsit: {{value}}" error_scm_annotate: "L'entrada no existeix o no s'ha pogut anotar." error_issue_not_found_in_project: "No s'ha trobat l'assumpte o no pertany a aquest projecte" - + error_no_tracker_in_project: "Aquest projecte no té seguidor associat. Comproveu els paràmetres del projecte." + error_no_default_issue_status: "No s'ha definit cap estat d'assumpte predeterminat. Comproveu la configuració (aneu a «Administració -> Estats de l'assumpte»)." + error_can_not_delete_custom_field: "No s'ha pogut suprimir el camp personalitat" + error_can_not_delete_tracker: "Aquest seguidor conté assumptes i no es pot suprimir." + error_can_not_remove_role: "Aquest rol s'està utilitzant i no es pot suprimir." + error_can_not_reopen_issue_on_closed_version: "Un assumpte assignat a una versió tancada no es pot tornar a obrir" + error_can_not_archive_project: "Aquest projecte no es pot arxivar" + error_issue_done_ratios_not_updated: "No s'ha actualitza el tant per cent dels assumptes." + error_workflow_copy_source: "Seleccioneu un seguidor o rol font" + error_workflow_copy_target: "Seleccioneu seguidors i rols objectiu" + error_unable_delete_issue_status: "No s'ha pogut suprimir l'estat de l'assumpte" + error_unable_to_connect: "No s'ha pogut connectar ({{value}})" warning_attachments_not_saved: "No s'han pogut desar {{count}} fitxers." mail_subject_lost_password: "Contrasenya de {{value}}" @@ -173,6 +195,10 @@ mail_body_account_activation_request: "S'ha registrat un usuari nou ({{value}}). El seu compte està pendent d'aprovació:" mail_subject_reminder: "{{count}} assumptes venceran els següents {{days}} dies" mail_body_reminder: "{{count}} assumptes que teniu assignades venceran els següents {{days}} dies:" + mail_subject_wiki_content_added: "S'ha afegit la pàgina wiki «{{page}}»" + mail_body_wiki_content_added: "En {{author}} ha afegit la pàgina wiki «{{page}}»." + mail_subject_wiki_content_updated: "S'ha actualitzat la pàgina wiki «{{page}}»" + mail_body_wiki_content_updated: "En {{author}} ha actualitzat la pàgina wiki «{{page}}»." gui_validation_error: 1 error gui_validation_error_plural: "{{count}} errors" @@ -212,6 +238,7 @@ field_priority: Prioritat field_fixed_version: Versió objectiu field_user: Usuari + field_principal: Principal field_role: Rol field_homepage: Pàgina web field_is_public: Públic @@ -256,6 +283,7 @@ field_redirect_existing_links: Redirigeix els enllaços existents field_estimated_hours: Temps previst field_column_names: Columnes + field_time_entries: "Registre de temps" field_time_zone: Zona horària field_searchable: Es pot cercar field_default_value: Valor predeterminat @@ -265,6 +293,9 @@ field_watcher: Vigilància field_identity_url: URL OpenID field_content: Contingut + field_group_by: "Agrupa els resultats per" + field_sharing: Compartició + field_parent_issue: "Tasca pare" setting_app_title: "Títol de l'aplicació" setting_app_subtitle: "Subtítol de l'aplicació" @@ -300,20 +331,35 @@ setting_activity_days_default: "Dies a mostrar l'activitat del projecte" setting_display_subprojects_issues: "Mostra els assumptes d'un subprojecte en el projecte pare per defecte" setting_enabled_scm: "Habilita l'SCM" + setting_mail_handler_body_delimiters: "Trunca els correus electrònics després d'una d'aquestes línies" setting_mail_handler_api_enabled: "Habilita el WS per correus electrònics d'entrada" setting_mail_handler_api_key: Clau API setting_sequential_project_identifiers: Genera identificadors de projecte seqüencials setting_gravatar_enabled: "Utilitza les icones d'usuari Gravatar" + setting_gravatar_default: "Imatge Gravatar predeterminada" setting_diff_max_lines_displayed: Número màxim de línies amb diferències mostrades setting_file_max_size_displayed: Mida màxima dels fitxers de text mostrats en línia setting_repository_log_display_limit: Número màxim de revisions que es mostren al registre de fitxers setting_openid: "Permet entrar i registrar-se amb l'OpenID" - + setting_password_min_length: "Longitud mínima de la contrasenya" + setting_new_project_user_role_id: "Aquest rol es dóna a un usuari no administrador per a crear projectes" + setting_default_projects_modules: "Mòduls activats per defecte en els projectes nous" + setting_issue_done_ratio: "Calcula tant per cent realitzat de l'assumpte amb" + setting_issue_done_ratio_issue_status: "Utilitza l'estat de l'assumpte" + setting_issue_done_ratio_issue_field: "Utilitza el camp de l'assumpte" + setting_start_of_week: "Inicia les setmanes en" + setting_rest_api_enabled: "Habilita el servei web REST" + setting_cache_formatted_text: Cache formatted text + + permission_add_project: "Crea projectes" + permission_add_subprojects: "Crea subprojectes" permission_edit_project: Edita el projecte permission_select_project_modules: Selecciona els mòduls del projecte permission_manage_members: Gestiona els membres + permission_manage_project_activities: "Gestiona les activitats del projecte" permission_manage_versions: Gestiona les versions permission_manage_categories: Gestiona les categories dels assumptes + permission_view_issues: "Visualitza els assumptes" permission_add_issues: Afegeix assumptes permission_edit_issues: Edita els assumptes permission_manage_issue_relations: Gestiona les relacions dels assumptes @@ -328,6 +374,7 @@ permission_view_calendar: Visualitza el calendari permission_view_issue_watchers: Visualitza la llista de vigilàncies permission_add_issue_watchers: Afegeix vigilàncies + permission_delete_issue_watchers: Suprimeix els vigilants permission_log_time: Registra el temps invertit permission_view_time_entries: Visualitza el temps invertit permission_edit_time_entries: Edita els registres de temps @@ -357,6 +404,8 @@ permission_edit_own_messages: Edita els missatges propis permission_delete_messages: Suprimeix els missatges permission_delete_own_messages: Suprimeix els missatges propis + permission_export_wiki_pages: "Exporta les pàgines wiki" + permission_manage_subtasks: "Gestiona subtasques" project_module_issue_tracking: "Seguidor d'assumptes" project_module_time_tracking: Seguidor de temps @@ -366,10 +415,13 @@ project_module_wiki: Wiki project_module_repository: Dipòsit project_module_boards: Taulers + project_module_calendar: Calendari + project_module_gantt: Gantt label_user: Usuari label_user_plural: Usuaris label_user_new: Usuari nou + label_user_anonymous: Anònim label_project: Projecte label_project_new: Projecte nou label_project_plural: Projectes @@ -416,12 +468,13 @@ label_information_plural: Informació label_please_login: Entreu label_register: Registre - label_login_with_open_id_option: o entra amb l'OpenID + label_login_with_open_id_option: "o entra amb l'OpenID" label_password_lost: Contrasenya perduda label_home: Inici label_my_page: La meva pàgina label_my_account: El meu compte label_my_projects: Els meus projectes + label_my_page_block: "Els meus blocs de pàgina" label_administration: Administració label_login: Entra label_logout: Surt @@ -441,6 +494,7 @@ label_auth_source_new: "Mode d'autenticació nou" label_auth_source_plural: "Modes d'autenticació" label_subproject_plural: Subprojectes + label_subproject_new: "Subprojecte nou" label_and_its_subprojects: "{{value}} i els seus subprojectes" label_min_max_length: Longitud mín - max label_list: Llist @@ -475,8 +529,9 @@ label_version: Versió label_version_new: Versió nova label_version_plural: Versions + label_close_versions: "Tanca les versions completades" label_confirmation: Confirmació - label_export_to: 'També disponible a:' + label_export_to: "També disponible a:" label_read: Llegeix... label_public_projects: Projectes públics label_open_issues: obert @@ -533,6 +588,8 @@ label_not_equals: no és label_in_less_than: en menys de label_in_more_than: en més de + label_greater_or_equal: ">=" + label_less_or_equal: <= label_in: en label_today: avui label_all_time: tot el temps @@ -555,17 +612,21 @@ label_browse: Navega label_modification: "{{count}} canvi" label_modification_plural: "{{count}} canvis" + label_branch: Branca + label_tag: Etiqueta label_revision: Revisió label_revision_plural: Revisions + label_revision_id: "Revisió {{value}}" label_associated_revisions: Revisions associades label_added: afegit label_modified: modificat + label_copied: copiat label_renamed: reanomenat - label_copied: copiat label_deleted: suprimit label_latest_revision: Última revisió label_latest_revision_plural: Últimes revisions label_view_revisions: Visualitza les revisions + label_view_all_revisions: "Visualitza totes les revisions" label_max_size: Mida màxima label_sort_highest: Mou a la part superior label_sort_higher: Mou cap amunt @@ -591,6 +652,7 @@ label_changes_details: Detalls de tots els canvis label_issue_tracking: "Seguiment d'assumptes" label_spent_time: Temps invertit + label_overall_spent_time: "Temps total invertit" label_f_hour: "{{value}} hora" label_f_hour_plural: "{{value}} hores" label_time_tracking: Temps de seguiment @@ -628,6 +690,8 @@ label_board: Fòrum label_board_new: Fòrum nou label_board_plural: Fòrums + label_board_locked: Bloquejat + label_board_sticky: Sticky label_topic_plural: Temes label_message_plural: Missatges label_message_last: Últim missatge @@ -643,6 +707,8 @@ label_language_based: "Basat en l'idioma de l'usuari" label_sort_by: "Ordena per {{value}}" label_send_test_email: Envia un correu electrònic de prova + label_feeds_access_key: "Clau d'accés del RSS" + label_missing_feeds_access_key: "Falta una clau d'accés del RSS" label_feeds_access_key_created_on: "Clau d'accés del RSS creada fa {{value}}" label_module_plural: Mòduls label_added_time_by: "Afegit per {{author}} fa {{age}}" @@ -688,6 +754,28 @@ label_ascending: Ascendent label_descending: Descendent label_date_from_to: Des de {{start}} a {{end}} + label_wiki_content_added: "S'ha afegit la pàgina wiki" + label_wiki_content_updated: "S'ha actualitzat la pàgina wiki" + label_group: Grup + label_group_plural: Grups + label_group_new: Grup nou + label_time_entry_plural: Temps invertit + label_version_sharing_hierarchy: "Amb la jerarquia del projecte" + label_version_sharing_system: "Amb tots els projectes" + label_version_sharing_descendants: "Amb tots els subprojectes" + label_version_sharing_tree: "Amb l'arbre del projecte" + label_version_sharing_none: "Sense compartir" + label_update_issue_done_ratios: "Actualitza el tant per cent dels assumptes realitzats" + label_copy_source: Font + label_copy_target: Objectiu + label_copy_same_as_target: "El mateix que l'objectiu" + label_display_used_statuses_only: "Mostra només els estats que utilitza aquest seguidor" + label_api_access_key: "Clau d'accés a l'API" + label_missing_api_access_key: "Falta una clau d'accés de l'API" + label_api_access_key_created_on: "Clau d'accés de l'API creada fa {{value}}" + label_profile: Perfil + label_subtask_plural: Subtasques + label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte" button_login: Entra button_submit: Tramet @@ -709,11 +797,12 @@ button_list: Llista button_view: Visualitza button_move: Mou + button_move_and_follow: "Mou i segueix" button_back: Enrere button_cancel: Cancel·la button_activate: Activa button_sort: Ordena - button_log_time: "Hora d'entrada" + button_log_time: "Registre de temps" button_rollback: Torna a aquesta versió button_watch: Vigila button_unwatch: No vigilis @@ -724,15 +813,24 @@ button_rename: Reanomena button_change_password: Canvia la contrasenya button_copy: Copia + button_copy_and_follow: "Copia i segueix" button_annotate: Anota button_update: Actualitza button_configure: Configura button_quote: Cita + button_duplicate: Duplica + button_show: Mostra status_active: actiu status_registered: informat status_locked: bloquejat + version_status_open: oberta + version_status_locked: bloquejada + version_status_closed: tancada + + field_active: Actiu + text_select_mail_notifications: "Seleccioneu les accions per les quals s'hauria d'enviar una notificació per correu electrònic." text_regexp_info: ex. ^[A-Z0-9]+$ text_min_max_length_info: 0 significa sense restricció @@ -740,6 +838,10 @@ text_subprojects_destroy_warning: "També seran suprimits els seus subprojectes: {{value}}." text_workflow_edit: Seleccioneu un rol i un seguidor per a editar el flux de treball text_are_you_sure: Segur? + text_journal_changed: "{{label}} ha canviat de {{old}} a {{new}}" + text_journal_set_to: "{{label}} s'ha establert a {{value}}" + text_journal_deleted: "{{label}} s'ha suprimit ({{old}})" + text_journal_added: "S'ha afegit {{label}} {{value}}" text_tip_task_begin_day: "tasca que s'inicia aquest dia" text_tip_task_end_day: tasca que finalitza aquest dia text_tip_task_begin_end_day: "tasca que s'inicia i finalitza aquest dia" @@ -750,6 +852,7 @@ text_tracker_no_workflow: "No s'ha definit cap flux de treball per a aquest seguidor" text_unallowed_characters: Caràcters no permesos text_comma_separated: Es permeten valors múltiples (separats per una coma). + text_line_separated: "Es permeten diversos valors (una línia per cada valor)." text_issues_ref_in_commit_messages: Referència i soluciona els assumptes en els missatges publicats text_issue_added: "L'assumpte {{id}} ha sigut informat per {{author}}." text_issue_updated: "L'assumpte {{id}} ha sigut actualitzat per {{author}}." @@ -770,14 +873,21 @@ text_destroy_time_entries_question: "S'han informat {{hours}} hores en els assumptes que aneu a suprimir. Què voleu fer?" text_destroy_time_entries: Suprimeix les hores informades text_assign_time_entries_to_project: Assigna les hores informades al projecte - text_reassign_time_entries: 'Torna a assignar les hores informades a aquest assumpte:' + text_reassign_time_entries: "Torna a assignar les hores informades a aquest assumpte:" text_user_wrote: "{{value}} va escriure:" text_enumeration_destroy_question: "{{count}} objectes estan assignats a aquest valor." - text_enumeration_category_reassign_to: 'Torna a assignar-los a aquest valor:' + text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:" text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo." text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament." text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar." - text_custom_field_possible_values_info: 'Una línia per a cada valor' + text_custom_field_possible_values_info: "Una línia per a cada valor" + text_wiki_page_destroy_question: "Aquesta pàgina té {{descendants}} pàgines fill i descendents. Què voleu fer?" + text_wiki_page_nullify_children: "Deixa les pàgines fill com a pàgines arrel" + text_wiki_page_destroy_children: "Suprimeix les pàgines fill i tots els seus descendents" + text_wiki_page_reassign_children: "Reasigna les pàgines fill a aquesta pàgina pare" + text_own_membership_delete_confirmation: "Esteu a punt de suprimir algun o tots els vostres permisos i potser no podreu editar més aquest projecte.\nSegur que voleu continuar?" + text_zoom_in: Redueix + text_zoom_out: Amplia default_role_manager: Gestor default_role_developer: Desenvolupador @@ -804,108 +914,10 @@ enumeration_issue_priorities: Prioritat dels assumptes enumeration_doc_categories: Categories del document enumeration_activities: Activitats (seguidor de temps) - label_greater_or_equal: ">=" - label_less_or_equal: <= - text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do? - text_wiki_page_reassign_children: Reassign child pages to this parent page - text_wiki_page_nullify_children: Keep child pages as root pages - text_wiki_page_destroy_children: Delete child pages and all their descendants - setting_password_min_length: Minimum password length - field_group_by: Group results by - mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated" - label_wiki_content_added: Wiki page added - mail_subject_wiki_content_added: "'{{page}}' wiki page has been added" - mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}. - label_wiki_content_updated: Wiki page updated - mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}. - permission_add_project: Create project - setting_new_project_user_role_id: Role given to a non-admin user who creates a project - label_view_all_revisions: View all revisions - label_tag: Tag - label_branch: Branch - error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings. - error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses"). - text_journal_changed: "{{label}} changed from {{old}} to {{new}}" - text_journal_set_to: "{{label}} set to {{value}}" - text_journal_deleted: "{{label}} deleted ({{old}})" - label_group_plural: Groups - label_group: Group - label_group_new: New group - label_time_entry_plural: Spent time - text_journal_added: "{{label}} {{value}} added" - field_active: Active - enumeration_system_activity: System Activity - permission_delete_issue_watchers: Delete watchers - version_status_closed: closed - version_status_locked: locked - version_status_open: open - error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened - label_user_anonymous: Anonymous - button_move_and_follow: Move and follow - setting_default_projects_modules: Default enabled modules for new projects - setting_gravatar_default: Default Gravatar image - field_sharing: Sharing - label_version_sharing_hierarchy: With project hierarchy - label_version_sharing_system: With all projects - label_version_sharing_descendants: With subprojects - label_version_sharing_tree: With project tree - label_version_sharing_none: Not shared - error_can_not_archive_project: This project can not be archived - button_duplicate: Duplicate - button_copy_and_follow: Copy and follow - label_copy_source: Source - setting_issue_done_ratio: Calculate the issue done ratio with - setting_issue_done_ratio_issue_status: Use the issue status - error_issue_done_ratios_not_updated: Issue done ratios not updated. - error_workflow_copy_target: Please select target tracker(s) and role(s) - setting_issue_done_ratio_issue_field: Use the issue field - label_copy_same_as_target: Same as target - label_copy_target: Target - notice_issue_done_ratios_updated: Issue done ratios updated. - error_workflow_copy_source: Please select a source tracker or role - label_update_issue_done_ratios: Update issue done ratios - setting_start_of_week: Start calendars on - permission_view_issues: View Issues - label_display_used_statuses_only: Only display statuses that are used by this tracker - label_revision_id: Revision {{value}} - label_api_access_key: API access key - label_api_access_key_created_on: API access key created {{value}} ago - label_feeds_access_key: RSS access key - notice_api_access_key_reseted: Your API access key was reset. - setting_rest_api_enabled: Enable REST web service - label_missing_api_access_key: Missing an API access key - label_missing_feeds_access_key: Missing a RSS access key - button_show: Show - text_line_separated: Multiple values allowed (one line for each value). - setting_mail_handler_body_delimiters: Truncate emails after one of these lines - permission_add_subprojects: Create subprojects - label_subproject_new: New subproject - text_own_membership_delete_confirmation: |- - You are about to remove some or all of your permissions and may no longer be able to edit this project after that. - Are you sure you want to continue? - label_close_versions: Close completed versions - label_board_sticky: Sticky - label_board_locked: Locked - permission_export_wiki_pages: Export wiki pages - setting_cache_formatted_text: Cache formatted text - permission_manage_project_activities: Manage project activities - error_unable_delete_issue_status: Unable to delete issue status - label_profile: Profile - permission_manage_subtasks: Manage subtasks - field_parent_issue: Parent task - label_subtask_plural: Subtasks - label_project_copy_notifications: Send email notifications during the project copy - error_can_not_delete_custom_field: Unable to delete custom field - error_unable_to_connect: Unable to connect ({{value}}) - error_can_not_remove_role: This role is in use and can not be deleted. - error_can_not_delete_tracker: This tracker contains issues and can't be deleted. - field_principal: Principal - label_my_page_block: My page block - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + enumeration_system_activity: Activitat del sistema + + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/cs.yml --- a/config/locales/cs.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/cs.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "musí být větší než počáteční datum" not_same_project: "nepatří stejnému projektu" circular_dependency: "Tento vztah by vytvořil cyklickou závislost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # Updated by Josef Liška # CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz @@ -393,7 +394,7 @@ label_attachment_delete: Odstranit soubor label_attachment_plural: Soubory label_file_added: Soubor přidán - label_report: Přeheled + label_report: Přehled label_report_plural: Přehledy label_news: Novinky label_news_new: Přidat novinku @@ -912,3 +913,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/da.yml --- a/config/locales/da.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/da.yml Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "skal være senere end startdatoen" not_same_project: "hører ikke til samme projekt" circular_dependency: "Denne relation vil skabe et afhængighedsforhold" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" template: header: @@ -928,3 +929,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/de.yml --- a/config/locales/de.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/de.yml Fri Sep 24 14:06:04 2010 +0100 @@ -803,6 +803,7 @@ button_create_and_continue: Anlegen + nächstes Ticket button_test: Testen button_edit: Bearbeiten + button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: {{page_title}}" button_add: Hinzufügen button_change: Wechseln button_apply: Anwenden @@ -932,3 +933,7 @@ enumeration_activities: Aktivitäten (Zeiterfassung) enumeration_system_activity: System-Aktivität + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/el.yml --- a/config/locales/el.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/el.yml Fri Sep 24 14:06:04 2010 +0100 @@ -119,6 +119,7 @@ greater_than_start_date: "πρέπει να είναι αργότερα από την ημερομηνία έναρξης" not_same_project: "δεν ανήκει στο ίδιο έργο" circular_dependency: "Αυτή η σχέση θα δημιουργήσει κυκλικές εξαρτήσεις" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Παρακαλώ επιλέξτε @@ -912,3 +913,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/en-GB.yml --- a/config/locales/en-GB.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/en-GB.yml Fri Sep 24 14:06:04 2010 +0100 @@ -122,6 +122,7 @@ greater_than_start_date: "must be greater than start date" not_same_project: "doesn't belong to the same project" circular_dependency: "This relation would create a circular dependency" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Please select @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/en.yml --- a/config/locales/en.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/en.yml Fri Sep 24 14:06:04 2010 +0100 @@ -293,6 +293,9 @@ field_group_by: Group results by field_sharing: Sharing field_parent_issue: Parent task + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + field_text: Text field setting_app_title: Application title setting_app_subtitle: Application subtitle @@ -784,6 +787,7 @@ button_create_and_continue: Create and continue button_test: Test button_edit: Edit + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" button_add: Add button_change: Change button_apply: Apply @@ -835,6 +839,7 @@ text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted." text_workflow_edit: Select a role and a tracker to edit the workflow text_are_you_sure: Are you sure ? + text_are_you_sure_with_children: "Delete issue and all child issues?" text_journal_changed: "{{label}} changed from {{old}} to {{new}}" text_journal_set_to: "{{label}} set to {{value}}" text_journal_deleted: "{{label}} deleted ({{old}})" diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/es.yml --- a/config/locales/es.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/es.yml Fri Sep 24 14:06:04 2010 +0100 @@ -132,6 +132,7 @@ greater_than_start_date: "debe ser posterior a la fecha de comienzo" not_same_project: "no pertenece al mismo proyecto" circular_dependency: "Esta relación podría crear una dependencia circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # Append your own errors here or at the model/attributes scope. @@ -952,3 +953,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/eu.yml --- a/config/locales/eu.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/eu.yml Fri Sep 24 14:06:04 2010 +0100 @@ -121,6 +121,7 @@ greater_than_start_date: "hasiera data baino handiagoa izan behar du" not_same_project: "ez dago proiektu berdinean" circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Hautatu mesedez @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/fi.yml --- a/config/locales/fi.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/fi.yml Fri Sep 24 14:06:04 2010 +0100 @@ -147,7 +147,7 @@ greater_than_start_date: "tulee olla aloituspäivän jälkeinen" not_same_project: "ei kuulu samaan projektiin" circular_dependency: "Tämä suhde loisi kehän." - + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Valitse, ole hyvä @@ -938,3 +938,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/fr.yml --- a/config/locales/fr.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/fr.yml Fri Sep 24 14:06:04 2010 +0100 @@ -931,3 +931,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Modifier la page de Wiki associée: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/gl.yml --- a/config/locales/gl.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/gl.yml Fri Sep 24 14:06:04 2010 +0100 @@ -150,6 +150,7 @@ greater_than_start_date: "debe ser posterior á data de comezo" not_same_project: "non pertence ao mesmo proxecto" circular_dependency: "Esta relación podería crear unha dependencia circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Por favor seleccione @@ -928,3 +929,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/he.yml --- a/config/locales/he.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/he.yml Fri Sep 24 14:06:04 2010 +0100 @@ -123,6 +123,7 @@ greater_than_start_date: "חייב להיות מאוחר יותר מתאריך ההתחלה" not_same_project: "לא שייך לאותו הפרויקט" circular_dependency: "הקשר הזה יצור תלות מעגלית" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: בחר בבקשה @@ -917,3 +918,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/hr.yml --- a/config/locales/hr.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/hr.yml Fri Sep 24 14:06:04 2010 +0100 @@ -117,6 +117,7 @@ greater_than_start_date: "mora biti veci nego pocetni datum" not_same_project: "ne pripada istom projektu" circular_dependency: "Ovaj relacija stvara kružnu ovisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Molimo odaberite @@ -919,3 +920,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/hu.yml --- a/config/locales/hu.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/hu.yml Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "nagyobbnak kell lennie, mint az indítás dátuma" not_same_project: "nem azonos projekthez tartozik" circular_dependency: "Ez a kapcsolat egy körkörös függőséget eredményez" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Kérem válasszon @@ -935,3 +936,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/id.yml --- a/config/locales/id.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/id.yml Fri Sep 24 14:06:04 2010 +0100 @@ -119,6 +119,7 @@ greater_than_start_date: "harus lebih besar dari tanggal mulai" not_same_project: "tidak tergabung dalam proyek yang sama" circular_dependency: "kaitan ini akan menghasilkan circular dependency" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Silakan pilih @@ -920,3 +921,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/it.yml --- a/config/locales/it.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/it.yml Fri Sep 24 14:06:04 2010 +0100 @@ -126,6 +126,7 @@ greater_than_start_date: "deve essere maggiore della data di partenza" not_same_project: "non appartiene allo stesso progetto" circular_dependency: "Questa relazione creerebbe una dipendenza circolare" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Scegli @@ -916,3 +917,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/ja.yml --- a/config/locales/ja.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/ja.yml Fri Sep 24 14:06:04 2010 +0100 @@ -144,6 +144,7 @@ greater_than_start_date: "を開始日より後にしてください" not_same_project: "同じプロジェクトに属していません" circular_dependency: "この関係では、循環依存になります" + cant_link_an_issue_with_a_descendant: "指定したチケットとは親子関係になっているため関連づけられません" actionview_instancetag_blank_option: 選んでください @@ -318,6 +319,9 @@ field_group_by: グループ条件 field_sharing: 共有 field_parent_issue: 親チケット + field_member_of_group: 担当者のグループ + field_assigned_to_role: 担当者のロール + field_text: テキスト setting_app_title: アプリケーションのタイトル setting_app_subtitle: アプリケーションのサブタイトル @@ -809,6 +813,7 @@ button_create_and_continue: 連続作成 button_test: テスト button_edit: 編集 + button_edit_associated_wikipage: "関連するWikiページを編集: {{page_title}}" button_add: 追加 button_change: 変更 button_apply: 適用 @@ -860,6 +865,7 @@ text_subprojects_destroy_warning: "サブプロジェクト {{value}} も削除されます。" text_workflow_edit: ワークフローを編集するロールとトラッカーを選んでください text_are_you_sure: よろしいですか? + text_are_you_sure_with_children: チケットとその子チケット全てを削除しますか? text_journal_changed: "{{label}} を {{old}} から {{new}} に変更" text_journal_set_to: "{{label}} を {{value}} にセット" text_journal_deleted: "{{label}} を削除 ({{old}})" diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/ko.yml --- a/config/locales/ko.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/ko.yml Fri Sep 24 14:06:04 2010 +0100 @@ -2,7 +2,7 @@ # by Kihyun Yoon(ddumbugie@gmail.com),http://plenum.textcube.com/ # by John Hwang (jhwang@tavon.org),http://github.com/tavon # by Yonghwan SO(please insert your email), last update at 2009-09-11 -# last update at 2010-01-23 by Kihyun Yoon +# last update at 2010-09-06 by Kihyun Yoon ko: direction: ltr date: @@ -173,6 +173,7 @@ greater_than_start_date: "는 시작날짜보다 커야 합니다" not_same_project: "는 같은 프로젝트에 속해 있지 않습니다" circular_dependency: "이 관계는 순환 의존관계를 만들 수 있습니다" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: 선택하세요 @@ -958,13 +959,18 @@ error_unable_to_connect: 연결할 수 없습니다(({{value}}) error_can_not_remove_role: 이 역할은 현재 사용 중이이서 삭제할 수 없습니다. error_can_not_delete_tracker: 이 유형의 일감들이 있에서 삭제할 수 없습니다. - field_principal: Principal - label_my_page_block: My page block + field_principal: 신원 + label_my_page_block: 내 페이지 출력화면 notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + text_zoom_out: 더 작게 + text_zoom_in: 더 크게 + notice_unable_delete_time_entry: 시간 기록 항목을 삭제할 수 없습니다. + label_overall_spent_time: 총 소요시간 + field_time_entries: 기록된 시간 + project_module_gantt: Gantt 챠트 + project_module_calendar: 달력 + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/lt.yml --- a/config/locales/lt.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/lt.yml Fri Sep 24 14:06:04 2010 +0100 @@ -143,7 +143,7 @@ other: "Išsaugant objektą {{model}} rastos {{count}} klaidos" body: "Šiuose laukuose yra klaidų:" - pranešimus: + messages: inclusion: "nenumatyta reikšmė" exclusion: "užimtas" invalid: "neteisingas" @@ -179,6 +179,7 @@ greater_than_start_date: "turi būti didesnė negu pradžios data" not_same_project: "nepriklauso tam pačiam projektui" circular_dependency: "Šis ryšys sukurtų ciklinę priklausomybę" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: prašom parinkti @@ -976,3 +977,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/lv.yml --- a/config/locales/lv.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/lv.yml Fri Sep 24 14:06:04 2010 +0100 @@ -113,6 +113,7 @@ greater_than_start_date: "jābūt vēlākam par sākuma datumu" not_same_project: "nepieder pie tā paša projekta" circular_dependency: "Šī relācija radītu ciklisku atkarību" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Izvēlieties @@ -907,3 +908,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/mn.yml --- a/config/locales/mn.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/mn.yml Fri Sep 24 14:06:04 2010 +0100 @@ -117,6 +117,7 @@ greater_than_start_date: "must be greater than start date" not_same_project: "нэг ижил төсөлд хамаарахгүй байна" circular_dependency: "Энэ харьцаа нь гинжин(рекурсив) харьцаа үүсгэх юм байна" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Сонгоно уу @@ -913,3 +914,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/nl.yml --- a/config/locales/nl.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/nl.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "moet na de startdatum liggen" not_same_project: "hoort niet bij hetzelfde project" circular_dependency: "Deze relatie zou een circulaire afhankelijkheid tot gevolg hebben" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Selecteer @@ -701,7 +702,7 @@ setting_date_format: Datumformaat setting_default_language: Standaard taal setting_default_projects_public: Nieuwe projecten zijn standaard publiek - setting_diff_max_lines_displayed: Max number of diff lines displayed + setting_diff_max_lines_displayed: Max aantal diff regels weer te geven setting_display_subprojects_issues: Standaard issues van subproject tonen setting_emails_footer: E-mails footer setting_enabled_scm: SCM ingeschakeld @@ -709,7 +710,7 @@ setting_gravatar_enabled: Gebruik Gravatar gebruikersiconen setting_host_name: Hostnaam setting_issue_list_default_columns: Standaardkolommen getoond op de lijst met issues - setting_issues_export_limit: Limiet export issues + setting_issues_export_limit: Max aantal te exporteren issues setting_login_required: Authenticatie vereist setting_mail_from: Afzender e-mail adres setting_mail_handler_api_enabled: Schakel WS in voor inkomende mail. @@ -727,7 +728,7 @@ setting_welcome_text: Welkomsttekst setting_wiki_compression: Wikigeschiedenis comprimeren status_active: actief - status_locked: gelockt + status_locked: vergrendeld status_registered: geregistreerd text_are_you_sure: Weet u het zeker? text_assign_time_entries_to_project: Gerapporteerde uren toevoegen aan dit project @@ -753,7 +754,7 @@ text_load_default_configuration: Laad de standaardconfiguratie text_min_max_length_info: 0 betekent geen restrictie text_no_configuration_data: "Rollen, trackers, issue statussen en workflows zijn nog niet geconfigureerd.\nHet is ten zeerste aangeraden om de standaard configuratie in te laden. U kunt deze aanpassen nadat deze is ingeladen." - text_plugin_assets_writable: Plugin assets directory writable + text_plugin_assets_writable: Plugin assets directory beschrijfbaar text_project_destroy_confirmation: Weet u zeker dat u dit project en alle gerelateerde gegevens wilt verwijderen? text_project_identifier_info: 'kleine letters (a-z), cijfers en liggende streepjes toegestaan.
    Eenmaal bewaard kan de identificatiecode niet meer worden gewijzigd.' text_reassign_time_entries: 'Gerapporteerde uren opnieuw toewijzen:' @@ -778,7 +779,7 @@ text_custom_field_possible_values_info: 'Per lijn een waarde' label_display: Toon field_editable: Bewerkbaar - setting_repository_log_display_limit: Maximum hoeveelheid van revisies zichbaar + setting_repository_log_display_limit: Max aantal revisies zichbaar setting_file_max_size_displayed: Max grootte van tekst bestanden inline zichtbaar field_watcher: Watcher setting_openid: Sta OpenID login en registratie toe @@ -824,7 +825,7 @@ version_status_closed: gesloten version_status_locked: vergrendeld version_status_open: open - error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + error_can_not_reopen_issue_on_closed_version: Een issue toegewezen aan een gesloten versie kan niet heropend worden label_user_anonymous: Anoniem button_move_and_follow: Verplaats en volg setting_default_projects_modules: Standaard geactiveerde modules voor nieuwe projecten @@ -833,36 +834,36 @@ label_version_sharing_hierarchy: Met project hiërarchie label_version_sharing_system: Met alle projecten label_version_sharing_descendants: Met subprojecten - label_version_sharing_tree: With project tree + label_version_sharing_tree: Met project boom label_version_sharing_none: Niet gedeeld error_can_not_archive_project: Dit project kan niet worden gearchiveerd button_duplicate: Dupliceer button_copy_and_follow: Kopiëer en volg label_copy_source: Bron - setting_issue_done_ratio: Bereken issue done ratio met + setting_issue_done_ratio: Bereken issue percentage voldaan met setting_issue_done_ratio_issue_status: Gebruik de issue status - error_issue_done_ratios_not_updated: Issue done ratios niet geupdate. + error_issue_done_ratios_not_updated: Issue percentage voldaan niet geupdate. error_workflow_copy_target: Selecteer tracker(s) en rol(len) setting_issue_done_ratio_issue_field: Gebruik het issue veld label_copy_same_as_target: Zelfde als doel label_copy_target: Doel - notice_issue_done_ratios_updated: Issue done ratios updated. + notice_issue_done_ratios_updated: Issue percentage voldaan geupdate. error_workflow_copy_source: Selecteer een bron tracker of rol - label_update_issue_done_ratios: Update issue done ratios + label_update_issue_done_ratios: Update issue percentage voldaan setting_start_of_week: Week begint op permission_view_issues: Bekijk Issues label_display_used_statuses_only: Laat alleen statussen zien die gebruikt worden door deze tracker - label_revision_id: Revision {{value}} + label_revision_id: Revisie {{value}} label_api_access_key: API access key label_api_access_key_created_on: API access key gemaakt {{value}} geleden label_feeds_access_key: RSS access key notice_api_access_key_reseted: Uw API access key was gereset. - setting_rest_api_enabled: Enable REST web service + setting_rest_api_enabled: Activeer REST web service label_missing_api_access_key: Geen API access key label_missing_feeds_access_key: Geen RSS access key button_show: Laat zien text_line_separated: Meerdere waarden toegestaan (elke regel is een waarde). - setting_mail_handler_body_delimiters: Truncate emails after one of these lines + setting_mail_handler_body_delimiters: Breek email verwerking af na een van deze regels permission_add_subprojects: Maak subprojecten label_subproject_new: Nieuw subproject text_own_membership_delete_confirmation: |- @@ -873,10 +874,10 @@ label_board_locked: Vergrendeld permission_export_wiki_pages: Exporteer wiki pagina's setting_cache_formatted_text: Cache opgemaakte tekst - permission_manage_project_activities: Manage project activities + permission_manage_project_activities: Beheer project activiteiten error_unable_delete_issue_status: Verwijderen van issue status niet gelukt label_profile: Profiel - permission_manage_subtasks: Manage subtasks + permission_manage_subtasks: Beheer subtasks field_parent_issue: Parent task label_subtask_plural: Subtasks label_project_copy_notifications: Stuur email notificaties voor de project kopie @@ -891,6 +892,11 @@ text_zoom_in: Zoom in notice_unable_delete_time_entry: Verwijderen niet mogelijk van tijd log invoer. label_overall_spent_time: Totaal bestede tijd - field_time_entries: Log time + field_time_entries: Log tijd project_module_gantt: Gantt - project_module_calendar: Calendar + project_module_calendar: Kalender + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/no.yml --- a/config/locales/no.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/no.yml Fri Sep 24 14:06:04 2010 +0100 @@ -111,6 +111,7 @@ greater_than_start_date: "må være større enn startdato" not_same_project: "hører ikke til samme prosjekt" circular_dependency: "Denne relasjonen ville lagd en sirkulær avhengighet" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Vennligst velg @@ -903,3 +904,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/pl.yml --- a/config/locales/pl.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/pl.yml Fri Sep 24 14:06:04 2010 +0100 @@ -96,8 +96,8 @@ few: "ponad {{count}} lata" other: "ponad {{count}} lat" almost_x_years: - one: "almost 1 year" - other: "almost {{count}} years" + one: "prawie rok" + other: "prawie {{count}} lata" activerecord: errors: @@ -122,13 +122,14 @@ greater_than: "musi być większe niż {{count}}" greater_than_or_equal_to: "musi być większe lub równe {{count}}" equal_to: "musi być równe {{count}}" - less_than: "musie być mniejsze niż {{count}}" + less_than: "musi być mniejsze niż {{count}}" less_than_or_equal_to: "musi być mniejsze lub równe {{count}}" odd: "musi być nieparzyste" even: "musi być parzyste" greater_than_start_date: "musi być większe niż początkowa data" not_same_project: "nie należy do tego samego projektu" circular_dependency: "Ta relacja może wytworzyć kołową zależność" + cant_link_an_issue_with_a_descendant: "Zagadnienie nie może zostać powiązane z jednym z własnych podzagadnień" support: array: @@ -159,19 +160,19 @@ button_edit: Edytuj button_list: Lista button_lock: Zablokuj - button_log_time: Log czasu + button_log_time: Dziennik button_login: Login button_move: Przenieś button_quote: Cytuj button_rename: Zmień nazwę button_reply: Odpowiedz button_reset: Resetuj - button_rollback: Przywróc do tej wersji + button_rollback: Przywróć do tej wersji button_save: Zapisz button_sort: Sortuj button_submit: Wyślij button_test: Testuj - button_unarchive: Przywróc z archiwum + button_unarchive: Przywróć z archiwum button_uncheck_all: Odznacz wszystko button_unlock: Odblokuj button_unwatch: Nie obserwuj @@ -538,12 +539,12 @@ label_project_latest: Ostatnie projekty label_project_new: Nowy projekt label_project_plural234: Projekty - label_project_plural5: Projekty + label_project_plural5: Projektów label_project_plural: Projekty label_x_projects: - zero: no projects - one: 1 project - other: "{{count}} projects" + zero: brak projektów + one: jeden projekt + other: "{{count}} projektów" label_public_projects: Projekty publiczne label_query: Kwerenda label_query_new: Nowa kwerenda @@ -589,7 +590,7 @@ label_sort_highest: Przesuń na górę label_sort_lower: Do dołu label_sort_lowest: Przesuń na dół - label_spent_time: Spędzony czas + label_spent_time: Przepracowany czas label_start_to_end: początek do końca label_start_to_start: początek do początku label_statistics: Statystyki @@ -601,7 +602,7 @@ label_this_month: ten miesiąc label_this_week: ten tydzień label_this_year: ten rok - label_time_tracking: Śledzenie czasu + label_time_tracking: Śledzenie czasu pracy label_today: dzisiaj label_topic_plural: Tematy label_total: Ogółem @@ -683,11 +684,11 @@ permission_edit_messages: Edycja wiadomości permission_edit_own_issue_notes: Edycja własnych notatek permission_edit_own_messages: Edycja własnych wiadomości - permission_edit_own_time_entries: Edycja własnego logu czasu + permission_edit_own_time_entries: Edycja własnego dziennika permission_edit_project: Edycja projektów - permission_edit_time_entries: Edycja logów czasu + permission_edit_time_entries: Edycja wpisów dziennika permission_edit_wiki_pages: Edycja stron wiki - permission_log_time: Zapisywanie spędzonego czasu + permission_log_time: Zapisywanie przepracowanego czasu permission_manage_boards: Zarządzanie forami permission_manage_categories: Zarządzanie kategoriami zaganień permission_manage_documents: Zarządzanie dokumentami @@ -711,7 +712,7 @@ permission_view_gantt: Podgląd diagramu Gantta permission_view_issue_watchers: Podgląd listy obserwatorów permission_view_messages: Podgląd wiadomości - permission_view_time_entries: Podgląd spędzonego czasu + permission_view_time_entries: Podgląd przepracowanego czasu permission_view_wiki_edits: Podgląd historii wiki permission_view_wiki_pages: Podgląd wiki project_module_boards: Fora @@ -720,7 +721,7 @@ project_module_issue_tracking: Śledzenie zagadnień project_module_news: Komunikaty project_module_repository: Repozytorium - project_module_time_tracking: Śledzenie czasu + project_module_time_tracking: Śledzenie czasu pracy project_module_wiki: Wiki setting_activity_days_default: Dni wyświetlane w aktywności projektu setting_app_subtitle: Podtytuł aplikacji @@ -742,7 +743,7 @@ setting_feeds_limit: Limit danych RSS setting_gravatar_enabled: Używaj ikon użytkowników Gravatar setting_host_name: Nazwa hosta i ścieżka - setting_issue_list_default_columns: Domyślne kolumny wiświetlane na liście zagadnień + setting_issue_list_default_columns: Domyślne kolumny wyświetlane na liście zagadnień setting_issues_export_limit: Limit eksportu zagadnień setting_login_required: Identyfikacja wymagana setting_mail_from: Adres email wysyłki @@ -764,20 +765,20 @@ status_locked: zablokowany status_registered: zarejestrowany text_are_you_sure: Jesteś pewien ? - text_assign_time_entries_to_project: Przypisz logowany czas do projektu + text_assign_time_entries_to_project: Przypisz wpisy dziennika do projektu text_caracters_maximum: "{{count}} znaków maksymalnie." text_caracters_minimum: "Musi być nie krótsze niż {{count}} znaków." text_comma_separated: Wielokrotne wartości dozwolone (rozdzielone przecinkami). text_default_administrator_account_changed: Zmieniono domyślne hasło administratora - text_destroy_time_entries: Usuń zalogowany czas - text_destroy_time_entries_question: Zalogowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić? + text_destroy_time_entries: Usuń wpisy dziennika + text_destroy_time_entries_question: Przepracowano {{hours}} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić? text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml a następnie zrestartuj aplikację i uaktywnij to." text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:' text_enumeration_destroy_question: "{{count}} obiektów jest przypisana do tej wartości." text_file_repository_writable: Zapisywalne repozytorium plików text_issue_added: "Zagadnienie {{id}} zostało wprowadzone (by {{author}})." text_issue_category_destroy_assignments: Usuń przydziały kategorii - text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz uczynić?" + text_issue_category_destroy_question: "Zagadnienia ({{count}}) są przypisane do tej kategorii. Co chcesz zrobić?" text_issue_category_reassign_to: Przydziel zagadnienie do tej kategorii text_issue_updated: "Zagadnienie {{id}} zostało zaktualizowane (by {{author}})." text_issues_destroy_confirmation: 'Czy jestes pewien, że chcesz usunąć wskazane zagadnienia?' @@ -786,9 +787,9 @@ text_load_default_configuration: Załaduj domyślną konfigurację text_min_max_length_info: 0 oznacza brak restrykcji text_no_configuration_data: "Role użytkowników, typy zagadnień, statusy zagadnień oraz przepływ pracy nie zostały jeszcze skonfigurowane.\nJest wysoce rekomendowane by załadować domyślną konfigurację. Po załadowaniu będzie możliwość edycji tych danych." - text_project_destroy_confirmation: Jesteś pewien, że chcesz usunąć ten projekt i wszyskie powiązane dane? + text_project_destroy_confirmation: Jesteś pewien, że chcesz usunąć ten projekt i wszystkie powiązane dane? text_project_identifier_info: 'Małe litery (a-z), liczby i myślniki dozwolone.
    Raz zapisany, identyfikator nie może być zmieniony.' - text_reassign_time_entries: 'Przepnij zalogowany czas do tego zagadnienia:' + text_reassign_time_entries: 'Przepnij przepracowany czas do tego zagadnienia:' text_regexp_info: np. ^[A-Z0-9]+$ text_repository_usernames_mapping: "Wybierz lub uaktualnij przyporządkowanie użytkowników Redmine do użytkowników repozytorium.\nUżytkownicy z taką samą nazwą lub adresem email są przyporządkowani automatycznie." text_rmagick_available: RMagick dostępne (opcjonalnie) @@ -799,9 +800,9 @@ text_tip_task_begin_day: zadanie zaczynające się dzisiaj text_tip_task_begin_end_day: zadanie zaczynające i kończące się dzisiaj text_tip_task_end_day: zadanie kończące się dzisiaj - text_tracker_no_workflow: Brak przepływu zefiniowanego dla tego typu zagadnienia + text_tracker_no_workflow: Brak przepływu zdefiniowanego dla tego typu zagadnienia text_unallowed_characters: Niedozwolone znaki - text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnien, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)." + text_user_mail_option: "W przypadku niezaznaczonych projektów, będziesz otrzymywał powiadomienia tylko na temat zagadnień, które obserwujesz, lub w których bierzesz udział (np. jesteś autorem lub adresatem)." text_user_wrote: "{{value}} napisał:" text_wiki_destroy_confirmation: Jesteś pewien, że chcesz usunąć to wiki i całą jego zawartość ? text_workflow_edit: Zaznacz rolę i typ zagadnienia do edycji przepływu @@ -817,7 +818,7 @@ button_create_and_continue: Stwórz i dodaj kolejne text_custom_field_possible_values_info: 'Każda wartość w osobnej linii' setting_repository_log_display_limit: Maksymalna liczba rewizji pokazywanych w logu pliku - setting_file_max_size_displayed: Maksymalny rozmiar plików tekstowych zagnieżdżanych w stronie + setting_file_max_size_displayed: Maksymalny rozmiar plików tekstowych osadzanych w stronie field_watcher: Obserwator setting_openid: Logowanie i rejestracja przy użyciu OpenID field_identity_url: Identyfikator OpenID (URL) @@ -829,10 +830,10 @@ label_date_from_to: Od {{start}} do {{end}} label_greater_or_equal: ">=" label_less_or_equal: <= - text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do? - text_wiki_page_reassign_children: Reassign child pages to this parent page - text_wiki_page_nullify_children: Keep child pages as root pages - text_wiki_page_destroy_children: Delete child pages and all their descendants + text_wiki_page_destroy_question: Ta strona posiada podstrony ({{descendants}}). Co chcesz zrobić? + text_wiki_page_reassign_children: Podepnij je do strony nadrzędnej względem usuwanej + text_wiki_page_nullify_children: Przesuń je na szczyt hierarchii + text_wiki_page_destroy_children: Usuń wszystkie podstrony setting_password_min_length: Minimalna długość hasła field_group_by: Grupuj wyniki wg mail_subject_wiki_content_updated: "Strona wiki '{{page}}' została uaktualniona" @@ -844,7 +845,7 @@ permission_add_project: Tworzenie projektu setting_new_project_user_role_id: Rola nadawana twórcom projektów, którzy nie posiadają uprawnień administatora label_view_all_revisions: Pokaż wszystkie rewizje - label_tag: Tag + label_tag: Słowo kluczowe label_branch: Gałąź error_no_tracker_in_project: Projekt nie posiada powiązanych typów zagadnień. Sprawdź ustawienia projektu. error_no_default_issue_status: Nie zdefiniowano domyślnego statusu zagadnień. Sprawdź konfigurację (Przejdź do "Administracja -> Statusy zagadnień). @@ -854,7 +855,7 @@ label_group_plural: Grupy label_group: Grupa label_group_new: Nowa grupa - label_time_entry_plural: Spędzony czas + label_time_entry_plural: Przepracowany czas text_journal_added: "Dodano {{label}} {{value}}" field_active: Aktywne enumeration_system_activity: Aktywność Systemowa @@ -912,24 +913,29 @@ label_board_locked: Zamknięta permission_export_wiki_pages: Eksport stron wiki permission_manage_project_activities: Zarządzanie aktywnościami projektu - setting_cache_formatted_text: Cache formatted text - error_unable_delete_issue_status: Unable to delete issue status - label_profile: Profile - permission_manage_subtasks: Manage subtasks - field_parent_issue: Parent task - label_subtask_plural: Subtasks - label_project_copy_notifications: Send email notifications during the project copy - error_can_not_delete_custom_field: Unable to delete custom field - error_unable_to_connect: Unable to connect ({{value}}) - error_can_not_remove_role: This role is in use and can not be deleted. - error_can_not_delete_tracker: This tracker contains issues and can't be deleted. - field_principal: Principal - label_my_page_block: My page block - notice_failed_to_save_members: "Failed to save member(s): {{errors}}." - text_zoom_out: Zoom out - text_zoom_in: Zoom in - notice_unable_delete_time_entry: Unable to delete time log entry. - label_overall_spent_time: Overall spent time - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + setting_cache_formatted_text: Buforuj sformatowany tekst + error_unable_delete_issue_status: Nie można usunąć statusu zagadnienia + label_profile: Profil + permission_manage_subtasks: Zarządzanie podzagadnieniami + field_parent_issue: Zagadnienie nadrzędne + label_subtask_plural: Podzagadnienia + label_project_copy_notifications: Wyślij powiadomienia mailowe przy kopiowaniu projektu + error_can_not_delete_custom_field: Nie można usunąć tego pola + error_unable_to_connect: Nie można połączyć ({{value}}) + error_can_not_remove_role: Ta rola przypisana jest niektórym użytkownikom i nie może zostać usunięta. + error_can_not_delete_tracker: Ten typ przypisany jest do części zagadnień i nie może zostać usunięty. + field_principal: Przełożony + label_my_page_block: Elementy + notice_failed_to_save_members: "Nie można zapisać uczestników: {{errors}}." + text_zoom_out: Zmniejsz czcionkę + text_zoom_in: Powiększ czcionkę + notice_unable_delete_time_entry: Nie można usunąć wpisu z dziennika. + label_overall_spent_time: Przepracowany czas + field_time_entries: Dziennik + project_module_gantt: Diagram Gantta + project_module_calendar: Kalendarz + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/pt-BR.yml --- a/config/locales/pt-BR.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/pt-BR.yml Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "deve ser maior que a data inicial" not_same_project: "não pertence ao mesmo projeto" circular_dependency: "Esta relação geraria uma dependência circular" + cant_link_an_issue_with_a_descendant: "Uma tarefa não pode ser relaciona a uma de suas subtarefas" actionview_instancetag_blank_option: Selecione @@ -936,3 +937,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/pt.yml --- a/config/locales/pt.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/pt.yml Fri Sep 24 14:06:04 2010 +0100 @@ -128,6 +128,7 @@ greater_than_start_date: "deve ser maior que a data inicial" not_same_project: "não pertence ao mesmo projecto" circular_dependency: "Esta relação iria criar uma dependência circular" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" ## Translated by: Pedro Araújo actionview_instancetag_blank_option: Seleccione @@ -920,3 +921,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/ro.yml --- a/config/locales/ro.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/ro.yml Fri Sep 24 14:06:04 2010 +0100 @@ -110,6 +110,7 @@ greater_than_start_date: "trebuie să fie după data de început" not_same_project: "trebuie să aparțină aceluiași proiect" circular_dependency: "Această relație ar crea o dependență circulară" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Selectați @@ -905,3 +906,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/ru.yml --- a/config/locales/ru.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/ru.yml Fri Sep 24 14:06:04 2010 +0100 @@ -192,11 +192,12 @@ equal_to: "может иметь лишь значение, равное {{count}}" less_than: "может иметь значение меньшее чем {{count}}" less_than_or_equal_to: "может иметь значение меньшее или равное {{count}}" - odd: "может иметь лишь четное значение" - even: "может иметь лишь нечетное значение" + odd: "может иметь лишь нечетное значение" + even: "может иметь лишь четное значение" greater_than_start_date: "должна быть позднее даты начала" - not_same_project: "не относятся к одному проекту" + not_same_project: "не относится к одному проекту" circular_dependency: "Такая связь приведет к циклической зависимости" + cant_link_an_issue_with_a_descendant: "Задача не может быть связана со своей подзадачей" support: array: @@ -229,6 +230,7 @@ button_delete: Удалить button_download: Загрузить button_edit: Редактировать + button_edit_associated_wikipage: "Редактировать связанную wiki-страницу: {{page_title}}" button_list: Список button_lock: Заблокировать button_login: Вход @@ -293,6 +295,7 @@ field_admin: Администратор field_assignable: Задача может быть назначена этой роли field_assigned_to: Назначена + field_assigned_to_role: Роль участника field_attr_firstname: Имя field_attr_lastname: Фамилия field_attr_login: Атрибут Регистрация @@ -342,6 +345,7 @@ field_mail: Email field_mail_notification: Уведомления по email field_max_length: Максимальная длина + field_member_of_group: Группа участника field_min_length: Минимальная длина field_name: Имя field_new_password: Новый пароль @@ -367,6 +371,7 @@ field_subject: Тема field_subproject: Подпроект field_summary: Сводка + field_text: Текстовое поле field_time_entries: Затраченное время field_time_zone: Часовой пояс field_title: Название @@ -895,7 +900,8 @@ status_active: активен status_locked: заблокирован status_registered: зарегистрирован - + + text_are_you_sure_with_children: Удалить задачу и все ее подзадачи? text_are_you_sure: Подтвердите text_assign_time_entries_to_project: Прикрепить зарегистрированное время к проекту text_caracters_maximum: "Максимум {{count}} символов(а)." diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/sk.yml --- a/config/locales/sk.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/sk.yml Fri Sep 24 14:06:04 2010 +0100 @@ -112,6 +112,7 @@ greater_than_start_date: "musí byť neskôr ako počiatočný dátum" not_same_project: "nepatrí rovnakému projektu" circular_dependency: "Tento vzťah by vytvoril cyklickú závislosť" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" # SK translation by Stanislav Pach | stano.pach@seznam.cz @@ -907,3 +908,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/sl.yml --- a/config/locales/sl.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/sl.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "mora biti kasnejši kot začeten datum" not_same_project: "ne pripada istemu projektu" circular_dependency: "Ta odnos bi povzročil krožno odvisnost" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Prosimo izberite @@ -908,3 +909,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/sr-YU.yml --- a/config/locales/sr-YU.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/sr-YU.yml Fri Sep 24 14:06:04 2010 +0100 @@ -68,7 +68,7 @@ number: format: - separator: "." + separator: "," delimiter: "" precision: 3 human: @@ -910,6 +910,11 @@ enumeration_activities: Aktivnosti (praćenje vremena) enumeration_system_activity: Sistemska aktivnost - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_time_entries: Vreme evidencije + project_module_gantt: Gantov dijagram + project_module_calendar: Kalendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/sr.yml --- a/config/locales/sr.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/sr.yml Fri Sep 24 14:06:04 2010 +0100 @@ -68,7 +68,7 @@ number: format: - separator: "." + separator: "," delimiter: "" precision: 3 human: @@ -910,6 +910,12 @@ enumeration_activities: Активности (праћење времена) enumeration_system_activity: Системска активност - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_time_entries: Време евиденције + project_module_gantt: Гантов дијаграм + project_module_calendar: Календар + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/sv.yml --- a/config/locales/sv.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/sv.yml Fri Sep 24 14:06:04 2010 +0100 @@ -130,6 +130,7 @@ greater_than_start_date: "måste vara senare än startdatumet" not_same_project: "tillhör inte samma projekt" circular_dependency: "Denna relation skulle skapa ett cirkulärt beroende" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" direction: ltr date: @@ -325,6 +326,7 @@ field_redirect_existing_links: Omdirigera existerande länkar field_estimated_hours: Estimerad tid field_column_names: Kolumner + field_time_entries: Spenderad tid field_time_zone: Tidszon field_searchable: Sökbar field_default_value: Standardvärde @@ -456,6 +458,8 @@ project_module_wiki: Wiki project_module_repository: Versionsarkiv project_module_boards: Forum + project_module_calendar: Kalender + project_module_gantt: Gantt label_user: Användare label_user_plural: Användare @@ -857,7 +861,7 @@ button_update: Uppdatera button_configure: Konfigurera button_quote: Citera - button_duplicate: Duplisera + button_duplicate: Duplicera button_show: Visa status_active: aktiv @@ -954,6 +958,8 @@ enumeration_doc_categories: Dokumentkategorier enumeration_activities: Aktiviteter (tidsuppföljning) enumeration_system_activity: Systemaktivitet - field_time_entries: Log time - project_module_gantt: Gantt - project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/th.yml --- a/config/locales/th.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/th.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "ต้องมากกว่าวันเริ่ม" not_same_project: "ไม่ได้อยู่ในโครงการเดียวกัน" circular_dependency: "ความสัมพันธ์อ้างอิงเป็นวงกลม" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: กรุณาเลือก @@ -909,3 +910,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/tr.yml --- a/config/locales/tr.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/tr.yml Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,7 @@ greater_than_start_date: "başlangıç tarihinden büyük olmalı" not_same_project: "aynı projeye ait değil" circular_dependency: "Bu ilişki döngüsel bağımlılık meydana getirecektir" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" models: actionview_instancetag_blank_option: Lütfen Seçin @@ -935,3 +936,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/uk.yml --- a/config/locales/uk.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/uk.yml Fri Sep 24 14:06:04 2010 +0100 @@ -116,6 +116,7 @@ greater_than_start_date: "повинна бути пізніша за дату початку" not_same_project: "не відносяться до одного проекту" circular_dependency: "Такий зв'язок приведе до циклічної залежності" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: Оберіть @@ -908,3 +909,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/vi.yml --- a/config/locales/vi.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/vi.yml Fri Sep 24 14:06:04 2010 +0100 @@ -139,6 +139,7 @@ greater_than_start_date: "phải đi sau ngày bắt đầu" not_same_project: "không thuộc cùng dự án" circular_dependency: "quan hệ có thể gây ra lặp vô tận" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" direction: ltr date: @@ -967,3 +968,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/zh-TW.yml --- a/config/locales/zh-TW.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/zh-TW.yml Fri Sep 24 14:06:04 2010 +0100 @@ -177,6 +177,7 @@ greater_than_start_date: "必須在起始日期之後" not_same_project: "不屬於同一個專案" circular_dependency: "這個關聯會導致環狀相依" + cant_link_an_issue_with_a_descendant: "項目無法被連結至自己的子項目" # You can define own errors for models or model attributes. # The values :model, :attribute and :value are always available for interpolation. @@ -365,6 +366,7 @@ field_redirect_existing_links: 重新導向現有連結 field_estimated_hours: 預估工時 field_column_names: 欄位 + field_time_entries: 耗用工時 field_time_zone: 時區 field_searchable: 可用做搜尋條件 field_default_value: 預設值 @@ -377,8 +379,10 @@ field_group_by: 結果分組方式 field_sharing: 共用 field_parent_issue: 父工作項目 - field_time_entries: 耗用工時 - + field_member_of_group: 所屬群組 + field_assigned_to_role: 所屬角色 + field_text: 內容文字 + setting_app_title: 標題 setting_app_subtitle: 副標題 setting_welcome_text: 歡迎詞 @@ -869,6 +873,7 @@ button_create_and_continue: 繼續建立 button_test: 測試 button_edit: 編輯 + button_edit_associated_wikipage: "編輯相關 Wiki 頁面: {{page_title}}" button_add: 新增 button_change: 修改 button_apply: 套用 @@ -920,6 +925,7 @@ text_subprojects_destroy_warning: "下列子專案: {{value}} 將一併被刪除。" text_workflow_edit: 選擇角色與追蹤標籤以設定其工作流程 text_are_you_sure: 確定執行? + text_are_you_sure_with_children: "確定刪除此工作項目及其子項目?" text_journal_changed: "{{label}} 從 {{old}} 變更為 {{new}}" text_journal_set_to: "{{label}} 設定為 {{value}}" text_journal_deleted: "{{label}} 已刪除 ({{old}})" @@ -997,3 +1003,4 @@ enumeration_doc_categories: 文件分類 enumeration_activities: 活動 (時間追蹤) enumeration_system_activity: 系統活動 + diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/locales/zh.yml --- a/config/locales/zh.yml Wed Aug 25 16:30:24 2010 +0100 +++ b/config/locales/zh.yml Fri Sep 24 14:06:04 2010 +0100 @@ -137,6 +137,7 @@ greater_than_start_date: "必须在起始日期之后" not_same_project: "不属于同一个项目" circular_dependency: "此关联将导致循环依赖" + cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks" actionview_instancetag_blank_option: 请选择 @@ -930,3 +931,8 @@ field_time_entries: Log time project_module_gantt: Gantt project_module_calendar: Calendar + field_member_of_group: Member of Group + field_assigned_to_role: Member of Role + button_edit_associated_wikipage: "Edit associated Wiki page: {{page_title}}" + text_are_you_sure_with_children: Delete issue and all child issues? + field_text: Text field diff -r 1d32c0a0efbf -r 40f7cfd4df19 config/routes.rb --- a/config/routes.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/config/routes.rb Fri Sep 24 14:06:04 2010 +0100 @@ -104,58 +104,39 @@ end map.resources :issue_moves, :only => [:new, :create], :path_prefix => '/issues', :as => 'move' + + # Misc issue routes. TODO: move into resources map.auto_complete_issues '/issues/auto_complete', :controller => 'auto_completes', :action => 'issues' - # TODO: would look nicer as /issues/:id/preview - map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' + map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' # TODO: would look nicer as /issues/:id/preview map.issues_context_menu '/issues/context_menu', :controller => 'context_menus', :action => 'issues' map.issue_changes '/issues/changes', :controller => 'journals', :action => 'index' + map.bulk_edit_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_edit', :conditions => { :method => :get } + map.bulk_update_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_update', :conditions => { :method => :post } + map.quoted_issue '/issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/, :conditions => { :method => :post } + map.connect '/issues/:id/destroy', :controller => 'issues', :action => 'destroy', :conditions => { :method => :post } # legacy + + map.resource :gantt, :path_prefix => '/issues', :controller => 'gantts', :only => [:show, :update] + map.resource :gantt, :path_prefix => '/projects/:project_id/issues', :controller => 'gantts', :only => [:show, :update] + map.resource :calendar, :path_prefix => '/issues', :controller => 'calendars', :only => [:show, :update] + map.resource :calendar, :path_prefix => '/projects/:project_id/issues', :controller => 'calendars', :only => [:show, :update] + + map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| + reports.connect 'projects/:id/issues/report', :action => 'issue_report' + reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' + end + + # Following two routes conflict with the resources because #index allows POST + map.connect '/issues', :controller => 'issues', :action => 'index', :conditions => { :method => :post } + map.connect '/issues/create', :controller => 'issues', :action => 'index', :conditions => { :method => :post } - map.with_options :controller => 'issues' do |issues_routes| - issues_routes.with_options :conditions => {:method => :get} do |issues_views| - issues_views.connect 'issues', :action => 'index' - issues_views.connect 'issues.:format', :action => 'index' - issues_views.connect 'projects/:project_id/issues', :action => 'index' - issues_views.connect 'projects/:project_id/issues.:format', :action => 'index' - issues_views.connect 'projects/:project_id/issues/new', :action => 'new' - issues_views.connect 'projects/:project_id/issues/gantt', :controller => 'gantts', :action => 'show' - issues_views.connect 'projects/:project_id/issues/calendar', :controller => 'calendars', :action => 'show' - issues_views.connect 'projects/:project_id/issues/:copy_from/copy', :action => 'new' - issues_views.connect 'issues/:id', :action => 'show', :id => /\d+/ - issues_views.connect 'issues/:id.:format', :action => 'show', :id => /\d+/ - issues_views.connect 'issues/:id/edit', :action => 'edit', :id => /\d+/ - end - issues_routes.with_options :conditions => {:method => :post} do |issues_actions| - issues_actions.connect 'issues', :action => 'index' - issues_actions.connect 'projects/:project_id/issues', :action => 'create' - issues_actions.connect 'projects/:project_id/issues/gantt', :controller => 'gantts', :action => 'show' - issues_actions.connect 'projects/:project_id/issues/calendar', :controller => 'calendars', :action => 'show' - issues_actions.connect 'issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/ - issues_actions.connect 'issues/:id/:action', :action => /edit|destroy/, :id => /\d+/ - issues_actions.connect 'issues.:format', :action => 'create', :format => /xml/ - issues_actions.connect 'issues/bulk_edit', :action => 'bulk_update' - end - issues_routes.with_options :conditions => {:method => :put} do |issues_actions| - issues_actions.connect 'issues/:id/edit', :action => 'update', :id => /\d+/ - issues_actions.connect 'issues/:id.:format', :action => 'update', :id => /\d+/, :format => /xml/ - end - issues_routes.with_options :conditions => {:method => :delete} do |issues_actions| - issues_actions.connect 'issues/:id.:format', :action => 'destroy', :id => /\d+/, :format => /xml/ - end - issues_routes.connect 'issues/gantt', :controller => 'gantts', :action => 'show' - issues_routes.connect 'issues/calendar', :controller => 'calendars', :action => 'show' - issues_routes.connect 'issues/:action' - end + map.resources :issues, :member => { :edit => :post }, :collection => {} + map.resources :issues, :path_prefix => '/projects/:project_id', :collection => { :create => :post } map.with_options :controller => 'issue_relations', :conditions => {:method => :post} do |relations| relations.connect 'issues/:issue_id/relations/:id', :action => 'new' relations.connect 'issues/:issue_id/relations/:id/destroy', :action => 'destroy' end - map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| - reports.connect 'projects/:id/issues/report', :action => 'issue_report' - reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' - end - map.with_options :controller => 'news' do |news_routes| news_routes.with_options :conditions => {:method => :get} do |news_views| news_views.connect 'news', :action => 'index' @@ -167,10 +148,13 @@ news_views.connect 'news/:id/edit', :action => 'edit' end news_routes.with_options do |news_actions| - news_actions.connect 'projects/:project_id/news', :action => 'new' - news_actions.connect 'news/:id/edit', :action => 'edit' + news_actions.connect 'projects/:project_id/news', :action => 'create', :conditions => {:method => :post} news_actions.connect 'news/:id/destroy', :action => 'destroy' end + news_routes.connect 'news/:id/edit', :action => 'update', :conditions => {:method => :put} + + news_routes.connect 'news/:id/comments', :controller => 'comments', :action => 'create', :conditions => {:method => :post} + news_routes.connect 'news/:id/comments/:comment_id', :controller => 'comments', :action => 'destroy', :conditions => {:method => :delete} end map.connect 'projects/:id/members/new', :controller => 'members', :action => 'new' @@ -191,53 +175,41 @@ user_actions.connect 'users/:id/memberships/:membership_id/destroy', :action => 'destroy_membership' end end - - map.with_options :controller => 'projects' do |projects| - projects.with_options :conditions => {:method => :get} do |project_views| - project_views.connect 'projects', :action => 'index' - project_views.connect 'projects.:format', :action => 'index' - project_views.connect 'projects/new', :action => 'add' - project_views.connect 'projects/:id', :action => 'show' - project_views.connect 'projects/:id.:format', :action => 'show' - project_views.connect 'projects/:id/:action', :action => /roadmap|destroy|settings/ - project_views.connect 'projects/:id/files', :action => 'list_files' - project_views.connect 'projects/:id/files/new', :action => 'add_file' - project_views.connect 'projects/:id/settings/:tab', :action => 'settings' - end - projects.with_options :action => 'activity', :conditions => {:method => :get} do |activity| - activity.connect 'projects/:id/activity' - activity.connect 'projects/:id/activity.:format' - activity.connect 'activity', :id => nil - activity.connect 'activity.:format', :id => nil - end - - projects.with_options :conditions => {:method => :post} do |project_actions| - project_actions.connect 'projects/new', :action => 'add' - project_actions.connect 'projects', :action => 'add' - project_actions.connect 'projects.:format', :action => 'add', :format => /xml/ - project_actions.connect 'projects/:id/:action', :action => /edit|destroy|archive|unarchive/ - project_actions.connect 'projects/:id/files/new', :action => 'add_file' - project_actions.connect 'projects/:id/activities/save', :action => 'save_activities' - end + # For nice "roadmap" in the url for the index action + map.connect 'projects/:project_id/roadmap', :controller => 'versions', :action => 'index' - projects.with_options :conditions => {:method => :put} do |project_actions| - project_actions.conditions 'projects/:id.:format', :action => 'edit', :format => /xml/ - end + map.resources :projects, :member => { + :copy => [:get, :post], + :settings => :get, + :modules => :post, + :archive => :post, + :unarchive => :post + } do |project| + project.resource :project_enumerations, :as => 'enumerations', :only => [:update, :destroy] + project.resources :files, :only => [:index, :new, :create] + project.resources :versions, :collection => {:close_completed => :put}, :member => {:status_by => :post} + end - projects.with_options :conditions => {:method => :delete} do |project_actions| - project_actions.conditions 'projects/:id.:format', :action => 'destroy', :format => /xml/ - project_actions.conditions 'projects/:id/reset_activities', :action => 'reset_activities' + # Destroy uses a get request to prompt the user before the actual DELETE request + map.project_destroy_confirm 'projects/:id/destroy', :controller => 'projects', :action => 'destroy', :conditions => {:method => :get} + + # TODO: port to be part of the resources route(s) + map.with_options :controller => 'projects' do |project_mapper| + project_mapper.with_options :conditions => {:method => :get} do |project_views| + project_views.connect 'projects/:id/settings/:tab', :controller => 'projects', :action => 'settings' + project_views.connect 'projects/:project_id/issues/:copy_from/copy', :controller => 'issues', :action => 'new' end end - map.with_options :controller => 'versions' do |versions| - versions.connect 'projects/:project_id/versions/new', :action => 'new' - versions.with_options :conditions => {:method => :post} do |version_actions| - version_actions.connect 'projects/:project_id/versions/close_completed', :action => 'close_completed' - end + map.with_options :controller => 'activities', :action => 'index', :conditions => {:method => :get} do |activity| + activity.connect 'projects/:id/activity' + activity.connect 'projects/:id/activity.:format' + activity.connect 'activity', :id => nil + activity.connect 'activity.:format', :id => nil end - + + map.with_options :controller => 'issue_categories' do |categories| categories.connect 'projects/:project_id/issue_categories/new', :action => 'new' end diff -r 1d32c0a0efbf -r 40f7cfd4df19 db/.svn/entries --- a/db/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/db/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/db http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 db/migrate/.svn/entries --- a/db/migrate/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/db/migrate/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/db/migrate http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.895727Z e1234fbaef167ddc0013ffe1d3bc67b9 2007-11-04T11:40:17.595469Z 881 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.891758Z 0b2c38434ec4b25c41f50963a46a3bc6 2007-06-12T20:12:05.590809Z 559 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.927757Z dba48c03009eb5bcbd2f686a37c42147 2009-10-17T22:23:29.892475Z 2928 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.911755Z b17611805f3b447ec0f0b703ea8b6d10 2008-11-10T18:59:06.897210Z 2006 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.883725Z 23ebbc94eb59590d0f0b200b4b38289b 2007-08-29T16:52:35.680643Z 674 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.895727Z ffabca1301a0ade41918ec9d6618fda0 2008-07-04T17:58:14.743502Z 1623 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.879727Z e6ff0ff9c004d9688e79b550991ec109 2007-08-29T16:52:35.680643Z 674 @@ -270,7 +270,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.883725Z 39c994e2469a6dfb97fa50cf595439e8 2007-04-25T15:06:20.062636Z 479 @@ -304,7 +304,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.883725Z 828df977f9e16943bc74595c65774c62 2007-03-10T15:09:49.115269Z 323 @@ -338,7 +338,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.919754Z eea8e3f0a1fe28e8c686af190259a3d6 2009-09-12T08:36:46.650954Z 2869 @@ -372,7 +372,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.895727Z 06c8b504bcdd08c2f5dcf14a0b927420 2007-11-20T15:40:16.305800Z 919 @@ -406,7 +406,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.927757Z 283fb200008f4dae98e0b3d46f0b97aa 2009-10-17T22:23:29.892475Z 2928 @@ -440,7 +440,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.879727Z da329a16de705c673418c18119f788d8 2007-08-29T16:52:35.680643Z 674 @@ -474,7 +474,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.879727Z 5bb1427a275abe1f2ec4b6b03a087cd8 2006-12-03T19:55:45.161980Z 62 @@ -508,7 +508,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.883725Z f4c10807bb47b69af35e9402966089f1 2007-02-04T09:18:40.598564Z 228 @@ -542,7 +542,7 @@ -2010-07-23T14:49:46.228093Z +2010-09-23T14:37:44.883725Z 42937036f9c414f7d9b028f629b1ce20 2007-08-29T16:52:35.680643Z 674 @@ -576,7 +576,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.927757Z c5d86ec3cda95998a3fb590c6f492b6b 2009-12-20T19:13:22.787652Z 3206 @@ -610,7 +610,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.923753Z b2f88560d10a9676bdb65e18f9a13d65 2009-10-17T22:23:29.892475Z 2928 @@ -644,7 +644,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.883725Z a269e98b11a4d0d865c82328d7af5663 2007-03-25T12:12:15.060977Z 377 @@ -678,7 +678,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.911755Z 69a42a62536b1f435ce1080ceccb4c75 2009-01-17T11:18:04.652409Z 2276 @@ -712,7 +712,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.923753Z 84bec26b6eaebc64c437c5a3b4784a94 2009-10-17T22:23:29.892475Z 2928 @@ -746,7 +746,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.899726Z 53ee6af48c18534db0ffdd4fa5c5df7f 2008-09-13T16:31:11.005265Z 1814 @@ -780,7 +780,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.915753Z d343c3ba8f04d1cc71f20c9860d5907b 2009-05-30T23:30:36.923541Z 2777 @@ -814,7 +814,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.899726Z 611baff063a1d909ba581aa98018cae7 2008-03-12T20:28:49.748698Z 1236 @@ -848,7 +848,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.883725Z f1b96e04888c0a48bf29dd0556ba8027 2007-08-29T16:52:35.680643Z 674 @@ -882,7 +882,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.927757Z 72e8d36a80b63657037f175b368f2e2c 2009-10-17T22:23:29.892475Z 2928 @@ -916,7 +916,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.895727Z 891f793e4f2ab50f57b8488c764ceff1 2008-07-04T17:58:14.743502Z 1623 @@ -950,7 +950,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.883725Z 82595f307b6fe5053151a681b737f063 2007-04-25T15:06:20.062636Z 479 @@ -984,7 +984,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.919754Z c460bb38faa03667fc34a3b131ec40df 2009-06-14T09:19:20.900273Z 2787 @@ -1018,7 +1018,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.915753Z b175e6c85c5faf4b5d2f092f65338b10 2009-02-11T19:06:55.627694Z 2440 @@ -1052,7 +1052,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.927757Z 7aa35de55587b897fea800e8044039a8 2009-12-20T19:13:22.787652Z 3206 @@ -1086,7 +1086,7 @@ -2010-08-25T15:27:56.734487Z +2010-09-23T14:37:44.931783Z e4eff12465b879f063cac04a709438b9 2010-08-22T18:42:00.112555Z 4013 @@ -1120,7 +1120,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.887754Z 0492f13cf6f16f90603fdd82c388bace 2007-05-08T09:26:57.307537Z 518 @@ -1154,7 +1154,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.931783Z 9a69054334fcbc6b72eb8b5ae9957129 2009-12-27T11:57:13.519273Z 3254 @@ -1188,7 +1188,7 @@ -2010-07-23T14:49:46.232194Z +2010-09-23T14:37:44.899726Z b17259dfa6f46844e0f86b110577fbc6 2008-03-09T15:36:47.697904Z 1220 @@ -1222,7 +1222,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.919754Z e00a737604d0be6b94c92236e4f378eb 2009-05-10T10:54:31.775505Z 2726 @@ -1256,7 +1256,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.883725Z 2fb7c5a95c8ed07756c3fbb917c98230 2007-10-22T21:07:13.432482Z 864 @@ -1290,7 +1290,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.879727Z 1702102b56ee973066c86d659252a366 2007-08-29T16:52:35.680643Z 674 @@ -1324,7 +1324,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.887754Z 0c630c7ad4fbe9ccbb897363a422efa6 2007-04-17T10:53:20.697217Z 447 @@ -1358,7 +1358,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.931783Z 6e9fdd6731ba51e864563938c05ed9da 2010-02-21T14:40:00.085842Z 3471 @@ -1392,7 +1392,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.887754Z 8e58d8ec43e40266d62fd64b4b6a9a09 2007-05-13T17:09:56.765659Z 529 @@ -1426,7 +1426,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.931783Z 6350cf7f18c7d61d54bf2bfa55e108d3 2009-12-25T17:13:58.090736Z 3240 @@ -1460,7 +1460,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.883725Z 3216f04b6b84aaa6d29bc0f3e5d8c462 2007-08-29T16:52:35.680643Z 674 @@ -1494,7 +1494,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.887754Z fb852fdf1ab4266ab05a36ff105b7ceb 2007-10-22T21:07:13.432482Z 864 @@ -1528,7 +1528,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.895727Z 9f0c1dd813015fc37cd47062fe15ef91 2008-02-12T21:11:16.312726Z 1140 @@ -1562,7 +1562,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.923753Z e08dfbd6aca488a1513bfe7c59e2da90 2009-10-17T22:23:29.892475Z 2928 @@ -1596,7 +1596,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.927757Z 767d76b65ff41dd9860747d14bb24ee1 2009-12-20T19:13:22.787652Z 3206 @@ -1630,7 +1630,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.919754Z 93159e216a0265b8f239566bfb91fd8e 2009-10-17T22:23:29.892475Z 2928 @@ -1664,7 +1664,7 @@ -2010-07-28T11:07:47.324170Z +2010-09-23T14:37:44.931783Z 5fa98acba6010a7450722133bfb66962 2010-07-24T00:19:32.307471Z 3860 @@ -1698,7 +1698,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.923753Z eeff80bd1cee52d49f1eb78fab035adf 2009-10-17T22:23:29.892475Z 2928 @@ -1732,7 +1732,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.927757Z 09b6720db5ea81c8e22aff9dd89fc0bd 2009-10-17T22:23:29.892475Z 2928 @@ -1766,7 +1766,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.895727Z b392b3c84d6d7b8bba99011778f5b54e 2007-11-20T20:29:03.757553Z 920 @@ -1800,7 +1800,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.923753Z 2ae2d679057fe2db7b7a8bdabc2cbf6d 2009-10-17T22:23:29.892475Z 2928 @@ -1834,7 +1834,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.915753Z 01a97aa31f8b9917a84790f23e0e90d1 2009-10-21T22:34:34.183882Z 2947 @@ -1868,7 +1868,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.915753Z af4786659f25d96a43468cdc4bcfae44 2009-02-11T19:06:50.454280Z 2439 @@ -1902,7 +1902,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.895727Z 82e35d32f60c71db17de62592693c737 2007-10-20T12:47:05.860183Z 855 @@ -1936,7 +1936,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.887754Z 3ac5fb29973ffa0ca94ac90387c73b78 2007-08-29T16:52:35.680643Z 674 @@ -1970,7 +1970,7 @@ -2010-07-23T14:49:46.236128Z +2010-09-23T14:37:44.895727Z db7f5c6597e13933c96cb58cbbd1f0bd 2007-10-05T17:44:15.414646Z 803 @@ -2004,7 +2004,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.887754Z e61809aaf1ac8a2a290c4574ed598ff0 2007-04-02T06:29:09.277122Z 397 @@ -2038,7 +2038,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.931783Z 243f136f05a508fff7ca52423f65c959 2010-03-13T17:17:10.453825Z 3578 @@ -2072,7 +2072,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.895727Z e5f0fe89be9a00fe1f8b246bde88fca1 2007-10-01T08:44:17.920088Z 782 @@ -2106,7 +2106,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.927757Z bb79c723b9d9fdabe49ed18ebb8a6caf 2009-12-11T18:48:34.197724Z 3151 @@ -2140,7 +2140,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.883725Z b8b7c422c3d666340afaec3a52c5d6a4 2007-10-22T21:07:13.432482Z 864 @@ -2174,7 +2174,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.875728Z b740a77ff87e6390f7ad86eaf0710040 2008-08-25T16:35:20.899166Z 1764 @@ -2208,7 +2208,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.919754Z 55350d451c622488f9358f7bbe12d4de 2009-10-10T10:16:00.250819Z 2905 @@ -2242,7 +2242,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.879727Z e770aa6387bb4737804d5024e743cd25 2007-08-29T16:52:35.680643Z 674 @@ -2276,7 +2276,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.927757Z 4cedb1faff3054d9be6250b589882b50 2009-10-17T22:23:29.892475Z 2928 @@ -2310,7 +2310,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.887754Z 4901b560613f6a0ae3e5df5bcf2dd11c 2007-04-25T16:48:01.299251Z 482 @@ -2344,7 +2344,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.923753Z 0e1e45e51997617f8672e6d0d5ed8e51 2009-10-17T22:23:29.892475Z 2928 @@ -2378,7 +2378,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.899726Z f60a0c1f633a6ff65fb2734173b57fe4 2008-02-29T19:46:58.834023Z 1180 @@ -2412,7 +2412,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.891758Z 31acec69fd7efa0c26dec61f860b0c85 2007-09-09T17:05:38.846724Z 720 @@ -2446,7 +2446,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.927757Z 871a600c06a6965f52c63177a82fbe15 2009-10-17T22:23:29.892475Z 2928 @@ -2480,7 +2480,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.911755Z 320b459ced6ed78d09a3743ad60b3200 2009-01-18T10:54:08.545108Z 2279 @@ -2514,7 +2514,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.899726Z cf04e90903f0d068e4503cb465026ef7 2008-05-25T13:37:29.456358Z 1457 @@ -2548,7 +2548,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.899726Z 5be8fe0eee7c90901f9ba49030412f40 2008-05-04T15:05:38.117137Z 1415 @@ -2582,7 +2582,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.887754Z 07bf6636d0acf3ec84b38648bbe2c07a 2007-04-21T12:09:07.794422Z 454 @@ -2616,7 +2616,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.895727Z be494b64b18017ebe3ccdff9a34abdbd 2007-11-24T12:25:07.449637Z 926 @@ -2650,7 +2650,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.891758Z 0abbef63f1f391688df012906a94877b 2008-03-09T18:25:37.323226Z 1222 @@ -2684,7 +2684,7 @@ -2010-07-23T14:49:46.240118Z +2010-09-23T14:37:44.895727Z a574e8a4f8f80a464ca2b8bcbd43287f 2007-09-15T14:54:15.583528Z 731 @@ -2718,7 +2718,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.883725Z cd7530e8030bf9e675ca5922c2494d83 2007-03-10T15:09:49.115269Z 323 @@ -2752,7 +2752,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.931783Z d1a11dec6b93af060f84f9b2a1e36421 2010-03-13T14:56:49.379682Z 3573 @@ -2786,7 +2786,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.891758Z f1661157bd19c5fd4f7a4244745571bf 2007-08-29T16:52:35.680643Z 674 @@ -2820,7 +2820,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.883725Z 8381c8e67d31387ec86e821025f5ae8b 2007-03-09T18:03:31.183366Z 319 @@ -2854,7 +2854,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.883725Z f8359b001e33e9508d158589c81f7bee 2007-02-03T12:57:33.179243Z 223 @@ -2888,7 +2888,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.915753Z 63b0f6e295adf5f1d1eee803e4cc6287 2009-01-24T11:48:38.049684Z 2305 @@ -2922,7 +2922,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.915753Z 668305a363cf6997eb9f2259d00cc26d 2009-03-19T00:01:24.358528Z 2599 @@ -2956,7 +2956,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.895727Z c8a6c8715446f22f6a3f4e2040dd873d 2007-11-19T22:28:43.818228Z 917 @@ -2990,7 +2990,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.911755Z 7f2d97409681d462705d00de37e78476 2008-10-18T10:07:49.851665Z 1938 @@ -3024,7 +3024,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.911755Z d885a13afc268875b79c4cbf9524f3e8 2009-02-08T17:24:39.400993Z 2415 @@ -3058,7 +3058,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.891758Z aa67262417630fc088eb57df8d2dd9d3 2007-08-16T17:47:41.639068Z 649 @@ -3092,7 +3092,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.879727Z 528b6095ca0376cecdd966ddd0b345c4 2006-12-16T13:37:32.633739Z 95 @@ -3126,7 +3126,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.887754Z 2d559ef99ec458f472f5c22c0a8bf5f4 2007-08-29T16:52:35.680643Z 674 @@ -3160,7 +3160,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.887754Z dc28d8674409819b866f6d878b33d288 2007-04-24T13:57:27.960164Z 473 @@ -3194,7 +3194,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.887754Z a7d8c7f023a76a8dbb0d0950797c08f8 2008-02-12T21:11:16.312726Z 1140 @@ -3228,7 +3228,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.899726Z ba997a6179b5ab0f421b149c54725357 2008-01-15T20:40:59.035860Z 1069 @@ -3262,7 +3262,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.923753Z e256cf4a148fd48c409ea6983d569e7d 2009-10-17T22:23:29.892475Z 2928 @@ -3296,7 +3296,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.895727Z 02bfb0be1b161bd757a75f69bfe79bc7 2008-03-09T18:25:37.323226Z 1222 @@ -3330,7 +3330,7 @@ -2010-07-23T14:49:46.244155Z +2010-09-23T14:37:44.899726Z f77d77e81db6f6ac5bb3844255f8ab33 2008-03-12T20:28:49.748698Z 1236 @@ -3364,7 +3364,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.915753Z 5d4b3c5646cc6c136e706ac5d7e0b377 2009-02-14T19:06:44.812480Z 2466 @@ -3398,7 +3398,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.919754Z 90bb42121a57db140491ecb2a0763d00 2009-10-17T22:23:29.892475Z 2928 @@ -3432,7 +3432,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.891758Z b61285ac64245c1571e536a8c7e05a94 2007-06-12T20:12:05.590809Z 559 @@ -3466,7 +3466,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.911755Z e00f8e7739afbb2d07a21decd1422a0a 2008-09-21T20:38:36.877257Z 1896 @@ -3500,7 +3500,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.891758Z 708c039fe82ad86e9930122cac4757b1 2007-08-31T17:45:32.784580Z 685 @@ -3534,7 +3534,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.923753Z 4bfd0623186217eee4346313f148ea7a 2009-10-17T22:23:29.892475Z 2928 @@ -3568,7 +3568,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.927757Z 71d997c1a32c4ba3dd4b31a34885fc7a 2009-12-29T14:53:29.047095Z 3259 @@ -3602,7 +3602,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.923753Z e8d897645c7176e7fd23f1578b882b5f 2009-10-17T22:23:29.892475Z 2928 @@ -3636,7 +3636,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.891758Z 9ddb69b602d6d3ee5da01f8a9e9f78db 2007-08-29T16:52:35.680643Z 674 @@ -3670,7 +3670,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.919754Z 055f00efdb87ff8934c36d5eb99b741f 2009-09-12T08:36:46.650954Z 2869 @@ -3704,7 +3704,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.919754Z 27279bf98b3155975ce59a359d0a29aa 2009-05-10T11:18:09.335765Z 2729 @@ -3738,7 +3738,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.887754Z 3af07746c4eab3a1716744971ac26ffc 2007-06-12T20:12:05.590809Z 559 @@ -3772,7 +3772,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.887754Z 67d6e1898c150c8df560cb2ce8a2f2d7 2007-08-29T16:52:35.680643Z 674 @@ -3806,7 +3806,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.891758Z 596f1acbdbc340c39d19f19f7b4cb6c6 2007-08-29T16:52:35.680643Z 674 @@ -3840,7 +3840,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.915753Z 46effb13ff7d1a62b7b8c93afc7da9c8 2009-01-24T11:31:15.122844Z 2304 @@ -3874,7 +3874,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.895727Z e7e163729c56cd9807450574d2beeda8 2007-10-16T19:19:10.481742Z 845 @@ -3908,7 +3908,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.895727Z 4ed0fffe6158eeda69a021c362f61157 2007-11-24T12:25:07.449637Z 926 @@ -3942,7 +3942,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.919754Z 22e6afc0519b7befbae2c4a4433c20f5 2009-10-17T22:23:29.892475Z 2928 @@ -3976,7 +3976,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.927757Z 8251942eb30b7c709ac6e3dc1ab5eedb 2009-10-17T22:23:29.892475Z 2928 @@ -4010,7 +4010,7 @@ -2010-07-23T14:49:46.248151Z +2010-09-23T14:37:44.927757Z 886411cb32a18ec492acc798194210af 2009-11-14T12:08:47.175978Z 3039 @@ -4044,7 +4044,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.919754Z 16792ab92fda3a70516d55a011c01fce 2009-05-10T10:54:31.775505Z 2726 @@ -4078,7 +4078,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.923753Z 4c220f0316e1b04fa8350f0309698f24 2009-10-17T22:23:29.892475Z 2928 @@ -4112,7 +4112,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.915753Z 0c0cee6df5f26eb3378c9b22a1162a5a 2009-05-30T23:30:36.923541Z 2777 @@ -4146,7 +4146,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.891758Z 6a4944f1162c00f2405200fb38773886 2007-06-14T18:26:27.748707Z 564 @@ -4180,7 +4180,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.879727Z 6e59569f25a79a0a75797fa4ebb60936 2007-08-29T16:52:35.680643Z 674 @@ -4214,7 +4214,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.883725Z 00a100c0ca092df63e8542fc6d0bc78c 2007-03-18T15:48:05.787958Z 344 @@ -4248,7 +4248,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.927757Z ee71a22f869c9dbee6f322ad25f45934 2009-12-06T10:28:20.099964Z 3123 @@ -4282,7 +4282,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.927757Z 21d40b6390e67409bad1d4525c26accb 2009-10-17T22:23:29.892475Z 2928 @@ -4316,7 +4316,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.887754Z 1b013e3bbb624874d78eaf3332ccb3d5 2007-03-26T16:41:54.592250Z 383 @@ -4350,7 +4350,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.887754Z e658f4ed3c99264bf4c036b87b8cf39f 2007-05-27T17:42:04.537618Z 549 @@ -4384,7 +4384,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.915753Z 4d0267b0a9d4cb2ec782d10247a4c33f 2009-01-24T11:31:15.122844Z 2304 @@ -4418,7 +4418,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.923753Z eef7b68156646d86ea515aed9aa525ed 2009-10-17T22:23:29.892475Z 2928 @@ -4452,7 +4452,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.915753Z 1567606924d88ae66474e848de86577a 2009-10-21T22:34:28.905707Z 2946 @@ -4486,7 +4486,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.895727Z ccfd197b34214a0d74d952aa65dcd5a6 2008-03-09T18:25:37.323226Z 1222 @@ -4520,7 +4520,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.919754Z f5ae107f30300b547d535ddc5b1b999c 2009-09-12T08:36:46.650954Z 2869 @@ -4554,7 +4554,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.879727Z 9cef93921160d49f5d3aa4968ecc4eb1 2007-10-22T21:07:13.432482Z 864 @@ -4588,7 +4588,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.919754Z 6c70abafef3dc834c722ed7135d6a7df 2009-10-17T22:23:29.892475Z 2928 @@ -4622,7 +4622,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.919754Z cf095d9afbc6429b8d759eb737a0781f 2009-10-21T22:34:34.183882Z 2947 @@ -4656,7 +4656,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.919754Z 9aa91971db6c6f14ddd1ae768085b0a8 2009-10-17T22:23:29.892475Z 2928 @@ -4690,7 +4690,7 @@ -2010-07-23T14:49:46.252129Z +2010-09-23T14:37:44.879727Z 3e5f2220de578b306ce323997c495db6 2006-11-12T18:50:30.642587Z 44 @@ -4724,7 +4724,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.879727Z 0fb07bc55cf61720437b40e4ae244e05 2006-12-03T20:51:17.306207Z 63 @@ -4758,7 +4758,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.891758Z 417051f45603460a17909e4a5029c779 2007-08-29T16:52:35.680643Z 674 @@ -4792,7 +4792,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.883725Z a62243f0bc2f1b1b11a47da172d011a5 2007-04-25T15:06:20.062636Z 479 @@ -4826,7 +4826,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.895727Z 96962340557b9a1f70a215d88b07c2c1 2007-09-14T11:34:08.234701Z 725 @@ -4860,7 +4860,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.923753Z 8ad3f0193d5e3b8d52293bbf2828c2d2 2009-10-17T22:23:29.892475Z 2928 @@ -4894,7 +4894,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.923753Z fd6ccbccc44ceccab8de7c3c48696ecc 2009-10-17T22:23:29.892475Z 2928 @@ -4928,7 +4928,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.891758Z 1798d606a43c6a29029535c28b49beff 2007-09-04T22:07:44.613701Z 702 @@ -4962,7 +4962,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.879727Z d714e81a7a9c29b60e405233765cbd33 2007-08-29T16:52:35.680643Z 674 @@ -4996,7 +4996,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.899726Z a27ef00d6ec6b3f4dc63ad004181c10e 2008-01-20T23:38:55.025648Z 1091 @@ -5030,7 +5030,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.875728Z 497529b269185b1833b959c98db3c1d1 2007-08-29T16:52:35.680643Z 674 @@ -5064,7 +5064,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.919754Z d39d0037e4f06dfb7db18d9082608832 2009-10-17T22:23:29.892475Z 2928 @@ -5098,7 +5098,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.923753Z 79d11b147c1061901a888d89c3e5029b 2009-10-17T22:23:29.892475Z 2928 @@ -5132,7 +5132,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.899726Z 1cbe32e981634898d5b0f80b2c63798b 2007-12-14T18:54:55.323993Z 994 @@ -5166,7 +5166,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.887754Z 717687210dcbeeebff8337561a427e70 2007-05-05T13:22:27.245135Z 506 @@ -5200,7 +5200,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.879727Z 05c7ea8c5dc45498164a324f7db2887a 2006-12-10T18:35:48.564790Z 81 @@ -5234,7 +5234,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.915753Z ce38342dea044adf8b277f6483f1a742 2009-03-12T18:06:54.054174Z 2572 @@ -5268,7 +5268,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.923753Z dbeea4ad5a501200711cb4195856597e 2009-10-17T22:23:29.892475Z 2928 @@ -5302,7 +5302,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.911755Z 4c1203f40e8e7b568ddce15af4f3ad9b 2008-11-10T18:59:06.897210Z 2006 @@ -5336,7 +5336,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.879727Z c62ac2ca3e59bb91e5bb4e206abdaed1 2007-04-25T15:06:20.062636Z 479 @@ -5370,7 +5370,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.891758Z 3bb4b5f081354ea7d943f0b7c6f07284 2007-08-29T16:52:35.680643Z 674 @@ -5404,7 +5404,7 @@ -2010-07-23T14:49:46.256143Z +2010-09-23T14:37:44.915753Z 3460b737f353524921cfd9ac4199fc44 2009-03-12T19:49:39.983871Z 2580 @@ -5438,7 +5438,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.887754Z 560e67e7b88186a0e21a2f614b6d83c7 2007-08-29T16:52:35.680643Z 674 @@ -5472,7 +5472,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.891758Z c22348c101d1a03b2d808cb89b3175a5 2007-06-12T20:12:05.590809Z 559 @@ -5506,7 +5506,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.927757Z 87d90f2ce2101811b7aaf0031a74e0c1 2009-10-25T16:56:46.187627Z 2981 @@ -5540,7 +5540,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.891758Z 84fe06ac7cefc2eebba29ac872241d88 2007-06-29T17:21:37.739022Z 577 @@ -5574,7 +5574,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.875728Z d7a9aad3796f37d70ac2ab4af9c80656 2007-08-29T16:52:35.680643Z 674 @@ -5608,7 +5608,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.879727Z defb118deb2deb23648d50da5cf71047 2006-12-24T13:38:45.881735Z 106 @@ -5642,7 +5642,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.919754Z 89cbe3b06f14ba6d9a5cda47f4239f60 2009-04-26T13:09:14.221938Z 2696 @@ -5676,7 +5676,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.879727Z f2e06da76555942fd3017134d618bbac 2007-08-29T16:52:35.680643Z 674 @@ -5710,7 +5710,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.899726Z 5ff56d564f2da50c289c1dfd90053a4b 2008-03-05T09:16:19.220849Z 1189 @@ -5744,7 +5744,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.923753Z 0ae6a6924263cf5317b539c81b952f03 2009-10-17T22:23:29.892475Z 2928 @@ -5778,7 +5778,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.879727Z 121548a48360a22daa537af42ee8902b 2007-01-21T11:50:22.864544Z 167 @@ -5812,7 +5812,7 @@ -2010-07-23T14:49:46.260141Z +2010-09-23T14:37:44.899726Z e50cfa8ef5216f0f7d266dac1e38c9da 2008-07-26T11:46:24.917066Z 1698 diff -r 1d32c0a0efbf -r 40f7cfd4df19 doc/.svn/entries --- a/doc/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/doc/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/doc http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.344131Z +2010-09-23T14:37:44.939791Z b728be27d68a5bc46292d5e9d2ae5260 2010-07-18T15:19:04.080578Z 3848 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.344131Z +2010-09-23T14:37:44.939791Z cc987c3ab1bf29e6ebe5313bef953b5b 2010-02-16T16:40:50.914879Z 3438 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.344131Z +2010-09-23T14:37:44.939791Z ba2ffee528eae310e20bf761619bc85f 2008-08-11T20:49:52.309238Z 1732 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.344131Z +2010-09-23T14:37:44.939791Z cc24a3b3e2deae6410de710cd2eed893 2010-07-18T15:19:04.080578Z 3848 @@ -168,7 +168,7 @@ -2010-08-25T15:27:58.014444Z +2010-09-23T14:37:44.935786Z 0310fe2cda3332d05e3275320e73407f 2010-08-22T21:17:44.394587Z 4029 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.348092Z +2010-09-23T14:37:44.935786Z 751419260aa954499f7abaabaa882bbe 2007-11-04T13:19:42.552822Z 883 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/.svn/entries --- a/extra/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/mail_handler/.svn/entries --- a/extra/mail_handler/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/mail_handler/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/mail_handler http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.612099Z +2010-09-23T14:37:44.939791Z 4529fffb032835fb9b9411c58d1c7d6b 2009-12-19T14:08:48.825882Z 3195 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/.svn/entries --- a/extra/sample_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin http://redmine.rubyforge.org/svn @@ -44,7 +44,7 @@ -2010-07-23T14:49:46.076096Z +2010-09-23T14:37:44.963747Z cb8636f8b6659a091f3e1f018a64a2f5 2009-07-02T18:40:06.298867Z 2798 @@ -78,7 +78,7 @@ -2010-07-23T14:49:46.076096Z +2010-09-23T14:37:44.943755Z 4d87ae4412bda3ec3b4c9a8bc17fafb6 2009-02-26T16:37:48.671184Z 2530 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/.svn/entries --- a/extra/sample_plugin/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/controllers/.svn/entries --- a/extra/sample_plugin/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.616101Z +2010-09-23T14:37:44.943755Z 9e3b32d475f8b06df8d45b28a2732d76 2009-02-21T11:04:50.579477Z 2493 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/models/.svn/entries --- a/extra/sample_plugin/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/models http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.616101Z +2010-09-23T14:37:44.947762Z 5161ccc668c61730638ef23bec50232f 2008-07-27T19:18:35.954247Z 1704 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/views/.svn/entries --- a/extra/sample_plugin/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/views/example/.svn/entries --- a/extra/sample_plugin/app/views/example/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/views/example/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/example http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.628116Z +2010-09-23T14:37:44.947762Z 674cc3fb92754e41d7e7d5fb7ed0eda7 2007-09-23T18:50:53.732551Z 753 @@ -66,7 +66,7 @@ -2010-07-23T14:49:45.628116Z +2010-09-23T14:37:44.947762Z cf9e02439886339b70ee199313902c96 2007-09-23T18:50:53.732551Z 753 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/views/my/.svn/entries --- a/extra/sample_plugin/app/views/my/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/views/my/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/views/my/blocks/.svn/entries --- a/extra/sample_plugin/app/views/my/blocks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/views/my/blocks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my/blocks http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.624131Z +2010-09-23T14:37:44.951756Z e2d729cf488b7b7411cffb259c10559a 2009-02-26T16:36:56.835799Z 2529 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/app/views/settings/.svn/entries --- a/extra/sample_plugin/app/views/settings/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/app/views/settings/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/settings http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.620126Z +2010-09-23T14:37:44.951756Z 065925dde040b66230ae06437114c77f 2009-07-02T18:40:06.298867Z 2798 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/assets/.svn/entries --- a/extra/sample_plugin/assets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/assets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/assets/images/.svn/entries --- a/extra/sample_plugin/assets/images/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/assets/images/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/images http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.064094Z +2010-09-23T14:37:44.955797Z 81bcc262c08473fa7cb05cc78176652f 2007-09-23T18:50:53.732551Z 753 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/assets/stylesheets/.svn/entries --- a/extra/sample_plugin/assets/stylesheets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/assets/stylesheets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/stylesheets http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.064094Z +2010-09-23T14:37:44.955797Z ced97da84497db69b30e6e17a55c3fb9 2007-09-23T18:50:53.732551Z 753 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/config/.svn/entries --- a/extra/sample_plugin/config/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/config/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/config/locales/.svn/entries --- a/extra/sample_plugin/config/locales/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/config/locales/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config/locales http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.068091Z +2010-09-23T14:37:44.959754Z c1dc7060239e61ce13e8840b305000c5 2009-02-08T16:13:02.919112Z 2413 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.068091Z +2010-09-23T14:37:44.959754Z 989492284a42bf9777e2bd0d39b40254 2009-02-08T16:13:02.919112Z 2413 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/db/.svn/entries --- a/extra/sample_plugin/db/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/db/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/sample_plugin/db/migrate/.svn/entries --- a/extra/sample_plugin/db/migrate/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/sample_plugin/db/migrate/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db/migrate http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.072132Z +2010-09-23T14:37:44.963747Z 2316ab57f3d60b7f04b4bdfdebf6fd8e 2008-07-27T19:10:56.352148Z 1703 diff -r 1d32c0a0efbf -r 40f7cfd4df19 extra/svn/.svn/entries --- a/extra/svn/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/extra/svn/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/extra/svn http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.080095Z +2010-09-24T11:56:52.976058Z ea12c26fe7b1a65015d8a657c003f43b 2010-03-12T18:15:19.896502Z 3571 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.080095Z +2010-09-23T14:37:44.967747Z f41d78e45e03554626edf5e4e6663d80 2007-04-02T19:01:31.084001Z 402 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.080095Z +2010-09-23T14:37:44.963747Z 6203596871e4eff5bc22d0d414b87370 2010-07-08T03:46:19.270127Z 3832 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.080095Z +2010-09-23T14:37:44.963747Z 96fdfe0a7a4913dbbfc1b871d7abab02 2007-04-01T19:43:59.029417Z 396 diff -r 1d32c0a0efbf -r 40f7cfd4df19 files/.svn/entries --- a/files/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/files/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/files http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.044132Z +2010-09-23T14:37:44.967747Z ae0415159f2c4dba3fc1a559d4c0f9f5 2006-06-28T18:11:03.549769Z 4 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/.svn/all-wcprops --- a/lib/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 28 -/svn/!svn/ver/4037/trunk/lib +/svn/!svn/ver/4172/trunk/lib END faster_csv.rb K 25 @@ -13,7 +13,7 @@ K 25 svn:wc:ra_dav:version-url V 39 -/svn/!svn/ver/4037/trunk/lib/redmine.rb +/svn/!svn/ver/4172/trunk/lib/redmine.rb END tabular_form_builder.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/.svn/entries --- a/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -38,7 +38,7 @@ -2010-07-23T14:49:47.508097Z +2010-09-23T14:37:44.983792Z 1657561b457dadfa5d004a393bdd1a2e 2009-11-04T13:22:26.440808Z 3007 @@ -78,10 +78,10 @@ -2010-08-25T15:27:58.199544Z -6f37c8ab4613b43c32e15d8557d68e55 -2010-08-24T15:27:12.793586Z -4037 +2010-09-24T12:48:29.815852Z +3874a67810147c88406056d7bdea8fd3 +2010-09-23T15:20:19.085385Z +4172 edavis10 has-props @@ -104,7 +104,7 @@ -12473 +12555 tabular_form_builder.rb file @@ -112,7 +112,7 @@ -2010-07-23T14:49:47.508097Z +2010-09-23T14:37:45.055767Z 9d8fb5ede85fd780f018b74b36a83034 2010-06-20T19:03:09.888571Z 3804 @@ -149,7 +149,7 @@ -2010-07-23T14:49:47.508097Z +2010-09-23T14:37:45.003823Z 53cdb197e20e88c4c2feba08946d49b6 2010-04-30T17:50:34.330526Z 3718 @@ -183,7 +183,7 @@ -2010-07-23T14:49:47.508097Z +2010-09-23T14:37:44.983792Z 55e7cfa4fcb3619e9939d29336ecdf02 2008-03-11T19:33:38.611682Z 1227 @@ -217,7 +217,7 @@ -2010-07-23T14:49:47.508097Z +2010-09-23T14:37:44.983792Z 1ecc6c4c4ae6aa3e75600673b4b78add 2009-08-15T22:41:40.505056Z 2840 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/.svn/text-base/redmine.rb.svn-base --- a/lib/.svn/text-base/redmine.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/.svn/text-base/redmine.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -44,24 +44,23 @@ # Permissions Redmine::AccessControl.map do |map| - map.permission :view_project, {:projects => [:show, :activity]}, :public => true + map.permission :view_project, {:projects => [:show], :activities => [:index]}, :public => true map.permission :search_project, {:search => :index}, :public => true - map.permission :add_project, {:projects => :add}, :require => :loggedin - map.permission :edit_project, {:projects => [:settings, :edit]}, :require => :member + map.permission :add_project, {:projects => [:new, :create]}, :require => :loggedin + map.permission :edit_project, {:projects => [:settings, :edit, :update]}, :require => :member map.permission :select_project_modules, {:projects => :modules}, :require => :member map.permission :manage_members, {:projects => :settings, :members => [:new, :edit, :destroy, :autocomplete_for_member]}, :require => :member - map.permission :manage_versions, {:projects => :settings, :versions => [:new, :edit, :close_completed, :destroy]}, :require => :member - map.permission :add_subprojects, {:projects => :add}, :require => :member + map.permission :manage_versions, {:projects => :settings, :versions => [:new, :create, :edit, :update, :close_completed, :destroy]}, :require => :member + map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member map.project_module :issue_tracking do |map| # Issue categories map.permission :manage_categories, {:projects => :settings, :issue_categories => [:new, :edit, :destroy]}, :require => :member # Issues - map.permission :view_issues, {:projects => :roadmap, - :issues => [:index, :show], + map.permission :view_issues, {:issues => [:index, :show], :auto_complete => [:issues], :context_menus => [:issues], - :versions => [:show, :status_by], + :versions => [:index, :show, :status_by], :journals => :index, :queries => :index, :reports => [:issue_report, :issue_report_details]} @@ -88,13 +87,13 @@ map.permission :view_time_entries, :timelog => [:details, :report] map.permission :edit_time_entries, {:timelog => [:edit, :destroy]}, :require => :member map.permission :edit_own_time_entries, {:timelog => [:edit, :destroy]}, :require => :loggedin - map.permission :manage_project_activities, {:projects => [:save_activities, :reset_activities]}, :require => :member + map.permission :manage_project_activities, {:project_enumerations => [:update, :destroy]}, :require => :member end map.project_module :news do |map| - map.permission :manage_news, {:news => [:new, :edit, :destroy, :destroy_comment]}, :require => :member + map.permission :manage_news, {:news => [:new, :create, :edit, :update, :destroy], :comments => [:destroy]}, :require => :member map.permission :view_news, {:news => [:index, :show]}, :public => true - map.permission :comment_news, {:news => :add_comment} + map.permission :comment_news, {:comments => :create} end map.project_module :documents do |map| @@ -103,8 +102,8 @@ end map.project_module :files do |map| - map.permission :manage_files, {:projects => :add_file}, :require => :loggedin - map.permission :view_files, :projects => :list_files, :versions => :download + map.permission :manage_files, {:files => [:new, :create]}, :require => :loggedin + map.permission :view_files, :files => :index, :versions => :download end map.project_module :wiki do |map| @@ -137,11 +136,11 @@ end map.project_module :calendar do |map| - map.permission :view_calendar, :calendars => :show + map.permission :view_calendar, :calendars => [:show, :update] end map.project_module :gantt do |map| - map.permission :view_gantt, :gantts => :show + map.permission :view_gantt, :gantts => [:show, :update] end end @@ -185,8 +184,8 @@ Redmine::MenuManager.map :project_menu do |menu| menu.push :overview, { :controller => 'projects', :action => 'show' } - menu.push :activity, { :controller => 'projects', :action => 'activity' } - menu.push :roadmap, { :controller => 'projects', :action => 'roadmap' }, + menu.push :activity, { :controller => 'activities', :action => 'index' } + menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id, :if => Proc.new { |p| p.shared_versions.any? } menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural menu.push :new_issue, { :controller => 'issues', :action => 'new' }, :param => :project_id, :caption => :label_issue_new, @@ -199,7 +198,7 @@ :if => Proc.new { |p| p.wiki && !p.wiki.new_record? } menu.push :boards, { :controller => 'boards', :action => 'index', :id => nil }, :param => :project_id, :if => Proc.new { |p| p.boards.any? }, :caption => :label_board_plural - menu.push :files, { :controller => 'projects', :action => 'list_files' }, :caption => :label_file_plural + menu.push :files, { :controller => 'files', :action => 'index' }, :caption => :label_file_plural, :param => :project_id menu.push :repository, { :controller => 'repositories', :action => 'show' }, :if => Proc.new { |p| p.repository && !p.repository.new_record? } menu.push :settings, { :controller => 'projects', :action => 'settings' }, :last => true diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/SVG/.svn/entries --- a/lib/SVG/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/SVG/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/SVG http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.975748Z 393a5ca445f6965873eca0259a17f833 2007-03-25T17:11:46.804742Z 380 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z 072cf60873854a186c6eba9b74dbe389 2007-03-25T17:11:46.804742Z 380 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/SVG/Graph/.svn/entries --- a/lib/SVG/Graph/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/SVG/Graph/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/SVG/Graph http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.356133Z +2010-09-23T14:37:44.979747Z 0a49ed37717b08c6bccdc843a03a333d 2009-03-30T19:58:17.407192Z 2642 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z 55ff835de5a0fb0fd2d6a236b1c5c436 2009-03-30T19:58:17.407192Z 2642 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z a39e9963eaae7bb913b6d8d2dfe0506f 2009-03-30T19:58:17.407192Z 2642 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z 184772c0f1732eadf12b0e8bc9e172f7 2009-03-30T19:58:17.407192Z 2642 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z fad5865539cbd7ba3433fd6d47b9d3f2 2009-11-07T10:40:54.677820Z 3017 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z cc9051d7617dfe6dd6cc47fe83fd6ec4 2009-03-30T19:58:17.407192Z 2642 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z f092a4b0f16876381bc9283058eeb48c 2007-03-25T17:11:46.804742Z 380 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z 73dbcb4a1cba46b4e46a81881d24ff1a 2009-03-30T19:58:17.407192Z 2642 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.360129Z +2010-09-23T14:37:44.979747Z d8e95d0e507a02a74a5ac3435560d3bd 2007-03-25T17:11:46.804742Z 380 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/.svn/entries --- a/lib/generators/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin/.svn/entries --- a/lib/generators/redmine_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.987751Z 334056a407de9091bb8774ba986c53f9 2009-06-10T03:39:02.884087Z 2785 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.987751Z be5d60ef31ac822cd5650ab976dcc543 2009-06-10T03:39:02.884087Z 2785 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin/templates/.svn/entries --- a/lib/generators/redmine_plugin/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.987751Z 2d39c559d341be440cb60911ef125dd9 2008-09-05T10:31:06.632668Z 1786 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.987751Z d97a21936cfb77543031f7d9a5d5131a 2008-10-25T04:37:31.779636Z 1949 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.991758Z d14592489e5b7d34b33d2487f4770b7d 2008-10-25T04:37:31.779636Z 1949 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.991758Z ab791ada26df5c9c1a13b771e988a36f 2009-06-10T03:39:02.884087Z 2785 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.484131Z +2010-09-23T14:37:44.991758Z 39cb16a49db6c72cdd7a63447d5b188f 2010-06-17T19:02:13.409991Z 3771 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin_controller/.svn/entries --- a/lib/generators/redmine_plugin_controller/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin_controller/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.991758Z 60c1792566a450d246dd66ff274ae06c 2008-09-05T10:31:06.632668Z 1786 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.991758Z 23b15404071adb39cb140a6113057f15 2010-02-28T12:15:47.320153Z 3514 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin_controller/templates/.svn/entries --- a/lib/generators/redmine_plugin_controller/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin_controller/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.995797Z 0ae9d2e8e624fef815f60164d47b6464 2008-09-05T10:31:06.632668Z 1786 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.995797Z e8491aac2379dbba3d3ddadc30f6db07 2008-10-25T09:35:51.426668Z 1951 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.995797Z 2fdd792e6b6825b4f1802ba4767e0435 2008-10-25T09:35:51.426668Z 1951 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.500154Z +2010-09-23T14:37:44.995797Z 22e765f47aacc324789509219797d087 2010-06-17T19:02:07.893033Z 3770 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin_model/.svn/entries --- a/lib/generators/redmine_plugin_model/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin_model/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:44.999760Z ca5ffbd9dfb099b2f38ca21c030ffea0 2008-09-05T10:31:06.632668Z 1786 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:44.999760Z ba0c0092c69cca4c21b1b26027f7472b 2010-02-28T12:15:47.320153Z 3514 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/generators/redmine_plugin_model/templates/.svn/entries --- a/lib/generators/redmine_plugin_model/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/generators/redmine_plugin_model/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:45.003823Z ce0817700ec27f10f7d07f998bff6991 2008-10-25T09:35:51.426668Z 1951 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:45.003823Z a4081d31f6d22e7655b4f6e9fb894a03 2009-10-17T21:08:33.644420Z 2926 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:44.999760Z 115e77dae670747c95b5ff22c01d4174 2008-09-05T10:31:06.632668Z 1786 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.492125Z +2010-09-23T14:37:45.003823Z 3a783571ccc96a2f639329700dda677b 2010-06-17T19:02:07.893033Z 3770 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/plugins/.svn/entries --- a/lib/plugins/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/plugins/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/plugins http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine.rb --- a/lib/redmine.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine.rb Fri Sep 24 14:06:04 2010 +0100 @@ -44,24 +44,23 @@ # Permissions Redmine::AccessControl.map do |map| - map.permission :view_project, {:projects => [:show, :activity]}, :public => true + map.permission :view_project, {:projects => [:show], :activities => [:index]}, :public => true map.permission :search_project, {:search => :index}, :public => true - map.permission :add_project, {:projects => :add}, :require => :loggedin - map.permission :edit_project, {:projects => [:settings, :edit]}, :require => :member + map.permission :add_project, {:projects => [:new, :create]}, :require => :loggedin + map.permission :edit_project, {:projects => [:settings, :edit, :update]}, :require => :member map.permission :select_project_modules, {:projects => :modules}, :require => :member map.permission :manage_members, {:projects => :settings, :members => [:new, :edit, :destroy, :autocomplete_for_member]}, :require => :member - map.permission :manage_versions, {:projects => :settings, :versions => [:new, :edit, :close_completed, :destroy]}, :require => :member - map.permission :add_subprojects, {:projects => :add}, :require => :member + map.permission :manage_versions, {:projects => :settings, :versions => [:new, :create, :edit, :update, :close_completed, :destroy]}, :require => :member + map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member map.project_module :issue_tracking do |map| # Issue categories map.permission :manage_categories, {:projects => :settings, :issue_categories => [:new, :edit, :destroy]}, :require => :member # Issues - map.permission :view_issues, {:projects => :roadmap, - :issues => [:index, :show], + map.permission :view_issues, {:issues => [:index, :show], :auto_complete => [:issues], :context_menus => [:issues], - :versions => [:show, :status_by], + :versions => [:index, :show, :status_by], :journals => :index, :queries => :index, :reports => [:issue_report, :issue_report_details]} @@ -88,13 +87,13 @@ map.permission :view_time_entries, :timelog => [:details, :report] map.permission :edit_time_entries, {:timelog => [:edit, :destroy]}, :require => :member map.permission :edit_own_time_entries, {:timelog => [:edit, :destroy]}, :require => :loggedin - map.permission :manage_project_activities, {:projects => [:save_activities, :reset_activities]}, :require => :member + map.permission :manage_project_activities, {:project_enumerations => [:update, :destroy]}, :require => :member end map.project_module :news do |map| - map.permission :manage_news, {:news => [:new, :edit, :destroy, :destroy_comment]}, :require => :member + map.permission :manage_news, {:news => [:new, :create, :edit, :update, :destroy], :comments => [:destroy]}, :require => :member map.permission :view_news, {:news => [:index, :show]}, :public => true - map.permission :comment_news, {:news => :add_comment} + map.permission :comment_news, {:comments => :create} end map.project_module :documents do |map| @@ -103,8 +102,8 @@ end map.project_module :files do |map| - map.permission :manage_files, {:projects => :add_file}, :require => :loggedin - map.permission :view_files, :projects => :list_files, :versions => :download + map.permission :manage_files, {:files => [:new, :create]}, :require => :loggedin + map.permission :view_files, :files => :index, :versions => :download end map.project_module :wiki do |map| @@ -137,11 +136,11 @@ end map.project_module :calendar do |map| - map.permission :view_calendar, :calendars => :show + map.permission :view_calendar, :calendars => [:show, :update] end map.project_module :gantt do |map| - map.permission :view_gantt, :gantts => :show + map.permission :view_gantt, :gantts => [:show, :update] end end @@ -185,8 +184,8 @@ Redmine::MenuManager.map :project_menu do |menu| menu.push :overview, { :controller => 'projects', :action => 'show' } - menu.push :activity, { :controller => 'projects', :action => 'activity' } - menu.push :roadmap, { :controller => 'projects', :action => 'roadmap' }, + menu.push :activity, { :controller => 'activities', :action => 'index' } + menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id, :if => Proc.new { |p| p.shared_versions.any? } menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural menu.push :new_issue, { :controller => 'issues', :action => 'new' }, :param => :project_id, :caption => :label_issue_new, @@ -199,7 +198,7 @@ :if => Proc.new { |p| p.wiki && !p.wiki.new_record? } menu.push :boards, { :controller => 'boards', :action => 'index', :id => nil }, :param => :project_id, :if => Proc.new { |p| p.boards.any? }, :caption => :label_board_plural - menu.push :files, { :controller => 'projects', :action => 'list_files' }, :caption => :label_file_plural + menu.push :files, { :controller => 'files', :action => 'index' }, :caption => :label_file_plural, :param => :project_id menu.push :repository, { :controller => 'repositories', :action => 'show' }, :if => Proc.new { |p| p.repository && !p.repository.new_record? } menu.push :settings, { :controller => 'projects', :action => 'settings' }, :last => true diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/.svn/all-wcprops --- a/lib/redmine/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 36 -/svn/!svn/ver/4028/trunk/lib/redmine +/svn/!svn/ver/4104/trunk/lib/redmine END i18n.rb K 25 @@ -21,11 +21,11 @@ V 48 /svn/!svn/ver/1753/trunk/lib/redmine/platform.rb END -custom_field_format.rb +version.rb K 25 svn:wc:ra_dav:version-url -V 59 -/svn/!svn/ver/3675/trunk/lib/redmine/custom_field_format.rb +V 47 +/svn/!svn/ver/4028/trunk/lib/redmine/version.rb END themes.rb K 25 @@ -33,11 +33,11 @@ V 46 /svn/!svn/ver/3710/trunk/lib/redmine/themes.rb END -version.rb +custom_field_format.rb K 25 svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/4028/trunk/lib/redmine/version.rb +V 59 +/svn/!svn/ver/3675/trunk/lib/redmine/custom_field_format.rb END imap.rb K 25 @@ -57,36 +57,36 @@ V 44 /svn/!svn/ver/2776/trunk/lib/redmine/info.rb END +access_keys.rb +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/1081/trunk/lib/redmine/access_keys.rb +END activity.rb K 25 svn:wc:ra_dav:version-url V 48 /svn/!svn/ver/1702/trunk/lib/redmine/activity.rb END -access_keys.rb -K 25 -svn:wc:ra_dav:version-url -V 51 -/svn/!svn/ver/1081/trunk/lib/redmine/access_keys.rb -END wiki_formatting.rb K 25 svn:wc:ra_dav:version-url V 55 /svn/!svn/ver/3446/trunk/lib/redmine/wiki_formatting.rb END +menu_manager.rb +K 25 +svn:wc:ra_dav:version-url +V 52 +/svn/!svn/ver/3539/trunk/lib/redmine/menu_manager.rb +END plugin.rb K 25 svn:wc:ra_dav:version-url V 46 /svn/!svn/ver/3841/trunk/lib/redmine/plugin.rb END -menu_manager.rb -K 25 -svn:wc:ra_dav:version-url -V 52 -/svn/!svn/ver/3539/trunk/lib/redmine/menu_manager.rb -END utils.rb K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/.svn/entries --- a/lib/redmine/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine http://redmine.rubyforge.org/svn -2010-08-22T21:15:38.956901Z -4028 +2010-09-20T02:55:20.180218Z +4104 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.027790Z 009b7a9ada5c3e83d6a7a26256c34951 2009-02-21T11:04:50.579477Z 2493 @@ -72,7 +72,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.031809Z 7905a0773e7d2f6b468fc5b9e107db4d 2010-01-17T13:53:13.544777Z 3330 @@ -106,7 +106,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.031809Z 68165c83be56d3204c582958d933ff0a 2008-08-25T11:01:37.715099Z 1753 @@ -140,7 +140,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.023772Z 7fd1fcfb204480b0e9903fd03c53a563 2010-04-16T15:34:05.970144Z 3675 @@ -174,7 +174,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.043748Z 209d3f63cbc76795042695c71f6230f1 2010-04-30T12:44:19.138265Z 3710 @@ -208,7 +208,7 @@ -2010-08-25T15:27:58.115979Z +2010-09-23T14:37:45.047759Z 6b901e32b10f12644f73eaad79a192aa 2010-08-22T21:15:38.956901Z 4028 @@ -242,7 +242,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.031809Z caeedebd5c05aede1d232510d03ad136 2008-12-31T14:56:30.439880Z 2220 @@ -276,7 +276,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.031809Z dbfad515b1d5c277d2f8e9d67233185e 2009-12-29T13:28:30.604471Z 3258 @@ -319,7 +319,7 @@ -2010-07-23T14:49:47.456153Z +2010-09-23T14:37:45.031809Z ddadcd03b97455adae2451a2140afbf6 2009-05-30T23:00:22.602473Z 2776 @@ -353,7 +353,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.015759Z 41c2852d003d94cb23c231f06be62d12 2008-01-20T13:07:19.003764Z 1081 @@ -387,7 +387,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.015759Z 88435997a6d77548eab82526df38caf1 2008-07-27T18:38:31.746909Z 1702 @@ -421,7 +421,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.047759Z 648c40cc515e97d063d2c2f218cbbc23 2010-02-17T20:47:50.603139Z 3446 @@ -455,7 +455,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.031809Z 14187e67feb3e810abc8737c44d25654 2010-03-04T06:01:05.500229Z 3539 @@ -489,7 +489,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.031809Z 62caf1a80b1f5985c9f75fa41bf9b147 2010-07-16T03:11:35.104268Z 3841 @@ -526,7 +526,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.027790Z 0d02603ed1f291c8f33bc5b6ed3800e6 2009-02-25T07:25:01.090780Z 2522 @@ -560,7 +560,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.047759Z d04b071ce8f05b44ca6993c56fea9b1f 2009-01-04T17:09:25.896068Z 2234 @@ -594,7 +594,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.015759Z e7e4c44515553e36bffa6e8f8960080b 2008-09-25T18:51:03.022592Z 1907 @@ -628,7 +628,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.043748Z 6f968bcc4f81562e9cbddb02ebc62601 2010-02-17T20:05:51.124365Z 3444 @@ -665,7 +665,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.019747Z 7632bcee464a923f5aa7c9eba29f8081 2008-04-26T11:59:51.889210Z 1361 @@ -699,7 +699,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.015759Z 91ed592a8419f1bec48ba880c7a86e29 2009-05-25T19:10:26.065563Z 2766 @@ -736,7 +736,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.043748Z 4a40844a6cd11aa7409bc8f4e9a2c74e 2010-03-28T11:30:48.135356Z 3619 @@ -770,7 +770,7 @@ -2010-07-23T14:49:47.460097Z +2010-09-23T14:37:45.047759Z 69c22a4064f90e2ce460a0c9013c7cd0 2009-11-11T13:25:53.648186Z 3028 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/activity/.svn/entries --- a/lib/redmine/activity/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/activity/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/activity http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.396130Z +2010-09-23T14:37:45.019747Z 20597949bb74e98a3ffc97bc8a3ead7d 2010-07-06T02:22:03.226147Z 3829 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/core_ext/.svn/entries --- a/lib/redmine/core_ext/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/core_ext/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.424097Z +2010-09-23T14:37:45.019747Z fcafa1cc4149d3a5de82816c61b7fa02 2009-08-17T16:32:24.020380Z 2844 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/core_ext/string/.svn/entries --- a/lib/redmine/core_ext/string/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/core_ext/string/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext/string http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.424097Z +2010-09-23T14:37:45.023772Z e614ecdb2fac85cd9f8808e7cff7f9de 2009-08-17T16:32:24.020380Z 2844 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.424097Z +2010-09-23T14:37:45.023772Z 1cc26c5de967944da3a6b07331512637 2009-10-10T15:09:19.510095Z 2912 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/default_data/.svn/entries --- a/lib/redmine/default_data/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/default_data/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/default_data http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.428092Z +2010-09-23T14:37:45.023772Z 41958e843a8ba03548eed089e8002549 2010-06-30T01:55:44.694582Z 3820 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/export/.svn/all-wcprops --- a/lib/redmine/export/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/export/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/3884/trunk/lib/redmine/export +/svn/!svn/ver/4104/trunk/lib/redmine/export END pdf.rb K 25 svn:wc:ra_dav:version-url V 50 -/svn/!svn/ver/3884/trunk/lib/redmine/export/pdf.rb +/svn/!svn/ver/4104/trunk/lib/redmine/export/pdf.rb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/export/.svn/entries --- a/lib/redmine/export/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/export/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/export http://redmine.rubyforge.org/svn -2010-07-25T11:19:44.922190Z -3884 -jplang +2010-09-20T02:55:20.180218Z +4104 +edavis10 @@ -32,11 +32,11 @@ -2010-07-28T11:07:47.471808Z -da47840b8401b161f88d5c926d98b3a1 -2010-07-25T11:19:44.922190Z -3884 -jplang +2010-09-24T12:48:29.791863Z +aa6093490555bdd119ba8f1d34cab080 +2010-09-20T02:55:20.180218Z +4104 +edavis10 has-props @@ -58,5 +58,5 @@ -17039 +10771 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/export/.svn/text-base/pdf.rb.svn-base --- a/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -154,7 +154,7 @@ if query.grouped? && (group = query.group_by_column.value(issue)) != previous_group pdf.SetFontStyle('B',9) pdf.Cell(277, row_height, - (group.blank? ? 'None' : group.to_s) + " (#{@issue_count_by_group[group]})", + (group.blank? ? 'None' : group.to_s) + " (#{query.issue_count_by_group[group]})", 1, 1, 'L') pdf.SetFontStyle('',8) previous_group = group @@ -184,7 +184,7 @@ end pdf.Output end - + # Returns a PDF string of a single issue def issue_to_pdf(issue) pdf = IFPDF.new(current_language) @@ -208,7 +208,7 @@ pdf.SetFontStyle('',9) pdf.Cell(60,5, issue.priority.to_s,"RT") pdf.Ln - + pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_author) + ":","L") pdf.SetFontStyle('',9) @@ -238,14 +238,14 @@ pdf.SetFontStyle('',9) pdf.Cell(60,5, format_date(issue.due_date),"RB") pdf.Ln - + for custom_value in issue.custom_field_values pdf.SetFontStyle('B',9) pdf.Cell(35,5, custom_value.custom_field.name + ":","L") pdf.SetFontStyle('',9) pdf.MultiCell(155,5, (show_value custom_value),"R") end - + pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_subject) + ":","LTB") pdf.SetFontStyle('',9) @@ -255,7 +255,7 @@ pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_description) + ":") pdf.SetFontStyle('',9) - pdf.MultiCell(155,5, @issue.description,"BR") + pdf.MultiCell(155,5, issue.description,"BR") pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY) pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY) @@ -311,187 +311,7 @@ end pdf.Output end - - # Returns a PDF string of a gantt chart - def gantt_to_pdf(gantt, project) - pdf = IFPDF.new(current_language) - pdf.SetTitle("#{l(:label_gantt)} #{project}") - pdf.AliasNbPages - pdf.footer_date = format_date(Date.today) - pdf.AddPage("L") - pdf.SetFontStyle('B',12) - pdf.SetX(15) - pdf.Cell(70, 20, project.to_s) - pdf.Ln - pdf.SetFontStyle('B',9) - - subject_width = 100 - header_heigth = 5 - - headers_heigth = header_heigth - show_weeks = false - show_days = false - - if gantt.months < 7 - show_weeks = true - headers_heigth = 2*header_heigth - if gantt.months < 3 - show_days = true - headers_heigth = 3*header_heigth - end - end - - g_width = 280 - subject_width - zoom = (g_width) / (gantt.date_to - gantt.date_from + 1) - g_height = 120 - t_height = g_height + headers_heigth - - y_start = pdf.GetY - - # Months headers - month_f = gantt.date_from - left = subject_width - height = header_heigth - gantt.months.times do - width = ((month_f >> 1) - month_f) * zoom - pdf.SetY(y_start) - pdf.SetX(left) - pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C") - left = left + width - month_f = month_f >> 1 - end - - # Weeks headers - if show_weeks - left = subject_width - height = header_heigth - if gantt.date_from.cwday == 1 - # gantt.date_from is monday - week_f = gantt.date_from - else - # find next monday after gantt.date_from - week_f = gantt.date_from + (7 - gantt.date_from.cwday + 1) - width = (7 - gantt.date_from.cwday + 1) * zoom-1 - pdf.SetY(y_start + header_heigth) - pdf.SetX(left) - pdf.Cell(width + 1, height, "", "LTR") - left = left + width+1 - end - while week_f <= gantt.date_to - width = (week_f + 6 <= gantt.date_to) ? 7 * zoom : (gantt.date_to - week_f + 1) * zoom - pdf.SetY(y_start + header_heigth) - pdf.SetX(left) - pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") - left = left + width - week_f = week_f+7 - end - end - - # Days headers - if show_days - left = subject_width - height = header_heigth - wday = gantt.date_from.cwday - pdf.SetFontStyle('B',7) - (gantt.date_to - gantt.date_from + 1).to_i.times do - width = zoom - pdf.SetY(y_start + 2 * header_heigth) - pdf.SetX(left) - pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C") - left = left + width - wday = wday + 1 - wday = 1 if wday > 7 - end - end - - pdf.SetY(y_start) - pdf.SetX(15) - pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1) - - # Tasks - top = headers_heigth + y_start - pdf.SetFontStyle('B',7) - gantt.events.each do |i| - pdf.SetY(top) - pdf.SetX(15) - - text = "" - if i.is_a? Issue - text = "#{i.tracker} #{i.id}: #{i.subject}" - else - text = i.name - end - text = "#{i.project} - #{text}" unless project && project == i.project - pdf.Cell(subject_width-15, 5, text, "LR") - - pdf.SetY(top + 0.2) - pdf.SetX(subject_width) - pdf.SetFillColor(255, 255, 255) - pdf.Cell(g_width, 4.6, "", "LR", 0, "", 1) - pdf.SetY(top+1.5) - - if i.is_a? Issue - i_start_date = (i.start_date >= gantt.date_from ? i.start_date : gantt.date_from ) - i_end_date = (i.due_before <= gantt.date_to ? i.due_before : gantt.date_to ) - - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= gantt.date_from ? gantt.date_from : i_done_date ) - i_done_date = (i_done_date >= gantt.date_to ? gantt.date_to : i_done_date ) - - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = ((i_start_date - gantt.date_from)*zoom) - i_width = ((i_end_date - i_start_date + 1)*zoom) - d_width = ((i_done_date - i_start_date)*zoom) - l_width = ((i_late_date - i_start_date+1)*zoom) if i_late_date - l_width ||= 0 - - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(200,200,200) - pdf.Cell(i_width, 2, "", 0, 0, "", 1) - - if l_width > 0 - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(255,100,100) - pdf.Cell(l_width, 2, "", 0, 0, "", 1) - end - if d_width > 0 - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(100,100,255) - pdf.Cell(d_width, 2, "", 0, 0, "", 1) - end - - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left + i_width) - pdf.Cell(30, 2, "#{i.status} #{i.done_ratio}%") - else - i_left = ((i.start_date - gantt.date_from)*zoom) - - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(50,200,50) - pdf.Cell(2, 2, "", 0, 0, "", 1) - - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left + 3) - pdf.Cell(30, 2, "#{i.name}") - end - - top = top + 5 - pdf.SetDrawColor(200, 200, 200) - pdf.Line(15, top, subject_width+g_width, top) - if pdf.GetY() > 180 - pdf.AddPage("L") - top = 20 - pdf.Line(15, top, subject_width+g_width, top) - end - pdf.SetDrawColor(0, 0, 0) - end - - pdf.Line(15, top, subject_width+g_width, top) - pdf.Output - end + end end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/export/pdf.rb --- a/lib/redmine/export/pdf.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/export/pdf.rb Fri Sep 24 14:06:04 2010 +0100 @@ -154,7 +154,7 @@ if query.grouped? && (group = query.group_by_column.value(issue)) != previous_group pdf.SetFontStyle('B',9) pdf.Cell(277, row_height, - (group.blank? ? 'None' : group.to_s) + " (#{@issue_count_by_group[group]})", + (group.blank? ? 'None' : group.to_s) + " (#{query.issue_count_by_group[group]})", 1, 1, 'L') pdf.SetFontStyle('',8) previous_group = group @@ -184,7 +184,7 @@ end pdf.Output end - + # Returns a PDF string of a single issue def issue_to_pdf(issue) pdf = IFPDF.new(current_language) @@ -208,7 +208,7 @@ pdf.SetFontStyle('',9) pdf.Cell(60,5, issue.priority.to_s,"RT") pdf.Ln - + pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_author) + ":","L") pdf.SetFontStyle('',9) @@ -238,14 +238,14 @@ pdf.SetFontStyle('',9) pdf.Cell(60,5, format_date(issue.due_date),"RB") pdf.Ln - + for custom_value in issue.custom_field_values pdf.SetFontStyle('B',9) pdf.Cell(35,5, custom_value.custom_field.name + ":","L") pdf.SetFontStyle('',9) pdf.MultiCell(155,5, (show_value custom_value),"R") end - + pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_subject) + ":","LTB") pdf.SetFontStyle('',9) @@ -255,7 +255,7 @@ pdf.SetFontStyle('B',9) pdf.Cell(35,5, l(:field_description) + ":") pdf.SetFontStyle('',9) - pdf.MultiCell(155,5, @issue.description,"BR") + pdf.MultiCell(155,5, issue.description,"BR") pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY) pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY) @@ -311,187 +311,7 @@ end pdf.Output end - - # Returns a PDF string of a gantt chart - def gantt_to_pdf(gantt, project) - pdf = IFPDF.new(current_language) - pdf.SetTitle("#{l(:label_gantt)} #{project}") - pdf.AliasNbPages - pdf.footer_date = format_date(Date.today) - pdf.AddPage("L") - pdf.SetFontStyle('B',12) - pdf.SetX(15) - pdf.Cell(70, 20, project.to_s) - pdf.Ln - pdf.SetFontStyle('B',9) - - subject_width = 100 - header_heigth = 5 - - headers_heigth = header_heigth - show_weeks = false - show_days = false - - if gantt.months < 7 - show_weeks = true - headers_heigth = 2*header_heigth - if gantt.months < 3 - show_days = true - headers_heigth = 3*header_heigth - end - end - - g_width = 280 - subject_width - zoom = (g_width) / (gantt.date_to - gantt.date_from + 1) - g_height = 120 - t_height = g_height + headers_heigth - - y_start = pdf.GetY - - # Months headers - month_f = gantt.date_from - left = subject_width - height = header_heigth - gantt.months.times do - width = ((month_f >> 1) - month_f) * zoom - pdf.SetY(y_start) - pdf.SetX(left) - pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C") - left = left + width - month_f = month_f >> 1 - end - - # Weeks headers - if show_weeks - left = subject_width - height = header_heigth - if gantt.date_from.cwday == 1 - # gantt.date_from is monday - week_f = gantt.date_from - else - # find next monday after gantt.date_from - week_f = gantt.date_from + (7 - gantt.date_from.cwday + 1) - width = (7 - gantt.date_from.cwday + 1) * zoom-1 - pdf.SetY(y_start + header_heigth) - pdf.SetX(left) - pdf.Cell(width + 1, height, "", "LTR") - left = left + width+1 - end - while week_f <= gantt.date_to - width = (week_f + 6 <= gantt.date_to) ? 7 * zoom : (gantt.date_to - week_f + 1) * zoom - pdf.SetY(y_start + header_heigth) - pdf.SetX(left) - pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") - left = left + width - week_f = week_f+7 - end - end - - # Days headers - if show_days - left = subject_width - height = header_heigth - wday = gantt.date_from.cwday - pdf.SetFontStyle('B',7) - (gantt.date_to - gantt.date_from + 1).to_i.times do - width = zoom - pdf.SetY(y_start + 2 * header_heigth) - pdf.SetX(left) - pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C") - left = left + width - wday = wday + 1 - wday = 1 if wday > 7 - end - end - - pdf.SetY(y_start) - pdf.SetX(15) - pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1) - - # Tasks - top = headers_heigth + y_start - pdf.SetFontStyle('B',7) - gantt.events.each do |i| - pdf.SetY(top) - pdf.SetX(15) - - text = "" - if i.is_a? Issue - text = "#{i.tracker} #{i.id}: #{i.subject}" - else - text = i.name - end - text = "#{i.project} - #{text}" unless project && project == i.project - pdf.Cell(subject_width-15, 5, text, "LR") - - pdf.SetY(top + 0.2) - pdf.SetX(subject_width) - pdf.SetFillColor(255, 255, 255) - pdf.Cell(g_width, 4.6, "", "LR", 0, "", 1) - pdf.SetY(top+1.5) - - if i.is_a? Issue - i_start_date = (i.start_date >= gantt.date_from ? i.start_date : gantt.date_from ) - i_end_date = (i.due_before <= gantt.date_to ? i.due_before : gantt.date_to ) - - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= gantt.date_from ? gantt.date_from : i_done_date ) - i_done_date = (i_done_date >= gantt.date_to ? gantt.date_to : i_done_date ) - - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = ((i_start_date - gantt.date_from)*zoom) - i_width = ((i_end_date - i_start_date + 1)*zoom) - d_width = ((i_done_date - i_start_date)*zoom) - l_width = ((i_late_date - i_start_date+1)*zoom) if i_late_date - l_width ||= 0 - - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(200,200,200) - pdf.Cell(i_width, 2, "", 0, 0, "", 1) - - if l_width > 0 - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(255,100,100) - pdf.Cell(l_width, 2, "", 0, 0, "", 1) - end - if d_width > 0 - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(100,100,255) - pdf.Cell(d_width, 2, "", 0, 0, "", 1) - end - - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left + i_width) - pdf.Cell(30, 2, "#{i.status} #{i.done_ratio}%") - else - i_left = ((i.start_date - gantt.date_from)*zoom) - - pdf.SetX(subject_width + i_left) - pdf.SetFillColor(50,200,50) - pdf.Cell(2, 2, "", 0, 0, "", 1) - - pdf.SetY(top+1.5) - pdf.SetX(subject_width + i_left + 3) - pdf.Cell(30, 2, "#{i.name}") - end - - top = top + 5 - pdf.SetDrawColor(200, 200, 200) - pdf.Line(15, top, subject_width+g_width, top) - if pdf.GetY() > 180 - pdf.AddPage("L") - top = 20 - pdf.Line(15, top, subject_width+g_width, top) - end - pdf.SetDrawColor(0, 0, 0) - end - - pdf.Line(15, top, subject_width+g_width, top) - pdf.Output - end + end end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/helpers/.svn/all-wcprops --- a/lib/redmine/helpers/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/helpers/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/3885/trunk/lib/redmine/helpers +/svn/!svn/ver/4074/trunk/lib/redmine/helpers END gantt.rb K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/3885/trunk/lib/redmine/helpers/gantt.rb +/svn/!svn/ver/4074/trunk/lib/redmine/helpers/gantt.rb END calendar.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/helpers/.svn/entries --- a/lib/redmine/helpers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/helpers http://redmine.rubyforge.org/svn -2010-07-25T11:43:19.719822Z -3885 -jplang +2010-09-10T03:09:18.467829Z +4074 +edavis10 @@ -32,11 +32,11 @@ -2010-07-28T11:07:47.488255Z -2181b2348a3f0793891623cc0c97fae3 -2010-07-25T11:43:19.719822Z -3885 -jplang +2010-09-24T12:48:29.795823Z +b227b416933df707aaa9a62cb52a3f9e +2010-09-10T03:09:18.467829Z +4074 +edavis10 has-props @@ -58,7 +58,7 @@ -10558 +40757 calendar.rb file @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.420153Z +2010-09-23T14:37:45.027790Z 0a7d81755cf7c1519d4b4c1d84712139 2009-12-13T04:06:55.726600Z 3166 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base --- a/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -19,11 +19,28 @@ module Helpers # Simple class to handle gantt chart data class Gantt - attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months, :events - + include ERB::Util + include Redmine::I18n + + # :nodoc: + # Some utility methods for the PDF export + class PDF + MaxCharactorsForSubject = 45 + TotalWidth = 280 + LeftPaneWidth = 100 + + def self.right_pane_width + TotalWidth - LeftPaneWidth + end + end + + attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months + attr_accessor :query + attr_accessor :project + attr_accessor :view + def initialize(options={}) options = options.dup - @events = [] if options[:year] && options[:year].to_i >0 @year_from = options[:year].to_i @@ -51,47 +68,668 @@ @date_from = Date.civil(@year_from, @month_from, 1) @date_to = (@date_from >> @months) - 1 end - - - def events=(e) - @events = e - # Adds all ancestors - root_ids = e.select {|i| i.is_a?(Issue) && i.parent_id? }.collect(&:root_id).uniq - if root_ids.any? - # Retrieves all nodes - parents = Issue.find_all_by_root_id(root_ids, :conditions => ["rgt - lft > 1"]) - # Only add ancestors - @events += parents.select {|p| @events.detect {|i| i.is_a?(Issue) && p.is_ancestor_of?(i)}} - end - @events.uniq! - # Sort issues by hierarchy and start dates - @events.sort! {|x,y| - if x.is_a?(Issue) && y.is_a?(Issue) - gantt_issue_compare(x, y, @events) - else - gantt_start_compare(x, y) - end - } - # Removes issues that have no start or end date - @events.reject! {|i| i.is_a?(Issue) && (i.start_date.nil? || i.due_before.nil?) } - @events + + def common_params + { :controller => 'gantts', :action => 'show', :project_id => @project } end def params - { :zoom => zoom, :year => year_from, :month => month_from, :months => months } + common_params.merge({ :zoom => zoom, :year => year_from, :month => month_from, :months => months }) end def params_previous - { :year => (date_from << months).year, :month => (date_from << months).month, :zoom => zoom, :months => months } + common_params.merge({:year => (date_from << months).year, :month => (date_from << months).month, :zoom => zoom, :months => months }) end def params_next - { :year => (date_from >> months).year, :month => (date_from >> months).month, :zoom => zoom, :months => months } + common_params.merge({:year => (date_from >> months).year, :month => (date_from >> months).month, :zoom => zoom, :months => months }) end - + + ### Extracted from the HTML view/helpers + # Returns the number of rows that will be rendered on the Gantt chart + def number_of_rows + if @project + return number_of_rows_on_project(@project) + else + Project.roots.inject(0) do |total, project| + total += number_of_rows_on_project(project) + end + end + end + + # Returns the number of rows that will be used to list a project on + # the Gantt chart. This will recurse for each subproject. + def number_of_rows_on_project(project) + # Remove the project requirement for Versions because it will + # restrict issues to only be on the current project. This + # ends up missing issues which are assigned to shared versions. + @query.project = nil if @query.project + + # One Root project + count = 1 + # Issues without a Version + count += project.issues.for_gantt.without_version.with_query(@query).count + + # Versions + count += project.versions.count + + # Issues on the Versions + project.versions.each do |version| + count += version.fixed_issues.for_gantt.with_query(@query).count + end + + # Subprojects + project.children.each do |subproject| + count += number_of_rows_on_project(subproject) + end + + count + end + + # Renders the subjects of the Gantt chart, the left side. + def subjects(options={}) + options = {:indent => 4, :render => :subject, :format => :html}.merge(options) + + output = '' + if @project + output << render_project(@project, options) + else + Project.roots.each do |project| + output << render_project(project, options) + end + end + + output + end + + # Renders the lines of the Gantt chart, the right side + def lines(options={}) + options = {:indent => 4, :render => :line, :format => :html}.merge(options) + output = '' + + if @project + output << render_project(@project, options) + else + Project.roots.each do |project| + output << render_project(project, options) + end + end + + output + end + + def render_project(project, options={}) + options[:top] = 0 unless options.key? :top + options[:indent_increment] = 20 unless options.key? :indent_increment + options[:top_increment] = 20 unless options.key? :top_increment + + output = '' + # Project Header + project_header = if options[:render] == :subject + subject_for_project(project, options) + else + # :line + line_for_project(project, options) + end + output << project_header if options[:format] == :html + + options[:top] += options[:top_increment] + options[:indent] += options[:indent_increment] + + # Second, Issues without a version + issues = project.issues.for_gantt.without_version.with_query(@query) + if issues + issue_rendering = render_issues(issues, options) + output << issue_rendering if options[:format] == :html + end + + # Third, Versions + project.versions.sort.each do |version| + version_rendering = render_version(version, options) + output << version_rendering if options[:format] == :html + end + + # Fourth, subprojects + project.children.each do |project| + subproject_rendering = render_project(project, options) + output << subproject_rendering if options[:format] == :html + end + + # Remove indent to hit the next sibling + options[:indent] -= options[:indent_increment] + + output + end + + def render_issues(issues, options={}) + output = '' + issues.each do |i| + issue_rendering = if options[:render] == :subject + subject_for_issue(i, options) + else + # :line + line_for_issue(i, options) + end + output << issue_rendering if options[:format] == :html + options[:top] += options[:top_increment] + end + output + end + + def render_version(version, options={}) + output = '' + # Version header + version_rendering = if options[:render] == :subject + subject_for_version(version, options) + else + # :line + line_for_version(version, options) + end + + output << version_rendering if options[:format] == :html + + options[:top] += options[:top_increment] + + # Remove the project requirement for Versions because it will + # restrict issues to only be on the current project. This + # ends up missing issues which are assigned to shared versions. + @query.project = nil if @query.project + + issues = version.fixed_issues.for_gantt.with_query(@query) + if issues + # Indent issues + options[:indent] += options[:indent_increment] + output << render_issues(issues, options) + options[:indent] -= options[:indent_increment] + end + + output + end + + def subject_for_project(project, options) + case options[:format] + when :html + output = '' + + output << "
    " + if project.is_a? Project + output << "" + output << view.link_to_project(project) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_project was not given a project" + '' + end + output << "
    " + + output + when :image + + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, project.name) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{project.name}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_project(project, options) + # Skip versions that don't have a start_date + if project.is_a?(Project) && project.start_date + options[:zoom] ||= 1 + options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom] + + + case options[:format] + when :html + output = '' + i_left = ((project.start_date - self.date_from)*options[:zoom]).floor + + start_date = project.start_date + start_date ||= self.date_from + start_left = ((start_date - self.date_from)*options[:zoom]).floor + + i_end_date = ((project.due_date <= self.date_to) ? project.due_date : self.date_to ) + i_done_date = start_date + ((project.due_date - start_date+1)* project.completed_percent(:include_subprojects => true)/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if start_date < Date.today + i_end = ((i_end_date - self.date_from) * options[:zoom]).floor + + i_width = (i_end - i_left + 1).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + + # Bar graphic + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_end > 0 && i_left <= options[:g_width] + output << "
     
    " + end + + if l_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if d_width > 0 && i_left <= options[:g_width] + output<< "
     
    " + end + + + # Starting diamond + if start_left <= options[:g_width] && start_left > 0 + output << "
     
    " + output << "
    " + output << "
    " + end + + # Ending diamond + # Don't show items too far ahead + if i_end <= options[:g_width] && i_end > 0 + output << "
     
    " + end + + # DIsplay the Project name and % + if i_end <= options[:g_width] + # Display the status even if it's floated off to the left + status_px = i_end + 12 # 12px for the diamond + status_px = 0 if status_px <= 0 + + output << "
    " + output << "#{h project } #{h project.completed_percent(:include_subprojects => true).to_i.to_s}%" + output << "
    " + end + + output + when :image + options[:image].stroke('transparent') + i_left = options[:subject_width] + ((project.due_date - self.date_from)*options[:zoom]).floor + + # Make sure negative i_left doesn't overflow the subject + if i_left > options[:subject_width] + options[:image].fill('blue') + options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6) + options[:image].fill('black') + options[:image].text(i_left + 11, options[:top] + 1, project.name) + end + when :pdf + options[:pdf].SetY(options[:top]+1.5) + i_left = ((project.due_date - @date_from)*options[:zoom]) + + # Make sure negative i_left doesn't overflow the subject + if i_left > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(50,50,200) + options[:pdf].Cell(2, 2, "", 0, 0, "", 1) + + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left + 3) + options[:pdf].Cell(30, 2, "#{project.name}") + end + end + else + ActiveRecord::Base.logger.debug "Gantt#line_for_project was not given a project with a start_date" + '' + end + end + + def subject_for_version(version, options) + case options[:format] + when :html + output = '' + output << "
    " + if version.is_a? Version + output << "" + output << view.link_to_version(version) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_version was not given a version" + '' + end + output << "
    " + + output + when :image + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, version.to_s_with_project) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{version.to_s_with_project}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_version(version, options) + # Skip versions that don't have a start_date + if version.is_a?(Version) && version.start_date + options[:zoom] ||= 1 + options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom] + + case options[:format] + when :html + output = '' + i_left = ((version.start_date - self.date_from)*options[:zoom]).floor + # TODO: or version.fixed_issues.collect(&:start_date).min + start_date = version.fixed_issues.minimum('start_date') if version.fixed_issues.present? + start_date ||= self.date_from + start_left = ((start_date - self.date_from)*options[:zoom]).floor + + i_end_date = ((version.due_date <= self.date_to) ? version.due_date : self.date_to ) + i_done_date = start_date + ((version.due_date - start_date+1)* version.completed_pourcent/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if start_date < Date.today + + i_width = (i_left - start_left + 1).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + + i_end = ((i_end_date - self.date_from) * options[:zoom]).floor # Ending pixel + + # Bar graphic + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if l_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if d_width > 0 && i_left <= options[:g_width] + output<< "
     
    " + end + + + # Starting diamond + if start_left <= options[:g_width] && start_left > 0 + output << "
     
    " + output << "
    " + output << "
    " + end + + # Ending diamond + # Don't show items too far ahead + if i_left <= options[:g_width] && i_end > 0 + output << "
     
    " + end + + # Display the Version name and % + if i_end <= options[:g_width] + # Display the status even if it's floated off to the left + status_px = i_end + 12 # 12px for the diamond + status_px = 0 if status_px <= 0 + + output << "
    " + output << h("#{version.project} -") unless @project && @project == version.project + output << "#{h version } #{h version.completed_pourcent.to_i.to_s}%" + output << "
    " + end + + output + when :image + options[:image].stroke('transparent') + i_left = options[:subject_width] + ((version.start_date - @date_from)*options[:zoom]).floor + + # Make sure negative i_left doesn't overflow the subject + if i_left > options[:subject_width] + options[:image].fill('green') + options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6) + options[:image].fill('black') + options[:image].text(i_left + 11, options[:top] + 1, version.name) + end + when :pdf + options[:pdf].SetY(options[:top]+1.5) + i_left = ((version.start_date - @date_from)*options[:zoom]) + + # Make sure negative i_left doesn't overflow the subject + if i_left > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(50,200,50) + options[:pdf].Cell(2, 2, "", 0, 0, "", 1) + + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left + 3) + options[:pdf].Cell(30, 2, "#{version.name}") + end + end + else + ActiveRecord::Base.logger.debug "Gantt#line_for_version was not given a version with a start_date" + '' + end + end + + def subject_for_issue(issue, options) + case options[:format] + when :html + output = '' + output << "
    " + output << "
    " + if issue.is_a? Issue + css_classes = [] + css_classes << 'issue-overdue' if issue.overdue? + css_classes << 'issue-behind-schedule' if issue.behind_schedule? + css_classes << 'icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to + + if issue.assigned_to.present? + assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name + output << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string) + end + output << "" + output << view.link_to_issue(issue) + output << ":" + output << h(issue.subject) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_issue was not given an issue" + '' + end + output << "
    " + + # Tooltip + if issue.is_a? Issue + output << "" + output << view.render_issue_tooltip(issue) + output << "" + end + + output << "
    " + output + when :image + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, issue.subject) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{issue.tracker} #{issue.id}: #{issue.subject}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_issue(issue, options) + # Skip issues that don't have a due_before (due_date or version's due_date) + if issue.is_a?(Issue) && issue.due_before + case options[:format] + when :html + output = '' + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= self.date_from + issue.start_date + else + self.date_from + end + + i_end_date = ((issue.due_before && issue.due_before <= self.date_to) ? issue.due_before : self.date_to ) + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = ((i_start_date - self.date_from)*options[:zoom]).floor + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - i_start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + css = "task " + (issue.leaf? ? 'leaf' : 'parent') + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + output << "
     
    " + end + if l_width > 0 + output << "
     
    " + end + if d_width > 0 + output<< "
     
    " + end + + # Display the status even if it's floated off to the left + status_px = i_left + i_width + 5 + status_px = 5 if status_px <= 0 + + output << "
    " + output << issue.status.name + output << ' ' + output << (issue.done_ratio).to_i.to_s + output << "%" + output << "
    " + + output << "
    " + output << '' + output << view.render_issue_tooltip(issue) + output << "
    " + output + + when :image + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= @date_from + issue.start_date + else + @date_from + end + + i_end_date = (issue.due_before <= date_to ? issue.due_before : date_to ) + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) + i_done_date = (i_done_date >= date_to ? date_to : i_done_date ) + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = options[:subject_width] + ((i_start_date - @date_from)*options[:zoom]).floor + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor # total width of the issue + d_width = ((i_done_date - i_start_date)*options[:zoom]).floor # done width + l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor : 0 # delay width + + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + options[:image].fill('grey') + options[:image].rectangle(i_left, options[:top], i_left + i_width, options[:top] - 6) + options[:image].fill('red') + options[:image].rectangle(i_left, options[:top], i_left + l_width, options[:top] - 6) if l_width > 0 + options[:image].fill('blue') + options[:image].rectangle(i_left, options[:top], i_left + d_width, options[:top] - 6) if d_width > 0 + end + + # Show the status and % done next to the subject if it overflows + options[:image].fill('black') + if i_width > 0 + options[:image].text(i_left + i_width + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%") + else + options[:image].text(options[:subject_width] + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%") + end + + when :pdf + options[:pdf].SetY(options[:top]+1.5) + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= @date_from + issue.start_date + else + @date_from + end + + i_end_date = (issue.due_before <= @date_to ? issue.due_before : @date_to ) + + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) + i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = ((i_start_date - @date_from)*options[:zoom]) + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]) + d_width = ((i_done_date - i_start_date)*options[:zoom]) + l_width = ((i_late_date - i_start_date+1)*options[:zoom]) if i_late_date + l_width ||= 0 + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(200,200,200) + options[:pdf].Cell(i_width, 2, "", 0, 0, "", 1) + end + + if l_width > 0 + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(255,100,100) + options[:pdf].Cell(l_width, 2, "", 0, 0, "", 1) + end + if d_width > 0 + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(100,100,255) + options[:pdf].Cell(d_width, 2, "", 0, 0, "", 1) + end + + options[:pdf].SetY(options[:top]+1.5) + + # Make sure that negative i_left and i_width don't + # overflow the subject + if (i_left + i_width) >= 0 + options[:pdf].SetX(options[:subject_width] + i_left + i_width) + else + options[:pdf].SetX(options[:subject_width]) + end + options[:pdf].Cell(30, 2, "#{issue.status} #{issue.done_ratio}%") + end + else + ActiveRecord::Base.logger.debug "GanttHelper#line_for_issue was not given an issue with a due_before" + '' + end + end + # Generates a gantt image # Only defined if RMagick is avalaible - def to_image(project, format='PNG') + def to_image(format='PNG') date_to = (@date_from >> @months)-1 show_weeks = @zoom > 1 show_days = @zoom > 2 @@ -101,7 +739,7 @@ # width of one day in pixels zoom = @zoom*2 g_width = (@date_to - @date_from + 1)*zoom - g_height = 20 * events.length + 20 + g_height = 20 * number_of_rows + 30 headers_heigth = (show_weeks ? 2*header_heigth : header_heigth) height = g_height + headers_heigth @@ -110,21 +748,7 @@ gc = Magick::Draw.new # Subjects - top = headers_heigth + 20 - gc.fill('black') - gc.stroke('transparent') - gc.stroke_width(1) - events.each do |i| - text = "" - if i.is_a? Issue - text = "#{i.tracker} #{i.id}: #{i.subject}" - else - text = i.name - end - text = "#{i.project} - #{text}" unless project && project == i.project - gc.text(4, top + 2, text) - top = top + 20 - end + subjects(:image => gc, :top => (headers_heigth + 20), :indent => 4, :format => :image) # Months headers month_f = @date_from @@ -202,38 +826,8 @@ # content top = headers_heigth + 20 - gc.stroke('transparent') - events.each do |i| - if i.is_a?(Issue) - i_start_date = (i.start_date >= @date_from ? i.start_date : @date_from ) - i_end_date = (i.due_before <= date_to ? i.due_before : date_to ) - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) - i_done_date = (i_done_date >= date_to ? date_to : i_done_date ) - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = subject_width + ((i_start_date - @date_from)*zoom).floor - i_width = ((i_end_date - i_start_date + 1)*zoom).floor # total width of the issue - d_width = ((i_done_date - i_start_date)*zoom).floor # done width - l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor : 0 # delay width - - gc.fill('grey') - gc.rectangle(i_left, top, i_left + i_width, top - 6) - gc.fill('red') - gc.rectangle(i_left, top, i_left + l_width, top - 6) if l_width > 0 - gc.fill('blue') - gc.rectangle(i_left, top, i_left + d_width, top - 6) if d_width > 0 - gc.fill('black') - gc.text(i_left + i_width + 5,top + 1, "#{i.status.name} #{i.done_ratio}%") - else - i_left = subject_width + ((i.start_date - @date_from)*zoom).floor - gc.fill('green') - gc.rectangle(i_left, top, i_left + 6, top - 6) - gc.fill('black') - gc.text(i_left + 11, top + 1, i.name) - end - top = top + 20 - end + + lines(:image => gc, :top => top, :zoom => zoom, :subject_width => subject_width, :format => :image) # today red line if Date.today >= @date_from and Date.today <= date_to @@ -246,36 +840,137 @@ imgl.format = format imgl.to_blob end if Object.const_defined?(:Magick) + + def to_pdf + pdf = ::Redmine::Export::PDF::IFPDF.new(current_language) + pdf.SetTitle("#{l(:label_gantt)} #{project}") + pdf.AliasNbPages + pdf.footer_date = format_date(Date.today) + pdf.AddPage("L") + pdf.SetFontStyle('B',12) + pdf.SetX(15) + pdf.Cell(PDF::LeftPaneWidth, 20, project.to_s) + pdf.Ln + pdf.SetFontStyle('B',9) + + subject_width = PDF::LeftPaneWidth + header_heigth = 5 + + headers_heigth = header_heigth + show_weeks = false + show_days = false + + if self.months < 7 + show_weeks = true + headers_heigth = 2*header_heigth + if self.months < 3 + show_days = true + headers_heigth = 3*header_heigth + end + end + + g_width = PDF.right_pane_width + zoom = (g_width) / (self.date_to - self.date_from + 1) + g_height = 120 + t_height = g_height + headers_heigth + + y_start = pdf.GetY + + # Months headers + month_f = self.date_from + left = subject_width + height = header_heigth + self.months.times do + width = ((month_f >> 1) - month_f) * zoom + pdf.SetY(y_start) + pdf.SetX(left) + pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C") + left = left + width + month_f = month_f >> 1 + end + + # Weeks headers + if show_weeks + left = subject_width + height = header_heigth + if self.date_from.cwday == 1 + # self.date_from is monday + week_f = self.date_from + else + # find next monday after self.date_from + week_f = self.date_from + (7 - self.date_from.cwday + 1) + width = (7 - self.date_from.cwday + 1) * zoom-1 + pdf.SetY(y_start + header_heigth) + pdf.SetX(left) + pdf.Cell(width + 1, height, "", "LTR") + left = left + width+1 + end + while week_f <= self.date_to + width = (week_f + 6 <= self.date_to) ? 7 * zoom : (self.date_to - week_f + 1) * zoom + pdf.SetY(y_start + header_heigth) + pdf.SetX(left) + pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") + left = left + width + week_f = week_f+7 + end + end + + # Days headers + if show_days + left = subject_width + height = header_heigth + wday = self.date_from.cwday + pdf.SetFontStyle('B',7) + (self.date_to - self.date_from + 1).to_i.times do + width = zoom + pdf.SetY(y_start + 2 * header_heigth) + pdf.SetX(left) + pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C") + left = left + width + wday = wday + 1 + wday = 1 if wday > 7 + end + end + + pdf.SetY(y_start) + pdf.SetX(15) + pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1) + + # Tasks + top = headers_heigth + y_start + pdf_subjects_and_lines(pdf, { + :top => top, + :zoom => zoom, + :subject_width => subject_width, + :g_width => g_width + }) + + + pdf.Line(15, top, subject_width+g_width, top) + pdf.Output + + + end private - - def gantt_issue_compare(x, y, issues) - if x.parent_id == y.parent_id - gantt_start_compare(x, y) - elsif x.is_ancestor_of?(y) - -1 - elsif y.is_ancestor_of?(x) - 1 + + # Renders both the subjects and lines of the Gantt chart for the + # PDF format + def pdf_subjects_and_lines(pdf, options = {}) + subject_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :subject, :format => :pdf, :pdf => pdf}.merge(options) + line_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :line, :format => :pdf, :pdf => pdf}.merge(options) + + if @project + render_project(@project, subject_options) + render_project(@project, line_options) else - ax = issues.select {|i| i.is_a?(Issue) && i.is_ancestor_of?(x) && !i.is_ancestor_of?(y) }.sort_by(&:lft).first - ay = issues.select {|i| i.is_a?(Issue) && i.is_ancestor_of?(y) && !i.is_ancestor_of?(x) }.sort_by(&:lft).first - if ax.nil? && ay.nil? - gantt_start_compare(x, y) - else - gantt_issue_compare(ax || x, ay || y, issues) + Project.roots.each do |project| + render_project(project, subject_options) + render_project(project, line_options) end end end - - def gantt_start_compare(x, y) - if x.start_date.nil? - -1 - elsif y.start_date.nil? - 1 - else - x.start_date <=> y.start_date - end - end + end end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/helpers/gantt.rb --- a/lib/redmine/helpers/gantt.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/helpers/gantt.rb Fri Sep 24 14:06:04 2010 +0100 @@ -19,11 +19,28 @@ module Helpers # Simple class to handle gantt chart data class Gantt - attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months, :events - + include ERB::Util + include Redmine::I18n + + # :nodoc: + # Some utility methods for the PDF export + class PDF + MaxCharactorsForSubject = 45 + TotalWidth = 280 + LeftPaneWidth = 100 + + def self.right_pane_width + TotalWidth - LeftPaneWidth + end + end + + attr_reader :year_from, :month_from, :date_from, :date_to, :zoom, :months + attr_accessor :query + attr_accessor :project + attr_accessor :view + def initialize(options={}) options = options.dup - @events = [] if options[:year] && options[:year].to_i >0 @year_from = options[:year].to_i @@ -51,47 +68,668 @@ @date_from = Date.civil(@year_from, @month_from, 1) @date_to = (@date_from >> @months) - 1 end - - - def events=(e) - @events = e - # Adds all ancestors - root_ids = e.select {|i| i.is_a?(Issue) && i.parent_id? }.collect(&:root_id).uniq - if root_ids.any? - # Retrieves all nodes - parents = Issue.find_all_by_root_id(root_ids, :conditions => ["rgt - lft > 1"]) - # Only add ancestors - @events += parents.select {|p| @events.detect {|i| i.is_a?(Issue) && p.is_ancestor_of?(i)}} - end - @events.uniq! - # Sort issues by hierarchy and start dates - @events.sort! {|x,y| - if x.is_a?(Issue) && y.is_a?(Issue) - gantt_issue_compare(x, y, @events) - else - gantt_start_compare(x, y) - end - } - # Removes issues that have no start or end date - @events.reject! {|i| i.is_a?(Issue) && (i.start_date.nil? || i.due_before.nil?) } - @events + + def common_params + { :controller => 'gantts', :action => 'show', :project_id => @project } end def params - { :zoom => zoom, :year => year_from, :month => month_from, :months => months } + common_params.merge({ :zoom => zoom, :year => year_from, :month => month_from, :months => months }) end def params_previous - { :year => (date_from << months).year, :month => (date_from << months).month, :zoom => zoom, :months => months } + common_params.merge({:year => (date_from << months).year, :month => (date_from << months).month, :zoom => zoom, :months => months }) end def params_next - { :year => (date_from >> months).year, :month => (date_from >> months).month, :zoom => zoom, :months => months } + common_params.merge({:year => (date_from >> months).year, :month => (date_from >> months).month, :zoom => zoom, :months => months }) end - + + ### Extracted from the HTML view/helpers + # Returns the number of rows that will be rendered on the Gantt chart + def number_of_rows + if @project + return number_of_rows_on_project(@project) + else + Project.roots.inject(0) do |total, project| + total += number_of_rows_on_project(project) + end + end + end + + # Returns the number of rows that will be used to list a project on + # the Gantt chart. This will recurse for each subproject. + def number_of_rows_on_project(project) + # Remove the project requirement for Versions because it will + # restrict issues to only be on the current project. This + # ends up missing issues which are assigned to shared versions. + @query.project = nil if @query.project + + # One Root project + count = 1 + # Issues without a Version + count += project.issues.for_gantt.without_version.with_query(@query).count + + # Versions + count += project.versions.count + + # Issues on the Versions + project.versions.each do |version| + count += version.fixed_issues.for_gantt.with_query(@query).count + end + + # Subprojects + project.children.each do |subproject| + count += number_of_rows_on_project(subproject) + end + + count + end + + # Renders the subjects of the Gantt chart, the left side. + def subjects(options={}) + options = {:indent => 4, :render => :subject, :format => :html}.merge(options) + + output = '' + if @project + output << render_project(@project, options) + else + Project.roots.each do |project| + output << render_project(project, options) + end + end + + output + end + + # Renders the lines of the Gantt chart, the right side + def lines(options={}) + options = {:indent => 4, :render => :line, :format => :html}.merge(options) + output = '' + + if @project + output << render_project(@project, options) + else + Project.roots.each do |project| + output << render_project(project, options) + end + end + + output + end + + def render_project(project, options={}) + options[:top] = 0 unless options.key? :top + options[:indent_increment] = 20 unless options.key? :indent_increment + options[:top_increment] = 20 unless options.key? :top_increment + + output = '' + # Project Header + project_header = if options[:render] == :subject + subject_for_project(project, options) + else + # :line + line_for_project(project, options) + end + output << project_header if options[:format] == :html + + options[:top] += options[:top_increment] + options[:indent] += options[:indent_increment] + + # Second, Issues without a version + issues = project.issues.for_gantt.without_version.with_query(@query) + if issues + issue_rendering = render_issues(issues, options) + output << issue_rendering if options[:format] == :html + end + + # Third, Versions + project.versions.sort.each do |version| + version_rendering = render_version(version, options) + output << version_rendering if options[:format] == :html + end + + # Fourth, subprojects + project.children.each do |project| + subproject_rendering = render_project(project, options) + output << subproject_rendering if options[:format] == :html + end + + # Remove indent to hit the next sibling + options[:indent] -= options[:indent_increment] + + output + end + + def render_issues(issues, options={}) + output = '' + issues.each do |i| + issue_rendering = if options[:render] == :subject + subject_for_issue(i, options) + else + # :line + line_for_issue(i, options) + end + output << issue_rendering if options[:format] == :html + options[:top] += options[:top_increment] + end + output + end + + def render_version(version, options={}) + output = '' + # Version header + version_rendering = if options[:render] == :subject + subject_for_version(version, options) + else + # :line + line_for_version(version, options) + end + + output << version_rendering if options[:format] == :html + + options[:top] += options[:top_increment] + + # Remove the project requirement for Versions because it will + # restrict issues to only be on the current project. This + # ends up missing issues which are assigned to shared versions. + @query.project = nil if @query.project + + issues = version.fixed_issues.for_gantt.with_query(@query) + if issues + # Indent issues + options[:indent] += options[:indent_increment] + output << render_issues(issues, options) + options[:indent] -= options[:indent_increment] + end + + output + end + + def subject_for_project(project, options) + case options[:format] + when :html + output = '' + + output << "
    " + if project.is_a? Project + output << "" + output << view.link_to_project(project) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_project was not given a project" + '' + end + output << "
    " + + output + when :image + + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, project.name) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{project.name}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_project(project, options) + # Skip versions that don't have a start_date + if project.is_a?(Project) && project.start_date + options[:zoom] ||= 1 + options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom] + + + case options[:format] + when :html + output = '' + i_left = ((project.start_date - self.date_from)*options[:zoom]).floor + + start_date = project.start_date + start_date ||= self.date_from + start_left = ((start_date - self.date_from)*options[:zoom]).floor + + i_end_date = ((project.due_date <= self.date_to) ? project.due_date : self.date_to ) + i_done_date = start_date + ((project.due_date - start_date+1)* project.completed_percent(:include_subprojects => true)/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if start_date < Date.today + i_end = ((i_end_date - self.date_from) * options[:zoom]).floor + + i_width = (i_end - i_left + 1).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + + # Bar graphic + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_end > 0 && i_left <= options[:g_width] + output << "
     
    " + end + + if l_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if d_width > 0 && i_left <= options[:g_width] + output<< "
     
    " + end + + + # Starting diamond + if start_left <= options[:g_width] && start_left > 0 + output << "
     
    " + output << "
    " + output << "
    " + end + + # Ending diamond + # Don't show items too far ahead + if i_end <= options[:g_width] && i_end > 0 + output << "
     
    " + end + + # DIsplay the Project name and % + if i_end <= options[:g_width] + # Display the status even if it's floated off to the left + status_px = i_end + 12 # 12px for the diamond + status_px = 0 if status_px <= 0 + + output << "
    " + output << "#{h project } #{h project.completed_percent(:include_subprojects => true).to_i.to_s}%" + output << "
    " + end + + output + when :image + options[:image].stroke('transparent') + i_left = options[:subject_width] + ((project.due_date - self.date_from)*options[:zoom]).floor + + # Make sure negative i_left doesn't overflow the subject + if i_left > options[:subject_width] + options[:image].fill('blue') + options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6) + options[:image].fill('black') + options[:image].text(i_left + 11, options[:top] + 1, project.name) + end + when :pdf + options[:pdf].SetY(options[:top]+1.5) + i_left = ((project.due_date - @date_from)*options[:zoom]) + + # Make sure negative i_left doesn't overflow the subject + if i_left > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(50,50,200) + options[:pdf].Cell(2, 2, "", 0, 0, "", 1) + + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left + 3) + options[:pdf].Cell(30, 2, "#{project.name}") + end + end + else + ActiveRecord::Base.logger.debug "Gantt#line_for_project was not given a project with a start_date" + '' + end + end + + def subject_for_version(version, options) + case options[:format] + when :html + output = '' + output << "
    " + if version.is_a? Version + output << "" + output << view.link_to_version(version) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_version was not given a version" + '' + end + output << "
    " + + output + when :image + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, version.to_s_with_project) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{version.to_s_with_project}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_version(version, options) + # Skip versions that don't have a start_date + if version.is_a?(Version) && version.start_date + options[:zoom] ||= 1 + options[:g_width] ||= (self.date_to - self.date_from + 1) * options[:zoom] + + case options[:format] + when :html + output = '' + i_left = ((version.start_date - self.date_from)*options[:zoom]).floor + # TODO: or version.fixed_issues.collect(&:start_date).min + start_date = version.fixed_issues.minimum('start_date') if version.fixed_issues.present? + start_date ||= self.date_from + start_left = ((start_date - self.date_from)*options[:zoom]).floor + + i_end_date = ((version.due_date <= self.date_to) ? version.due_date : self.date_to ) + i_done_date = start_date + ((version.due_date - start_date+1)* version.completed_pourcent/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if start_date < Date.today + + i_width = (i_left - start_left + 1).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + + i_end = ((i_end_date - self.date_from) * options[:zoom]).floor # Ending pixel + + # Bar graphic + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if l_width > 0 && i_left <= options[:g_width] + output << "
     
    " + end + if d_width > 0 && i_left <= options[:g_width] + output<< "
     
    " + end + + + # Starting diamond + if start_left <= options[:g_width] && start_left > 0 + output << "
     
    " + output << "
    " + output << "
    " + end + + # Ending diamond + # Don't show items too far ahead + if i_left <= options[:g_width] && i_end > 0 + output << "
     
    " + end + + # Display the Version name and % + if i_end <= options[:g_width] + # Display the status even if it's floated off to the left + status_px = i_end + 12 # 12px for the diamond + status_px = 0 if status_px <= 0 + + output << "
    " + output << h("#{version.project} -") unless @project && @project == version.project + output << "#{h version } #{h version.completed_pourcent.to_i.to_s}%" + output << "
    " + end + + output + when :image + options[:image].stroke('transparent') + i_left = options[:subject_width] + ((version.start_date - @date_from)*options[:zoom]).floor + + # Make sure negative i_left doesn't overflow the subject + if i_left > options[:subject_width] + options[:image].fill('green') + options[:image].rectangle(i_left, options[:top], i_left + 6, options[:top] - 6) + options[:image].fill('black') + options[:image].text(i_left + 11, options[:top] + 1, version.name) + end + when :pdf + options[:pdf].SetY(options[:top]+1.5) + i_left = ((version.start_date - @date_from)*options[:zoom]) + + # Make sure negative i_left doesn't overflow the subject + if i_left > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(50,200,50) + options[:pdf].Cell(2, 2, "", 0, 0, "", 1) + + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left + 3) + options[:pdf].Cell(30, 2, "#{version.name}") + end + end + else + ActiveRecord::Base.logger.debug "Gantt#line_for_version was not given a version with a start_date" + '' + end + end + + def subject_for_issue(issue, options) + case options[:format] + when :html + output = '' + output << "
    " + output << "
    " + if issue.is_a? Issue + css_classes = [] + css_classes << 'issue-overdue' if issue.overdue? + css_classes << 'issue-behind-schedule' if issue.behind_schedule? + css_classes << 'icon icon-issue' unless Setting.gravatar_enabled? && issue.assigned_to + + if issue.assigned_to.present? + assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name + output << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string) + end + output << "" + output << view.link_to_issue(issue) + output << ":" + output << h(issue.subject) + output << '' + else + ActiveRecord::Base.logger.debug "Gantt#subject_for_issue was not given an issue" + '' + end + output << "
    " + + # Tooltip + if issue.is_a? Issue + output << "" + output << view.render_issue_tooltip(issue) + output << "" + end + + output << "
    " + output + when :image + options[:image].fill('black') + options[:image].stroke('transparent') + options[:image].stroke_width(1) + options[:image].text(options[:indent], options[:top] + 2, issue.subject) + when :pdf + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(15) + + char_limit = PDF::MaxCharactorsForSubject - options[:indent] + options[:pdf].Cell(options[:subject_width]-15, 5, (" " * options[:indent]) +"#{issue.tracker} #{issue.id}: #{issue.subject}".sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR") + + options[:pdf].SetY(options[:top]) + options[:pdf].SetX(options[:subject_width]) + options[:pdf].Cell(options[:g_width], 5, "", "LR") + end + end + + def line_for_issue(issue, options) + # Skip issues that don't have a due_before (due_date or version's due_date) + if issue.is_a?(Issue) && issue.due_before + case options[:format] + when :html + output = '' + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= self.date_from + issue.start_date + else + self.date_from + end + + i_end_date = ((issue.due_before && issue.due_before <= self.date_to) ? issue.due_before : self.date_to ) + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= self.date_from ? self.date_from : i_done_date ) + i_done_date = (i_done_date >= self.date_to ? self.date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = ((i_start_date - self.date_from)*options[:zoom]).floor + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor - 2 # total width of the issue (- 2 for left and right borders) + d_width = ((i_done_date - i_start_date)*options[:zoom]).floor - 2 # done width + l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor - 2 : 0 # delay width + css = "task " + (issue.leaf? ? 'leaf' : 'parent') + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + output << "
     
    " + end + if l_width > 0 + output << "
     
    " + end + if d_width > 0 + output<< "
     
    " + end + + # Display the status even if it's floated off to the left + status_px = i_left + i_width + 5 + status_px = 5 if status_px <= 0 + + output << "
    " + output << issue.status.name + output << ' ' + output << (issue.done_ratio).to_i.to_s + output << "%" + output << "
    " + + output << "
    " + output << '' + output << view.render_issue_tooltip(issue) + output << "
    " + output + + when :image + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= @date_from + issue.start_date + else + @date_from + end + + i_end_date = (issue.due_before <= date_to ? issue.due_before : date_to ) + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) + i_done_date = (i_done_date >= date_to ? date_to : i_done_date ) + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = options[:subject_width] + ((i_start_date - @date_from)*options[:zoom]).floor + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]).floor # total width of the issue + d_width = ((i_done_date - i_start_date)*options[:zoom]).floor # done width + l_width = i_late_date ? ((i_late_date - i_start_date+1)*options[:zoom]).floor : 0 # delay width + + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + options[:image].fill('grey') + options[:image].rectangle(i_left, options[:top], i_left + i_width, options[:top] - 6) + options[:image].fill('red') + options[:image].rectangle(i_left, options[:top], i_left + l_width, options[:top] - 6) if l_width > 0 + options[:image].fill('blue') + options[:image].rectangle(i_left, options[:top], i_left + d_width, options[:top] - 6) if d_width > 0 + end + + # Show the status and % done next to the subject if it overflows + options[:image].fill('black') + if i_width > 0 + options[:image].text(i_left + i_width + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%") + else + options[:image].text(options[:subject_width] + 5,options[:top] + 1, "#{issue.status.name} #{issue.done_ratio}%") + end + + when :pdf + options[:pdf].SetY(options[:top]+1.5) + # Handle nil start_dates, rare but can happen. + i_start_date = if issue.start_date && issue.start_date >= @date_from + issue.start_date + else + @date_from + end + + i_end_date = (issue.due_before <= @date_to ? issue.due_before : @date_to ) + + i_done_date = i_start_date + ((issue.due_before - i_start_date+1)*issue.done_ratio/100).floor + i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) + i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date ) + + i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today + + i_left = ((i_start_date - @date_from)*options[:zoom]) + i_width = ((i_end_date - i_start_date + 1)*options[:zoom]) + d_width = ((i_done_date - i_start_date)*options[:zoom]) + l_width = ((i_late_date - i_start_date+1)*options[:zoom]) if i_late_date + l_width ||= 0 + + # Make sure that negative i_left and i_width don't + # overflow the subject + if i_width > 0 + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(200,200,200) + options[:pdf].Cell(i_width, 2, "", 0, 0, "", 1) + end + + if l_width > 0 + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(255,100,100) + options[:pdf].Cell(l_width, 2, "", 0, 0, "", 1) + end + if d_width > 0 + options[:pdf].SetY(options[:top]+1.5) + options[:pdf].SetX(options[:subject_width] + i_left) + options[:pdf].SetFillColor(100,100,255) + options[:pdf].Cell(d_width, 2, "", 0, 0, "", 1) + end + + options[:pdf].SetY(options[:top]+1.5) + + # Make sure that negative i_left and i_width don't + # overflow the subject + if (i_left + i_width) >= 0 + options[:pdf].SetX(options[:subject_width] + i_left + i_width) + else + options[:pdf].SetX(options[:subject_width]) + end + options[:pdf].Cell(30, 2, "#{issue.status} #{issue.done_ratio}%") + end + else + ActiveRecord::Base.logger.debug "GanttHelper#line_for_issue was not given an issue with a due_before" + '' + end + end + # Generates a gantt image # Only defined if RMagick is avalaible - def to_image(project, format='PNG') + def to_image(format='PNG') date_to = (@date_from >> @months)-1 show_weeks = @zoom > 1 show_days = @zoom > 2 @@ -101,7 +739,7 @@ # width of one day in pixels zoom = @zoom*2 g_width = (@date_to - @date_from + 1)*zoom - g_height = 20 * events.length + 20 + g_height = 20 * number_of_rows + 30 headers_heigth = (show_weeks ? 2*header_heigth : header_heigth) height = g_height + headers_heigth @@ -110,21 +748,7 @@ gc = Magick::Draw.new # Subjects - top = headers_heigth + 20 - gc.fill('black') - gc.stroke('transparent') - gc.stroke_width(1) - events.each do |i| - text = "" - if i.is_a? Issue - text = "#{i.tracker} #{i.id}: #{i.subject}" - else - text = i.name - end - text = "#{i.project} - #{text}" unless project && project == i.project - gc.text(4, top + 2, text) - top = top + 20 - end + subjects(:image => gc, :top => (headers_heigth + 20), :indent => 4, :format => :image) # Months headers month_f = @date_from @@ -202,38 +826,8 @@ # content top = headers_heigth + 20 - gc.stroke('transparent') - events.each do |i| - if i.is_a?(Issue) - i_start_date = (i.start_date >= @date_from ? i.start_date : @date_from ) - i_end_date = (i.due_before <= date_to ? i.due_before : date_to ) - i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor - i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date ) - i_done_date = (i_done_date >= date_to ? date_to : i_done_date ) - i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today - - i_left = subject_width + ((i_start_date - @date_from)*zoom).floor - i_width = ((i_end_date - i_start_date + 1)*zoom).floor # total width of the issue - d_width = ((i_done_date - i_start_date)*zoom).floor # done width - l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor : 0 # delay width - - gc.fill('grey') - gc.rectangle(i_left, top, i_left + i_width, top - 6) - gc.fill('red') - gc.rectangle(i_left, top, i_left + l_width, top - 6) if l_width > 0 - gc.fill('blue') - gc.rectangle(i_left, top, i_left + d_width, top - 6) if d_width > 0 - gc.fill('black') - gc.text(i_left + i_width + 5,top + 1, "#{i.status.name} #{i.done_ratio}%") - else - i_left = subject_width + ((i.start_date - @date_from)*zoom).floor - gc.fill('green') - gc.rectangle(i_left, top, i_left + 6, top - 6) - gc.fill('black') - gc.text(i_left + 11, top + 1, i.name) - end - top = top + 20 - end + + lines(:image => gc, :top => top, :zoom => zoom, :subject_width => subject_width, :format => :image) # today red line if Date.today >= @date_from and Date.today <= date_to @@ -246,36 +840,137 @@ imgl.format = format imgl.to_blob end if Object.const_defined?(:Magick) + + def to_pdf + pdf = ::Redmine::Export::PDF::IFPDF.new(current_language) + pdf.SetTitle("#{l(:label_gantt)} #{project}") + pdf.AliasNbPages + pdf.footer_date = format_date(Date.today) + pdf.AddPage("L") + pdf.SetFontStyle('B',12) + pdf.SetX(15) + pdf.Cell(PDF::LeftPaneWidth, 20, project.to_s) + pdf.Ln + pdf.SetFontStyle('B',9) + + subject_width = PDF::LeftPaneWidth + header_heigth = 5 + + headers_heigth = header_heigth + show_weeks = false + show_days = false + + if self.months < 7 + show_weeks = true + headers_heigth = 2*header_heigth + if self.months < 3 + show_days = true + headers_heigth = 3*header_heigth + end + end + + g_width = PDF.right_pane_width + zoom = (g_width) / (self.date_to - self.date_from + 1) + g_height = 120 + t_height = g_height + headers_heigth + + y_start = pdf.GetY + + # Months headers + month_f = self.date_from + left = subject_width + height = header_heigth + self.months.times do + width = ((month_f >> 1) - month_f) * zoom + pdf.SetY(y_start) + pdf.SetX(left) + pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C") + left = left + width + month_f = month_f >> 1 + end + + # Weeks headers + if show_weeks + left = subject_width + height = header_heigth + if self.date_from.cwday == 1 + # self.date_from is monday + week_f = self.date_from + else + # find next monday after self.date_from + week_f = self.date_from + (7 - self.date_from.cwday + 1) + width = (7 - self.date_from.cwday + 1) * zoom-1 + pdf.SetY(y_start + header_heigth) + pdf.SetX(left) + pdf.Cell(width + 1, height, "", "LTR") + left = left + width+1 + end + while week_f <= self.date_to + width = (week_f + 6 <= self.date_to) ? 7 * zoom : (self.date_to - week_f + 1) * zoom + pdf.SetY(y_start + header_heigth) + pdf.SetX(left) + pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") + left = left + width + week_f = week_f+7 + end + end + + # Days headers + if show_days + left = subject_width + height = header_heigth + wday = self.date_from.cwday + pdf.SetFontStyle('B',7) + (self.date_to - self.date_from + 1).to_i.times do + width = zoom + pdf.SetY(y_start + 2 * header_heigth) + pdf.SetX(left) + pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C") + left = left + width + wday = wday + 1 + wday = 1 if wday > 7 + end + end + + pdf.SetY(y_start) + pdf.SetX(15) + pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1) + + # Tasks + top = headers_heigth + y_start + pdf_subjects_and_lines(pdf, { + :top => top, + :zoom => zoom, + :subject_width => subject_width, + :g_width => g_width + }) + + + pdf.Line(15, top, subject_width+g_width, top) + pdf.Output + + + end private - - def gantt_issue_compare(x, y, issues) - if x.parent_id == y.parent_id - gantt_start_compare(x, y) - elsif x.is_ancestor_of?(y) - -1 - elsif y.is_ancestor_of?(x) - 1 + + # Renders both the subjects and lines of the Gantt chart for the + # PDF format + def pdf_subjects_and_lines(pdf, options = {}) + subject_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :subject, :format => :pdf, :pdf => pdf}.merge(options) + line_options = {:indent => 0, :indent_increment => 5, :top_increment => 3, :render => :line, :format => :pdf, :pdf => pdf}.merge(options) + + if @project + render_project(@project, subject_options) + render_project(@project, line_options) else - ax = issues.select {|i| i.is_a?(Issue) && i.is_ancestor_of?(x) && !i.is_ancestor_of?(y) }.sort_by(&:lft).first - ay = issues.select {|i| i.is_a?(Issue) && i.is_ancestor_of?(y) && !i.is_ancestor_of?(x) }.sort_by(&:lft).first - if ax.nil? && ay.nil? - gantt_start_compare(x, y) - else - gantt_issue_compare(ax || x, ay || y, issues) + Project.roots.each do |project| + render_project(project, subject_options) + render_project(project, line_options) end end end - - def gantt_start_compare(x, y) - if x.start_date.nil? - -1 - elsif y.start_date.nil? - 1 - else - x.start_date <=> y.start_date - end - end + end end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/scm/.svn/entries --- a/lib/redmine/scm/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/scm/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.392124Z +2010-09-23T14:37:45.043748Z 3a053c03d210decd9105a24ff5e1aa8f 2010-02-16T22:41:59.625572Z 3440 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/scm/adapters/.svn/entries --- a/lib/redmine/scm/adapters/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/scm/adapters/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-23T14:37:45.043748Z 638ab1af3838c9e8d9f7688224ebf18b 2010-06-20T16:08:26.745839Z 3800 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-23T14:37:45.039790Z 5a2dba12961234e4853397c87cef0b5e 2010-05-01T09:56:59.025016Z 3723 @@ -103,7 +103,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-24T11:56:52.980004Z b23f6bf941ce74af0650c41e1094ba8a 2010-02-21T14:38:34.467603Z 3469 @@ -137,7 +137,7 @@ -2010-08-25T15:27:58.073958Z +2010-09-23T14:37:45.039790Z 562f6950cbe67adb35946547436fe2df 2010-08-08T07:07:30.284069Z 3925 @@ -171,7 +171,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-24T11:56:52.992085Z c16d3e25388f47c99f1633eab2140ba7 2010-05-01T09:55:40.597772Z 3722 @@ -205,7 +205,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-23T14:37:45.039790Z 5f311f051bcb17a87475757807f8a63e 2008-06-08T15:44:23.440995Z 1510 @@ -239,7 +239,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-23T14:37:45.039790Z 19e0348377774a0c41b78a3f0a482284 2008-12-14T15:57:13.349302Z 2135 @@ -273,7 +273,7 @@ -2010-07-23T14:49:47.388136Z +2010-09-23T14:37:45.039790Z dc6df25045764c81cdfcdb441997823b 2009-01-04T13:27:48.560402Z 2232 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/scm/adapters/mercurial/.svn/entries --- a/lib/redmine/scm/adapters/mercurial/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/scm/adapters/mercurial/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters/mercurial http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.372098Z +2010-09-24T11:56:52.980004Z 6ba619703ae315a3683836144d19773c 2008-06-07T09:19:50.659015Z 1499 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.372098Z +2010-09-24T11:56:52.992085Z 2cd7a2264dff3758a1d3340af87a615f 2008-06-07T09:19:50.659015Z 1499 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/views/.svn/entries --- a/lib/redmine/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/views http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.408095Z +2010-09-23T14:37:45.047759Z 849e9df27c041f540e690c6192939edf 2009-01-29T13:54:44.887081Z 2334 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/views/my_page/.svn/entries --- a/lib/redmine/views/my_page/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/views/my_page/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/my_page http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.404094Z +2010-09-23T14:37:45.047759Z b06dfe20a85191516f81de5874f37ec6 2009-04-05T13:33:54.194067Z 2659 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/wiki_formatting/.svn/entries --- a/lib/redmine/wiki_formatting/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/wiki_formatting/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.400131Z +2010-09-23T14:37:45.051779Z a16e05369f2e3dbb2bd33d9c2895ffdf 2009-11-04T12:36:45.918398Z 3006 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/redmine/wiki_formatting/textile/.svn/entries --- a/lib/redmine/wiki_formatting/textile/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/redmine/wiki_formatting/textile/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting/textile http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.400131Z +2010-09-23T14:37:45.051779Z dec83b1d0d7f682d1ebf1f172fe3c90b 2009-11-11T10:55:19.574870Z 3025 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.400131Z +2010-09-23T14:37:45.051779Z 28027996d41c6fc1e52168e77c09de3f 2010-06-24T02:35:24.648446Z 3811 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/tasks/.svn/all-wcprops --- a/lib/tasks/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/tasks/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 34 -/svn/!svn/ver/3948/trunk/lib/tasks +/svn/!svn/ver/4167/trunk/lib/tasks END deprecated.rake K 25 @@ -25,7 +25,13 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/1459/trunk/lib/tasks/reminder.rake +/svn/!svn/ver/4167/trunk/lib/tasks/reminder.rake +END +metrics.rake +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/!svn/ver/2825/trunk/lib/tasks/metrics.rake END initializers.rake K 25 @@ -33,12 +39,6 @@ V 52 /svn/!svn/ver/3785/trunk/lib/tasks/initializers.rake END -metrics.rake -K 25 -svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/2825/trunk/lib/tasks/metrics.rake -END permissions.rake K 25 svn:wc:ra_dav:version-url @@ -63,18 +63,18 @@ V 48 /svn/!svn/ver/3167/trunk/lib/tasks/watchers.rake END +plugins.rake +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/!svn/ver/1786/trunk/lib/tasks/plugins.rake +END yardoc.rake K 25 svn:wc:ra_dav:version-url V 46 /svn/!svn/ver/3922/trunk/lib/tasks/yardoc.rake END -plugins.rake -K 25 -svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/1786/trunk/lib/tasks/plugins.rake -END locales.rake K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/tasks/.svn/entries --- a/lib/tasks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/tasks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/lib/tasks http://redmine.rubyforge.org/svn -2010-08-18T17:23:23.071766Z -3948 +2010-09-20T23:17:51.402972Z +4167 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 03301be8b264b5cb46d05896861dcc4d 2007-09-02T08:08:10.346505Z 691 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 2ee57ccc06c675e55c38a4153a27c7c3 2010-05-01T09:37:46.451305Z 3721 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 0c57af5536009680bb8c3c3302fc628d 2006-07-29T09:32:58.780216Z 12 @@ -134,11 +134,11 @@ -2010-07-23T14:49:47.472156Z -6ed663fbb2b6271accc0879735e9488b -2008-05-25T17:31:50.483460Z -1459 -jplang +2010-09-24T12:48:29.799790Z +07fcf57752978d65a694eb57adcc0851 +2010-09-20T23:17:51.402972Z +4167 +edavis10 has-props @@ -160,7 +160,7 @@ -1448 +1606 metrics.rake file @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 0254f4ee916dee0a2572e63e947f8a1b 2009-07-27T00:55:43.057910Z 2825 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 561f310a7d3a42b31ab7271aec396633 2010-06-19T20:04:47.615499Z 3785 @@ -236,7 +236,7 @@ -2010-08-25T15:27:58.174488Z +2010-09-23T14:37:45.063748Z 010fbb563237ff01803aa47736cf863e 2010-08-18T17:23:23.071766Z 3948 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.063748Z 984c757ee4c8fa78f649f8dd34b715cf 2009-03-15T10:03:56.604709Z 2592 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.067787Z 5d4cbb1125484cf9c8f3f693c53f8fd1 2009-11-15T13:43:31.750664Z 3060 @@ -338,7 +338,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.067787Z 16eaf27a5959829a12961ff16e233600 2009-12-13T12:39:22.716082Z 3167 @@ -372,7 +372,7 @@ -2010-07-23T14:49:47.472156Z +2010-09-23T14:37:45.067787Z f27a83cf3f04d7906ac2f3ca40d01a20 2008-09-05T10:31:06.632668Z 1786 @@ -406,7 +406,7 @@ -2010-08-25T15:27:58.174488Z +2010-09-23T14:37:45.067787Z 5c9889bed6f4a4d18dbeb3d904855bb6 2010-08-07T15:11:26.667915Z 3922 @@ -440,7 +440,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z 4b8985b7b23bbc48dc414dbd1999ca1b 2009-02-21T15:21:31.040851Z 2502 @@ -474,7 +474,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z 6e8b343999b28febc71dd621a519ce9d 2010-02-28T16:51:36.195546Z 3517 @@ -508,7 +508,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z da88af55c1e96cf9caca3be6a29b3259 2010-01-17T12:00:45.233005Z 3328 @@ -542,7 +542,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z 09d22d744d29edd8922bc899e4ec8be2 2010-01-17T13:53:13.544777Z 3330 @@ -576,7 +576,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z 82e0901f7cbdda05ed63c12a764c3614 2007-09-23T17:19:27.414302Z 752 @@ -610,7 +610,7 @@ -2010-08-25T15:27:58.174488Z +2010-09-23T14:37:45.063748Z ad1435c02c82525ceb302114492c28f8 2010-08-06T20:46:44.980912Z 3919 @@ -644,7 +644,7 @@ -2010-07-23T14:49:47.476144Z +2010-09-23T14:37:45.063748Z 320b77011663b1209247bb809bc43ecb 2008-02-16T16:25:58.204498Z 1155 diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/tasks/.svn/text-base/reminder.rake.svn-base --- a/lib/tasks/.svn/text-base/reminder.rake.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/tasks/.svn/text-base/reminder.rake.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -22,9 +22,10 @@ * days => number of days to remind about (defaults to 7) * tracker => id of tracker (defaults to all trackers) * project => id or identifier of project (defaults to all projects) + * users => comma separated list of user ids who should be reminded Example: - rake redmine:send_reminders days=7 RAILS_ENV="production" + rake redmine:send_reminders days=7 users="1,23, 56" RAILS_ENV="production" END_DESC namespace :redmine do @@ -33,6 +34,7 @@ options[:days] = ENV['days'].to_i if ENV['days'] options[:project] = ENV['project'] if ENV['project'] options[:tracker] = ENV['tracker'].to_i if ENV['tracker'] + options[:users] = (ENV['users'] || '').split(',').each(&:strip!) Mailer.reminders(options) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 lib/tasks/reminder.rake --- a/lib/tasks/reminder.rake Wed Aug 25 16:30:24 2010 +0100 +++ b/lib/tasks/reminder.rake Fri Sep 24 14:06:04 2010 +0100 @@ -22,9 +22,10 @@ * days => number of days to remind about (defaults to 7) * tracker => id of tracker (defaults to all trackers) * project => id or identifier of project (defaults to all projects) + * users => comma separated list of user ids who should be reminded Example: - rake redmine:send_reminders days=7 RAILS_ENV="production" + rake redmine:send_reminders days=7 users="1,23, 56" RAILS_ENV="production" END_DESC namespace :redmine do @@ -33,6 +34,7 @@ options[:days] = ENV['days'].to_i if ENV['days'] options[:project] = ENV['project'] if ENV['project'] options[:tracker] = ENV['tracker'].to_i if ENV['tracker'] + options[:users] = (ENV['users'] || '').split(',').each(&:strip!) Mailer.reminders(options) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 log/.svn/entries --- a/log/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/log/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/log http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:45.588094Z +2010-09-23T14:37:45.067787Z ae0415159f2c4dba3fc1a559d4c0f9f5 2006-10-15T09:00:05.847811Z 31 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/.svn/all-wcprops --- a/public/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 31 -/svn/!svn/ver/4014/trunk/public +/svn/!svn/ver/4072/trunk/public END dispatch.fcgi.example K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/.svn/entries --- a/public/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public http://redmine.rubyforge.org/svn -2010-08-22T19:12:21.015911Z -4014 +2010-09-10T03:09:02.311267Z +4072 edavis10 has-props @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.075747Z aeefa1552a4af651eadd16f4e0bb1323 2008-11-11T13:54:10.112610Z 2017 @@ -72,7 +72,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.071747Z b78e2e9e0cd94c786bb9404516e062c4 2007-04-04T18:20:45.423396Z 419 @@ -112,7 +112,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.071747Z 5acfd3818d5f470c26a1af577d06195e 2007-04-04T18:20:45.423396Z 419 @@ -146,7 +146,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.071747Z 5a5128856eb14ac7b3f94099cb504775 2008-11-11T13:54:10.112610Z 2017 @@ -180,7 +180,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.067787Z 67c99c6ef23adb15d9efed92be959b6e 2007-11-27T17:20:57.329371Z 934 @@ -214,7 +214,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.075747Z 5a5128856eb14ac7b3f94099cb504775 2008-11-11T13:54:10.112610Z 2017 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/help/.svn/entries --- a/public/help/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/help/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/help http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.640098Z +2010-09-23T14:37:45.075747Z 73d1d55e3e3341a687d13e571825b6b9 2010-03-16T21:48:21.610865Z 3595 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.640098Z +2010-09-23T14:37:45.075747Z f3c9e77ebd5a0c8e580df191a00bc01c 2008-09-13T09:45:07.868598Z 1803 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/all-wcprops --- a/public/images/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/images/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 38 -/svn/!svn/ver/3859/trunk/public/images +/svn/!svn/ver/4072/trunk/public/images END time.png K 25 @@ -27,17 +27,23 @@ V 62 /svn/!svn/ver/3419/trunk/public/images/bullet_toggle_minus.png END +2downarrow.png +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/!svn/ver/3419/trunk/public/images/2downarrow.png +END folder_open_add.png K 25 svn:wc:ra_dav:version-url V 58 /svn/!svn/ver/3419/trunk/public/images/folder_open_add.png END -2downarrow.png +milestone_late.png K 25 svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/3419/trunk/public/images/2downarrow.png +V 57 +/svn/!svn/ver/4072/trunk/public/images/milestone_late.png END warning.png K 25 @@ -45,11 +51,11 @@ V 50 /svn/!svn/ver/3419/trunk/public/images/warning.png END -reload.png +fav_off.png K 25 svn:wc:ra_dav:version-url -V 49 -/svn/!svn/ver/3430/trunk/public/images/reload.png +V 50 +/svn/!svn/ver/3419/trunk/public/images/fav_off.png END move.png K 25 @@ -57,11 +63,17 @@ V 47 /svn/!svn/ver/3419/trunk/public/images/move.png END -fav_off.png +reload.png K 25 svn:wc:ra_dav:version-url -V 50 -/svn/!svn/ver/3419/trunk/public/images/fav_off.png +V 49 +/svn/!svn/ver/3430/trunk/public/images/reload.png +END +project_marker.png +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/!svn/ver/4072/trunk/public/images/project_marker.png END ticket_note.png K 25 @@ -69,18 +81,18 @@ V 54 /svn/!svn/ver/3419/trunk/public/images/ticket_note.png END +zoom_in.png +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/!svn/ver/3419/trunk/public/images/zoom_in.png +END copy.png K 25 svn:wc:ra_dav:version-url V 47 /svn/!svn/ver/3419/trunk/public/images/copy.png END -zoom_in.png -K 25 -svn:wc:ra_dav:version-url -V 50 -/svn/!svn/ver/3419/trunk/public/images/zoom_in.png -END news.png K 25 svn:wc:ra_dav:version-url @@ -111,6 +123,12 @@ V 52 /svn/!svn/ver/3419/trunk/public/images/lightning.png END +milestone_todo.png +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/!svn/ver/4072/trunk/public/images/milestone_todo.png +END edit.png K 25 svn:wc:ra_dav:version-url @@ -169,7 +187,7 @@ K 25 svn:wc:ra_dav:version-url V 52 -/svn/!svn/ver/3419/trunk/public/images/task_done.png +/svn/!svn/ver/4072/trunk/public/images/task_done.png END bullet_delete.png K 25 @@ -231,47 +249,53 @@ V 61 /svn/!svn/ver/3419/trunk/public/images/folder_open_orange.png END +textfield.png +K 25 +svn:wc:ra_dav:version-url +V 52 +/svn/!svn/ver/3419/trunk/public/images/textfield.png +END attachment.png K 25 svn:wc:ra_dav:version-url V 53 /svn/!svn/ver/3419/trunk/public/images/attachment.png END -textfield.png -K 25 -svn:wc:ra_dav:version-url -V 52 -/svn/!svn/ver/3419/trunk/public/images/textfield.png -END false.png K 25 svn:wc:ra_dav:version-url V 48 /svn/!svn/ver/3419/trunk/public/images/false.png END +unlock.png +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/!svn/ver/3430/trunk/public/images/unlock.png +END bullet_toggle_plus.png K 25 svn:wc:ra_dav:version-url V 61 /svn/!svn/ver/3419/trunk/public/images/bullet_toggle_plus.png END -unlock.png -K 25 -svn:wc:ra_dav:version-url -V 49 -/svn/!svn/ver/3430/trunk/public/images/unlock.png -END group.png K 25 svn:wc:ra_dav:version-url V 48 /svn/!svn/ver/3419/trunk/public/images/group.png END -plugin.png +save.png K 25 svn:wc:ra_dav:version-url -V 49 -/svn/!svn/ver/3419/trunk/public/images/plugin.png +V 47 +/svn/!svn/ver/3419/trunk/public/images/save.png +END +bullet_blue.png +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/!svn/ver/3419/trunk/public/images/bullet_blue.png END loading.gif K 25 @@ -279,23 +303,11 @@ V 48 /svn/!svn/ver/67/trunk/public/images/loading.gif END -bullet_blue.png +plugin.png K 25 svn:wc:ra_dav:version-url -V 54 -/svn/!svn/ver/3419/trunk/public/images/bullet_blue.png -END -save.png -K 25 -svn:wc:ra_dav:version-url -V 47 -/svn/!svn/ver/3419/trunk/public/images/save.png -END -milestone.png -K 25 -svn:wc:ra_dav:version-url -V 52 -/svn/!svn/ver/3419/trunk/public/images/milestone.png +V 49 +/svn/!svn/ver/3419/trunk/public/images/plugin.png END bullet_add.png K 25 @@ -315,66 +327,72 @@ V 54 /svn/!svn/ver/3419/trunk/public/images/exclamation.png END +milestone_done.png +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/!svn/ver/4072/trunk/public/images/milestone_done.png +END ticket_go.png K 25 svn:wc:ra_dav:version-url V 52 /svn/!svn/ver/3419/trunk/public/images/ticket_go.png END +zoom_out.png +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/3419/trunk/public/images/zoom_out.png +END +report.png +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/!svn/ver/3419/trunk/public/images/report.png +END folder.png K 25 svn:wc:ra_dav:version-url V 49 /svn/!svn/ver/3419/trunk/public/images/folder.png END -report.png -K 25 -svn:wc:ra_dav:version-url -V 49 -/svn/!svn/ver/3419/trunk/public/images/report.png -END -zoom_out.png -K 25 -svn:wc:ra_dav:version-url -V 51 -/svn/!svn/ver/3419/trunk/public/images/zoom_out.png -END fav.png K 25 svn:wc:ra_dav:version-url V 46 /svn/!svn/ver/3419/trunk/public/images/fav.png END +bullet_purple.png +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/!svn/ver/3419/trunk/public/images/bullet_purple.png +END document.png K 25 svn:wc:ra_dav:version-url V 51 /svn/!svn/ver/3419/trunk/public/images/document.png END -bullet_purple.png -K 25 -svn:wc:ra_dav:version-url -V 56 -/svn/!svn/ver/3419/trunk/public/images/bullet_purple.png -END true.png K 25 svn:wc:ra_dav:version-url V 47 /svn/!svn/ver/3419/trunk/public/images/true.png END +2uparrow.png +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/3419/trunk/public/images/2uparrow.png +END arrow_down.png K 25 svn:wc:ra_dav:version-url V 53 /svn/!svn/ver/3419/trunk/public/images/arrow_down.png END -2uparrow.png -K 25 -svn:wc:ra_dav:version-url -V 51 -/svn/!svn/ver/3419/trunk/public/images/2uparrow.png -END cancel.png K 25 svn:wc:ra_dav:version-url @@ -537,6 +555,12 @@ V 52 /svn/!svn/ver/3419/trunk/public/images/sort_desc.png END +version_marker.png +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/!svn/ver/4072/trunk/public/images/version_marker.png +END task_todo.png K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/entries --- a/public/images/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/images/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/images http://redmine.rubyforge.org/svn -2010-07-20T23:50:15.173990Z -3859 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.159811Z 45d9f8f4b7723c5df684fd6785b40700 2010-02-13T09:08:12.698526Z 3419 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.159811Z 9016fc5be8e81d6a41a1fd6312b05f39 2010-03-13T14:56:49.379682Z 3573 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.123788Z 2455a62f4801926d7c69099f5134c867 2010-02-13T09:08:12.698526Z 3419 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.127811Z bc6f6e0d67aba9e7689e852dad4977f9 2010-02-13T09:08:12.698526Z 3419 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.139758Z 8ae3a2d9ef884ed73a4157cd9c0465b8 2010-02-13T09:08:12.698526Z 3419 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.123788Z 6730b4ea633194233bec98ee5f7a3977 2010-02-13T09:08:12.698526Z 3419 @@ -230,13 +230,47 @@ 282 +milestone_late.png +file + + + + +2010-09-24T12:48:29.823793Z +ecc1979ed435769c700725495428359f +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +160 + warning.png file -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.163769Z f1cdd6ad27b9211924dcd8a4c8133f1b 2010-02-13T09:08:12.698526Z 3419 @@ -270,7 +304,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.155802Z a20844852ce8909ed4a19ccb0f6c6518 2010-02-14T13:13:16.743297Z 3430 @@ -304,7 +338,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.155802Z 0a2ceb01cbc3c01186fdcc25ced8eb0d 2010-02-13T09:08:12.698526Z 3419 @@ -338,7 +372,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.131805Z ff96c02d8f18116bb3f005f2c8b86e91 2010-02-13T09:08:12.698526Z 3419 @@ -366,13 +400,47 @@ 211 +project_marker.png +file + + + + +2010-09-24T12:48:29.823793Z +94cfc6b14b69f8eb30909fa1a0d8721d +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +204 + ticket_note.png file -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.159811Z 6a0f06b7f2b400d1d7b07180a909fed2 2010-02-13T09:08:12.698526Z 3419 @@ -406,7 +474,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.127811Z acd6a5a422b44466803829ce8a12fd9a 2010-02-13T09:08:12.698526Z 3419 @@ -440,7 +508,7 @@ -2010-07-23T14:49:47.604116Z +2010-09-23T14:37:45.163769Z 91b883d074b727f1a95cd0ce48510a3c 2010-02-13T09:08:12.698526Z 3419 @@ -474,7 +542,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.155802Z 63c87d73f46ed17a4ebc2b5a7e6cd6f4 2010-02-13T09:08:12.698526Z 3419 @@ -508,7 +576,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.123788Z 45e9710ba200afbac6ba55970bd9d625 2010-02-23T21:10:15.865943Z 3477 @@ -545,7 +613,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.131805Z 7604387e10f9c0be473a497ee5f516b8 2010-02-13T09:08:12.698526Z 3419 @@ -579,7 +647,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.127811Z 66da3813f290297bc39d289b859c3818 2010-02-13T09:08:12.698526Z 3419 @@ -613,7 +681,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.151760Z 0c32351cd2f92465a51d8da771bd92cb 2010-02-13T09:08:12.698526Z 3419 @@ -641,13 +709,47 @@ 584 +milestone_todo.png +file + + + + +2010-09-24T12:48:29.823793Z +59894f5d5656b1f6e2af9c22187e6e86 +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +155 + edit.png file -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.131805Z 30a7571b4822a789787f2a8b25ad4808 2010-02-13T09:08:12.698526Z 3419 @@ -681,7 +783,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.155802Z 80f689a299e7e69fb2512482bca6f5d4 2010-02-13T09:08:12.698526Z 3419 @@ -715,7 +817,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.139758Z ce8f2e6769f9abc327609dea0ded14e5 2010-02-13T09:08:12.698526Z 3419 @@ -749,7 +851,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.151760Z 242909ef391b4ebc83d53b13b4d90991 2010-02-13T09:08:12.698526Z 3419 @@ -783,7 +885,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.139758Z cf95da81d3626d67d5f49792341e396a 2010-02-13T09:08:12.698526Z 3419 @@ -817,7 +919,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.127811Z 62d29dab3c8967d0ca404a25059c3dbd 2010-02-13T09:08:12.698526Z 3419 @@ -851,7 +953,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.155802Z eecb8adaaeabcff6c838886809c85f93 2010-02-13T09:08:12.698526Z 3419 @@ -885,7 +987,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.131805Z 898a97e88d0cfc1dd41a6903d0a7cd72 2010-02-13T09:08:12.698526Z 3419 @@ -919,7 +1021,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.127811Z 3713155c5afcfeffaf877126d6b942aa 2010-02-13T09:08:12.698526Z 3419 @@ -953,11 +1055,11 @@ -2010-07-23T14:49:47.608094Z -56a0ca51cc67f89a4c4cd3aefa063611 -2010-02-13T09:08:12.698526Z -3419 -jplang +2010-09-24T12:48:29.823793Z +40c58172e0c52eee4deb5227ec37f0cf +2010-09-10T03:09:02.311267Z +4072 +edavis10 has-props @@ -979,7 +1081,7 @@ -855 +137 text_list_bullets.png file @@ -987,7 +1089,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.159811Z 01c137e009015642700b935edb321a89 2010-02-13T09:08:12.698526Z 3419 @@ -1021,7 +1123,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.123788Z fba036d7348ff28f7ab7dacbc52bc32a 2010-02-13T09:08:12.698526Z 3419 @@ -1055,7 +1157,7 @@ -2010-07-23T14:49:47.608094Z +2010-09-23T14:37:45.123788Z ef1412a13d9113c5e5e85cfcd8300d9d 2010-02-13T09:08:12.698526Z 3419 @@ -1089,7 +1191,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.127811Z b2e4e10fb114db28b9245210a5505c44 2010-02-14T11:52:12.027647Z 3426 @@ -1123,7 +1225,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.155802Z e0d9ad958faa1c07b84c78c7b7e5ffae 2010-02-13T09:08:12.698526Z 3419 @@ -1157,7 +1259,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.159811Z 3eb9e517f1a10430f7ec0ed7d30e05d8 2010-02-13T09:08:12.698526Z 3419 @@ -1191,7 +1293,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.123788Z e341b581fbbf8a5d038c8432409ceb5f 2010-02-23T21:10:15.865943Z 3477 @@ -1225,7 +1327,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.123788Z 981a44ce8d3f71125a300dece0cc0f21 2010-02-13T09:08:12.698526Z 3419 @@ -1259,7 +1361,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.127811Z c4e01ea1c0ce5a1cd5154dfd2512fb21 2010-02-13T09:08:12.698526Z 3419 @@ -1293,7 +1395,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.139758Z 944495c065d05a9161ad7da534703010 2010-02-13T09:08:12.698526Z 3419 @@ -1327,7 +1429,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.123788Z 0a35d4eaddb2292fed7062295ee0dcd8 2010-02-13T09:08:12.698526Z 3419 @@ -1361,7 +1463,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.159811Z 985a1dadffeaa303ff1eef4ea53ec0f4 2010-02-13T09:08:12.698526Z 3419 @@ -1395,7 +1497,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.131805Z f0c51de3ba403e552c8ab6e8084448a4 2010-02-13T09:08:12.698526Z 3419 @@ -1429,7 +1531,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.127811Z 06cbf5da7daca348a87a6299a4112d71 2010-02-13T09:08:12.698526Z 3419 @@ -1463,7 +1565,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.159811Z fa1be48a747127ee34d4fae020b825d4 2010-02-14T13:13:16.743297Z 3430 @@ -1497,7 +1599,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.139758Z 8e1056421acf9e61af00f0dcb83fef12 2010-02-13T09:08:12.698526Z 3419 @@ -1531,7 +1633,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.155802Z e019855b07d30f1ce1baf59b9df27125 2010-02-13T09:08:12.698526Z 3419 @@ -1565,7 +1667,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.151760Z 03ce3dcc84af110e9da8699a841e5200 2006-12-03T19:55:45.161980Z 62 @@ -1599,7 +1701,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.123788Z 3363f60299360fb5539b769d089e145f 2010-02-13T09:08:12.698526Z 3419 @@ -1633,7 +1735,7 @@ -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.155802Z 9e64db8f4905a17e3a6f68792cd5e199 2010-02-13T09:08:12.698526Z 3419 @@ -1661,47 +1763,13 @@ 440 -milestone.png -file - - - - -2010-07-23T14:49:47.616101Z -c9d132ff06712e3ffd794dc734dc3ef5 -2010-02-13T09:08:12.698526Z -3419 -jplang -has-props - - - - - - - - - - - - - - - - - - - - -122 - bullet_add.png file -2010-07-23T14:49:47.612156Z +2010-09-23T14:37:45.123788Z 848b802c0ce8e051f98f086f6e31c8cd 2010-02-13T09:08:12.698526Z 3419 @@ -1735,7 +1803,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.127811Z eec8605f3797315b2d8397422df1aed3 2010-02-13T09:08:12.698526Z 3419 @@ -1769,7 +1837,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.131805Z 7b5dcbdd0de4541b39e1302b6277684d 2010-02-13T09:08:12.698526Z 3419 @@ -1797,13 +1865,47 @@ 648 +milestone_done.png +file + + + + +2010-09-24T12:48:29.823793Z +40c58172e0c52eee4deb5227ec37f0cf +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +137 + ticket_go.png file -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.159811Z dca02b582c10127fcdc8af47e94d4e4c 2010-02-13T09:08:12.698526Z 3419 @@ -1837,7 +1939,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.139758Z 59f2dc025632f00403490176e7f42bfc 2010-02-13T09:08:12.698526Z 3419 @@ -1871,7 +1973,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.155802Z 8d8ec49f5773997411ff708a82e40568 2010-02-13T09:08:12.698526Z 3419 @@ -1905,7 +2007,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.163769Z 42b319d6ad0249fb20833a17d5f373a4 2010-02-13T09:08:12.698526Z 3419 @@ -1939,7 +2041,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.131805Z 29feed9e7b5c34854bf9f9f39681e06b 2010-02-13T09:08:12.698526Z 3419 @@ -1973,7 +2075,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.127811Z 97c12039afee2ea9c5a13e74f6fa5c0c 2010-02-13T09:08:12.698526Z 3419 @@ -2007,7 +2109,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.127811Z c4c76ce450e3e838afd6aa8f34a8d9a8 2010-02-13T09:08:12.698526Z 3419 @@ -2041,7 +2143,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.159811Z a30b3000c7286879d10ca1fbff06f71d 2010-02-13T09:08:12.698526Z 3419 @@ -2075,7 +2177,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.123788Z afef823014efb32adcd9606b69119562 2010-02-13T09:08:12.698526Z 3419 @@ -2109,7 +2211,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.123788Z ed9b7ced8e3b6275c14d528dc6909691 2010-02-13T09:08:12.698526Z 3419 @@ -2143,7 +2245,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.127811Z 812bdb688394ba6e2ed3cb7ceb4b7df0 2010-02-13T09:08:12.698526Z 3419 @@ -2177,7 +2279,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.139758Z 7e62689a93d0a23cbd1cf2dd754653e2 2010-02-13T09:08:12.698526Z 3419 @@ -2211,7 +2313,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.123788Z 9856446e5026c8d31704b84e836dc06e 2010-02-13T09:08:12.698526Z 3419 @@ -2245,7 +2347,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.127811Z f94f71deb205f49de993ad9521791ada 2010-02-13T09:08:12.698526Z 3419 @@ -2279,7 +2381,7 @@ -2010-07-23T14:49:47.616101Z +2010-09-23T14:37:45.155802Z 3ec32bbf3ad9e052833d05c0d41445f0 2010-02-13T09:08:12.698526Z 3419 @@ -2313,7 +2415,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.123788Z 980dcfdb816ce626e4d2df5c2a308549 2010-02-13T09:08:12.698526Z 3419 @@ -2347,7 +2449,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.155802Z 3e9542b5042e280bc2fc0ae98c81529f 2010-02-13T09:08:12.698526Z 3419 @@ -2381,7 +2483,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.151760Z 9a911ac680f354452f13729921e80d21 2010-02-13T09:08:12.698526Z 3419 @@ -2415,7 +2517,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.127811Z ea73bd6514b7d5f1d7ea2bd336f9303a 2010-02-13T09:08:12.698526Z 3419 @@ -2449,7 +2551,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.127811Z 3b0e537dabdfa5385e76ea465c4ea57b 2010-02-13T09:08:12.698526Z 3419 @@ -2483,7 +2585,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.123788Z 82e11faddb62c05a1ef9701035919c00 2010-02-13T09:08:12.698526Z 3419 @@ -2517,7 +2619,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.159811Z cd3890ab38793e53a99227a180616a70 2010-02-13T09:08:12.698526Z 3419 @@ -2551,7 +2653,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.159811Z 9a73430b658b4e16668b3e3cc7e241b4 2010-02-13T09:08:12.698526Z 3419 @@ -2585,7 +2687,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.163769Z 558c616ebcfa38b1c7b298184e58eb91 2010-02-13T09:08:12.698526Z 3419 @@ -2619,7 +2721,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.127811Z 2459e5967a6ddd78589ab52970574f3f 2010-02-13T09:08:12.698526Z 3419 @@ -2653,7 +2755,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.131805Z 60f9166d90d7aeb71d0ec9ee337c3f5e 2010-02-13T09:08:12.698526Z 3419 @@ -2690,7 +2792,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.127811Z cd5b56dff1c089b4e1e3db29b2b7226e 2010-02-13T09:08:12.698526Z 3419 @@ -2724,7 +2826,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.155802Z 6172a7483daa35983c4ea5a35bd8c64a 2010-07-20T23:50:15.173990Z 3859 @@ -2758,7 +2860,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.159811Z 6b08128a1b67ecb4b1ed06c9c505ac63 2010-02-13T09:08:12.698526Z 3419 @@ -2792,7 +2894,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.123788Z 980dcfdb816ce626e4d2df5c2a308549 2010-02-13T09:08:12.698526Z 3419 @@ -2826,7 +2928,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.123788Z 035a9d73627fc55aeaa7b553ac82ae9e 2010-02-13T09:08:12.698526Z 3419 @@ -2860,7 +2962,7 @@ -2010-07-23T14:49:47.620100Z +2010-09-23T14:37:45.163769Z 06b4b4425c7439fd898cd68e97f75d0f 2010-02-13T09:08:12.698526Z 3419 @@ -2894,7 +2996,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.163769Z d8ae88af42e1b9d1a4f9397041b17cd8 2010-02-13T09:08:12.698526Z 3419 @@ -2928,7 +3030,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.159811Z 85089bb401af7c5d7325ee317483ac70 2010-02-13T09:08:12.698526Z 3419 @@ -2962,7 +3064,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.155802Z 11dc95a35460864fc1e81bd95121cbf4 2010-02-13T09:08:12.698526Z 3419 @@ -2996,7 +3098,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.155802Z d8720cf3644e6ae0511c1391fb2ecf07 2009-02-11T19:07:07.158826Z 2442 @@ -3030,7 +3132,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.155802Z 8b706274d81243b3d26fdf06dfc9e533 2010-02-13T09:08:12.698526Z 3419 @@ -3058,13 +3160,47 @@ 157 +version_marker.png +file + + + + +2010-09-24T12:48:29.823793Z +f0626259c107cfa1d1e4cb9d9f6edd34 +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +174 + task_todo.png file -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.159811Z 9265bd26d6ba3d780dcd6fe676352d93 2010-02-13T09:08:12.698526Z 3419 @@ -3098,7 +3234,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.159811Z e34a59e24637e7bf462f5a742dbe243f 2010-02-13T09:08:12.698526Z 3419 @@ -3132,7 +3268,7 @@ -2010-07-23T14:49:47.624157Z +2010-09-23T14:37:45.159811Z 11f086774137d85a5cc6590ec3335ead 2010-02-13T09:08:12.698526Z 3419 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/prop-base/milestone.png.svn-base --- a/public/images/.svn/prop-base/milestone.png.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/milestone.png.svn-base Binary file public/images/.svn/text-base/milestone.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/milestone_done.png.svn-base Binary file public/images/.svn/text-base/milestone_done.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/milestone_late.png.svn-base Binary file public/images/.svn/text-base/milestone_late.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/milestone_todo.png.svn-base Binary file public/images/.svn/text-base/milestone_todo.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/project_marker.png.svn-base Binary file public/images/.svn/text-base/project_marker.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/task_done.png.svn-base Binary file public/images/.svn/text-base/task_done.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/.svn/text-base/version_marker.png.svn-base Binary file public/images/.svn/text-base/version_marker.png.svn-base has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/files/.svn/entries --- a/public/images/files/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/images/files/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/images/files http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.524134Z +2010-09-23T14:37:45.135758Z 136af9d95025ca62a3091a261266e13f 2010-02-13T09:08:12.698526Z 3419 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.524134Z +2010-09-23T14:37:45.139758Z c801cf9aa0103de823e53e83459a1ff9 2010-02-13T09:08:12.698526Z 3419 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z 1e51c81cb33d3d6746d440c1babfe0f5 2010-02-13T09:08:12.698526Z 3419 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.135758Z db0495227202385c9fce1b73f2d58ff0 2010-02-13T09:08:12.698526Z 3419 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z 94db8424e52f54d7372a976574c4598e 2010-02-13T09:08:12.698526Z 3419 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z ad3ed8ec19bb2a3cca8c03e0ea1aa846 2010-02-13T09:08:12.698526Z 3419 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z 8e05d64f0b9f45f076b41521a8d6a8d1 2010-02-13T09:08:12.698526Z 3419 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z ea9b5de5353e1cac630021dfed30dba4 2010-02-13T09:08:12.698526Z 3419 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z 0790c67308754572014015fa90eef406 2010-02-13T09:08:12.698526Z 3419 @@ -338,7 +338,7 @@ -2010-07-23T14:49:47.528126Z +2010-09-23T14:37:45.139758Z e11f9ebff53e8088dce2a0028f0d5190 2010-02-13T09:08:12.698526Z 3419 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/jstoolbar/.svn/entries --- a/public/images/jstoolbar/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/images/jstoolbar/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/images/jstoolbar http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z c77264aa6d145362b791c99d18f53ace 2010-02-13T09:08:12.698526Z 3419 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z c19bfc8d9620c00cdd8ae322426bc07e 2010-02-13T09:08:12.698526Z 3419 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 5477ff20be77ab65aa6b75f47778234e 2010-02-13T09:08:12.698526Z 3419 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z cb940b592da5ed0367305cb0514d5684 2010-02-13T09:08:12.698526Z 3419 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z ef6624df45946b54e3b23db2a0c6b77b 2010-02-13T09:08:12.698526Z 3419 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z f9d7446ceaa5142a5030e9430b3a2bb4 2010-02-13T09:08:12.698526Z 3419 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 04a0e86c9eec7d85d445e7627b5fc8ea 2010-02-13T09:08:12.698526Z 3419 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.147772Z 123b8289e1bd69a5944cf727a5e39bc9 2010-02-13T09:08:12.698526Z 3419 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 15d8f6c0fbf85718123fb7c7da782713 2010-02-13T09:08:12.698526Z 3419 @@ -338,7 +338,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 5a29cb56451be0fd714b99d2b2649bf0 2010-02-13T09:08:12.698526Z 3419 @@ -372,7 +372,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 07234419aecb827f11eef1ebd9b42482 2010-02-13T09:08:12.698526Z 3419 @@ -406,7 +406,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 5042501ddf948fe938ded69a40ef1024 2010-02-13T09:08:12.698526Z 3419 @@ -440,7 +440,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 584fb45fd15d894adc19ff3cf626fae9 2010-02-13T09:08:12.698526Z 3419 @@ -474,7 +474,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.147772Z 8448f92476ae933bacef7bc30ffd18fd 2010-02-13T09:08:12.698526Z 3419 @@ -508,7 +508,7 @@ -2010-07-23T14:49:47.592097Z +2010-09-23T14:37:45.151760Z 38ee94bc0a44b9420854aceeccd2dd59 2010-02-13T09:08:12.698526Z 3419 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/milestone.png Binary file public/images/milestone.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/milestone_done.png Binary file public/images/milestone_done.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/milestone_late.png Binary file public/images/milestone_late.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/milestone_todo.png Binary file public/images/milestone_todo.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/project_marker.png Binary file public/images/project_marker.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/task_done.png Binary file public/images/task_done.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/images/version_marker.png Binary file public/images/version_marker.png has changed diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/.svn/all-wcprops --- a/public/javascripts/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/4003/trunk/public/javascripts +/svn/!svn/ver/4060/trunk/public/javascripts END prototype.js K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/.svn/entries --- a/public/javascripts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/javascripts http://redmine.rubyforge.org/svn -2010-08-19T15:41:09.090282Z -4003 +2010-09-05T11:33:08.614151Z +4060 winterheart @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.243754Z b5684120e496c310977713be34be4868 2009-02-21T11:04:50.579477Z 2493 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.207758Z 94d0e70a6ed4354a44ddb78ac6e15869 2010-03-04T19:09:14.637225Z 3544 @@ -106,7 +106,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.243754Z b868f888ccb92a2e7d3b955f0213078c 2009-08-15T22:41:40.505056Z 2840 @@ -140,7 +140,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.207758Z a7d95dc040992701ba78fd5b97af950e 2009-02-21T11:04:50.579477Z 2493 @@ -174,7 +174,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.243754Z d62b158eef2592fbe11ce104e118631c 2009-11-28T11:59:45.246623Z 3106 @@ -208,7 +208,7 @@ -2010-07-23T14:49:47.744131Z +2010-09-23T14:37:45.207758Z 3aa08ad9af21eb305a120e2e1a47d1af 2009-02-21T11:04:50.579477Z 2493 @@ -242,7 +242,7 @@ -2010-07-28T11:07:47.532171Z +2010-09-23T14:37:45.171796Z 6645a3ecbb861b6ed2923565afa744aa 2010-07-25T10:34:55.569539Z 3879 @@ -276,7 +276,7 @@ -2010-07-23T14:49:47.748130Z +2010-09-23T14:37:45.207758Z 136701e951925f3dcb84f9a231f9326e 2009-02-21T11:04:50.579477Z 2493 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/.svn/all-wcprops --- a/public/javascripts/calendar/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 52 -/svn/!svn/ver/4003/trunk/public/javascripts/calendar +/svn/!svn/ver/4060/trunk/public/javascripts/calendar END calendar-setup.js K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/.svn/entries --- a/public/javascripts/calendar/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar http://redmine.rubyforge.org/svn -2010-08-19T15:41:09.090282Z -4003 +2010-09-05T11:33:08.614151Z +4060 winterheart @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.736158Z +2010-09-23T14:37:45.171796Z e9be087e31b69f1e6a29ebd09b878486 2009-12-26T17:17:16.012737Z 3252 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.736158Z +2010-09-23T14:37:45.171796Z a2dccec0bd70984b17a54239caf0d5e0 2010-06-30T02:54:15.730933Z 3822 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/.svn/all-wcprops --- a/public/javascripts/calendar/lang/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 57 -/svn/!svn/ver/4003/trunk/public/javascripts/calendar/lang +/svn/!svn/ver/4060/trunk/public/javascripts/calendar/lang END calendar-fi.js K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 72 -/svn/!svn/ver/2433/trunk/public/javascripts/calendar/lang/calendar-mk.js +/svn/!svn/ver/4049/trunk/public/javascripts/calendar/lang/calendar-mk.js END calendar-es.js K 25 @@ -99,29 +99,29 @@ V 72 /svn/!svn/ver/3227/trunk/public/javascripts/calendar/lang/calendar-id.js END +calendar-en.js +K 25 +svn:wc:ra_dav:version-url +V 71 +/svn/!svn/ver/419/trunk/public/javascripts/calendar/lang/calendar-en.js +END calendar-gl.js K 25 svn:wc:ra_dav:version-url V 72 /svn/!svn/ver/2296/trunk/public/javascripts/calendar/lang/calendar-gl.js END -calendar-en.js -K 25 -svn:wc:ra_dav:version-url -V 71 -/svn/!svn/ver/419/trunk/public/javascripts/calendar/lang/calendar-en.js -END calendar-fr.js K 25 svn:wc:ra_dav:version-url V 71 /svn/!svn/ver/748/trunk/public/javascripts/calendar/lang/calendar-fr.js END -calendar-zh-tw.js +calendar-nl.js K 25 svn:wc:ra_dav:version-url -V 75 -/svn/!svn/ver/1498/trunk/public/javascripts/calendar/lang/calendar-zh-tw.js +V 71 +/svn/!svn/ver/539/trunk/public/javascripts/calendar/lang/calendar-nl.js END calendar-hr.js K 25 @@ -129,11 +129,11 @@ V 72 /svn/!svn/ver/3320/trunk/public/javascripts/calendar/lang/calendar-hr.js END -calendar-nl.js +calendar-zh-tw.js K 25 svn:wc:ra_dav:version-url -V 71 -/svn/!svn/ver/539/trunk/public/javascripts/calendar/lang/calendar-nl.js +V 75 +/svn/!svn/ver/1498/trunk/public/javascripts/calendar/lang/calendar-zh-tw.js END calendar-mn.js K 25 @@ -141,18 +141,18 @@ V 72 /svn/!svn/ver/3626/trunk/public/javascripts/calendar/lang/calendar-mn.js END +calendar-pl.js +K 25 +svn:wc:ra_dav:version-url +V 71 +/svn/!svn/ver/749/trunk/public/javascripts/calendar/lang/calendar-pl.js +END calendar-th.js K 25 svn:wc:ra_dav:version-url V 72 /svn/!svn/ver/1383/trunk/public/javascripts/calendar/lang/calendar-th.js END -calendar-pl.js -K 25 -svn:wc:ra_dav:version-url -V 71 -/svn/!svn/ver/749/trunk/public/javascripts/calendar/lang/calendar-pl.js -END calendar-it.js K 25 svn:wc:ra_dav:version-url @@ -171,18 +171,18 @@ V 72 /svn/!svn/ver/1149/trunk/public/javascripts/calendar/lang/calendar-lt.js END +calendar-lv.js +K 25 +svn:wc:ra_dav:version-url +V 72 +/svn/!svn/ver/3737/trunk/public/javascripts/calendar/lang/calendar-lv.js +END calendar-zh.js K 25 svn:wc:ra_dav:version-url V 72 /svn/!svn/ver/1498/trunk/public/javascripts/calendar/lang/calendar-zh.js END -calendar-lv.js -K 25 -svn:wc:ra_dav:version-url -V 72 -/svn/!svn/ver/3737/trunk/public/javascripts/calendar/lang/calendar-lv.js -END calendar-pt.js K 25 svn:wc:ra_dav:version-url @@ -193,7 +193,7 @@ K 25 svn:wc:ra_dav:version-url V 72 -/svn/!svn/ver/1865/trunk/public/javascripts/calendar/lang/calendar-ca.js +/svn/!svn/ver/4060/trunk/public/javascripts/calendar/lang/calendar-ca.js END calendar-pt-br.js K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/.svn/entries --- a/public/javascripts/calendar/lang/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar/lang http://redmine.rubyforge.org/svn -2010-08-19T15:41:09.090282Z -4003 +2010-09-05T11:33:08.614151Z +4060 winterheart @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.195758Z d89a932075b18af4121f1941175d33d6 2008-03-05T08:54:26.865464Z 1186 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.195758Z 1f10556f12619006e5cd99bf0e5061cc 2009-03-24T19:16:02.676125Z 2629 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.195758Z 071917d0ae794b3cb057a0b354cd5105 2007-09-25T16:37:51.755262Z 764 @@ -134,10 +134,10 @@ -2010-07-23T14:49:47.724097Z -8973ef0899eae57cc269c3d61d8220f9 -2009-02-10T16:05:31.877017Z -2433 +2010-09-24T12:48:29.835791Z +1044fe45dceaa0d72c32aca5c86eea4a +2010-08-29T12:54:04.302020Z +4049 winterheart @@ -160,7 +160,7 @@ -3942 +4326 calendar-es.js file @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.195758Z 5728a3665edb05faed6661f0f77c6eab 2007-04-04T18:20:45.423396Z 419 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.199778Z 42ef87b559c68d2db63b109f3cb3f3ed 2008-12-24T15:48:59.830167Z 2182 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.195758Z 3f9bda99497d5c8342d87b4ec6aa44ba 2010-01-25T15:25:46.560119Z 3338 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.199778Z 4ae334472d40209252da8c69f07eabd5 2008-03-27T19:27:40.125888Z 1300 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.199778Z 3c66093b97b7d0bb66f04dbc0be4afb3 2008-05-25T12:18:49.439996Z 1452 @@ -338,7 +338,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.203758Z c161d1507fbd65ebddd7ada7c495eb89 2008-11-09T00:29:20.731069Z 1998 @@ -372,7 +372,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.203758Z a85bbd596ff7e03e9434a286edd134fd 2009-02-21T11:04:50.579477Z 2493 @@ -406,7 +406,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.203758Z 46811ee79796d2345bea2308475d1ec9 2008-02-15T17:47:19.829750Z 1149 @@ -440,7 +440,7 @@ -2010-08-25T15:27:58.506576Z +2010-09-23T14:37:45.203758Z c48be791f5e8d236624752ce05cd3ed7 2010-08-19T15:41:09.090282Z 4003 @@ -474,7 +474,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.203758Z 7e96487f7e089a48bd61d5e6e8785fe1 2009-03-24T19:20:53.296475Z 2630 @@ -508,7 +508,7 @@ -2010-07-23T14:49:47.724097Z +2010-09-23T14:37:45.203758Z 8555f3d813ca70ecbd2aaecae826549f 2007-11-16T21:24:22.091853Z 907 @@ -542,7 +542,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z f5a05a0d27c2d22fa8a7bf16be345250 2009-12-23T18:56:03.404741Z 3227 @@ -576,7 +576,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.195758Z 46811ee79796d2345bea2308475d1ec9 2007-04-04T18:20:45.423396Z 419 @@ -610,7 +610,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.195758Z c4f74e36f6a3debcf8ec065bc6886f04 2009-01-23T15:37:59.406714Z 2296 @@ -644,7 +644,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.195758Z 0bfaa3ec0b265f9d5a815d9b9b348c96 2007-09-22T14:12:44.830265Z 748 @@ -678,7 +678,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z c029bd9c4867bb39e86d1d6efada6d58 2007-05-24T17:29:11.682821Z 539 @@ -712,7 +712,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.195758Z f8d0daa275cf612206c43d4c9be95d08 2010-01-17T10:33:30.937961Z 3320 @@ -746,7 +746,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.203758Z 0bed4c9c046772a12267b4118bf1504a 2008-06-07T09:03:20.687527Z 1498 @@ -780,7 +780,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z 307341352eee53b3ccd1fbec2a4b27f7 2010-04-03T10:49:16.109274Z 3626 @@ -814,7 +814,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z eabf711c28d30bb9474f3f505766f286 2007-09-22T14:56:09.057923Z 749 @@ -848,7 +848,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.203758Z c8c19e66c3e1099c3e0ecae6462f68da 2008-04-30T08:47:14.770680Z 1383 @@ -882,7 +882,7 @@ -2010-08-25T15:27:58.506576Z +2010-09-23T14:37:45.199778Z d637b0156da2601e000e16f1ac178768 2010-08-19T15:41:09.090282Z 4003 @@ -916,7 +916,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.203758Z cbf1a5c6b271835c701031aacaeaa271 2009-01-31T12:02:37.933490Z 2340 @@ -950,7 +950,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z 33bc41a153fc6fb2aa53069fb0f647d6 2008-02-15T17:47:19.829750Z 1149 @@ -984,7 +984,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.199778Z b260d88c13c01ebf4e7c94b9cb022930 2010-05-14T18:15:41.754813Z 3737 @@ -1018,7 +1018,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.203758Z 02222471f3e701ac1223096737fa5705 2008-06-07T09:03:20.687527Z 1498 @@ -1052,10 +1052,10 @@ -2010-07-23T14:49:47.728099Z -994ec9a969270a6caf21d41a764474b7 -2008-09-15T16:07:30.857601Z -1865 +2010-09-24T12:48:29.835791Z +2756627844089652700c203ee91ec6f3 +2010-09-05T11:33:08.614151Z +4060 winterheart @@ -1078,7 +1078,7 @@ -3833 +3828 calendar-pt.js file @@ -1086,7 +1086,7 @@ -2010-07-23T14:49:47.728099Z +2010-09-23T14:37:45.203758Z 67f2807b1ee731af4fe16f358a8d9096 2008-10-06T15:00:56.914741Z 1927 @@ -1120,7 +1120,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.199778Z c684331ae98de9a0e03db4de8f985e44 2008-05-25T12:42:56.738934Z 1453 @@ -1154,7 +1154,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.195758Z 0d732eaa10604b943c7d600a15c8a651 2009-01-20T16:09:07.993954Z 2292 @@ -1188,7 +1188,7 @@ -2010-08-25T15:27:58.506576Z +2010-09-23T14:37:45.203758Z a26f883ac70499ee0409af2c08156a84 2010-08-19T15:41:09.090282Z 4003 @@ -1222,7 +1222,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.203758Z 8cb3dced137544295b39ef836028433e 2008-09-13T17:25:01.876743Z 1817 @@ -1256,7 +1256,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.191758Z df1a74fadb5ce5b1cc53aa70034f578b 2007-05-02T19:36:00.768529Z 502 @@ -1290,7 +1290,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.195758Z d508459192a856b332d75de94c8d5c6c 2007-04-04T18:20:45.423396Z 419 @@ -1324,7 +1324,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.195758Z 66418d047f243e10172798af0fb4d927 2010-06-21T19:54:55.180393Z 3809 @@ -1358,7 +1358,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.203758Z 7dc0f35efebbe8b0d078d2c847b43b7c 2009-01-20T15:45:34.332677Z 2290 @@ -1392,7 +1392,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.199778Z eb66ba69ac2233b24fe200060ec67ab7 2008-01-10T18:34:14.889747Z 1051 @@ -1426,7 +1426,7 @@ -2010-07-23T14:49:47.732143Z +2010-09-23T14:37:45.195758Z 0c77d7dafe8031971e69a7a57b3dc93e 2008-05-30T15:34:53.673854Z 1478 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/.svn/text-base/calendar-ca.js.svn-base --- a/public/javascripts/calendar/lang/.svn/text-base/calendar-ca.js.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/.svn/text-base/calendar-ca.js.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -45,7 +45,7 @@ // First day of the week. "0" means display Sunday first, "1" means display // Monday first, etc. -Calendar._FD = 0; +Calendar._FD = 1; // full month names Calendar._MN = new Array @@ -84,17 +84,17 @@ Calendar._TT["ABOUT"] = "Selector DHTML de data/hora\n" + "(c) dynarch.com 2002-2005 / Autor: Mihai Bazon\n" + // don't translate this this ;-) -"Per a aconseguir l'última versió visiteu: http://www.dynarch.com/projects/calendar/\n" + -"Distribuït sota la llicència GNU LGPL. Vegeu http://gnu.org/licenses/lgpl.html per a més detalls." + +"Per aconseguir l'última versió visiteu: http://www.dynarch.com/projects/calendar/\n" + +"Distribuït sota la llicència GNU LGPL. Vegeu http://gnu.org/licenses/lgpl.html per obtenir més detalls." + "\n\n" + "Selecció de la data:\n" + -"- Utilitzeu els botons \xab, \xbb per a seleccionar l'any\n" + -"- Utilitzeu els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per a selecciona el mes\n" + -"- Mantingueu premut el botó del ratolí sobre qualsevol d'aquests botons per a uns selecció més ràpida."; +"- Utilitzeu els botons \xab, \xbb per seleccionar l'any\n" + +"- Utilitzeu els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per seleccionar el mes\n" + +"- Mantingueu premut el botó del ratolí sobre qualsevol d'aquests botons per a una selecció més ràpida."; Calendar._TT["ABOUT_TIME"] = "\n\n" + "Selecció de l'hora:\n" + -"- Feu clic en qualsevol part de l'hora per a incrementar-la\n" + -"- o premeu majúscules per a disminuir-la\n" + +"- Feu clic en qualsevol part de l'hora per incrementar-la\n" + +"- o premeu majúscules per disminuir-la\n" + "- o feu clic i arrossegueu per a una selecció més ràpida."; Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per menú)"; @@ -102,8 +102,8 @@ Calendar._TT["GO_TODAY"] = "Anar a avui"; Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per menú)"; Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per menú)"; -Calendar._TT["SEL_DATE"] = "Sel·lecciona data"; -Calendar._TT["DRAG_TO_MOVE"] = "Arrossega per a moure"; +Calendar._TT["SEL_DATE"] = "Sel·lecciona la data"; +Calendar._TT["DRAG_TO_MOVE"] = "Arrossega per moure"; Calendar._TT["PART_TODAY"] = " (avui)"; // the following is to inform that "%s" is to be the first day of week @@ -117,7 +117,7 @@ Calendar._TT["CLOSE"] = "Tanca"; Calendar._TT["TODAY"] = "Avui"; -Calendar._TT["TIME_PART"] = "(Majúscules-)Feu clic o arrossegueu per a canviar el valor"; +Calendar._TT["TIME_PART"] = "(Majúscules-)Feu clic o arrossegueu per canviar el valor"; // date formats Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/.svn/text-base/calendar-mk.js.svn-base --- a/public/javascripts/calendar/lang/.svn/text-base/calendar-mk.js.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/.svn/text-base/calendar-mk.js.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ // ** I18N // Calendar МК language -// Author: Илин Татабитовски, +// Author: Ilin Tatabitovski, // Encoding: UTF-8 // Distributed under the same terms as the calendar itself. @@ -84,26 +84,26 @@ Calendar._TT["ABOUT"] = "DHTML Date/Time Selector\n" + "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) -"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + -"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"За последна верзија посети: http://www.dynarch.com/projects/calendar/\n" + +"Дистрибуирано под GNU LGPL. Види http://gnu.org/licenses/lgpl.html за детали." + "\n\n" + -"Date selection:\n" + -"- Use the \xab, \xbb buttons to select year\n" + -"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" + -"- Hold mouse button on any of the above buttons for faster selection."; +"Бирање на дата:\n" + +"- Користи ги \xab, \xbb копчињата за да избереш година\n" + +"- Користи ги " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " копчињата за да избере месеци\n" + +"- Држи го притиснато копчето на глувчето на било кое копче за побрзо бирање."; Calendar._TT["ABOUT_TIME"] = "\n\n" + -"Time selection:\n" + -"- Click on any of the time parts to increase it\n" + -"- or Shift-click to decrease it\n" + -"- or click and drag for faster selection."; +"Бирање на време:\n" + +"- Клик на временските делови за да го зголемиш\n" + +"- или Shift-клик да го намалиш\n" + +"- или клик и влечи за побрзо бирање."; -Calendar._TT["PREV_YEAR"] = "Претходна година (hold for menu)"; -Calendar._TT["PREV_MONTH"] = "Претходен месец (hold for menu)"; +Calendar._TT["PREV_YEAR"] = "Претходна година (држи за мени)"; +Calendar._TT["PREV_MONTH"] = "Претходен месец (држи за мени)"; Calendar._TT["GO_TODAY"] = "Go Today"; -Calendar._TT["NEXT_MONTH"] = "Следен месец (hold for menu)"; -Calendar._TT["NEXT_YEAR"] = "Следна година (hold for menu)"; -Calendar._TT["SEL_DATE"] = "Изберете дата"; -Calendar._TT["DRAG_TO_MOVE"] = "Drag to move"; +Calendar._TT["NEXT_MONTH"] = "Следен месец (држи за мени)"; +Calendar._TT["NEXT_YEAR"] = "Следна година (држи за мени)"; +Calendar._TT["SEL_DATE"] = "Избери дата"; +Calendar._TT["DRAG_TO_MOVE"] = "Влечи да поместиш"; Calendar._TT["PART_TODAY"] = " (денес)"; // the following is to inform that "%s" is to be the first day of week @@ -117,7 +117,7 @@ Calendar._TT["CLOSE"] = "Затвори"; Calendar._TT["TODAY"] = "Денес"; -Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value"; +Calendar._TT["TIME_PART"] = "(Shift-)Клик или влечи за да промениш вредност"; // date formats Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; @@ -125,3 +125,4 @@ Calendar._TT["WK"] = "нед"; Calendar._TT["TIME"] = "Време:"; + diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/calendar-ca.js --- a/public/javascripts/calendar/lang/calendar-ca.js Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/calendar-ca.js Fri Sep 24 14:06:04 2010 +0100 @@ -45,7 +45,7 @@ // First day of the week. "0" means display Sunday first, "1" means display // Monday first, etc. -Calendar._FD = 0; +Calendar._FD = 1; // full month names Calendar._MN = new Array @@ -84,17 +84,17 @@ Calendar._TT["ABOUT"] = "Selector DHTML de data/hora\n" + "(c) dynarch.com 2002-2005 / Autor: Mihai Bazon\n" + // don't translate this this ;-) -"Per a aconseguir l'última versió visiteu: http://www.dynarch.com/projects/calendar/\n" + -"Distribuït sota la llicència GNU LGPL. Vegeu http://gnu.org/licenses/lgpl.html per a més detalls." + +"Per aconseguir l'última versió visiteu: http://www.dynarch.com/projects/calendar/\n" + +"Distribuït sota la llicència GNU LGPL. Vegeu http://gnu.org/licenses/lgpl.html per obtenir més detalls." + "\n\n" + "Selecció de la data:\n" + -"- Utilitzeu els botons \xab, \xbb per a seleccionar l'any\n" + -"- Utilitzeu els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per a selecciona el mes\n" + -"- Mantingueu premut el botó del ratolí sobre qualsevol d'aquests botons per a uns selecció més ràpida."; +"- Utilitzeu els botons \xab, \xbb per seleccionar l'any\n" + +"- Utilitzeu els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per seleccionar el mes\n" + +"- Mantingueu premut el botó del ratolí sobre qualsevol d'aquests botons per a una selecció més ràpida."; Calendar._TT["ABOUT_TIME"] = "\n\n" + "Selecció de l'hora:\n" + -"- Feu clic en qualsevol part de l'hora per a incrementar-la\n" + -"- o premeu majúscules per a disminuir-la\n" + +"- Feu clic en qualsevol part de l'hora per incrementar-la\n" + +"- o premeu majúscules per disminuir-la\n" + "- o feu clic i arrossegueu per a una selecció més ràpida."; Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per menú)"; @@ -102,8 +102,8 @@ Calendar._TT["GO_TODAY"] = "Anar a avui"; Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per menú)"; Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per menú)"; -Calendar._TT["SEL_DATE"] = "Sel·lecciona data"; -Calendar._TT["DRAG_TO_MOVE"] = "Arrossega per a moure"; +Calendar._TT["SEL_DATE"] = "Sel·lecciona la data"; +Calendar._TT["DRAG_TO_MOVE"] = "Arrossega per moure"; Calendar._TT["PART_TODAY"] = " (avui)"; // the following is to inform that "%s" is to be the first day of week @@ -117,7 +117,7 @@ Calendar._TT["CLOSE"] = "Tanca"; Calendar._TT["TODAY"] = "Avui"; -Calendar._TT["TIME_PART"] = "(Majúscules-)Feu clic o arrossegueu per a canviar el valor"; +Calendar._TT["TIME_PART"] = "(Majúscules-)Feu clic o arrossegueu per canviar el valor"; // date formats Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/calendar/lang/calendar-mk.js --- a/public/javascripts/calendar/lang/calendar-mk.js Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/calendar/lang/calendar-mk.js Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ // ** I18N // Calendar МК language -// Author: Илин Татабитовски, +// Author: Ilin Tatabitovski, // Encoding: UTF-8 // Distributed under the same terms as the calendar itself. @@ -84,26 +84,26 @@ Calendar._TT["ABOUT"] = "DHTML Date/Time Selector\n" + "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) -"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + -"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"За последна верзија посети: http://www.dynarch.com/projects/calendar/\n" + +"Дистрибуирано под GNU LGPL. Види http://gnu.org/licenses/lgpl.html за детали." + "\n\n" + -"Date selection:\n" + -"- Use the \xab, \xbb buttons to select year\n" + -"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" + -"- Hold mouse button on any of the above buttons for faster selection."; +"Бирање на дата:\n" + +"- Користи ги \xab, \xbb копчињата за да избереш година\n" + +"- Користи ги " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " копчињата за да избере месеци\n" + +"- Држи го притиснато копчето на глувчето на било кое копче за побрзо бирање."; Calendar._TT["ABOUT_TIME"] = "\n\n" + -"Time selection:\n" + -"- Click on any of the time parts to increase it\n" + -"- or Shift-click to decrease it\n" + -"- or click and drag for faster selection."; +"Бирање на време:\n" + +"- Клик на временските делови за да го зголемиш\n" + +"- или Shift-клик да го намалиш\n" + +"- или клик и влечи за побрзо бирање."; -Calendar._TT["PREV_YEAR"] = "Претходна година (hold for menu)"; -Calendar._TT["PREV_MONTH"] = "Претходен месец (hold for menu)"; +Calendar._TT["PREV_YEAR"] = "Претходна година (држи за мени)"; +Calendar._TT["PREV_MONTH"] = "Претходен месец (држи за мени)"; Calendar._TT["GO_TODAY"] = "Go Today"; -Calendar._TT["NEXT_MONTH"] = "Следен месец (hold for menu)"; -Calendar._TT["NEXT_YEAR"] = "Следна година (hold for menu)"; -Calendar._TT["SEL_DATE"] = "Изберете дата"; -Calendar._TT["DRAG_TO_MOVE"] = "Drag to move"; +Calendar._TT["NEXT_MONTH"] = "Следен месец (држи за мени)"; +Calendar._TT["NEXT_YEAR"] = "Следна година (држи за мени)"; +Calendar._TT["SEL_DATE"] = "Избери дата"; +Calendar._TT["DRAG_TO_MOVE"] = "Влечи да поместиш"; Calendar._TT["PART_TODAY"] = " (денес)"; // the following is to inform that "%s" is to be the first day of week @@ -117,7 +117,7 @@ Calendar._TT["CLOSE"] = "Затвори"; Calendar._TT["TODAY"] = "Денес"; -Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value"; +Calendar._TT["TIME_PART"] = "(Shift-)Клик или влечи за да промениш вредност"; // date formats Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; @@ -125,3 +125,4 @@ Calendar._TT["WK"] = "нед"; Calendar._TT["TIME"] = "Време:"; + diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/.svn/all-wcprops --- a/public/javascripts/jstoolbar/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar +/svn/!svn/ver/4049/trunk/public/javascripts/jstoolbar END textile.js K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/.svn/entries --- a/public/javascripts/jstoolbar/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar http://redmine.rubyforge.org/svn -2010-08-19T15:41:09.090282Z -4003 +2010-08-29T12:54:04.302020Z +4049 winterheart @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.684126Z +2010-09-23T14:37:45.239756Z 277ebc7c66d8c8280bbe729e6cb11529 2008-10-27T11:08:29.901011Z 1955 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.684126Z +2010-09-23T14:37:45.211758Z 2b77f98553b6d5e0d4c405195eebe664 2008-10-27T11:08:29.901011Z 1955 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/lang/.svn/all-wcprops --- a/public/javascripts/jstoolbar/lang/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/lang/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar/lang +/svn/!svn/ver/4049/trunk/public/javascripts/jstoolbar/lang END jstoolbar-mk.js K 25 svn:wc:ra_dav:version-url V 74 -/svn/!svn/ver/2433/trunk/public/javascripts/jstoolbar/lang/jstoolbar-mk.js +/svn/!svn/ver/4049/trunk/public/javascripts/jstoolbar/lang/jstoolbar-mk.js END jstoolbar-es.js K 25 @@ -99,11 +99,11 @@ V 74 /svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-fr.js END -jstoolbar-zh-tw.js +jstoolbar-nl.js K 25 svn:wc:ra_dav:version-url -V 77 -/svn/!svn/ver/1498/trunk/public/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js +V 74 +/svn/!svn/ver/2291/trunk/public/javascripts/jstoolbar/lang/jstoolbar-nl.js END jstoolbar-hr.js K 25 @@ -111,11 +111,11 @@ V 74 /svn/!svn/ver/3320/trunk/public/javascripts/jstoolbar/lang/jstoolbar-hr.js END -jstoolbar-nl.js +jstoolbar-zh-tw.js K 25 svn:wc:ra_dav:version-url -V 74 -/svn/!svn/ver/2291/trunk/public/javascripts/jstoolbar/lang/jstoolbar-nl.js +V 77 +/svn/!svn/ver/1498/trunk/public/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js END jstoolbar-mn.js K 25 @@ -123,18 +123,18 @@ V 74 /svn/!svn/ver/3626/trunk/public/javascripts/jstoolbar/lang/jstoolbar-mn.js END +jstoolbar-pl.js +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/1928/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pl.js +END jstoolbar-th.js K 25 svn:wc:ra_dav:version-url V 74 /svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-th.js END -jstoolbar-pl.js -K 25 -svn:wc:ra_dav:version-url -V 74 -/svn/!svn/ver/1928/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pl.js -END jstoolbar-it.js K 25 svn:wc:ra_dav:version-url @@ -153,17 +153,23 @@ V 74 /svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-lt.js END +jstoolbar-lv.js +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/3737/trunk/public/javascripts/jstoolbar/lang/jstoolbar-lv.js +END jstoolbar-zh.js K 25 svn:wc:ra_dav:version-url V 74 /svn/!svn/ver/1498/trunk/public/javascripts/jstoolbar/lang/jstoolbar-zh.js END -jstoolbar-lv.js +jstoolbar-pt.js K 25 svn:wc:ra_dav:version-url V 74 -/svn/!svn/ver/3737/trunk/public/javascripts/jstoolbar/lang/jstoolbar-lv.js +/svn/!svn/ver/1927/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pt.js END jstoolbar-ca.js K 25 @@ -171,11 +177,11 @@ V 74 /svn/!svn/ver/1865/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ca.js END -jstoolbar-pt.js +jstoolbar-da.js K 25 svn:wc:ra_dav:version-url V 74 -/svn/!svn/ver/1927/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pt.js +/svn/!svn/ver/2921/trunk/public/javascripts/jstoolbar/lang/jstoolbar-da.js END jstoolbar-sr.js K 25 @@ -183,12 +189,6 @@ V 74 /svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sr.js END -jstoolbar-da.js -K 25 -svn:wc:ra_dav:version-url -V 74 -/svn/!svn/ver/2921/trunk/public/javascripts/jstoolbar/lang/jstoolbar-da.js -END jstoolbar-pt-br.js K 25 svn:wc:ra_dav:version-url diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/lang/.svn/entries --- a/public/javascripts/jstoolbar/lang/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/lang/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar/lang http://redmine.rubyforge.org/svn -2010-08-19T15:41:09.090282Z -4003 +2010-08-29T12:54:04.302020Z +4049 winterheart @@ -32,10 +32,10 @@ -2010-07-23T14:49:47.672095Z -f6d3884959c78307f65ad9a848d132e1 -2009-02-10T16:05:31.877017Z -2433 +2010-09-24T12:48:29.827791Z +318952e82ec967a5474a8b8464b66c63 +2010-08-29T12:54:04.302020Z +4049 winterheart @@ -58,7 +58,7 @@ -780 +876 jstoolbar-es.js file @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.231813Z 21ca3fea9a77d127edb7d2e95b33b8f8 2008-11-14T15:18:13.107466Z 2033 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.235815Z 7cbd6179e32e9b8ec12a884c820565ca 2008-12-29T18:27:27.433290Z 2202 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.231813Z 73ba5f511744c07325bc0eae3dce14e6 2010-01-25T15:25:46.560119Z 3338 @@ -168,7 +168,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.235815Z b1cfe765b72f2d904756bf60307c97b7 2008-06-15T09:49:16.794942Z 1540 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.231813Z 83762b06ef0b9a9756f858357bf11361 2008-05-30T16:35:36.510811Z 1479 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.235815Z b27b3e83de7c68c7752703799c0a4cda 2008-11-08T22:34:41.558925Z 1997 @@ -270,7 +270,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.239756Z 06a6efe1fa0092d534f1cc403529670b 2009-02-21T11:04:50.579477Z 2493 @@ -304,7 +304,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.239756Z c49e65f5c02ababbaa0c9a9968424950 2008-05-30T16:35:36.510811Z 1479 @@ -338,7 +338,7 @@ -2010-08-25T15:27:58.258584Z +2010-09-23T14:37:45.239756Z bf8f49f26dc22319ff3da721c261c593 2010-08-19T15:41:09.090282Z 4003 @@ -372,7 +372,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.235815Z de3d5c4af91e93505e939ccb1ef6b27a 2009-03-24T19:20:53.296475Z 2630 @@ -406,7 +406,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.235815Z 9f461eb7e9ab4460155983bd005c3237 2009-09-24T15:03:23.893264Z 2901 @@ -440,7 +440,7 @@ -2010-07-23T14:49:47.672095Z +2010-09-23T14:37:45.231813Z fd6a3f960f0d6e1ce7e6466d592453fe 2009-12-23T18:56:03.404741Z 3227 @@ -474,7 +474,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z c49e65f5c02ababbaa0c9a9968424950 2008-05-30T16:35:36.510811Z 1479 @@ -508,7 +508,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z 1114856226e757ddfb08a99ab1cac3eb 2009-01-23T15:37:59.406714Z 2296 @@ -542,7 +542,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z 9b432fe2e801ed76abf312a10c643fb8 2008-05-30T16:35:36.510811Z 1479 @@ -576,7 +576,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z b1bc7a04b7b466073845dd2c81bbbf23 2009-01-20T15:53:09.750096Z 2291 @@ -610,7 +610,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z f13f0553753c4b53bd96c294ca6ce15e 2010-01-17T10:33:30.937961Z 3320 @@ -644,7 +644,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.239756Z be45a6e710f3a07e9fab41d795a64030 2008-06-07T09:03:20.687527Z 1498 @@ -678,7 +678,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z e7df0709db363c802a6a5a4913520ac5 2010-04-03T10:49:16.109274Z 3626 @@ -712,7 +712,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z 1d2b7d7c66953806ca428f91a95d2eaa 2008-10-07T17:41:16.515762Z 1928 @@ -746,7 +746,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.239756Z 3f844a6495d4eebb122b5c7b21696282 2008-05-30T16:35:36.510811Z 1479 @@ -780,7 +780,7 @@ -2010-08-25T15:27:58.258584Z +2010-09-23T14:37:45.235815Z c7198fe4acf23cf7df996603e68b492b 2010-08-19T15:41:09.090282Z 4003 @@ -814,7 +814,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.239756Z a85f4ab1ed887a855f03c2cc8efb0107 2009-01-31T12:02:37.933490Z 2340 @@ -848,7 +848,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z 1fbcdee2a48a3d359fd766880b9b606f 2008-05-30T16:35:36.510811Z 1479 @@ -882,7 +882,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z 5a44b7a9bd5b7db86d0a7398ee5bc779 2010-05-14T18:15:41.754813Z 3737 @@ -916,7 +916,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.239756Z fa9b7d27a231a3c85c1a4632f2563ac4 2008-06-07T09:03:20.687527Z 1498 @@ -950,7 +950,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.235815Z 2479961837e503c00632ff7e6997b10d 2008-10-06T15:00:56.914741Z 1927 @@ -984,7 +984,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z 6aacb53ed49e6e14831baf8c38096662 2008-09-15T16:07:30.857601Z 1865 @@ -1018,7 +1018,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.235815Z 37aed8a5fce8e7f2030ac37e3d635068 2008-05-30T16:35:36.510811Z 1479 @@ -1052,7 +1052,7 @@ -2010-07-23T14:49:47.676097Z +2010-09-23T14:37:45.231813Z 4061b38de5e085dac922f77f94bd254a 2009-10-11T09:24:45.635758Z 2921 @@ -1086,7 +1086,7 @@ -2010-08-25T15:27:58.258584Z +2010-09-23T14:37:45.239756Z fb00cc94dfc8f319dda707b957aae8a6 2010-08-19T15:41:09.090282Z 4003 @@ -1120,7 +1120,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.239756Z c7333a1fd77fe1f7db31810175f8fe8f 2008-09-13T17:25:01.876743Z 1817 @@ -1154,7 +1154,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.227756Z c49e65f5c02ababbaa0c9a9968424950 2008-05-30T16:35:36.510811Z 1479 @@ -1188,7 +1188,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z 7c5edef659f90a30330909bc13b0d6fb 2008-05-30T16:35:36.510811Z 1479 @@ -1222,7 +1222,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z c49e65f5c02ababbaa0c9a9968424950 2010-06-21T19:54:55.180393Z 3809 @@ -1256,7 +1256,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.239756Z 7ec48cf15b3d65b2a0994b50b033b4b8 2009-01-23T15:46:22.446544Z 2298 @@ -1290,7 +1290,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.235815Z 06245b4053c38d6bf3ae61d1bf4c7587 2009-09-24T15:03:23.893264Z 2901 @@ -1324,7 +1324,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z c49e65f5c02ababbaa0c9a9968424950 2008-05-30T16:35:36.510811Z 1479 @@ -1358,7 +1358,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z 0377fba91478a1df25844aa70609e204 2008-05-30T16:35:36.510811Z 1479 @@ -1392,7 +1392,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z da8e9ced2ea20fedc7bb3204082fc68a 2009-03-24T19:16:02.676125Z 2629 @@ -1426,7 +1426,7 @@ -2010-07-23T14:49:47.680127Z +2010-09-23T14:37:45.231813Z 8394af79dae7854d27ccdb8b72c3262c 2008-05-30T16:35:36.510811Z 1479 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/lang/.svn/text-base/jstoolbar-mk.js.svn-base --- a/public/javascripts/jstoolbar/lang/.svn/text-base/jstoolbar-mk.js.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/lang/.svn/text-base/jstoolbar-mk.js.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -1,16 +1,17 @@ jsToolBar.strings = {}; -jsToolBar.strings['Strong'] = 'Strong'; -jsToolBar.strings['Italic'] = 'Italic'; -jsToolBar.strings['Underline'] = 'Underline'; -jsToolBar.strings['Deleted'] = 'Deleted'; -jsToolBar.strings['Code'] = 'Inline Code'; -jsToolBar.strings['Heading 1'] = 'Heading 1'; -jsToolBar.strings['Heading 2'] = 'Heading 2'; -jsToolBar.strings['Heading 3'] = 'Heading 3'; -jsToolBar.strings['Unordered list'] = 'Unordered list'; +jsToolBar.strings['Strong'] = 'Задебелен'; +jsToolBar.strings['Italic'] = 'Закосен'; +jsToolBar.strings['Underline'] = 'Подвлечен'; +jsToolBar.strings['Deleted'] = 'Прецртан'; +jsToolBar.strings['Code'] = 'Код'; +jsToolBar.strings['Heading 1'] = 'Заглавје 1'; +jsToolBar.strings['Heading 2'] = 'Заглавје 2'; +jsToolBar.strings['Heading 3'] = 'Заглавје 3'; +jsToolBar.strings['Unordered list'] = 'Неподредена листа'; jsToolBar.strings['Ordered list'] = 'Подредена листа'; jsToolBar.strings['Quote'] = 'Цитат'; jsToolBar.strings['Unquote'] = 'Отстрани цитат'; -jsToolBar.strings['Preformatted text'] = 'Preformatted text'; -jsToolBar.strings['Wiki link'] = 'Линк до вики страна'; +jsToolBar.strings['Preformatted text'] = 'Форматиран текст'; +jsToolBar.strings['Wiki link'] = 'Врска до вики страна'; jsToolBar.strings['Image'] = 'Слика'; + diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/javascripts/jstoolbar/lang/jstoolbar-mk.js --- a/public/javascripts/jstoolbar/lang/jstoolbar-mk.js Wed Aug 25 16:30:24 2010 +0100 +++ b/public/javascripts/jstoolbar/lang/jstoolbar-mk.js Fri Sep 24 14:06:04 2010 +0100 @@ -1,16 +1,17 @@ jsToolBar.strings = {}; -jsToolBar.strings['Strong'] = 'Strong'; -jsToolBar.strings['Italic'] = 'Italic'; -jsToolBar.strings['Underline'] = 'Underline'; -jsToolBar.strings['Deleted'] = 'Deleted'; -jsToolBar.strings['Code'] = 'Inline Code'; -jsToolBar.strings['Heading 1'] = 'Heading 1'; -jsToolBar.strings['Heading 2'] = 'Heading 2'; -jsToolBar.strings['Heading 3'] = 'Heading 3'; -jsToolBar.strings['Unordered list'] = 'Unordered list'; +jsToolBar.strings['Strong'] = 'Задебелен'; +jsToolBar.strings['Italic'] = 'Закосен'; +jsToolBar.strings['Underline'] = 'Подвлечен'; +jsToolBar.strings['Deleted'] = 'Прецртан'; +jsToolBar.strings['Code'] = 'Код'; +jsToolBar.strings['Heading 1'] = 'Заглавје 1'; +jsToolBar.strings['Heading 2'] = 'Заглавје 2'; +jsToolBar.strings['Heading 3'] = 'Заглавје 3'; +jsToolBar.strings['Unordered list'] = 'Неподредена листа'; jsToolBar.strings['Ordered list'] = 'Подредена листа'; jsToolBar.strings['Quote'] = 'Цитат'; jsToolBar.strings['Unquote'] = 'Отстрани цитат'; -jsToolBar.strings['Preformatted text'] = 'Preformatted text'; -jsToolBar.strings['Wiki link'] = 'Линк до вики страна'; +jsToolBar.strings['Preformatted text'] = 'Форматиран текст'; +jsToolBar.strings['Wiki link'] = 'Врска до вики страна'; jsToolBar.strings['Image'] = 'Слика'; + diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/.svn/all-wcprops --- a/public/stylesheets/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/4014/trunk/public/stylesheets +/svn/!svn/ver/4072/trunk/public/stylesheets END context_menu.css K 25 @@ -49,5 +49,5 @@ K 25 svn:wc:ra_dav:version-url V 59 -/svn/!svn/ver/3908/trunk/public/stylesheets/application.css +/svn/!svn/ver/4072/trunk/public/stylesheets/application.css END diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/.svn/entries --- a/public/stylesheets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/stylesheets http://redmine.rubyforge.org/svn -2010-08-22T19:12:21.015911Z -4014 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.752153Z +2010-09-23T14:37:45.247783Z d4e12d14040f9f048ddc696b1c0adf71 2010-05-01T11:54:40.545656Z 3725 @@ -66,7 +66,7 @@ -2010-08-25T15:27:58.598648Z +2010-09-23T14:37:45.247783Z ee22ead851abb7d0733ccd46315ccdc2 2010-08-19T01:13:50.846630Z 3950 @@ -100,7 +100,7 @@ -2010-08-25T15:27:58.598648Z +2010-09-23T14:37:45.247783Z c8ca83463f3cde626ce2e2c3dca08cb2 2010-08-22T19:12:21.015911Z 4014 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.752153Z +2010-09-23T14:37:45.251810Z d4a1902945bf7a0faa18be73960030c9 2008-09-17T17:18:05.938945Z 1872 @@ -168,7 +168,7 @@ -2010-08-25T15:27:58.598648Z +2010-09-23T14:37:45.251810Z cb7655798f97e931ea4992a9dd1afc4f 2010-08-22T19:12:21.015911Z 4014 @@ -202,7 +202,7 @@ -2010-07-23T14:49:47.752153Z +2010-09-23T14:37:45.247783Z 62cab819ebe98bd9fb95415ac7b52e12 2007-12-28T21:58:33.550772Z 1024 @@ -236,7 +236,7 @@ -2010-07-23T14:49:47.756104Z +2010-09-23T14:37:45.251810Z 360ffe5ea0cba43a286c7e42756b463f 2010-03-28T11:30:48.135356Z 3619 @@ -271,9 +271,9 @@ -e64cf3bd18f1c02bcae64290202ef8b2 -2010-08-04T00:27:41.778647Z -3908 +e6a7b38459368e48b9c463dadb2e9f5f +2010-09-10T03:09:02.311267Z +4072 edavis10 has-props diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/.svn/text-base/application.css.svn-base --- a/public/stylesheets/.svn/text-base/application.css.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/.svn/text-base/application.css.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -787,8 +787,10 @@ white-space:nowrap; } +.task.label {width:100%;} + .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } -.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } +.task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; } .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } .task_todo.parent { background: #888; border: 1px solid #888; height: 6px;} @@ -796,7 +798,17 @@ .task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;} .task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;} -.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } +.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; } +.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} +.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; } +.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} + +.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;} +.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;} /***** Icons *****/ .icon { @@ -840,6 +852,7 @@ .icon-comment { background-image: url(../images/comment.png); } .icon-summary { background-image: url(../images/lightning.png); } .icon-server-authentication { background-image: url(../images/server_key.png); } +.icon-issue { background-image: url(../images/ticket.png); } .icon-file { background-image: url(../images/files/default.png); } .icon-file.text-plain { background-image: url(../images/files/text.png); } @@ -898,6 +911,12 @@ margin: 0 1em 1em 0; } +/* Used on 12px Gravatar img tags without the icon background */ +.icon-gravatar { + float: left; + margin-right: 4px; +} + #activity dt, .journal { clear: left; diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/.svn/tmp/application.css.tmp --- a/public/stylesheets/.svn/tmp/application.css.tmp Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/.svn/tmp/application.css.tmp Fri Sep 24 14:06:04 2010 +0100 @@ -787,8 +787,10 @@ white-space:nowrap; } +.task.label {width:100%;} + .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } -.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } +.task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; } .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } .task_todo.parent { background: #888; border: 1px solid #888; height: 6px;} @@ -796,7 +798,17 @@ .task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;} .task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;} -.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } +.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; } +.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} +.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; } +.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} + +.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;} +.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;} /***** Icons *****/ .icon { @@ -840,6 +852,7 @@ .icon-comment { background-image: url(../images/comment.png); } .icon-summary { background-image: url(../images/lightning.png); } .icon-server-authentication { background-image: url(../images/server_key.png); } +.icon-issue { background-image: url(../images/ticket.png); } .icon-file { background-image: url(../images/files/default.png); } .icon-file.text-plain { background-image: url(../images/files/text.png); } @@ -898,6 +911,12 @@ margin: 0 1em 1em 0; } +/* Used on 12px Gravatar img tags without the icon background */ +.icon-gravatar { + float: left; + margin-right: 4px; +} + #activity dt, .journal { clear: left; diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/.svn/tmp/tempfile.tmp --- a/public/stylesheets/.svn/tmp/tempfile.tmp Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/.svn/tmp/tempfile.tmp Fri Sep 24 14:06:04 2010 +0100 @@ -287,8 +287,8 @@ .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; } div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} -div#issue-changesets .changeset { padding: 4px;} -div#issue-changesets .changeset { border-bottom: 1px solid #ddd; } +div#issue-changesets div.changeset { padding: 4px;} +div#issue-changesets div.changeset { border-bottom: 1px solid #ddd; } div#issue-changesets p { margin-top: 0; margin-bottom: 1em;} div#activity dl, #search-results { margin-left: 2em; } @@ -903,6 +903,10 @@ clear: left; } +.journal-link { + float: right; +} + h2 img { vertical-align:middle; } .hascontextmenu { cursor: context-menu; } diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/stylesheets/application.css --- a/public/stylesheets/application.css Wed Aug 25 16:30:24 2010 +0100 +++ b/public/stylesheets/application.css Fri Sep 24 14:06:04 2010 +0100 @@ -787,8 +787,10 @@ white-space:nowrap; } +.task.label {width:100%;} + .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } -.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } +.task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; } .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } .task_todo.parent { background: #888; border: 1px solid #888; height: 6px;} @@ -796,7 +798,17 @@ .task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;} .task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;} -.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } +.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; } +.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} +.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; } +.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;} +.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;} +.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;} + +.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;} +.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;} /***** Icons *****/ .icon { @@ -840,6 +852,7 @@ .icon-comment { background-image: url(../images/comment.png); } .icon-summary { background-image: url(../images/lightning.png); } .icon-server-authentication { background-image: url(../images/server_key.png); } +.icon-issue { background-image: url(../images/ticket.png); } .icon-file { background-image: url(../images/files/default.png); } .icon-file.text-plain { background-image: url(../images/files/text.png); } @@ -898,6 +911,12 @@ margin: 0 1em 1em 0; } +/* Used on 12px Gravatar img tags without the icon background */ +.icon-gravatar { + float: left; + margin-right: 4px; +} + #activity dt, .journal { clear: left; diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/.svn/entries --- a/public/themes/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:47.636099Z +2010-09-23T14:37:45.251810Z 5b7a0352b95a67871b90c5a90a226123 2007-10-10T17:17:37.630066Z 818 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/alternate/.svn/entries --- a/public/themes/alternate/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/alternate/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes/alternate http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/alternate/stylesheets/.svn/entries --- a/public/themes/alternate/stylesheets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/alternate/stylesheets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes/alternate/stylesheets http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.628097Z +2010-09-23T14:37:45.255767Z 8a47fb469dca292ea631422810927fe3 2009-11-15T21:15:31.339604Z 3069 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/classic/.svn/entries --- a/public/themes/classic/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/classic/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes/classic http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/classic/images/.svn/entries --- a/public/themes/classic/images/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/classic/images/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes/classic/images http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.632097Z +2010-09-23T14:37:45.255767Z a137eb4441860564ce1655357af26de8 2009-12-18T14:10:26.630799Z 3183 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.632097Z +2010-09-23T14:37:45.255767Z 99bea32e1990e011e870f6c562e87a6a 2009-12-18T14:10:26.630799Z 3183 diff -r 1d32c0a0efbf -r 40f7cfd4df19 public/themes/classic/stylesheets/.svn/entries --- a/public/themes/classic/stylesheets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/public/themes/classic/stylesheets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/public/themes/classic/stylesheets http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.636099Z +2010-09-23T14:37:45.259756Z 1bfaedd3f6b62419367da41a7a9310b2 2009-12-18T14:10:26.630799Z 3183 diff -r 1d32c0a0efbf -r 40f7cfd4df19 script/.svn/entries --- a/script/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/script/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/script http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.263770Z e9da4d9bd98b629d856b280caa927f42 2007-03-12T17:29:04.309051Z 331 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.263770Z efe05546991854cb1323026c0cdc7d27 2007-03-12T17:29:04.309051Z 331 @@ -103,7 +103,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z bba2905059daec6033f7a51cff19aff6 2007-03-12T17:29:04.309051Z 331 @@ -137,7 +137,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.263770Z 5a6a7708fafd8f806775405f2f33fe99 2008-07-04T17:58:14.743502Z 1623 @@ -171,7 +171,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.263770Z f09bb329fb28e89340567a704a4619f8 2007-03-12T17:29:04.309051Z 331 @@ -205,7 +205,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z 78522a2f43ce4bf932cf237076c0d2a1 2007-03-12T17:29:04.309051Z 331 @@ -239,7 +239,7 @@ -2010-07-23T14:49:47.060097Z +2010-09-23T14:37:45.263770Z a1b78de0b704be4cfa29b11cfbd35a5e 2009-06-07T18:22:27.408484Z 2783 @@ -273,7 +273,7 @@ -2010-07-23T14:49:47.060097Z +2010-09-23T14:37:45.267755Z ef69c53ee39f550f43a4bd3a09482ff7 2007-03-12T17:29:04.309051Z 331 @@ -310,7 +310,7 @@ -2010-07-23T14:49:47.060097Z +2010-09-23T14:37:45.267755Z 4c5aa44730cde119ab839486212f4ac5 2007-03-12T17:29:04.309051Z 331 diff -r 1d32c0a0efbf -r 40f7cfd4df19 script/performance/.svn/entries --- a/script/performance/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/script/performance/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/script/performance http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.048142Z +2010-09-23T14:37:45.267755Z 91086af38733556c5aabc91eb4b20bed 2007-03-12T17:29:04.309051Z 331 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.048142Z +2010-09-23T14:37:45.267755Z 4dd7faa9b0b5f678082e19c97852b005 2007-03-12T17:29:04.309051Z 331 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.048142Z +2010-09-23T14:37:45.267755Z 9316140f20aace6cf628d17b5bfd1119 2008-07-04T17:58:14.743502Z 1623 diff -r 1d32c0a0efbf -r 40f7cfd4df19 script/process/.svn/entries --- a/script/process/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/script/process/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/script/process http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z e7e52ded28489a821b5eb156f92ca0f5 2007-03-12T17:29:04.309051Z 331 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z 73662c6991e4d3ea2332b5fcadd5b3d3 2008-07-04T17:58:14.743502Z 1623 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z 77608fa9e09e9f24410e7374c67956b7 2007-03-12T17:29:04.309051Z 331 @@ -134,7 +134,7 @@ -2010-07-23T14:49:47.056133Z +2010-09-23T14:37:45.271755Z 69800f080d6bdd2f06c76c32f23c2c86 2007-03-12T17:29:04.309051Z 331 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/.svn/all-wcprops --- a/test/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 29 -/svn/!svn/ver/4037/trunk/test +/svn/!svn/ver/4172/trunk/test END object_daddy_helpers.rb K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/3398/trunk/test/object_daddy_helpers.rb +/svn/!svn/ver/4078/trunk/test/object_daddy_helpers.rb END test_helper.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/.svn/entries --- a/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -35,10 +35,10 @@ -2010-07-23T14:49:44.224277Z -6050a8a97b75ee7b428053a9bbd95f37 -2010-02-08T18:53:12.750770Z -3398 +2010-09-24T12:48:25.883734Z +bec9d26a7ae75350529040e7bca36bfa +2010-09-10T19:44:45.405792Z +4078 edavis10 @@ -61,7 +61,7 @@ -900 +1116 exemplars dir @@ -72,7 +72,7 @@ -2010-08-25T15:27:52.822524Z +2010-09-23T14:37:45.443777Z ac78351cc24dae03cb70f9e4bd9163fa 2010-08-19T22:24:42.251508Z 4010 @@ -118,7 +118,7 @@ -2010-07-23T14:49:44.224277Z +2010-09-23T14:37:45.427769Z 29604d905b321f5bf19b86f7b9797394 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/.svn/text-base/object_daddy_helpers.rb.svn-base --- a/test/.svn/text-base/object_daddy_helpers.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/.svn/text-base/object_daddy_helpers.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -13,6 +13,11 @@ User.spawn(attributes) end + def User.add_to_project(user, project, roles) + roles = [roles] unless roles.is_a?(Array) + Member.generate!(:principal => user, :project => project, :roles => roles) + end + # Generate the default Query def Query.generate_default!(attributes={}) query = Query.spawn(attributes) @@ -25,8 +30,9 @@ def Issue.generate_for_project!(project, attributes={}) issue = Issue.spawn(attributes) do |issue| issue.project = project + issue.tracker = project.trackers.first unless project.trackers.empty? + yield issue if block_given? end - issue.tracker = project.trackers.first unless project.trackers.empty? issue.save! issue end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/exemplars/.svn/entries --- a/test/exemplars/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/exemplars/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/exemplars http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 26c766235d2f79490fa33a7ec9c154ae 2010-01-27T18:29:03.119133Z 3340 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.295820Z 62261c71ec828fa443bd44e055602e3d 2010-01-27T18:29:03.119133Z 3340 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 0da51e5e074d641e056e5011545571b8 2010-01-27T18:29:03.119133Z 3340 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 5b8b8763d7419d535d1d14d7bfb4f343 2010-01-27T18:29:03.119133Z 3340 @@ -168,7 +168,7 @@ -2010-08-25T15:27:52.622585Z +2010-09-23T14:37:45.287807Z 13a55da47c4b6a61a3dbfd73eea41049 2010-08-19T22:24:42.251508Z 4010 @@ -202,7 +202,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 26c91af771947fc671b87a08282608b3 2010-04-13T05:57:27.803435Z 3670 @@ -236,7 +236,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z acf3ae00213d45112f6e13ecce212af1 2010-01-28T19:05:21.831741Z 3342 @@ -270,7 +270,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 662be883bd5a43d964b868caaf34b276 2010-01-27T18:29:03.119133Z 3340 @@ -304,7 +304,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.295820Z 2dc494eb57aee9ee3c3ca5324f61e707 2010-01-27T18:29:03.119133Z 3340 @@ -338,7 +338,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 06cec6b1adf323a00a75e5c008f73c57 2010-01-27T18:29:03.119133Z 3340 @@ -372,7 +372,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.295820Z e51316252a08488be9aa2878c00c4959 2010-01-27T18:29:03.119133Z 3340 @@ -406,7 +406,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z e5f24c612cf3bcc7b17aeeafeae0697d 2009-10-20T00:36:51.144135Z 2937 @@ -440,7 +440,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 0b0e9ab56f34b8d5f3fd7265d2dd4ffe 2010-05-27T17:16:05.103190Z 3759 @@ -474,7 +474,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 24d00671cf3c2137d957ee6dac273517 2010-01-28T19:05:21.831741Z 3342 @@ -508,7 +508,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 1f7deb35b057dce8eb5dbc41d9a29019 2010-01-28T19:05:21.831741Z 3342 @@ -542,7 +542,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 575c5f91f698576ec8f6cc88bbcd31d8 2010-01-27T18:29:03.119133Z 3340 @@ -576,7 +576,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z fd5cfe62b2a92441a7cdb5035c4c4897 2009-10-18T22:25:00.956502Z 2930 @@ -610,7 +610,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z faf4bf5a3a3662c361ce668c20c293a4 2010-01-27T18:29:03.119133Z 3340 @@ -644,7 +644,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 91f000c1e57fb0edc16bf90ea8efc6fa 2010-01-28T19:05:21.831741Z 3342 @@ -678,7 +678,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.291809Z 3b871be1550b1a964324a18f868dabae 2009-12-06T10:28:20.099964Z 3123 @@ -712,7 +712,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z dfe8cbec2ef3bcffe6b9352e3a3d807c 2009-10-18T22:25:00.956502Z 2930 @@ -746,7 +746,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z a9ebd14814e0885fc096d0702745f30d 2010-01-27T18:29:03.119133Z 3340 @@ -780,7 +780,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z d1bdf1810c216ecde56d0750f78bea10 2010-01-27T18:29:03.119133Z 3340 @@ -814,7 +814,7 @@ -2010-07-23T14:49:43.648129Z +2010-09-23T14:37:45.287807Z 92ac53d6b3a2e00ae1a9e0e4bc5d548b 2010-02-08T18:53:12.750770Z 3398 @@ -848,7 +848,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 94aed9cd40bd95ab8d8c2f51bfc097cf 2009-10-18T22:25:00.956502Z 2930 @@ -882,7 +882,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.287807Z d17dfd87c9c081965089712a4ce42a6d 2009-10-18T22:25:00.956502Z 2930 @@ -916,7 +916,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 74f5207a054732dd9be1b3184340ca77 2009-10-18T22:25:00.956502Z 2930 @@ -950,7 +950,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 908d8689f3ff469978b8af8bb55084b4 2010-01-27T18:29:03.119133Z 3340 @@ -984,7 +984,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 9c97ca570fa9b00ab1ecebd226f52f66 2009-10-18T22:25:00.956502Z 2930 @@ -1018,7 +1018,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.287807Z c01820cc719616bb5a0895cfddb40798 2010-01-27T18:29:03.119133Z 3340 @@ -1052,7 +1052,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.287807Z 27218d998d6798365d0cc47ae8d8bb87 2010-01-28T19:05:21.831741Z 3342 @@ -1086,7 +1086,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.295820Z 0b05f7ce166d5bb3695d2fad7e56fc7f 2010-01-27T18:29:03.119133Z 3340 @@ -1120,7 +1120,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 2a6254ddbc381a97b49b17936c25ef78 2010-01-28T19:05:21.831741Z 3342 @@ -1154,7 +1154,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.287807Z d60529466c1df6db1edcdac71fa1a9d7 2010-04-13T05:57:27.803435Z 3670 @@ -1188,7 +1188,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z c4ea7f6c706d04e3ef3f809e37867766 2009-11-05T21:32:26.784578Z 3010 @@ -1222,7 +1222,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 0a69ac358346b15717ccb6b0cddba4be 2010-01-27T18:29:03.119133Z 3340 @@ -1256,7 +1256,7 @@ -2010-07-23T14:49:43.652130Z +2010-09-23T14:37:45.291809Z 19471f6afbec20925ddd6824c1290526 2010-01-27T18:29:03.119133Z 3340 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/.svn/entries --- a/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.327799Z 7f7308fa24fe8015418b4bf81a265389 2009-12-06T10:28:20.099964Z 3123 @@ -72,7 +72,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.327799Z 940bc0bea76bc76ba8ef1b224d744eee 2009-09-20T14:06:57.257282Z 2895 @@ -106,7 +106,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.315821Z 1e9bc92faf43a6d556aea8f33ea974b0 2009-09-20T15:20:22.385253Z 2898 @@ -140,7 +140,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.351765Z 5b2ffc98605c1c36dc346f3be44a9985 2010-03-13T14:56:49.379682Z 3573 @@ -177,7 +177,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.355763Z a519d5e75a6d1ac1516064c882aa773c 2009-09-20T14:06:57.257282Z 2895 @@ -211,7 +211,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.343799Z b7264b0f4d285dc38ba7139feaabafe2 2008-12-29T12:40:56.716698Z 2196 @@ -245,7 +245,7 @@ -2010-07-23T14:49:44.208157Z +2010-09-23T14:37:45.343799Z e9853df4a04648bcb9389127748b24c4 2009-09-20T14:06:57.257282Z 2895 @@ -279,7 +279,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.351765Z 5259028ece10055ea04cb1baddadd334 2009-10-21T22:34:52.412718Z 2950 @@ -313,7 +313,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.319762Z 7c37bf142019bf7e3d15cb2f10c6c5ba 2009-12-02T18:57:17.339733Z 3112 @@ -347,7 +347,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.343799Z b72e570a19a6a6297fd0e78a0c15d9a6 2009-09-20T14:06:57.257282Z 2895 @@ -381,7 +381,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.327799Z e6b2256ffe56fa2baa64e474f5c920d6 2009-09-20T14:06:57.257282Z 2895 @@ -415,7 +415,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.319762Z 7e42308ab41cac587386d54899cfcef5 2009-09-20T14:06:57.257282Z 2895 @@ -449,7 +449,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.351765Z ad513155b260eb8a8739d4d13c2823a8 2009-12-19T13:32:21.556847Z 3194 @@ -483,7 +483,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.327799Z 1cdfea6614ecba6cddecb3d4524c38ba 2009-12-26T16:14:55.591181Z 3250 @@ -517,7 +517,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.319762Z 159394b420966c9e2f5ab0e31cb93b41 2009-11-27T20:32:28.228739Z 3099 @@ -554,7 +554,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.351765Z e5a26332fd48dac7e33a963622f49994 2009-09-20T14:06:57.257282Z 2895 @@ -588,7 +588,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.315821Z 909e55408711ba1774e1c071b162962f 2009-09-20T14:06:57.257282Z 2895 @@ -622,7 +622,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.319762Z c6789a99aba9f28cf1d31a36b36224c8 2010-01-03T11:18:09.741250Z 3278 @@ -656,7 +656,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.323763Z bafbddc194242dbdcac1f2bfc550c27b 2010-03-13T14:56:49.379682Z 3573 @@ -693,7 +693,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.343799Z 86387d627355e1debc04c364c29efe81 2009-12-26T16:14:55.591181Z 3250 @@ -727,7 +727,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.327799Z 5c4431f5ee0ecd68c45712b87da9ca3e 2010-04-11T16:27:37.584909Z 3663 @@ -761,7 +761,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.343799Z b5bafc332d23c9efcc2ef648a9a393b9 2009-11-16T18:07:30.910440Z 3071 @@ -795,7 +795,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.351765Z 9dbcd982c4227d919ea750ce4fde79a7 2009-02-12T17:35:57.542817Z 2456 @@ -829,7 +829,7 @@ -2010-07-23T14:49:44.212098Z +2010-09-23T14:37:45.355763Z 8e7549cddb3ed2eb4c5778e3506e3e0c 2010-02-11T19:30:53.136370Z 3412 @@ -863,7 +863,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.355763Z f32671fee76259eb7dbe8f57ed503c99 2010-02-11T19:30:53.136370Z 3412 @@ -897,7 +897,7 @@ -2010-08-25T15:27:52.806619Z +2010-09-23T14:37:45.319762Z 8a815e166641ad170ffddcf33646ca04 2010-08-22T18:42:00.112555Z 4013 @@ -931,7 +931,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.315821Z 0cb04e10717d1de94f328dd92f2e9f8c 2009-09-20T14:06:57.257282Z 2895 @@ -965,7 +965,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.351765Z fcf009196cf46bc9d64e947e8275e51f 2009-09-20T14:06:57.257282Z 2895 @@ -1002,7 +1002,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.343799Z a12098ae3dcc7df2fffdc5aabc036445 2009-12-26T16:14:55.591181Z 3250 @@ -1039,7 +1039,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.327799Z 0f791723030addfd84aeb8e8478b4373 2009-12-06T10:28:20.099964Z 3123 @@ -1073,7 +1073,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.355763Z be9ed58ec8ae1a4d2e1608c712c480be 2009-09-20T14:06:57.257282Z 2895 @@ -1107,7 +1107,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.319762Z 28c83450d87eb6a49fe3d920f05e16b7 2010-01-14T20:00:17.463579Z 3313 @@ -1141,7 +1141,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.351765Z ac7c965e48b0bb9568999ecaa86a627e 2009-11-11T10:48:54.418561Z 3024 @@ -1175,7 +1175,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.315821Z f299e9e4f8b4310d276f3cc0bd4573a2 2010-02-26T08:42:40.283735Z 3490 @@ -1209,7 +1209,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.343799Z f41152c0bbe67b30733fb44c847c0c28 2009-12-13T12:39:22.716082Z 3167 @@ -1243,7 +1243,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.327799Z 14b2db45f35ee3e6f8c2a8a05b94c82b 2009-11-07T08:44:56.035544Z 3013 @@ -1277,7 +1277,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.351765Z 0670d0dee081a5f922aa2d3ff7af9764 2009-12-06T10:28:20.099964Z 3123 @@ -1311,7 +1311,7 @@ -2010-07-23T14:49:44.216162Z +2010-09-23T14:37:45.315821Z c3c2ab815b9af7fb01ccafc5fc881f87 2009-10-25T11:23:46.266302Z 2976 @@ -1345,7 +1345,7 @@ -2010-07-23T14:49:44.220130Z +2010-09-23T14:37:45.315821Z 58f19425b758eec08d68749a9408b258 2009-12-06T10:28:20.099964Z 3123 @@ -1379,7 +1379,7 @@ -2010-07-23T14:49:44.220130Z +2010-09-23T14:37:45.343799Z f926570b0d32ca1702d16de3f57e0262 2009-09-20T14:06:57.257282Z 2895 @@ -1413,7 +1413,7 @@ -2010-07-23T14:49:44.220130Z +2010-09-23T14:37:45.351765Z 644bd85c22127195b9f31217cce0595e 2009-09-20T14:06:57.257282Z 2895 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/diffs/.svn/entries --- a/test/fixtures/diffs/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/diffs/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/diffs http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.140096Z +2010-09-23T14:37:45.319762Z 64527b211202fbff696792d538e2b14e 2008-12-07T15:21:40.165860Z 2112 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/encoding/.svn/entries --- a/test/fixtures/encoding/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/encoding/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/encoding http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.996133Z +2010-09-23T14:37:45.323763Z eee83cf374737071543358b83f85f75b 2010-02-20T11:24:41.988635Z 3466 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/files/.svn/entries --- a/test/fixtures/files/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/files/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/files http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.012097Z +2010-09-23T14:37:45.323763Z 15a82d7463bda303b58595b5d05d8f05 2008-06-09T18:40:59.518583Z 1520 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.012097Z +2010-09-23T14:37:45.323763Z 8b4167c6b87869174dd17db0694ef2e1 2008-06-09T18:40:59.518583Z 1520 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.012097Z +2010-09-23T14:37:45.323763Z c72c8a9a0de99c39f9e6d712c13b7624 2008-06-09T18:40:59.518583Z 1520 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.012097Z +2010-09-23T14:37:45.323763Z 1478adae0d4eb06d35897518540e25d6 2008-12-02T17:57:13.240321Z 2085 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/ldap/.svn/entries --- a/test/fixtures/ldap/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/ldap/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/ldap http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.996133Z +2010-09-23T14:37:45.327799Z acbef41cb6cf252c83489cc3344e2604 2010-02-26T08:31:36.418866Z 3489 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.996133Z +2010-09-23T14:37:45.327799Z f1b10e6d96dd658e563d4ba74d52e87b 2010-02-26T08:31:36.418866Z 3489 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/mail_handler/.svn/entries --- a/test/fixtures/mail_handler/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/mail_handler/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/mail_handler http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 5e24af78a4534798611158a3d81efb34 2008-12-14T17:10:16.292262Z 2136 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 09130a1100cb410ed07fdff5564b2993 2009-01-21T18:22:30.765588Z 2294 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 4fbec91f5454b84077ae1290fba0bc8e 2009-08-13T16:57:36.259313Z 2838 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z ed7adca07ce64c4d15f3e638a222e38d 2010-06-20T16:22:36.211973Z 3801 @@ -168,7 +168,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 0c3b0545575d405416f585f8d5910bcb 2009-11-08T13:51:53.384956Z 3022 @@ -202,7 +202,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 40927905de0187dc52a9adb3e4a2c252 2008-11-30T16:00:45.142894Z 2077 @@ -236,7 +236,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z d276c2037b0bf277b66f921379695c35 2008-07-06T16:26:25.352975Z 1643 @@ -270,7 +270,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.335799Z 1fc46fd2b0b8dcdaf67dfde24d0e8b89 2010-01-17T11:00:54.196987Z 3322 @@ -304,7 +304,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 4d85674ea94930e7f1c8e288f03a57b8 2008-06-22T10:45:03.753412Z 1568 @@ -338,7 +338,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 9dbf54ce4376f62447ef0696fe9b3a79 2010-06-19T19:24:17.380627Z 3783 @@ -372,7 +372,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 0979c01baf02b924bd8a6db3980c59c9 2009-06-14T14:48:34.287541Z 2789 @@ -406,7 +406,7 @@ -2010-07-23T14:49:43.988124Z +2010-09-23T14:37:45.339796Z 2a98751dfc76fcc9eefa7eaf2a8098e4 2010-05-29T00:05:24.040852Z 3764 @@ -440,7 +440,7 @@ -2010-07-23T14:49:43.992098Z +2010-09-23T14:37:45.339796Z 6cd634ffcd88be96cbe8789ae9545c5f 2010-05-29T00:05:24.040852Z 3764 @@ -474,7 +474,7 @@ -2010-07-23T14:49:43.992098Z +2010-09-23T14:37:45.339796Z 4ef77e6337f95c7a8362c4a51c09d0af 2008-12-30T14:57:33.008940Z 2211 @@ -508,7 +508,7 @@ -2010-07-23T14:49:43.992098Z +2010-09-23T14:37:45.339796Z 4bd4decc00f83404fdd1a835809e4552 2009-01-19T18:29:07.726757Z 2288 @@ -542,7 +542,7 @@ -2010-07-23T14:49:43.992098Z +2010-09-23T14:37:45.339796Z c174d0c5bbb339ef9361c45aab58b2bb 2009-01-19T19:03:53.393843Z 2289 @@ -576,7 +576,7 @@ -2010-07-23T14:49:43.992098Z +2010-09-23T14:37:45.343799Z 7bc2d83ee5c078a264dd66ec75f35c77 2009-03-06T18:25:19.434505Z 2553 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/mailer/.svn/entries --- a/test/fixtures/mailer/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/mailer/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/mailer http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/fixtures/repositories/.svn/entries --- a/test/fixtures/repositories/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/fixtures/repositories/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/fixtures/repositories http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z 0553391b55404e8ff509358b388f085b 2008-03-12T20:28:49.748698Z 1236 @@ -66,7 +66,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z bd13c11517bf083e83846aeccff745f1 2010-06-20T16:08:26.745839Z 3800 @@ -100,7 +100,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.347765Z fa70d4aeca5639d750d94281ad664957 2007-12-03T19:19:36.156779Z 951 @@ -134,7 +134,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z 4717d4ab5ae991a07ac8256d6cc83c36 2010-07-06T02:07:46.557097Z 3828 @@ -168,7 +168,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z 48c6f19f8c3123c7e143e4516669f700 2007-12-14T17:46:45.448946Z 991 @@ -202,7 +202,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z 9fbee7c5669de84f0767597eb41af9f7 2008-06-08T15:40:24.603157Z 1508 @@ -236,7 +236,7 @@ -2010-07-23T14:49:44.136156Z +2010-09-23T14:37:45.351765Z 0c4730bd5eb192e094531f218b7a3119 2007-12-13T18:52:09.073829Z 987 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/all-wcprops --- a/test/functional/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,19 +1,19 @@ K 25 svn:wc:ra_dav:version-url V 40 -/svn/!svn/ver/4037/trunk/test/functional +/svn/!svn/ver/4172/trunk/test/functional END issues_controller_test.rb K 25 svn:wc:ra_dav:version-url V 66 -/svn/!svn/ver/4037/trunk/test/functional/issues_controller_test.rb +/svn/!svn/ver/4083/trunk/test/functional/issues_controller_test.rb END news_controller_test.rb K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/3687/trunk/test/functional/news_controller_test.rb +/svn/!svn/ver/4172/trunk/test/functional/news_controller_test.rb END queries_controller_test.rb K 25 @@ -51,6 +51,12 @@ V 62 /svn/!svn/ver/3217/trunk/test/functional/my_controller_test.rb END +comments_controller_test.rb +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/!svn/ver/4172/trunk/test/functional/comments_controller_test.rb +END wikis_controller_test.rb K 25 svn:wc:ra_dav:version-url @@ -73,7 +79,7 @@ K 25 svn:wc:ra_dav:version-url V 73 -/svn/!svn/ver/4006/trunk/test/functional/context_menus_controller_test.rb +/svn/!svn/ver/4055/trunk/test/functional/context_menus_controller_test.rb END account_controller_test.rb K 25 @@ -87,29 +93,29 @@ V 69 /svn/!svn/ver/3913/trunk/test/functional/calendars_controller_test.rb END +workflows_controller_test.rb +K 25 +svn:wc:ra_dav:version-url +V 69 +/svn/!svn/ver/3188/trunk/test/functional/workflows_controller_test.rb +END journals_controller_test.rb K 25 svn:wc:ra_dav:version-url V 68 /svn/!svn/ver/4034/trunk/test/functional/journals_controller_test.rb END -workflows_controller_test.rb +project_enumerations_controller_test.rb K 25 svn:wc:ra_dav:version-url -V 69 -/svn/!svn/ver/3188/trunk/test/functional/workflows_controller_test.rb +V 80 +/svn/!svn/ver/4075/trunk/test/functional/project_enumerations_controller_test.rb END gantts_controller_test.rb K 25 svn:wc:ra_dav:version-url V 66 -/svn/!svn/ver/3913/trunk/test/functional/gantts_controller_test.rb -END -users_controller_test.rb -K 25 -svn:wc:ra_dav:version-url -V 65 -/svn/!svn/ver/3935/trunk/test/functional/users_controller_test.rb +/svn/!svn/ver/4072/trunk/test/functional/gantts_controller_test.rb END issue_moves_controller_test.rb K 25 @@ -117,6 +123,12 @@ V 71 /svn/!svn/ver/3937/trunk/test/functional/issue_moves_controller_test.rb END +users_controller_test.rb +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/4066/trunk/test/functional/users_controller_test.rb +END repositories_cvs_controller_test.rb K 25 svn:wc:ra_dav:version-url @@ -129,11 +141,11 @@ V 71 /svn/!svn/ver/2895/trunk/test/functional/application_controller_test.rb END -search_controller_test.rb +activities_controller_test.rb K 25 svn:wc:ra_dav:version-url -V 66 -/svn/!svn/ver/3806/trunk/test/functional/search_controller_test.rb +V 70 +/svn/!svn/ver/4047/trunk/test/functional/activities_controller_test.rb END ldap_auth_sources_controller.rb K 25 @@ -141,11 +153,11 @@ V 72 /svn/!svn/ver/3744/trunk/test/functional/ldap_auth_sources_controller.rb END -messages_controller_test.rb +search_controller_test.rb K 25 svn:wc:ra_dav:version-url -V 68 -/svn/!svn/ver/3687/trunk/test/functional/messages_controller_test.rb +V 66 +/svn/!svn/ver/3806/trunk/test/functional/search_controller_test.rb END repositories_bazaar_controller_test.rb K 25 @@ -153,6 +165,12 @@ V 79 /svn/!svn/ver/2887/trunk/test/functional/repositories_bazaar_controller_test.rb END +messages_controller_test.rb +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/!svn/ver/3687/trunk/test/functional/messages_controller_test.rb +END attachments_controller_test.rb K 25 svn:wc:ra_dav:version-url @@ -171,18 +189,18 @@ V 66 /svn/!svn/ver/2989/trunk/test/functional/groups_controller_test.rb END +issues_controller_transaction_test.rb +K 25 +svn:wc:ra_dav:version-url +V 78 +/svn/!svn/ver/3701/trunk/test/functional/issues_controller_transaction_test.rb +END watchers_controller_test.rb K 25 svn:wc:ra_dav:version-url V 68 /svn/!svn/ver/3170/trunk/test/functional/watchers_controller_test.rb END -issues_controller_transaction_test.rb -K 25 -svn:wc:ra_dav:version-url -V 78 -/svn/!svn/ver/3701/trunk/test/functional/issues_controller_transaction_test.rb -END issue_statuses_controller_test.rb K 25 svn:wc:ra_dav:version-url @@ -199,7 +217,7 @@ K 25 svn:wc:ra_dav:version-url V 68 -/svn/!svn/ver/3802/trunk/test/functional/projects_controller_test.rb +/svn/!svn/ver/4070/trunk/test/functional/projects_controller_test.rb END repositories_git_controller_test.rb K 25 @@ -247,7 +265,7 @@ K 25 svn:wc:ra_dav:version-url V 67 -/svn/!svn/ver/3805/trunk/test/functional/timelog_controller_test.rb +/svn/!svn/ver/4087/trunk/test/functional/timelog_controller_test.rb END documents_controller_test.rb K 25 @@ -255,6 +273,12 @@ V 69 /svn/!svn/ver/3788/trunk/test/functional/documents_controller_test.rb END +files_controller_test.rb +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/4085/trunk/test/functional/files_controller_test.rb +END repositories_darcs_controller_test.rb K 25 svn:wc:ra_dav:version-url @@ -295,7 +319,7 @@ K 25 svn:wc:ra_dav:version-url V 68 -/svn/!svn/ver/3686/trunk/test/functional/versions_controller_test.rb +/svn/!svn/ver/4097/trunk/test/functional/versions_controller_test.rb END enumerations_controller_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/entries --- a/test/functional/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/functional http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -32,11 +32,11 @@ -2010-08-25T15:27:52.768120Z -49af442cdcbb77b8f48e9096a2efaa5e -2010-08-24T15:27:12.793586Z -4037 -edavis10 +2010-09-24T12:48:25.875739Z +07a21279794955753d580c1ae2e523fb +2010-09-11T20:21:27.018967Z +4083 +jbbarth has-props @@ -58,7 +58,7 @@ -38694 +38747 news_controller_test.rb file @@ -66,10 +66,10 @@ -2010-07-23T14:49:43.800125Z -859828bfcf708f52e472b500bf76102c -2010-04-21T16:02:55.125733Z -3687 +2010-09-24T12:48:25.875739Z +1c72a2e1843e72e60be2f30f97197b91 +2010-09-23T15:20:19.085385Z +4172 edavis10 has-props @@ -92,7 +92,7 @@ -5359 +4365 queries_controller_test.rb file @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.419982Z 2f589d132099d0c2c64ff100dee38e77 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.423771Z 4086611a8939740adbcbf1ec5fe907e9 2010-02-15T16:41:27.289923Z 3437 @@ -168,7 +168,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.387766Z c48a1796b2dc76ac1fa2eb64d663ceb3 2009-09-13T17:14:35.707881Z 2887 @@ -202,7 +202,7 @@ -2010-08-25T15:27:52.768120Z +2010-09-23T14:37:45.383766Z e41b4da40ff4371adb4245f59610b1f5 2010-08-17T15:03:58.074505Z 3945 @@ -236,7 +236,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.423771Z e2ab383bae04b68e626c1f5f9a196bfb 2010-02-15T16:41:16.346582Z 3435 @@ -270,7 +270,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.387766Z 23fcfd5e58263663f9a6507566e6fe2d 2009-12-23T06:27:28.577661Z 3217 @@ -298,13 +298,47 @@ 6205 +comments_controller_test.rb +file + + + + +2010-09-24T12:48:25.875739Z +70dea926748aacbab944bce556c551c6 +2010-09-23T15:20:19.085385Z +4172 +edavis10 + + + + + + + + + + + + + + + + + + + + + +2027 + wikis_controller_test.rb file -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.427769Z 1ef7d2c3fc8722945322a7d5bb1cbcf4 2010-04-21T16:02:55.125733Z 3687 @@ -338,7 +372,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.383766Z 3615890cd8778917fbde968473a229bc 2010-06-20T16:08:20.636341Z 3799 @@ -372,7 +406,7 @@ -2010-07-23T14:49:43.800125Z +2010-09-23T14:37:45.427769Z eeaeea8886e01297d20b839352a22fe2 2010-04-30T18:08:40.324496Z 3719 @@ -406,33 +440,33 @@ -2010-08-25T15:27:52.768120Z -16a7989e923a87002e96fbbfb5e8051a -2010-08-19T18:16:54.064576Z -4006 -edavis10 - - - - - - - - - - - - - - - - - - - - - -4834 +2010-09-24T12:48:25.875739Z +c73a61b28b04990574ae25575051aa52 +2010-09-03T19:54:24.083210Z +4055 +jbbarth + + + + + + + + + + + + + + + + + + + + + +5093 account_controller_test.rb file @@ -440,7 +474,7 @@ -2010-08-25T15:27:52.768120Z +2010-09-23T14:37:45.383766Z 01299f951a82e5acf560044b7e89b5ab 2010-08-10T21:12:32.103531Z 3933 @@ -474,7 +508,7 @@ -2010-08-25T15:27:52.768120Z +2010-09-23T14:37:45.383766Z 998bc7746491ec2c407187c5c7646990 2010-08-04T15:04:30.993800Z 3913 @@ -508,7 +542,7 @@ -2010-08-25T15:27:52.768120Z +2010-09-23T14:37:45.387766Z 6b5c1ff2e3aceda0f29c829b1137f8a3 2010-08-23T15:04:36.844654Z 4034 @@ -542,7 +576,7 @@ -2010-07-23T14:49:43.804126Z +2010-09-23T14:37:45.427769Z be835c79372fac52c849870791d982ff 2009-12-18T15:41:32.828284Z 3188 @@ -570,16 +604,50 @@ 6668 +project_enumerations_controller_test.rb +file + + + + +2010-09-24T12:48:25.875739Z +abb9be62ab6ed5867d6070fd14ffd31d +2010-09-10T16:00:49.687515Z +4075 +edavis10 + + + + + + + + + + + + + + + + + + + + + +9530 + gantts_controller_test.rb file -2010-08-25T15:27:52.770540Z -d2320bdcea0efd739df08a954a4e1e07 -2010-08-04T15:04:30.993800Z -3913 +2010-09-24T12:48:25.875739Z +fb255e043b31b095c741248bc5a9a287 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -602,7 +670,7 @@ -1669 +1716 users_controller_test.rb file @@ -610,11 +678,11 @@ -2010-08-25T15:27:52.770540Z -452b95a8c6b9d5c22f618afc76283f5a -2010-08-10T23:07:44.448600Z -3935 -jbbarth +2010-09-24T12:48:25.875739Z +bc114889d45857af9ea3a87862f6f0e5 +2010-09-06T01:02:52.851079Z +4066 +edavis10 has-props @@ -636,7 +704,7 @@ -5118 +5574 issue_moves_controller_test.rb file @@ -644,7 +712,7 @@ -2010-08-25T15:27:52.770540Z +2010-09-23T14:37:45.387766Z 54756d7f1e65c8d37dca5b41aac6e3ae 2010-08-12T13:57:46.562058Z 3937 @@ -678,7 +746,7 @@ -2010-07-23T14:49:43.824244Z +2010-09-23T14:37:45.419982Z e8d80bc0ee812d5226adf9c1d952ece8 2009-09-13T17:14:35.707881Z 2887 @@ -712,7 +780,7 @@ -2010-07-23T14:49:43.824244Z +2010-09-23T14:37:45.383766Z 3efeaca5179a579dcbdd89cab5f48e3f 2009-09-20T14:06:57.257282Z 2895 @@ -740,13 +808,47 @@ 1656 +activities_controller_test.rb +file + + + + +2010-09-24T12:48:25.875739Z +48dce7788c0aa338add086c8cfd15618 +2010-08-27T14:05:54.014502Z +4047 +edavis10 + + + + + + + + + + + + + + + + + + + + + +2695 + ldap_auth_sources_controller.rb file -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.387766Z d6759c42ae866d7210c7006911e82a42 2010-05-23T03:16:31.304135Z 3744 @@ -780,7 +882,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.423771Z 9dc6da996eea99b8108da65990ef6be3 2010-06-20T20:01:32.722003Z 3806 @@ -814,7 +916,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.419982Z 0c80080549f9968528fce0326c4586e5 2009-09-13T17:14:35.707881Z 2887 @@ -848,7 +950,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.387766Z e70455a2b4bd135f10862b69df7a70bf 2010-04-21T16:02:55.125733Z 3687 @@ -882,7 +984,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.383766Z 25de9e7d8cc73997221a567f9ae1c363 2010-04-21T16:02:55.125733Z 3687 @@ -916,7 +1018,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.423771Z c8d71d4092b4fd39bfada4e8c8ddb99d 2009-12-20T09:44:28.044710Z 3201 @@ -950,7 +1052,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.383766Z 440543b92d6281235fa9a3ec7b569514 2009-10-29T18:40:00.797736Z 2989 @@ -984,7 +1086,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.387766Z 672253b026d9eb645162edff0625071d 2010-04-30T10:06:51.078244Z 3701 @@ -1018,7 +1120,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.423771Z 8dfee17a862ab3d8ec007dca2a6dbbe6 2009-12-13T14:48:28.692743Z 3170 @@ -1052,7 +1154,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.387766Z 3cc86236a5979749a87f4459a6dcd435 2010-02-12T19:15:33.815978Z 3415 @@ -1086,7 +1188,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.419982Z d89f24390b27494109c2e4b393fbce7c 2010-04-21T16:02:55.125733Z 3687 @@ -1120,10 +1222,10 @@ -2010-07-23T14:49:43.828156Z -4e0f23cdc6a24df82ff6d79e1ade79a7 -2010-06-20T16:29:12.112949Z -3802 +2010-09-24T12:48:25.875739Z +8a06ffc175377efeb3bac6e70067fa45 +2010-09-08T16:01:51.939478Z +4070 edavis10 has-props @@ -1146,7 +1248,7 @@ -29271 +14899 members_controller_test.rb file @@ -1154,7 +1256,7 @@ -2010-07-23T14:49:43.828156Z +2010-09-23T14:37:45.387766Z 6a53b76f859d219bcf1289e818aec610 2010-05-24T20:21:16.271499Z 3749 @@ -1188,7 +1290,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.423771Z c2447def1a06fe360c98745749ef2066 2010-07-06T02:07:46.557097Z 3828 @@ -1222,7 +1324,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.423771Z 59ebfd6923ea8a7275a668f8168c9b3b 2009-09-13T17:14:35.707881Z 2887 @@ -1256,7 +1358,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.383766Z 911b8361d2bf4ca21e1bc8270c957d17 2010-04-21T16:02:55.125733Z 3687 @@ -1290,7 +1392,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.419982Z 3ae997d09c86108692ceb438576171d7 2010-02-08T17:53:58.327631Z 3396 @@ -1324,7 +1426,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.383766Z 663e111e99486095033d1f3d635cf2c8 2009-09-20T14:06:57.257282Z 2895 @@ -1358,7 +1460,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.423771Z 580f9a678b8f7f505a52b444d5f70dba 2009-11-07T08:44:56.035544Z 3013 @@ -1392,10 +1494,10 @@ -2010-07-23T14:49:43.832097Z -78d1d6271620006360e9f5d2446520fc -2010-06-20T19:30:51.675631Z -3805 +2010-09-24T12:48:25.879729Z +478bfd41fe3ea1d3f9d2c91b26ee7a62 +2010-09-14T19:02:25.847894Z +4087 edavis10 has-props @@ -1418,7 +1520,7 @@ -13614 +13631 documents_controller_test.rb file @@ -1426,7 +1528,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.383766Z 6d6a011a4f7f17ccff7b514eac561ce8 2010-06-19T22:17:34.496523Z 3788 @@ -1454,13 +1556,47 @@ 4670 +files_controller_test.rb +file + + + + +2010-09-24T12:48:25.879729Z +5d12ff23b3756ee66c539417f2d5dedc +2010-09-14T16:24:07.840869Z +4085 +edavis10 + + + + + + + + + + + + + + + + + + + + + +2306 + repositories_darcs_controller_test.rb file -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.423771Z 8c2b79df7a048945eb57f12ca4e804aa 2009-09-13T17:14:35.707881Z 2887 @@ -1494,7 +1630,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.427769Z 5e11aaeb4ee3d552c2668034c201d6e2 2010-04-20T15:42:57.800422Z 3686 @@ -1528,7 +1664,7 @@ -2010-08-25T15:27:52.770540Z +2010-09-23T14:37:45.383766Z e649d3fb9fe2388f5e0c464529b2e42e 2010-08-04T15:04:30.993800Z 3913 @@ -1562,7 +1698,7 @@ -2010-08-25T15:27:52.770540Z +2010-09-23T14:37:45.387766Z 7bac137a145f14ca591811bb76d56bee 2010-08-18T15:01:35.032314Z 3946 @@ -1596,7 +1732,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.423771Z 3a3e1acd6e8097c938879aca2284280b 2010-06-20T16:08:26.745839Z 3800 @@ -1630,7 +1766,7 @@ -2010-07-23T14:49:43.832097Z +2010-09-23T14:37:45.387766Z fbfd116126fdb8c31552dbe76c070b5e 2010-04-21T16:02:55.125733Z 3687 @@ -1664,10 +1800,10 @@ -2010-07-23T14:49:43.832097Z -288db8b6bff76a89b3030ed55d6b7063 -2010-04-20T15:42:57.800422Z -3686 +2010-09-24T12:48:25.879729Z +0ec41a16228288272bc26862cb87c358 +2010-09-17T15:55:08.377083Z +4097 edavis10 has-props @@ -1690,7 +1826,7 @@ -3708 +5035 enumerations_controller_test.rb file @@ -1698,7 +1834,7 @@ -2010-07-23T14:49:43.836097Z +2010-09-23T14:37:45.383766Z a977083603a7f66240b9b9f93087bb13 2009-09-13T17:14:35.707881Z 2887 @@ -1732,7 +1868,7 @@ -2010-07-23T14:49:43.836097Z +2010-09-23T14:37:45.383766Z 5a2d553a517d649e9848805cb18abb4a 2010-04-21T16:02:55.125733Z 3687 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/activities_controller_test.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/.svn/text-base/activities_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,87 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ActivitiesControllerTest < ActionController::TestCase + fixtures :all + + def test_project_index + get :index, :id => 1, :with_subprojects => 0 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{2.days.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue-edit/ }, + :child => { :tag => "a", + :content => /(#{IssueStatus.find(2).name})/, + } + } + } + end + + def test_previous_project_index + get :index, :id => 1, :from => 3.days.ago.to_date + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{3.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(1).subject}/, + } + } + } + end + + def test_global_index + get :index + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(5).subject}/, + } + } + } + end + + def test_user_index + get :index, :user_id => 2 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{3.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(1).subject}/, + } + } + } + end + + def test_index_atom_feed + get :index, :format => 'atom' + assert_response :success + assert_template 'common/feed.atom.rxml' + assert_tag :tag => 'entry', :child => { + :tag => 'link', + :attributes => {:href => 'http://test.host/issues/11'}} + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/comments_controller_test.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/.svn/text-base/comments_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,57 @@ +# redMine - project management software +# Copyright (C) 2006-2007 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. + +require File.dirname(__FILE__) + '/../test_helper' + +class CommentsControllerTest < ActionController::TestCase + fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments + + def setup + User.current = nil + end + + def test_add_comment + @request.session[:user_id] = 2 + post :create, :id => 1, :comment => { :comments => 'This is a test comment' } + assert_redirected_to 'news/1' + + comment = News.find(1).comments.find(:first, :order => 'created_on DESC') + assert_not_nil comment + assert_equal 'This is a test comment', comment.comments + assert_equal User.find(2), comment.author + end + + def test_empty_comment_should_not_be_added + @request.session[:user_id] = 2 + assert_no_difference 'Comment.count' do + post :create, :id => 1, :comment => { :comments => '' } + assert_response :redirect + assert_redirected_to 'news/1' + end + end + + def test_destroy_comment + comments_count = News.find(1).comments.size + @request.session[:user_id] = 2 + delete :destroy, :id => 1, :comment_id => 2 + assert_redirected_to 'news/1' + assert_nil Comment.find_by_id(2) + assert_equal comments_count - 1, News.find(1).comments.size + end + + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/context_menus_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -12,7 +12,7 @@ :attributes => { :href => '/issues/1/edit', :class => 'icon-edit' } assert_tag :tag => 'a', :content => 'Closed', - :attributes => { :href => '/issues/1/edit?issue%5Bstatus_id%5D=5', + :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bstatus_id%5D=5', :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8', @@ -59,6 +59,9 @@ assert_tag :tag => 'a', :content => 'Edit', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2', :class => 'icon-edit' } + assert_tag :tag => 'a', :content => 'Closed', + :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bstatus_id%5D=5', + :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bpriority_id%5D=8', :class => '' } diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/files_controller_test.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/.svn/text-base/files_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,67 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class FilesControllerTest < ActionController::TestCase + fixtures :all + + def setup + @controller = FilesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @request.session[:user_id] = nil + Setting.default_language = 'en' + end + + def test_index + get :index, :project_id => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:containers) + + # file attached to the project + assert_tag :a, :content => 'project_file.zip', + :attributes => { :href => '/attachments/download/8/project_file.zip' } + + # file attached to a project's version + assert_tag :a, :content => 'version_file.zip', + :attributes => { :href => '/attachments/download/9/version_file.zip' } + end + + def test_create_file + set_tmp_attachments_directory + @request.session[:user_id] = 2 + Setting.notified_events = ['file_added'] + ActionMailer::Base.deliveries.clear + + assert_difference 'Attachment.count' do + post :create, :project_id => 1, :version_id => '', + :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} + assert_response :redirect + end + assert_redirected_to 'projects/ecookbook/files' + a = Attachment.find(:first, :order => 'created_on DESC') + assert_equal 'testfile.txt', a.filename + assert_equal Project.find(1), a.container + + mail = ActionMailer::Base.deliveries.last + assert_kind_of TMail::Mail, mail + assert_equal "[eCookbook] New file", mail.subject + assert mail.body.include?('testfile.txt') + end + + def test_create_version_file + set_tmp_attachments_directory + @request.session[:user_id] = 2 + Setting.notified_events = ['file_added'] + + assert_difference 'Attachment.count' do + post :create, :project_id => 1, :version_id => '2', + :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} + assert_response :redirect + end + assert_redirected_to 'projects/ecookbook/files' + a = Attachment.find(:first, :order => 'created_on DESC') + assert_equal 'testfile.txt', a.filename + assert_equal Version.find(2), a.container + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/gantts_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/gantts_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/gantts_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -5,20 +5,20 @@ context "#gantt" do should "work" do + i2 = Issue.find(2) + i2.update_attribute(:due_date, 1.month.from_now) + get :show, :project_id => 1 assert_response :success assert_template 'show.html.erb' assert_not_nil assigns(:gantt) - events = assigns(:gantt).events - assert_not_nil events # Issue with start and due dates i = Issue.find(1) assert_not_nil i.due_date - assert events.include?(Issue.find(1)) - # Issue with without due date but targeted to a version with date + assert_select "div a.issue", /##{i.id}/ + # Issue with on a targeted version should not be in the events but loaded in the html i = Issue.find(2) - assert_nil i.due_date - assert events.include?(i) + assert_select "div a.issue", /##{i.id}/ end should "work cross project" do @@ -26,8 +26,8 @@ assert_response :success assert_template 'show.html.erb' assert_not_nil assigns(:gantt) - events = assigns(:gantt).events - assert_not_nil events + assert_not_nil assigns(:gantt).query + assert_nil assigns(:gantt).project end should "export to pdf" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/issues_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/issues_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/issues_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -405,7 +405,8 @@ :subject => 'This is first issue', :priority_id => 5}, :continue => '' - assert_redirected_to :controller => 'issues', :action => 'new', :issue => {:tracker_id => 3} + assert_redirected_to :controller => 'issues', :action => 'new', :project_id => 'ecookbook', + :issue => {:tracker_id => 3} end def test_post_create_without_custom_fields_param diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/news_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/news_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/news_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -65,12 +65,12 @@ assert_template 'new' end - def test_post_new + def test_post_create ActionMailer::Base.deliveries.clear Setting.notified_events << 'news_added' @request.session[:user_id] = 2 - post :new, :project_id => 1, :news => { :title => 'NewsControllerTest', + post :create, :project_id => 1, :news => { :title => 'NewsControllerTest', :description => 'This is the description', :summary => '' } assert_redirected_to 'projects/ecookbook/news' @@ -90,17 +90,17 @@ assert_template 'edit' end - def test_post_edit + def test_put_update @request.session[:user_id] = 2 - post :edit, :id => 1, :news => { :description => 'Description changed by test_post_edit' } + put :update, :id => 1, :news => { :description => 'Description changed by test_post_edit' } assert_redirected_to 'news/1' news = News.find(1) assert_equal 'Description changed by test_post_edit', news.description end - def test_post_new_with_validation_failure + def test_post_create_with_validation_failure @request.session[:user_id] = 2 - post :new, :project_id => 1, :news => { :title => '', + post :create, :project_id => 1, :news => { :title => '', :description => 'This is the description', :summary => '' } assert_response :success @@ -111,35 +111,6 @@ :content => /1 error/ end - def test_add_comment - @request.session[:user_id] = 2 - post :add_comment, :id => 1, :comment => { :comments => 'This is a NewsControllerTest comment' } - assert_redirected_to 'news/1' - - comment = News.find(1).comments.find(:first, :order => 'created_on DESC') - assert_not_nil comment - assert_equal 'This is a NewsControllerTest comment', comment.comments - assert_equal User.find(2), comment.author - end - - def test_empty_comment_should_not_be_added - @request.session[:user_id] = 2 - assert_no_difference 'Comment.count' do - post :add_comment, :id => 1, :comment => { :comments => '' } - assert_response :success - assert_template 'show' - end - end - - def test_destroy_comment - comments_count = News.find(1).comments.size - @request.session[:user_id] = 2 - post :destroy_comment, :id => 1, :comment_id => 2 - assert_redirected_to 'news/1' - assert_nil Comment.find_by_id(2) - assert_equal comments_count - 1, News.find(1).comments.size - end - def test_destroy @request.session[:user_id] = 2 post :destroy, :id => 1 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/project_enumerations_controller_test.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/.svn/text-base/project_enumerations_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,189 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ProjectEnumerationsControllerTest < ActionController::TestCase + fixtures :all + + def setup + @request.session[:user_id] = nil + Setting.default_language = 'en' + end + + def test_update_to_override_system_activities + @request.session[:user_id] = 2 # manager + billable_field = TimeEntryActivityCustomField.find_by_name("Billable") + + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design, De-activate + "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"}, # Development, Change custom value + "14"=>{"parent_id"=>"14", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"}, # Inactive Activity, Activate with custom value + "11"=>{"parent_id"=>"11", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"} # QA, no changes + } + + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + # Created project specific activities... + project = Project.find('ecookbook') + + # ... Design + design = project.time_entry_activities.find_by_name("Design") + assert design, "Project activity not found" + + assert_equal 9, design.parent_id # Relate to the system activity + assert_not_equal design.parent.id, design.id # Different records + assert_equal design.parent.name, design.name # Same name + assert !design.active? + + # ... Development + development = project.time_entry_activities.find_by_name("Development") + assert development, "Project activity not found" + + assert_equal 10, development.parent_id # Relate to the system activity + assert_not_equal development.parent.id, development.id # Different records + assert_equal development.parent.name, development.name # Same name + assert development.active? + assert_equal "0", development.custom_value_for(billable_field).value + + # ... Inactive Activity + previously_inactive = project.time_entry_activities.find_by_name("Inactive Activity") + assert previously_inactive, "Project activity not found" + + assert_equal 14, previously_inactive.parent_id # Relate to the system activity + assert_not_equal previously_inactive.parent.id, previously_inactive.id # Different records + assert_equal previously_inactive.parent.name, previously_inactive.name # Same name + assert previously_inactive.active? + assert_equal "1", previously_inactive.custom_value_for(billable_field).value + + # ... QA + assert_equal nil, project.time_entry_activities.find_by_name("QA"), "Custom QA activity created when it wasn't modified" + end + + def test_update_will_update_project_specific_activities + @request.session[:user_id] = 2 # manager + + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific', + :parent => TimeEntryActivity.find(:first), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + project_activity_two = TimeEntryActivity.new({ + :name => 'Project Specific Two', + :parent => TimeEntryActivity.find(:last), + :project => Project.find(1), + :active => true + }) + assert project_activity_two.save + + + put :update, :project_id => 1, :enumerations => { + project_activity.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # De-activate + project_activity_two.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"} # De-activate + } + + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + # Created project specific activities... + project = Project.find('ecookbook') + assert_equal 2, project.time_entry_activities.count + + activity_one = project.time_entry_activities.find_by_name(project_activity.name) + assert activity_one, "Project activity not found" + assert_equal project_activity.id, activity_one.id + assert !activity_one.active? + + activity_two = project.time_entry_activities.find_by_name(project_activity_two.name) + assert activity_two, "Project activity not found" + assert_equal project_activity_two.id, activity_two.id + assert !activity_two.active? + end + + def test_update_when_creating_new_activities_will_convert_existing_data + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size + + @request.session[:user_id] = 2 # manager + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"} # Design, De-activate + } + assert_response :redirect + + # No more TimeEntries using the system activity + assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries still assigned to system activities" + # All TimeEntries using project activity + project_specific_activity = TimeEntryActivity.find_by_parent_id_and_project_id(9, 1) + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_specific_activity.id, 1).size, "No Time Entries assigned to the project activity" + end + + def test_update_when_creating_new_activities_will_not_convert_existing_data_if_an_exception_is_raised + # TODO: Need to cause an exception on create but these tests + # aren't setup for mocking. Just create a record now so the + # second one is a dupicate + parent = TimeEntryActivity.find(9) + TimeEntryActivity.create!({:name => parent.name, :project_id => 1, :position => parent.position, :active => true}) + TimeEntry.create!({:project_id => 1, :hours => 1.0, :user => User.find(1), :issue_id => 3, :activity_id => 10, :spent_on => '2009-01-01'}) + + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size + assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size + + @request.session[:user_id] = 2 # manager + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design + "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"} # Development, Change custom value + } + assert_response :redirect + + # TimeEntries shouldn't have been reassigned on the failed record + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries are not assigned to system activities" + # TimeEntries shouldn't have been reassigned on the saved record either + assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size, "Time Entries are not assigned to system activities" + end + + def test_destroy + @request.session[:user_id] = 2 # manager + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific', + :parent => TimeEntryActivity.find(:first), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + project_activity_two = TimeEntryActivity.new({ + :name => 'Project Specific Two', + :parent => TimeEntryActivity.find(:last), + :project => Project.find(1), + :active => true + }) + assert project_activity_two.save + + delete :destroy, :project_id => 1 + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + assert_nil TimeEntryActivity.find_by_id(project_activity.id) + assert_nil TimeEntryActivity.find_by_id(project_activity_two.id) + end + + def test_destroy_should_reassign_time_entries_back_to_the_system_activity + @request.session[:user_id] = 2 # manager + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific Design', + :parent => TimeEntryActivity.find(9), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9]) + assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size + + delete :destroy, :project_id => 1 + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + assert_nil TimeEntryActivity.find_by_id(project_activity.id) + assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size, "TimeEntries still assigned to project specific activity" + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "TimeEntries still assigned to project specific activity" + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/projects_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/projects_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/projects_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -87,20 +87,64 @@ end end - context "#add" do + context "#new" do context "by admin user" do setup do @request.session[:user_id] = 1 end should "accept get" do - get :add + get :new assert_response :success - assert_template 'add' + assert_template 'new' + end + + end + + context "by non-admin user with add_project permission" do + setup do + Role.non_member.add_permission! :add_project + @request.session[:user_id] = 9 + end + + should "accept get" do + get :new + assert_response :success + assert_template 'new' + assert_no_tag :select, :attributes => {:name => 'project[parent_id]'} + end + end + + context "by non-admin user with add_subprojects permission" do + setup do + Role.find(1).remove_permission! :add_project + Role.find(1).add_permission! :add_subprojects + @request.session[:user_id] = 2 end - should "accept post" do - post :add, :project => { :name => "blog", + should "accept get" do + get :new, :parent_id => 'ecookbook' + assert_response :success + assert_template 'new' + # parent project selected + assert_tag :select, :attributes => {:name => 'project[parent_id]'}, + :child => {:tag => 'option', :attributes => {:value => '1', :selected => 'selected'}} + # no empty value + assert_no_tag :select, :attributes => {:name => 'project[parent_id]'}, + :child => {:tag => 'option', :attributes => {:value => ''}} + end + end + + end + + context "POST :create" do + context "by admin user" do + setup do + @request.session[:user_id] = 1 + end + + should "create a new project" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -115,8 +159,8 @@ assert_nil project.parent end - should "accept post with parent" do - post :add, :project => { :name => "blog", + should "create a new subproject" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -137,15 +181,8 @@ @request.session[:user_id] = 9 end - should "accept get" do - get :add - assert_response :success - assert_template 'add' - assert_no_tag :select, :attributes => {:name => 'project[parent_id]'} - end - - should "accept post" do - post :add, :project => { :name => "blog", + should "accept create a Project" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -166,7 +203,7 @@ should "fail with parent_id" do assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -188,20 +225,8 @@ @request.session[:user_id] = 2 end - should "accept get" do - get :add, :parent_id => 'ecookbook' - assert_response :success - assert_template 'add' - # parent project selected - assert_tag :select, :attributes => {:name => 'project[parent_id]'}, - :child => {:tag => 'option', :attributes => {:value => '1', :selected => 'selected'}} - # no empty value - assert_no_tag :select, :attributes => {:name => 'project[parent_id]'}, - :child => {:tag => 'option', :attributes => {:value => ''}} - end - - should "accept post with parent_id" do - post :add, :project => { :name => "blog", + should "create a project with a parent_id" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -214,7 +239,7 @@ should "fail without parent_id" do assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -230,7 +255,7 @@ should "fail with unauthorized parent_id" do assert !User.find(2).member_of?(Project.find(6)) assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -293,9 +318,9 @@ assert_template 'settings' end - def test_edit + def test_update @request.session[:user_id] = 2 # manager - post :edit, :id => 1, :project => {:name => 'Test changed name', + post :update, :id => 1, :project => {:name => 'Test changed name', :issue_custom_field_ids => ['']} assert_redirected_to 'projects/ecookbook/settings' project = Project.find(1) @@ -317,170 +342,6 @@ assert_nil Project.find_by_id(1) end - def test_add_file - set_tmp_attachments_directory - @request.session[:user_id] = 2 - Setting.notified_events = ['file_added'] - ActionMailer::Base.deliveries.clear - - assert_difference 'Attachment.count' do - post :add_file, :id => 1, :version_id => '', - :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} - end - assert_redirected_to 'projects/ecookbook/files' - a = Attachment.find(:first, :order => 'created_on DESC') - assert_equal 'testfile.txt', a.filename - assert_equal Project.find(1), a.container - - mail = ActionMailer::Base.deliveries.last - assert_kind_of TMail::Mail, mail - assert_equal "[eCookbook] New file", mail.subject - assert mail.body.include?('testfile.txt') - end - - def test_add_version_file - set_tmp_attachments_directory - @request.session[:user_id] = 2 - Setting.notified_events = ['file_added'] - - assert_difference 'Attachment.count' do - post :add_file, :id => 1, :version_id => '2', - :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} - end - assert_redirected_to 'projects/ecookbook/files' - a = Attachment.find(:first, :order => 'created_on DESC') - assert_equal 'testfile.txt', a.filename - assert_equal Version.find(2), a.container - end - - def test_list_files - get :list_files, :id => 1 - assert_response :success - assert_template 'list_files' - assert_not_nil assigns(:containers) - - # file attached to the project - assert_tag :a, :content => 'project_file.zip', - :attributes => { :href => '/attachments/download/8/project_file.zip' } - - # file attached to a project's version - assert_tag :a, :content => 'version_file.zip', - :attributes => { :href => '/attachments/download/9/version_file.zip' } - end - - def test_roadmap - get :roadmap, :id => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - # Version with no date set appears - assert assigns(:versions).include?(Version.find(3)) - # Completed version doesn't appear - assert !assigns(:versions).include?(Version.find(1)) - end - - def test_roadmap_with_completed_versions - get :roadmap, :id => 1, :completed => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - # Version with no date set appears - assert assigns(:versions).include?(Version.find(3)) - # Completed version appears - assert assigns(:versions).include?(Version.find(1)) - end - - def test_roadmap_showing_subprojects_versions - @subproject_version = Version.generate!(:project => Project.find(3)) - get :roadmap, :id => 1, :with_subprojects => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - - assert assigns(:versions).include?(Version.find(4)), "Shared version not found" - assert assigns(:versions).include?(@subproject_version), "Subproject version not found" - end - def test_project_activity - get :activity, :id => 1, :with_subprojects => 0 - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{2.days.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue-edit/ }, - :child => { :tag => "a", - :content => /(#{IssueStatus.find(2).name})/, - } - } - } - end - - def test_previous_project_activity - get :activity, :id => 1, :from => 3.days.ago.to_date - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{3.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(1).subject}/, - } - } - } - end - - def test_global_activity - get :activity - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{5.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(5).subject}/, - } - } - } - end - - def test_user_activity - get :activity, :user_id => 2 - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{3.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(1).subject}/, - } - } - } - end - - def test_activity_atom_feed - get :activity, :format => 'atom' - assert_response :success - assert_template 'common/feed.atom.rxml' - assert_tag :tag => 'entry', :child => { - :tag => 'link', - :attributes => {:href => 'http://test.host/issues/11'}} - end - def test_archive @request.session[:user_id] = 1 # admin post :archive, :id => 1 @@ -545,184 +406,6 @@ assert_template 'show' end - def test_reset_activities - @request.session[:user_id] = 2 # manager - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific', - :parent => TimeEntryActivity.find(:first), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - project_activity_two = TimeEntryActivity.new({ - :name => 'Project Specific Two', - :parent => TimeEntryActivity.find(:last), - :project => Project.find(1), - :active => true - }) - assert project_activity_two.save - - delete :reset_activities, :id => 1 - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - assert_nil TimeEntryActivity.find_by_id(project_activity.id) - assert_nil TimeEntryActivity.find_by_id(project_activity_two.id) - end - - def test_reset_activities_should_reassign_time_entries_back_to_the_system_activity - @request.session[:user_id] = 2 # manager - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific Design', - :parent => TimeEntryActivity.find(9), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9]) - assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size - - delete :reset_activities, :id => 1 - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - assert_nil TimeEntryActivity.find_by_id(project_activity.id) - assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size, "TimeEntries still assigned to project specific activity" - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "TimeEntries still assigned to project specific activity" - end - - def test_save_activities_to_override_system_activities - @request.session[:user_id] = 2 # manager - billable_field = TimeEntryActivityCustomField.find_by_name("Billable") - - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design, De-activate - "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"}, # Development, Change custom value - "14"=>{"parent_id"=>"14", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"}, # Inactive Activity, Activate with custom value - "11"=>{"parent_id"=>"11", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"} # QA, no changes - } - - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - # Created project specific activities... - project = Project.find('ecookbook') - - # ... Design - design = project.time_entry_activities.find_by_name("Design") - assert design, "Project activity not found" - - assert_equal 9, design.parent_id # Relate to the system activity - assert_not_equal design.parent.id, design.id # Different records - assert_equal design.parent.name, design.name # Same name - assert !design.active? - - # ... Development - development = project.time_entry_activities.find_by_name("Development") - assert development, "Project activity not found" - - assert_equal 10, development.parent_id # Relate to the system activity - assert_not_equal development.parent.id, development.id # Different records - assert_equal development.parent.name, development.name # Same name - assert development.active? - assert_equal "0", development.custom_value_for(billable_field).value - - # ... Inactive Activity - previously_inactive = project.time_entry_activities.find_by_name("Inactive Activity") - assert previously_inactive, "Project activity not found" - - assert_equal 14, previously_inactive.parent_id # Relate to the system activity - assert_not_equal previously_inactive.parent.id, previously_inactive.id # Different records - assert_equal previously_inactive.parent.name, previously_inactive.name # Same name - assert previously_inactive.active? - assert_equal "1", previously_inactive.custom_value_for(billable_field).value - - # ... QA - assert_equal nil, project.time_entry_activities.find_by_name("QA"), "Custom QA activity created when it wasn't modified" - end - - def test_save_activities_will_update_project_specific_activities - @request.session[:user_id] = 2 # manager - - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific', - :parent => TimeEntryActivity.find(:first), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - project_activity_two = TimeEntryActivity.new({ - :name => 'Project Specific Two', - :parent => TimeEntryActivity.find(:last), - :project => Project.find(1), - :active => true - }) - assert project_activity_two.save - - - post :save_activities, :id => 1, :enumerations => { - project_activity.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # De-activate - project_activity_two.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"} # De-activate - } - - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - # Created project specific activities... - project = Project.find('ecookbook') - assert_equal 2, project.time_entry_activities.count - - activity_one = project.time_entry_activities.find_by_name(project_activity.name) - assert activity_one, "Project activity not found" - assert_equal project_activity.id, activity_one.id - assert !activity_one.active? - - activity_two = project.time_entry_activities.find_by_name(project_activity_two.name) - assert activity_two, "Project activity not found" - assert_equal project_activity_two.id, activity_two.id - assert !activity_two.active? - end - - def test_save_activities_when_creating_new_activities_will_convert_existing_data - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size - - @request.session[:user_id] = 2 # manager - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"} # Design, De-activate - } - assert_response :redirect - - # No more TimeEntries using the system activity - assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries still assigned to system activities" - # All TimeEntries using project activity - project_specific_activity = TimeEntryActivity.find_by_parent_id_and_project_id(9, 1) - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_specific_activity.id, 1).size, "No Time Entries assigned to the project activity" - end - - def test_save_activities_when_creating_new_activities_will_not_convert_existing_data_if_an_exception_is_raised - # TODO: Need to cause an exception on create but these tests - # aren't setup for mocking. Just create a record now so the - # second one is a dupicate - parent = TimeEntryActivity.find(9) - TimeEntryActivity.create!({:name => parent.name, :project_id => 1, :position => parent.position, :active => true}) - TimeEntry.create!({:project_id => 1, :hours => 1.0, :user => User.find(1), :issue_id => 3, :activity_id => 10, :spent_on => '2009-01-01'}) - - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size - assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size - - @request.session[:user_id] = 2 # manager - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design - "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"} # Development, Change custom value - } - assert_response :redirect - - # TimeEntries shouldn't have been reassigned on the failed record - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries are not assigned to system activities" - # TimeEntries shouldn't have been reassigned on the saved record either - assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size, "Time Entries are not assigned to system activities" - end - # A hook that is manually registered later class ProjectBasedTemplate < Redmine::Hook::ViewListener def view_layouts_base_html_head(context) diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/timelog_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/timelog_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/timelog_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -283,7 +283,7 @@ assert_not_nil assigns(:total_hours) assert_equal "162.90", "%.2f" % assigns(:total_hours) # display all time by default - assert_equal '2007-03-11'.to_date, assigns(:from) + assert_equal '2007-03-12'.to_date, assigns(:from) assert_equal '2007-04-22'.to_date, assigns(:to) end @@ -325,8 +325,8 @@ assert_equal 2, assigns(:entries).size assert_not_nil assigns(:total_hours) assert_equal 154.25, assigns(:total_hours) - # display all time by default - assert_equal '2007-03-11'.to_date, assigns(:from) + # display all time based on what's been logged + assert_equal '2007-03-12'.to_date, assigns(:from) assert_equal '2007-04-22'.to_date, assigns(:to) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/users_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/users_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/users_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,18 @@ assert_equal [u.mail], mail.bcc assert mail.body.include?('newpass') end + + test "POST :edit with a password change to an AuthSource user switching to Internal authentication" do + # Configure as auth source + u = User.find(2) + u.auth_source = AuthSource.find(1) + u.save! + + post :edit, :id => u.id, :user => {:auth_source_id => ''}, :password => 'newpass', :password_confirmation => 'newpass' + + assert_equal nil, u.reload.auth_source + assert_equal User.hash_password('newpass'), u.reload.hashed_password + end def test_edit_membership post :edit_membership, :id => 2, :membership_id => 1, diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/.svn/text-base/versions_controller_test.rb.svn-base --- a/test/functional/.svn/text-base/versions_controller_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/.svn/text-base/versions_controller_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -31,6 +31,41 @@ User.current = nil end + def test_index + get :index, :project_id => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + # Version with no date set appears + assert assigns(:versions).include?(Version.find(3)) + # Completed version doesn't appear + assert !assigns(:versions).include?(Version.find(1)) + # Context menu on issues + assert_select "script", :text => Regexp.new(Regexp.escape("new ContextMenu('/issues/context_menu')")) + end + + def test_index_with_completed_versions + get :index, :project_id => 1, :completed => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + # Version with no date set appears + assert assigns(:versions).include?(Version.find(3)) + # Completed version appears + assert assigns(:versions).include?(Version.find(1)) + end + + def test_index_showing_subprojects_versions + @subproject_version = Version.generate!(:project => Project.find(3)) + get :index, :project_id => 1, :with_subprojects => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + + assert assigns(:versions).include?(Version.find(4)), "Shared version not found" + assert assigns(:versions).include?(@subproject_version), "Subproject version not found" + end + def test_show get :show, :id => 2 assert_response :success @@ -40,10 +75,10 @@ assert_tag :tag => 'h2', :content => /1.0/ end - def test_new + def test_create @request.session[:user_id] = 2 # manager assert_difference 'Version.count' do - post :new, :project_id => '1', :version => {:name => 'test_add_version'} + post :create, :project_id => '1', :version => {:name => 'test_add_version'} end assert_redirected_to '/projects/ecookbook/settings/versions' version = Version.find_by_name('test_add_version') @@ -51,10 +86,10 @@ assert_equal 1, version.project_id end - def test_new_from_issue_form + def test_create_from_issue_form @request.session[:user_id] = 2 # manager assert_difference 'Version.count' do - xhr :post, :new, :project_id => '1', :version => {:name => 'test_add_version_from_issue_form'} + xhr :post, :create, :project_id => '1', :version => {:name => 'test_add_version_from_issue_form'} end assert_response :success assert_select_rjs :replace, 'issue_fixed_version_id' @@ -73,14 +108,14 @@ def test_close_completed Version.update_all("status = 'open'") @request.session[:user_id] = 2 - post :close_completed, :project_id => 'ecookbook' + put :close_completed, :project_id => 'ecookbook' assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' assert_not_nil Version.find_by_status('closed') end - def test_post_edit + def test_post_update @request.session[:user_id] = 2 - post :edit, :id => 2, + put :update, :id => 2, :version => { :name => 'New version name', :effective_date => Date.today.strftime("%Y-%m-%d")} assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' @@ -91,7 +126,7 @@ def test_destroy @request.session[:user_id] = 2 - post :destroy, :id => 3 + delete :destroy, :id => 3 assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' assert_nil Version.find_by_id(3) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/activities_controller_test.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/activities_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,87 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ActivitiesControllerTest < ActionController::TestCase + fixtures :all + + def test_project_index + get :index, :id => 1, :with_subprojects => 0 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{2.days.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue-edit/ }, + :child => { :tag => "a", + :content => /(#{IssueStatus.find(2).name})/, + } + } + } + end + + def test_previous_project_index + get :index, :id => 1, :from => 3.days.ago.to_date + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{3.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(1).subject}/, + } + } + } + end + + def test_global_index + get :index + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(5).subject}/, + } + } + } + end + + def test_user_index + get :index, :user_id => 2 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{3.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(1).subject}/, + } + } + } + end + + def test_index_atom_feed + get :index, :format => 'atom' + assert_response :success + assert_template 'common/feed.atom.rxml' + assert_tag :tag => 'entry', :child => { + :tag => 'link', + :attributes => {:href => 'http://test.host/issues/11'}} + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/comments_controller_test.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/comments_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,57 @@ +# redMine - project management software +# Copyright (C) 2006-2007 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. + +require File.dirname(__FILE__) + '/../test_helper' + +class CommentsControllerTest < ActionController::TestCase + fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments + + def setup + User.current = nil + end + + def test_add_comment + @request.session[:user_id] = 2 + post :create, :id => 1, :comment => { :comments => 'This is a test comment' } + assert_redirected_to 'news/1' + + comment = News.find(1).comments.find(:first, :order => 'created_on DESC') + assert_not_nil comment + assert_equal 'This is a test comment', comment.comments + assert_equal User.find(2), comment.author + end + + def test_empty_comment_should_not_be_added + @request.session[:user_id] = 2 + assert_no_difference 'Comment.count' do + post :create, :id => 1, :comment => { :comments => '' } + assert_response :redirect + assert_redirected_to 'news/1' + end + end + + def test_destroy_comment + comments_count = News.find(1).comments.size + @request.session[:user_id] = 2 + delete :destroy, :id => 1, :comment_id => 2 + assert_redirected_to 'news/1' + assert_nil Comment.find_by_id(2) + assert_equal comments_count - 1, News.find(1).comments.size + end + + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/context_menus_controller_test.rb --- a/test/functional/context_menus_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/context_menus_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -12,7 +12,7 @@ :attributes => { :href => '/issues/1/edit', :class => 'icon-edit' } assert_tag :tag => 'a', :content => 'Closed', - :attributes => { :href => '/issues/1/edit?issue%5Bstatus_id%5D=5', + :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bstatus_id%5D=5', :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8', @@ -59,6 +59,9 @@ assert_tag :tag => 'a', :content => 'Edit', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2', :class => 'icon-edit' } + assert_tag :tag => 'a', :content => 'Closed', + :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bstatus_id%5D=5', + :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bpriority_id%5D=8', :class => '' } diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/files_controller_test.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/files_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,67 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class FilesControllerTest < ActionController::TestCase + fixtures :all + + def setup + @controller = FilesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @request.session[:user_id] = nil + Setting.default_language = 'en' + end + + def test_index + get :index, :project_id => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:containers) + + # file attached to the project + assert_tag :a, :content => 'project_file.zip', + :attributes => { :href => '/attachments/download/8/project_file.zip' } + + # file attached to a project's version + assert_tag :a, :content => 'version_file.zip', + :attributes => { :href => '/attachments/download/9/version_file.zip' } + end + + def test_create_file + set_tmp_attachments_directory + @request.session[:user_id] = 2 + Setting.notified_events = ['file_added'] + ActionMailer::Base.deliveries.clear + + assert_difference 'Attachment.count' do + post :create, :project_id => 1, :version_id => '', + :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} + assert_response :redirect + end + assert_redirected_to 'projects/ecookbook/files' + a = Attachment.find(:first, :order => 'created_on DESC') + assert_equal 'testfile.txt', a.filename + assert_equal Project.find(1), a.container + + mail = ActionMailer::Base.deliveries.last + assert_kind_of TMail::Mail, mail + assert_equal "[eCookbook] New file", mail.subject + assert mail.body.include?('testfile.txt') + end + + def test_create_version_file + set_tmp_attachments_directory + @request.session[:user_id] = 2 + Setting.notified_events = ['file_added'] + + assert_difference 'Attachment.count' do + post :create, :project_id => 1, :version_id => '2', + :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} + assert_response :redirect + end + assert_redirected_to 'projects/ecookbook/files' + a = Attachment.find(:first, :order => 'created_on DESC') + assert_equal 'testfile.txt', a.filename + assert_equal Version.find(2), a.container + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/gantts_controller_test.rb --- a/test/functional/gantts_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/gantts_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -5,20 +5,20 @@ context "#gantt" do should "work" do + i2 = Issue.find(2) + i2.update_attribute(:due_date, 1.month.from_now) + get :show, :project_id => 1 assert_response :success assert_template 'show.html.erb' assert_not_nil assigns(:gantt) - events = assigns(:gantt).events - assert_not_nil events # Issue with start and due dates i = Issue.find(1) assert_not_nil i.due_date - assert events.include?(Issue.find(1)) - # Issue with without due date but targeted to a version with date + assert_select "div a.issue", /##{i.id}/ + # Issue with on a targeted version should not be in the events but loaded in the html i = Issue.find(2) - assert_nil i.due_date - assert events.include?(i) + assert_select "div a.issue", /##{i.id}/ end should "work cross project" do @@ -26,8 +26,8 @@ assert_response :success assert_template 'show.html.erb' assert_not_nil assigns(:gantt) - events = assigns(:gantt).events - assert_not_nil events + assert_not_nil assigns(:gantt).query + assert_nil assigns(:gantt).project end should "export to pdf" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/issues_controller_test.rb --- a/test/functional/issues_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/issues_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -405,7 +405,8 @@ :subject => 'This is first issue', :priority_id => 5}, :continue => '' - assert_redirected_to :controller => 'issues', :action => 'new', :issue => {:tracker_id => 3} + assert_redirected_to :controller => 'issues', :action => 'new', :project_id => 'ecookbook', + :issue => {:tracker_id => 3} end def test_post_create_without_custom_fields_param diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/news_controller_test.rb --- a/test/functional/news_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/news_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -65,12 +65,12 @@ assert_template 'new' end - def test_post_new + def test_post_create ActionMailer::Base.deliveries.clear Setting.notified_events << 'news_added' @request.session[:user_id] = 2 - post :new, :project_id => 1, :news => { :title => 'NewsControllerTest', + post :create, :project_id => 1, :news => { :title => 'NewsControllerTest', :description => 'This is the description', :summary => '' } assert_redirected_to 'projects/ecookbook/news' @@ -90,17 +90,17 @@ assert_template 'edit' end - def test_post_edit + def test_put_update @request.session[:user_id] = 2 - post :edit, :id => 1, :news => { :description => 'Description changed by test_post_edit' } + put :update, :id => 1, :news => { :description => 'Description changed by test_post_edit' } assert_redirected_to 'news/1' news = News.find(1) assert_equal 'Description changed by test_post_edit', news.description end - def test_post_new_with_validation_failure + def test_post_create_with_validation_failure @request.session[:user_id] = 2 - post :new, :project_id => 1, :news => { :title => '', + post :create, :project_id => 1, :news => { :title => '', :description => 'This is the description', :summary => '' } assert_response :success @@ -111,35 +111,6 @@ :content => /1 error/ end - def test_add_comment - @request.session[:user_id] = 2 - post :add_comment, :id => 1, :comment => { :comments => 'This is a NewsControllerTest comment' } - assert_redirected_to 'news/1' - - comment = News.find(1).comments.find(:first, :order => 'created_on DESC') - assert_not_nil comment - assert_equal 'This is a NewsControllerTest comment', comment.comments - assert_equal User.find(2), comment.author - end - - def test_empty_comment_should_not_be_added - @request.session[:user_id] = 2 - assert_no_difference 'Comment.count' do - post :add_comment, :id => 1, :comment => { :comments => '' } - assert_response :success - assert_template 'show' - end - end - - def test_destroy_comment - comments_count = News.find(1).comments.size - @request.session[:user_id] = 2 - post :destroy_comment, :id => 1, :comment_id => 2 - assert_redirected_to 'news/1' - assert_nil Comment.find_by_id(2) - assert_equal comments_count - 1, News.find(1).comments.size - end - def test_destroy @request.session[:user_id] = 2 post :destroy, :id => 1 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/project_enumerations_controller_test.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/functional/project_enumerations_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,189 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ProjectEnumerationsControllerTest < ActionController::TestCase + fixtures :all + + def setup + @request.session[:user_id] = nil + Setting.default_language = 'en' + end + + def test_update_to_override_system_activities + @request.session[:user_id] = 2 # manager + billable_field = TimeEntryActivityCustomField.find_by_name("Billable") + + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design, De-activate + "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"}, # Development, Change custom value + "14"=>{"parent_id"=>"14", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"}, # Inactive Activity, Activate with custom value + "11"=>{"parent_id"=>"11", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"} # QA, no changes + } + + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + # Created project specific activities... + project = Project.find('ecookbook') + + # ... Design + design = project.time_entry_activities.find_by_name("Design") + assert design, "Project activity not found" + + assert_equal 9, design.parent_id # Relate to the system activity + assert_not_equal design.parent.id, design.id # Different records + assert_equal design.parent.name, design.name # Same name + assert !design.active? + + # ... Development + development = project.time_entry_activities.find_by_name("Development") + assert development, "Project activity not found" + + assert_equal 10, development.parent_id # Relate to the system activity + assert_not_equal development.parent.id, development.id # Different records + assert_equal development.parent.name, development.name # Same name + assert development.active? + assert_equal "0", development.custom_value_for(billable_field).value + + # ... Inactive Activity + previously_inactive = project.time_entry_activities.find_by_name("Inactive Activity") + assert previously_inactive, "Project activity not found" + + assert_equal 14, previously_inactive.parent_id # Relate to the system activity + assert_not_equal previously_inactive.parent.id, previously_inactive.id # Different records + assert_equal previously_inactive.parent.name, previously_inactive.name # Same name + assert previously_inactive.active? + assert_equal "1", previously_inactive.custom_value_for(billable_field).value + + # ... QA + assert_equal nil, project.time_entry_activities.find_by_name("QA"), "Custom QA activity created when it wasn't modified" + end + + def test_update_will_update_project_specific_activities + @request.session[:user_id] = 2 # manager + + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific', + :parent => TimeEntryActivity.find(:first), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + project_activity_two = TimeEntryActivity.new({ + :name => 'Project Specific Two', + :parent => TimeEntryActivity.find(:last), + :project => Project.find(1), + :active => true + }) + assert project_activity_two.save + + + put :update, :project_id => 1, :enumerations => { + project_activity.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # De-activate + project_activity_two.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"} # De-activate + } + + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + # Created project specific activities... + project = Project.find('ecookbook') + assert_equal 2, project.time_entry_activities.count + + activity_one = project.time_entry_activities.find_by_name(project_activity.name) + assert activity_one, "Project activity not found" + assert_equal project_activity.id, activity_one.id + assert !activity_one.active? + + activity_two = project.time_entry_activities.find_by_name(project_activity_two.name) + assert activity_two, "Project activity not found" + assert_equal project_activity_two.id, activity_two.id + assert !activity_two.active? + end + + def test_update_when_creating_new_activities_will_convert_existing_data + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size + + @request.session[:user_id] = 2 # manager + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"} # Design, De-activate + } + assert_response :redirect + + # No more TimeEntries using the system activity + assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries still assigned to system activities" + # All TimeEntries using project activity + project_specific_activity = TimeEntryActivity.find_by_parent_id_and_project_id(9, 1) + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_specific_activity.id, 1).size, "No Time Entries assigned to the project activity" + end + + def test_update_when_creating_new_activities_will_not_convert_existing_data_if_an_exception_is_raised + # TODO: Need to cause an exception on create but these tests + # aren't setup for mocking. Just create a record now so the + # second one is a dupicate + parent = TimeEntryActivity.find(9) + TimeEntryActivity.create!({:name => parent.name, :project_id => 1, :position => parent.position, :active => true}) + TimeEntry.create!({:project_id => 1, :hours => 1.0, :user => User.find(1), :issue_id => 3, :activity_id => 10, :spent_on => '2009-01-01'}) + + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size + assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size + + @request.session[:user_id] = 2 # manager + put :update, :project_id => 1, :enumerations => { + "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design + "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"} # Development, Change custom value + } + assert_response :redirect + + # TimeEntries shouldn't have been reassigned on the failed record + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries are not assigned to system activities" + # TimeEntries shouldn't have been reassigned on the saved record either + assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size, "Time Entries are not assigned to system activities" + end + + def test_destroy + @request.session[:user_id] = 2 # manager + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific', + :parent => TimeEntryActivity.find(:first), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + project_activity_two = TimeEntryActivity.new({ + :name => 'Project Specific Two', + :parent => TimeEntryActivity.find(:last), + :project => Project.find(1), + :active => true + }) + assert project_activity_two.save + + delete :destroy, :project_id => 1 + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + assert_nil TimeEntryActivity.find_by_id(project_activity.id) + assert_nil TimeEntryActivity.find_by_id(project_activity_two.id) + end + + def test_destroy_should_reassign_time_entries_back_to_the_system_activity + @request.session[:user_id] = 2 # manager + project_activity = TimeEntryActivity.new({ + :name => 'Project Specific Design', + :parent => TimeEntryActivity.find(9), + :project => Project.find(1), + :active => true + }) + assert project_activity.save + assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9]) + assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size + + delete :destroy, :project_id => 1 + assert_response :redirect + assert_redirected_to 'projects/ecookbook/settings/activities' + + assert_nil TimeEntryActivity.find_by_id(project_activity.id) + assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size, "TimeEntries still assigned to project specific activity" + assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "TimeEntries still assigned to project specific activity" + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/projects_controller_test.rb --- a/test/functional/projects_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/projects_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -87,20 +87,64 @@ end end - context "#add" do + context "#new" do context "by admin user" do setup do @request.session[:user_id] = 1 end should "accept get" do - get :add + get :new assert_response :success - assert_template 'add' + assert_template 'new' + end + + end + + context "by non-admin user with add_project permission" do + setup do + Role.non_member.add_permission! :add_project + @request.session[:user_id] = 9 + end + + should "accept get" do + get :new + assert_response :success + assert_template 'new' + assert_no_tag :select, :attributes => {:name => 'project[parent_id]'} + end + end + + context "by non-admin user with add_subprojects permission" do + setup do + Role.find(1).remove_permission! :add_project + Role.find(1).add_permission! :add_subprojects + @request.session[:user_id] = 2 end - should "accept post" do - post :add, :project => { :name => "blog", + should "accept get" do + get :new, :parent_id => 'ecookbook' + assert_response :success + assert_template 'new' + # parent project selected + assert_tag :select, :attributes => {:name => 'project[parent_id]'}, + :child => {:tag => 'option', :attributes => {:value => '1', :selected => 'selected'}} + # no empty value + assert_no_tag :select, :attributes => {:name => 'project[parent_id]'}, + :child => {:tag => 'option', :attributes => {:value => ''}} + end + end + + end + + context "POST :create" do + context "by admin user" do + setup do + @request.session[:user_id] = 1 + end + + should "create a new project" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -115,8 +159,8 @@ assert_nil project.parent end - should "accept post with parent" do - post :add, :project => { :name => "blog", + should "create a new subproject" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -137,15 +181,8 @@ @request.session[:user_id] = 9 end - should "accept get" do - get :add - assert_response :success - assert_template 'add' - assert_no_tag :select, :attributes => {:name => 'project[parent_id]'} - end - - should "accept post" do - post :add, :project => { :name => "blog", + should "accept create a Project" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -166,7 +203,7 @@ should "fail with parent_id" do assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -188,20 +225,8 @@ @request.session[:user_id] = 2 end - should "accept get" do - get :add, :parent_id => 'ecookbook' - assert_response :success - assert_template 'add' - # parent project selected - assert_tag :select, :attributes => {:name => 'project[parent_id]'}, - :child => {:tag => 'option', :attributes => {:value => '1', :selected => 'selected'}} - # no empty value - assert_no_tag :select, :attributes => {:name => 'project[parent_id]'}, - :child => {:tag => 'option', :attributes => {:value => ''}} - end - - should "accept post with parent_id" do - post :add, :project => { :name => "blog", + should "create a project with a parent_id" do + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -214,7 +239,7 @@ should "fail without parent_id" do assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -230,7 +255,7 @@ should "fail with unauthorized parent_id" do assert !User.find(2).member_of?(Project.find(6)) assert_no_difference 'Project.count' do - post :add, :project => { :name => "blog", + post :create, :project => { :name => "blog", :description => "weblog", :identifier => "blog", :is_public => 1, @@ -293,9 +318,9 @@ assert_template 'settings' end - def test_edit + def test_update @request.session[:user_id] = 2 # manager - post :edit, :id => 1, :project => {:name => 'Test changed name', + post :update, :id => 1, :project => {:name => 'Test changed name', :issue_custom_field_ids => ['']} assert_redirected_to 'projects/ecookbook/settings' project = Project.find(1) @@ -317,170 +342,6 @@ assert_nil Project.find_by_id(1) end - def test_add_file - set_tmp_attachments_directory - @request.session[:user_id] = 2 - Setting.notified_events = ['file_added'] - ActionMailer::Base.deliveries.clear - - assert_difference 'Attachment.count' do - post :add_file, :id => 1, :version_id => '', - :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} - end - assert_redirected_to 'projects/ecookbook/files' - a = Attachment.find(:first, :order => 'created_on DESC') - assert_equal 'testfile.txt', a.filename - assert_equal Project.find(1), a.container - - mail = ActionMailer::Base.deliveries.last - assert_kind_of TMail::Mail, mail - assert_equal "[eCookbook] New file", mail.subject - assert mail.body.include?('testfile.txt') - end - - def test_add_version_file - set_tmp_attachments_directory - @request.session[:user_id] = 2 - Setting.notified_events = ['file_added'] - - assert_difference 'Attachment.count' do - post :add_file, :id => 1, :version_id => '2', - :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} - end - assert_redirected_to 'projects/ecookbook/files' - a = Attachment.find(:first, :order => 'created_on DESC') - assert_equal 'testfile.txt', a.filename - assert_equal Version.find(2), a.container - end - - def test_list_files - get :list_files, :id => 1 - assert_response :success - assert_template 'list_files' - assert_not_nil assigns(:containers) - - # file attached to the project - assert_tag :a, :content => 'project_file.zip', - :attributes => { :href => '/attachments/download/8/project_file.zip' } - - # file attached to a project's version - assert_tag :a, :content => 'version_file.zip', - :attributes => { :href => '/attachments/download/9/version_file.zip' } - end - - def test_roadmap - get :roadmap, :id => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - # Version with no date set appears - assert assigns(:versions).include?(Version.find(3)) - # Completed version doesn't appear - assert !assigns(:versions).include?(Version.find(1)) - end - - def test_roadmap_with_completed_versions - get :roadmap, :id => 1, :completed => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - # Version with no date set appears - assert assigns(:versions).include?(Version.find(3)) - # Completed version appears - assert assigns(:versions).include?(Version.find(1)) - end - - def test_roadmap_showing_subprojects_versions - @subproject_version = Version.generate!(:project => Project.find(3)) - get :roadmap, :id => 1, :with_subprojects => 1 - assert_response :success - assert_template 'roadmap' - assert_not_nil assigns(:versions) - - assert assigns(:versions).include?(Version.find(4)), "Shared version not found" - assert assigns(:versions).include?(@subproject_version), "Subproject version not found" - end - def test_project_activity - get :activity, :id => 1, :with_subprojects => 0 - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{2.days.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue-edit/ }, - :child => { :tag => "a", - :content => /(#{IssueStatus.find(2).name})/, - } - } - } - end - - def test_previous_project_activity - get :activity, :id => 1, :from => 3.days.ago.to_date - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{3.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(1).subject}/, - } - } - } - end - - def test_global_activity - get :activity - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{5.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(5).subject}/, - } - } - } - end - - def test_user_activity - get :activity, :user_id => 2 - assert_response :success - assert_template 'activity' - assert_not_nil assigns(:events_by_day) - - assert_tag :tag => "h3", - :content => /#{3.day.ago.to_date.day}/, - :sibling => { :tag => "dl", - :child => { :tag => "dt", - :attributes => { :class => /issue/ }, - :child => { :tag => "a", - :content => /#{Issue.find(1).subject}/, - } - } - } - end - - def test_activity_atom_feed - get :activity, :format => 'atom' - assert_response :success - assert_template 'common/feed.atom.rxml' - assert_tag :tag => 'entry', :child => { - :tag => 'link', - :attributes => {:href => 'http://test.host/issues/11'}} - end - def test_archive @request.session[:user_id] = 1 # admin post :archive, :id => 1 @@ -545,184 +406,6 @@ assert_template 'show' end - def test_reset_activities - @request.session[:user_id] = 2 # manager - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific', - :parent => TimeEntryActivity.find(:first), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - project_activity_two = TimeEntryActivity.new({ - :name => 'Project Specific Two', - :parent => TimeEntryActivity.find(:last), - :project => Project.find(1), - :active => true - }) - assert project_activity_two.save - - delete :reset_activities, :id => 1 - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - assert_nil TimeEntryActivity.find_by_id(project_activity.id) - assert_nil TimeEntryActivity.find_by_id(project_activity_two.id) - end - - def test_reset_activities_should_reassign_time_entries_back_to_the_system_activity - @request.session[:user_id] = 2 # manager - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific Design', - :parent => TimeEntryActivity.find(9), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - assert TimeEntry.update_all("activity_id = '#{project_activity.id}'", ["project_id = ? AND activity_id = ?", 1, 9]) - assert 3, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size - - delete :reset_activities, :id => 1 - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - assert_nil TimeEntryActivity.find_by_id(project_activity.id) - assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(project_activity.id, 1).size, "TimeEntries still assigned to project specific activity" - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "TimeEntries still assigned to project specific activity" - end - - def test_save_activities_to_override_system_activities - @request.session[:user_id] = 2 # manager - billable_field = TimeEntryActivityCustomField.find_by_name("Billable") - - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design, De-activate - "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"}, # Development, Change custom value - "14"=>{"parent_id"=>"14", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"}, # Inactive Activity, Activate with custom value - "11"=>{"parent_id"=>"11", "custom_field_values"=>{"7"=>"1"}, "active"=>"1"} # QA, no changes - } - - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - # Created project specific activities... - project = Project.find('ecookbook') - - # ... Design - design = project.time_entry_activities.find_by_name("Design") - assert design, "Project activity not found" - - assert_equal 9, design.parent_id # Relate to the system activity - assert_not_equal design.parent.id, design.id # Different records - assert_equal design.parent.name, design.name # Same name - assert !design.active? - - # ... Development - development = project.time_entry_activities.find_by_name("Development") - assert development, "Project activity not found" - - assert_equal 10, development.parent_id # Relate to the system activity - assert_not_equal development.parent.id, development.id # Different records - assert_equal development.parent.name, development.name # Same name - assert development.active? - assert_equal "0", development.custom_value_for(billable_field).value - - # ... Inactive Activity - previously_inactive = project.time_entry_activities.find_by_name("Inactive Activity") - assert previously_inactive, "Project activity not found" - - assert_equal 14, previously_inactive.parent_id # Relate to the system activity - assert_not_equal previously_inactive.parent.id, previously_inactive.id # Different records - assert_equal previously_inactive.parent.name, previously_inactive.name # Same name - assert previously_inactive.active? - assert_equal "1", previously_inactive.custom_value_for(billable_field).value - - # ... QA - assert_equal nil, project.time_entry_activities.find_by_name("QA"), "Custom QA activity created when it wasn't modified" - end - - def test_save_activities_will_update_project_specific_activities - @request.session[:user_id] = 2 # manager - - project_activity = TimeEntryActivity.new({ - :name => 'Project Specific', - :parent => TimeEntryActivity.find(:first), - :project => Project.find(1), - :active => true - }) - assert project_activity.save - project_activity_two = TimeEntryActivity.new({ - :name => 'Project Specific Two', - :parent => TimeEntryActivity.find(:last), - :project => Project.find(1), - :active => true - }) - assert project_activity_two.save - - - post :save_activities, :id => 1, :enumerations => { - project_activity.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # De-activate - project_activity_two.id => {"custom_field_values"=>{"7" => "1"}, "active"=>"0"} # De-activate - } - - assert_response :redirect - assert_redirected_to 'projects/ecookbook/settings/activities' - - # Created project specific activities... - project = Project.find('ecookbook') - assert_equal 2, project.time_entry_activities.count - - activity_one = project.time_entry_activities.find_by_name(project_activity.name) - assert activity_one, "Project activity not found" - assert_equal project_activity.id, activity_one.id - assert !activity_one.active? - - activity_two = project.time_entry_activities.find_by_name(project_activity_two.name) - assert activity_two, "Project activity not found" - assert_equal project_activity_two.id, activity_two.id - assert !activity_two.active? - end - - def test_save_activities_when_creating_new_activities_will_convert_existing_data - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size - - @request.session[:user_id] = 2 # manager - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"} # Design, De-activate - } - assert_response :redirect - - # No more TimeEntries using the system activity - assert_equal 0, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries still assigned to system activities" - # All TimeEntries using project activity - project_specific_activity = TimeEntryActivity.find_by_parent_id_and_project_id(9, 1) - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(project_specific_activity.id, 1).size, "No Time Entries assigned to the project activity" - end - - def test_save_activities_when_creating_new_activities_will_not_convert_existing_data_if_an_exception_is_raised - # TODO: Need to cause an exception on create but these tests - # aren't setup for mocking. Just create a record now so the - # second one is a dupicate - parent = TimeEntryActivity.find(9) - TimeEntryActivity.create!({:name => parent.name, :project_id => 1, :position => parent.position, :active => true}) - TimeEntry.create!({:project_id => 1, :hours => 1.0, :user => User.find(1), :issue_id => 3, :activity_id => 10, :spent_on => '2009-01-01'}) - - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size - assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size - - @request.session[:user_id] = 2 # manager - post :save_activities, :id => 1, :enumerations => { - "9"=> {"parent_id"=>"9", "custom_field_values"=>{"7" => "1"}, "active"=>"0"}, # Design - "10"=> {"parent_id"=>"10", "custom_field_values"=>{"7"=>"0"}, "active"=>"1"} # Development, Change custom value - } - assert_response :redirect - - # TimeEntries shouldn't have been reassigned on the failed record - assert_equal 3, TimeEntry.find_all_by_activity_id_and_project_id(9, 1).size, "Time Entries are not assigned to system activities" - # TimeEntries shouldn't have been reassigned on the saved record either - assert_equal 1, TimeEntry.find_all_by_activity_id_and_project_id(10, 1).size, "Time Entries are not assigned to system activities" - end - # A hook that is manually registered later class ProjectBasedTemplate < Redmine::Hook::ViewListener def view_layouts_base_html_head(context) diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/timelog_controller_test.rb --- a/test/functional/timelog_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/timelog_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -283,7 +283,7 @@ assert_not_nil assigns(:total_hours) assert_equal "162.90", "%.2f" % assigns(:total_hours) # display all time by default - assert_equal '2007-03-11'.to_date, assigns(:from) + assert_equal '2007-03-12'.to_date, assigns(:from) assert_equal '2007-04-22'.to_date, assigns(:to) end @@ -325,8 +325,8 @@ assert_equal 2, assigns(:entries).size assert_not_nil assigns(:total_hours) assert_equal 154.25, assigns(:total_hours) - # display all time by default - assert_equal '2007-03-11'.to_date, assigns(:from) + # display all time based on what's been logged + assert_equal '2007-03-12'.to_date, assigns(:from) assert_equal '2007-04-22'.to_date, assigns(:to) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/users_controller_test.rb --- a/test/functional/users_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/users_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -143,6 +143,18 @@ assert_equal [u.mail], mail.bcc assert mail.body.include?('newpass') end + + test "POST :edit with a password change to an AuthSource user switching to Internal authentication" do + # Configure as auth source + u = User.find(2) + u.auth_source = AuthSource.find(1) + u.save! + + post :edit, :id => u.id, :user => {:auth_source_id => ''}, :password => 'newpass', :password_confirmation => 'newpass' + + assert_equal nil, u.reload.auth_source + assert_equal User.hash_password('newpass'), u.reload.hashed_password + end def test_edit_membership post :edit_membership, :id => 2, :membership_id => 1, diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/functional/versions_controller_test.rb --- a/test/functional/versions_controller_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/functional/versions_controller_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -31,6 +31,41 @@ User.current = nil end + def test_index + get :index, :project_id => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + # Version with no date set appears + assert assigns(:versions).include?(Version.find(3)) + # Completed version doesn't appear + assert !assigns(:versions).include?(Version.find(1)) + # Context menu on issues + assert_select "script", :text => Regexp.new(Regexp.escape("new ContextMenu('/issues/context_menu')")) + end + + def test_index_with_completed_versions + get :index, :project_id => 1, :completed => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + # Version with no date set appears + assert assigns(:versions).include?(Version.find(3)) + # Completed version appears + assert assigns(:versions).include?(Version.find(1)) + end + + def test_index_showing_subprojects_versions + @subproject_version = Version.generate!(:project => Project.find(3)) + get :index, :project_id => 1, :with_subprojects => 1 + assert_response :success + assert_template 'index' + assert_not_nil assigns(:versions) + + assert assigns(:versions).include?(Version.find(4)), "Shared version not found" + assert assigns(:versions).include?(@subproject_version), "Subproject version not found" + end + def test_show get :show, :id => 2 assert_response :success @@ -40,10 +75,10 @@ assert_tag :tag => 'h2', :content => /1.0/ end - def test_new + def test_create @request.session[:user_id] = 2 # manager assert_difference 'Version.count' do - post :new, :project_id => '1', :version => {:name => 'test_add_version'} + post :create, :project_id => '1', :version => {:name => 'test_add_version'} end assert_redirected_to '/projects/ecookbook/settings/versions' version = Version.find_by_name('test_add_version') @@ -51,10 +86,10 @@ assert_equal 1, version.project_id end - def test_new_from_issue_form + def test_create_from_issue_form @request.session[:user_id] = 2 # manager assert_difference 'Version.count' do - xhr :post, :new, :project_id => '1', :version => {:name => 'test_add_version_from_issue_form'} + xhr :post, :create, :project_id => '1', :version => {:name => 'test_add_version_from_issue_form'} end assert_response :success assert_select_rjs :replace, 'issue_fixed_version_id' @@ -73,14 +108,14 @@ def test_close_completed Version.update_all("status = 'open'") @request.session[:user_id] = 2 - post :close_completed, :project_id => 'ecookbook' + put :close_completed, :project_id => 'ecookbook' assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' assert_not_nil Version.find_by_status('closed') end - def test_post_edit + def test_post_update @request.session[:user_id] = 2 - post :edit, :id => 2, + put :update, :id => 2, :version => { :name => 'New version name', :effective_date => Date.today.strftime("%Y-%m-%d")} assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' @@ -91,7 +126,7 @@ def test_destroy @request.session[:user_id] = 2 - post :destroy, :id => 3 + delete :destroy, :id => 3 assert_redirected_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => 'ecookbook' assert_nil Version.find_by_id(3) end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/.svn/all-wcprops --- a/test/integration/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/4037/trunk/test/integration +/svn/!svn/ver/4172/trunk/test/integration END api_token_login_test.rb K 25 @@ -25,13 +25,13 @@ K 25 svn:wc:ra_dav:version-url V 60 -/svn/!svn/ver/3766/trunk/test/integration/issues_api_test.rb +/svn/!svn/ver/4048/trunk/test/integration/issues_api_test.rb END routing_test.rb K 25 svn:wc:ra_dav:version-url V 57 -/svn/!svn/ver/4037/trunk/test/integration/routing_test.rb +/svn/!svn/ver/4172/trunk/test/integration/routing_test.rb END admin_test.rb K 25 @@ -55,7 +55,7 @@ K 25 svn:wc:ra_dav:version-url V 56 -/svn/!svn/ver/3486/trunk/test/integration/issues_test.rb +/svn/!svn/ver/4041/trunk/test/integration/issues_test.rb END account_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/.svn/entries --- a/test/integration/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/integration http://redmine.rubyforge.org/svn -2010-08-24T15:27:12.793586Z -4037 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.868156Z +2010-09-23T14:37:45.435782Z f99fc81982309b06b38b5a1ace40ca5e 2009-12-23T06:27:44.373427Z 3220 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.868156Z +2010-09-23T14:37:45.439778Z f71d3a9198cd46dcbe8c38b581be1bdb 2010-04-21T16:02:55.125733Z 3687 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.868156Z +2010-09-23T14:37:45.435782Z 8d01b406d4574360e2fc0ca763e457d1 2009-06-06T10:20:27.327287Z 2779 @@ -134,10 +134,10 @@ -2010-07-23T14:49:43.868156Z -f0a6d4ca8cf9236fc383d381f9755d8d -2010-06-05T03:52:59.030840Z -3766 +2010-09-24T12:48:25.883734Z +ffd48cf98057bd4ed0175bc4147c61cb +2010-08-27T20:08:59.729788Z +4048 edavis10 has-props @@ -160,7 +160,7 @@ -9345 +9701 lib dir @@ -171,10 +171,10 @@ -2010-08-25T15:27:52.782527Z -c273a3ef592252f4e804b28e02c3911f -2010-08-24T15:27:12.793586Z -4037 +2010-09-24T12:48:25.883734Z +b1064aaf94d0e5242305bc5a09f0a596 +2010-09-23T15:20:19.085385Z +4172 edavis10 @@ -197,7 +197,7 @@ -24164 +24890 admin_test.rb file @@ -205,7 +205,7 @@ -2010-07-23T14:49:43.868156Z +2010-09-23T14:37:45.435782Z d3db25767f7a6741931fa9b307ea9da9 2009-11-14T19:41:02.240160Z 3050 @@ -239,7 +239,7 @@ -2010-07-23T14:49:43.876109Z +2010-09-23T14:37:45.435782Z 18dc5fe7b0619021768deecf38ad573a 2010-04-17T12:45:23.887495Z 3679 @@ -273,7 +273,7 @@ -2010-07-23T14:49:43.876109Z +2010-09-23T14:37:45.439778Z aedb3aed4364cf43d6dc1e721d10b685 2009-01-26T01:47:51.253124Z 2317 @@ -307,10 +307,10 @@ -2010-07-23T14:49:43.876109Z -201d6cad36d19855280a9605e88077e2 -2010-02-25T17:01:05.965264Z -3486 +2010-09-24T12:48:25.883734Z +6125e0c4cbdc852b5831a85c0ded60f0 +2010-08-26T16:36:59.817467Z +4041 edavis10 has-props @@ -333,7 +333,7 @@ -4800 +4795 account_test.rb file @@ -341,7 +341,7 @@ -2010-07-23T14:49:43.876109Z +2010-09-23T14:37:45.435782Z dbb93f00bb81496a00069bc0f4d044c8 2010-02-26T09:13:12.187275Z 3492 @@ -375,7 +375,7 @@ -2010-07-23T14:49:43.876109Z +2010-09-23T14:37:45.435782Z f6d32b05d3ebaf4c30fac1532ecae7d2 2009-12-23T06:27:44.373427Z 3220 @@ -409,7 +409,7 @@ -2010-07-23T14:49:43.876109Z +2010-09-23T14:37:45.435782Z e244128a26c244c305a434ad5dab2946 2009-12-23T06:27:44.373427Z 3220 @@ -443,7 +443,7 @@ -2010-08-25T15:27:52.782527Z +2010-09-23T14:37:45.435782Z b7820d068018240701ff34e9ff0a00d9 2010-08-19T01:28:33.455566Z 3951 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/.svn/text-base/issues_api_test.rb.svn-base --- a/test/integration/.svn/text-base/issues_api_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/.svn/text-base/issues_api_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -198,7 +198,7 @@ setup do @issue_count = Issue.count @journal_count = Journal.count - @attributes = {:subject => 'API update'} + @attributes = {:subject => 'API update', :notes => 'A new note'} put '/issues/1.xml', {:issue => @attributes}, :authorization => credentials('jsmith') end @@ -214,10 +214,15 @@ assert_equal Journal.count, @journal_count + 1 end + should "add the note to the journal" do + journal = Journal.last + assert_equal "A new note", journal.notes + end + should "update the issue" do issue = Issue.find(1) @attributes.each do |attribute, value| - assert_equal value, issue.send(attribute) + assert_equal value, issue.send(attribute) unless attribute == :notes end end @@ -252,7 +257,7 @@ setup do @issue_count = Issue.count @journal_count = Journal.count - @attributes = {:subject => 'API update'} + @attributes = {:subject => 'API update', :notes => 'A new note'} put '/issues/1.json', {:issue => @attributes}, :authorization => credentials('jsmith') end @@ -268,13 +273,18 @@ assert_equal Journal.count, @journal_count + 1 end + should "add the note to the journal" do + journal = Journal.last + assert_equal "A new note", journal.notes + end + should "update the issue" do issue = Issue.find(1) @attributes.each do |attribute, value| - assert_equal value, issue.send(attribute) + assert_equal value, issue.send(attribute) unless attribute == :notes end end - + end context "PUT /issues/1.json with failed update" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/.svn/text-base/issues_test.rb.svn-base --- a/test/integration/.svn/text-base/issues_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/.svn/text-base/issues_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -69,7 +69,7 @@ log_user('jsmith', 'jsmith') set_tmp_attachments_directory - put 'issues/1/edit', + put 'issues/1', :notes => 'Some notes', :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'This is an attachment'}} assert_redirected_to "issues/1" diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/.svn/text-base/routing_test.rb.svn-base --- a/test/integration/.svn/text-base/routing_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/.svn/text-base/routing_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -19,8 +19,8 @@ class RoutingTest < ActionController::IntegrationTest context "activities" do - should_route :get, "/activity", :controller => 'projects', :action => 'activity', :id => nil - should_route :get, "/activity.atom", :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom' + should_route :get, "/activity", :controller => 'activities', :action => 'index', :id => nil + should_route :get, "/activity.atom", :controller => 'activities', :action => 'index', :id => nil, :format => 'atom' end context "attachments" do @@ -91,14 +91,14 @@ should_route :post, "/issues/1/quoted", :controller => 'journals', :action => 'new', :id => '1' should_route :get, "/issues/calendar", :controller => 'calendars', :action => 'show' - should_route :post, "/issues/calendar", :controller => 'calendars', :action => 'show' + should_route :put, "/issues/calendar", :controller => 'calendars', :action => 'update' should_route :get, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'show', :project_id => 'project-name' - should_route :post, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'show', :project_id => 'project-name' + should_route :put, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'update', :project_id => 'project-name' should_route :get, "/issues/gantt", :controller => 'gantts', :action => 'show' - should_route :post, "/issues/gantt", :controller => 'gantts', :action => 'show' + should_route :put, "/issues/gantt", :controller => 'gantts', :action => 'update' should_route :get, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'show', :project_id => 'project-name' - should_route :post, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'show', :project_id => 'project-name' + should_route :put, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'update', :project_id => 'project-name' should_route :get, "/issues/auto_complete", :controller => 'auto_completes', :action => 'issues' @@ -156,41 +156,45 @@ should_route :get, "/news/2", :controller => 'news', :action => 'show', :id => '2' should_route :get, "/projects/567/news/new", :controller => 'news', :action => 'new', :project_id => '567' should_route :get, "/news/234", :controller => 'news', :action => 'show', :id => '234' + should_route :get, "/news/567/edit", :controller => 'news', :action => 'edit', :id => '567' - should_route :post, "/projects/567/news/new", :controller => 'news', :action => 'new', :project_id => '567' - should_route :post, "/news/567/edit", :controller => 'news', :action => 'edit', :id => '567' + should_route :post, "/projects/567/news", :controller => 'news', :action => 'create', :project_id => '567' should_route :post, "/news/567/destroy", :controller => 'news', :action => 'destroy', :id => '567' + should_route :post, "/news/567/comments", :controller => 'comments', :action => 'create', :id => '567' + + should_route :put, "/news/567/edit", :controller => 'news', :action => 'update', :id => '567' + + should_route :delete, "/news/567/comments/15", :controller => 'comments', :action => 'destroy', :id => '567', :comment_id => '15' end context "projects" do should_route :get, "/projects", :controller => 'projects', :action => 'index' should_route :get, "/projects.atom", :controller => 'projects', :action => 'index', :format => 'atom' should_route :get, "/projects.xml", :controller => 'projects', :action => 'index', :format => 'xml' - should_route :get, "/projects/new", :controller => 'projects', :action => 'add' + should_route :get, "/projects/new", :controller => 'projects', :action => 'new' should_route :get, "/projects/test", :controller => 'projects', :action => 'show', :id => 'test' should_route :get, "/projects/1.xml", :controller => 'projects', :action => 'show', :id => '1', :format => 'xml' should_route :get, "/projects/4223/settings", :controller => 'projects', :action => 'settings', :id => '4223' should_route :get, "/projects/4223/settings/members", :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members' - should_route :get, "/projects/567/destroy", :controller => 'projects', :action => 'destroy', :id => '567' - should_route :get, "/projects/33/files", :controller => 'projects', :action => 'list_files', :id => '33' - should_route :get, "/projects/33/files/new", :controller => 'projects', :action => 'add_file', :id => '33' - should_route :get, "/projects/33/roadmap", :controller => 'projects', :action => 'roadmap', :id => '33' - should_route :get, "/projects/33/activity", :controller => 'projects', :action => 'activity', :id => '33' - should_route :get, "/projects/33/activity.atom", :controller => 'projects', :action => 'activity', :id => '33', :format => 'atom' + should_route :get, "/projects/33/files", :controller => 'files', :action => 'index', :project_id => '33' + should_route :get, "/projects/33/files/new", :controller => 'files', :action => 'new', :project_id => '33' + should_route :get, "/projects/33/roadmap", :controller => 'versions', :action => 'index', :project_id => '33' + should_route :get, "/projects/33/activity", :controller => 'activities', :action => 'index', :id => '33' + should_route :get, "/projects/33/activity.atom", :controller => 'activities', :action => 'index', :id => '33', :format => 'atom' - should_route :post, "/projects/new", :controller => 'projects', :action => 'add' - should_route :post, "/projects.xml", :controller => 'projects', :action => 'add', :format => 'xml' - should_route :post, "/projects/4223/edit", :controller => 'projects', :action => 'edit', :id => '4223' - should_route :post, "/projects/64/destroy", :controller => 'projects', :action => 'destroy', :id => '64' - should_route :post, "/projects/33/files/new", :controller => 'projects', :action => 'add_file', :id => '33' + should_route :post, "/projects", :controller => 'projects', :action => 'create' + should_route :post, "/projects.xml", :controller => 'projects', :action => 'create', :format => 'xml' + should_route :post, "/projects/33/files", :controller => 'files', :action => 'create', :project_id => '33' should_route :post, "/projects/64/archive", :controller => 'projects', :action => 'archive', :id => '64' should_route :post, "/projects/64/unarchive", :controller => 'projects', :action => 'unarchive', :id => '64' - should_route :post, "/projects/64/activities/save", :controller => 'projects', :action => 'save_activities', :id => '64' - should_route :put, "/projects/1.xml", :controller => 'projects', :action => 'edit', :id => '1', :format => 'xml' + should_route :put, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'update', :project_id => '64' + should_route :put, "/projects/4223", :controller => 'projects', :action => 'update', :id => '4223' + should_route :put, "/projects/1.xml", :controller => 'projects', :action => 'update', :id => '1', :format => 'xml' + should_route :delete, "/projects/64", :controller => 'projects', :action => 'destroy', :id => '64' should_route :delete, "/projects/1.xml", :controller => 'projects', :action => 'destroy', :id => '1', :format => 'xml' - should_route :delete, "/projects/64/reset_activities", :controller => 'projects', :action => 'reset_activities', :id => '64' + should_route :delete, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'destroy', :project_id => '64' end context "repositories" do @@ -252,10 +256,16 @@ should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12' end + # TODO: should they all be scoped under /projects/:project_id ? context "versions" do should_route :get, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo' + should_route :get, "/versions/show/1", :controller => 'versions', :action => 'show', :id => '1' + should_route :get, "/versions/edit/1", :controller => 'versions', :action => 'edit', :id => '1' - should_route :post, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo' + should_route :post, "/projects/foo/versions", :controller => 'versions', :action => 'create', :project_id => 'foo' + should_route :post, "/versions/update/1", :controller => 'versions', :action => 'update', :id => '1' + + should_route :delete, "/versions/destroy/1", :controller => 'versions', :action => 'destroy', :id => '1' end context "wiki (singular, project's pages)" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/issues_api_test.rb --- a/test/integration/issues_api_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/issues_api_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -198,7 +198,7 @@ setup do @issue_count = Issue.count @journal_count = Journal.count - @attributes = {:subject => 'API update'} + @attributes = {:subject => 'API update', :notes => 'A new note'} put '/issues/1.xml', {:issue => @attributes}, :authorization => credentials('jsmith') end @@ -214,10 +214,15 @@ assert_equal Journal.count, @journal_count + 1 end + should "add the note to the journal" do + journal = Journal.last + assert_equal "A new note", journal.notes + end + should "update the issue" do issue = Issue.find(1) @attributes.each do |attribute, value| - assert_equal value, issue.send(attribute) + assert_equal value, issue.send(attribute) unless attribute == :notes end end @@ -252,7 +257,7 @@ setup do @issue_count = Issue.count @journal_count = Journal.count - @attributes = {:subject => 'API update'} + @attributes = {:subject => 'API update', :notes => 'A new note'} put '/issues/1.json', {:issue => @attributes}, :authorization => credentials('jsmith') end @@ -268,13 +273,18 @@ assert_equal Journal.count, @journal_count + 1 end + should "add the note to the journal" do + journal = Journal.last + assert_equal "A new note", journal.notes + end + should "update the issue" do issue = Issue.find(1) @attributes.each do |attribute, value| - assert_equal value, issue.send(attribute) + assert_equal value, issue.send(attribute) unless attribute == :notes end end - + end context "PUT /issues/1.json with failed update" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/issues_test.rb --- a/test/integration/issues_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/issues_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -69,7 +69,7 @@ log_user('jsmith', 'jsmith') set_tmp_attachments_directory - put 'issues/1/edit', + put 'issues/1', :notes => 'Some notes', :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'This is an attachment'}} assert_redirected_to "issues/1" diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/lib/.svn/entries --- a/test/integration/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/integration/lib http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/lib/redmine/.svn/entries --- a/test/integration/lib/redmine/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/lib/redmine/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/integration/lib/redmine http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.840131Z +2010-09-23T14:37:45.439778Z 2a5952348b30cbae983b5e3137b48ff0 2009-09-04T03:24:20.372895Z 2855 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/integration/routing_test.rb --- a/test/integration/routing_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/integration/routing_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -19,8 +19,8 @@ class RoutingTest < ActionController::IntegrationTest context "activities" do - should_route :get, "/activity", :controller => 'projects', :action => 'activity', :id => nil - should_route :get, "/activity.atom", :controller => 'projects', :action => 'activity', :id => nil, :format => 'atom' + should_route :get, "/activity", :controller => 'activities', :action => 'index', :id => nil + should_route :get, "/activity.atom", :controller => 'activities', :action => 'index', :id => nil, :format => 'atom' end context "attachments" do @@ -91,14 +91,14 @@ should_route :post, "/issues/1/quoted", :controller => 'journals', :action => 'new', :id => '1' should_route :get, "/issues/calendar", :controller => 'calendars', :action => 'show' - should_route :post, "/issues/calendar", :controller => 'calendars', :action => 'show' + should_route :put, "/issues/calendar", :controller => 'calendars', :action => 'update' should_route :get, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'show', :project_id => 'project-name' - should_route :post, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'show', :project_id => 'project-name' + should_route :put, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'update', :project_id => 'project-name' should_route :get, "/issues/gantt", :controller => 'gantts', :action => 'show' - should_route :post, "/issues/gantt", :controller => 'gantts', :action => 'show' + should_route :put, "/issues/gantt", :controller => 'gantts', :action => 'update' should_route :get, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'show', :project_id => 'project-name' - should_route :post, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'show', :project_id => 'project-name' + should_route :put, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'update', :project_id => 'project-name' should_route :get, "/issues/auto_complete", :controller => 'auto_completes', :action => 'issues' @@ -156,41 +156,45 @@ should_route :get, "/news/2", :controller => 'news', :action => 'show', :id => '2' should_route :get, "/projects/567/news/new", :controller => 'news', :action => 'new', :project_id => '567' should_route :get, "/news/234", :controller => 'news', :action => 'show', :id => '234' + should_route :get, "/news/567/edit", :controller => 'news', :action => 'edit', :id => '567' - should_route :post, "/projects/567/news/new", :controller => 'news', :action => 'new', :project_id => '567' - should_route :post, "/news/567/edit", :controller => 'news', :action => 'edit', :id => '567' + should_route :post, "/projects/567/news", :controller => 'news', :action => 'create', :project_id => '567' should_route :post, "/news/567/destroy", :controller => 'news', :action => 'destroy', :id => '567' + should_route :post, "/news/567/comments", :controller => 'comments', :action => 'create', :id => '567' + + should_route :put, "/news/567/edit", :controller => 'news', :action => 'update', :id => '567' + + should_route :delete, "/news/567/comments/15", :controller => 'comments', :action => 'destroy', :id => '567', :comment_id => '15' end context "projects" do should_route :get, "/projects", :controller => 'projects', :action => 'index' should_route :get, "/projects.atom", :controller => 'projects', :action => 'index', :format => 'atom' should_route :get, "/projects.xml", :controller => 'projects', :action => 'index', :format => 'xml' - should_route :get, "/projects/new", :controller => 'projects', :action => 'add' + should_route :get, "/projects/new", :controller => 'projects', :action => 'new' should_route :get, "/projects/test", :controller => 'projects', :action => 'show', :id => 'test' should_route :get, "/projects/1.xml", :controller => 'projects', :action => 'show', :id => '1', :format => 'xml' should_route :get, "/projects/4223/settings", :controller => 'projects', :action => 'settings', :id => '4223' should_route :get, "/projects/4223/settings/members", :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members' - should_route :get, "/projects/567/destroy", :controller => 'projects', :action => 'destroy', :id => '567' - should_route :get, "/projects/33/files", :controller => 'projects', :action => 'list_files', :id => '33' - should_route :get, "/projects/33/files/new", :controller => 'projects', :action => 'add_file', :id => '33' - should_route :get, "/projects/33/roadmap", :controller => 'projects', :action => 'roadmap', :id => '33' - should_route :get, "/projects/33/activity", :controller => 'projects', :action => 'activity', :id => '33' - should_route :get, "/projects/33/activity.atom", :controller => 'projects', :action => 'activity', :id => '33', :format => 'atom' + should_route :get, "/projects/33/files", :controller => 'files', :action => 'index', :project_id => '33' + should_route :get, "/projects/33/files/new", :controller => 'files', :action => 'new', :project_id => '33' + should_route :get, "/projects/33/roadmap", :controller => 'versions', :action => 'index', :project_id => '33' + should_route :get, "/projects/33/activity", :controller => 'activities', :action => 'index', :id => '33' + should_route :get, "/projects/33/activity.atom", :controller => 'activities', :action => 'index', :id => '33', :format => 'atom' - should_route :post, "/projects/new", :controller => 'projects', :action => 'add' - should_route :post, "/projects.xml", :controller => 'projects', :action => 'add', :format => 'xml' - should_route :post, "/projects/4223/edit", :controller => 'projects', :action => 'edit', :id => '4223' - should_route :post, "/projects/64/destroy", :controller => 'projects', :action => 'destroy', :id => '64' - should_route :post, "/projects/33/files/new", :controller => 'projects', :action => 'add_file', :id => '33' + should_route :post, "/projects", :controller => 'projects', :action => 'create' + should_route :post, "/projects.xml", :controller => 'projects', :action => 'create', :format => 'xml' + should_route :post, "/projects/33/files", :controller => 'files', :action => 'create', :project_id => '33' should_route :post, "/projects/64/archive", :controller => 'projects', :action => 'archive', :id => '64' should_route :post, "/projects/64/unarchive", :controller => 'projects', :action => 'unarchive', :id => '64' - should_route :post, "/projects/64/activities/save", :controller => 'projects', :action => 'save_activities', :id => '64' - should_route :put, "/projects/1.xml", :controller => 'projects', :action => 'edit', :id => '1', :format => 'xml' + should_route :put, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'update', :project_id => '64' + should_route :put, "/projects/4223", :controller => 'projects', :action => 'update', :id => '4223' + should_route :put, "/projects/1.xml", :controller => 'projects', :action => 'update', :id => '1', :format => 'xml' + should_route :delete, "/projects/64", :controller => 'projects', :action => 'destroy', :id => '64' should_route :delete, "/projects/1.xml", :controller => 'projects', :action => 'destroy', :id => '1', :format => 'xml' - should_route :delete, "/projects/64/reset_activities", :controller => 'projects', :action => 'reset_activities', :id => '64' + should_route :delete, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'destroy', :project_id => '64' end context "repositories" do @@ -252,10 +256,16 @@ should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12' end + # TODO: should they all be scoped under /projects/:project_id ? context "versions" do should_route :get, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo' + should_route :get, "/versions/show/1", :controller => 'versions', :action => 'show', :id => '1' + should_route :get, "/versions/edit/1", :controller => 'versions', :action => 'edit', :id => '1' - should_route :post, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo' + should_route :post, "/projects/foo/versions", :controller => 'versions', :action => 'create', :project_id => 'foo' + should_route :post, "/versions/update/1", :controller => 'versions', :action => 'update', :id => '1' + + should_route :delete, "/versions/destroy/1", :controller => 'versions', :action => 'destroy', :id => '1' end context "wiki (singular, project's pages)" do diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/mocks/.svn/entries --- a/test/mocks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/mocks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/mocks http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:44.224277Z +2010-09-23T14:37:45.439778Z c73745cf74166bf38552d6469b74b190 2009-09-20T14:06:57.257282Z 2895 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/mocks/development/.svn/entries --- a/test/mocks/development/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/mocks/development/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/mocks/development http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/mocks/test/.svn/entries --- a/test/mocks/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/mocks/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/mocks/test http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/object_daddy_helpers.rb --- a/test/object_daddy_helpers.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/object_daddy_helpers.rb Fri Sep 24 14:06:04 2010 +0100 @@ -13,6 +13,11 @@ User.spawn(attributes) end + def User.add_to_project(user, project, roles) + roles = [roles] unless roles.is_a?(Array) + Member.generate!(:principal => user, :project => project, :roles => roles) + end + # Generate the default Query def Query.generate_default!(attributes={}) query = Query.spawn(attributes) @@ -25,8 +30,9 @@ def Issue.generate_for_project!(project, attributes={}) issue = Issue.spawn(attributes) do |issue| issue.project = project + issue.tracker = project.trackers.first unless project.trackers.empty? + yield issue if block_given? end - issue.tracker = project.trackers.first unless project.trackers.empty? issue.save! issue end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/all-wcprops --- a/test/unit/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 34 -/svn/!svn/ver/4013/trunk/test/unit +/svn/!svn/ver/4167/trunk/test/unit END document_test.rb K 25 @@ -37,7 +37,7 @@ K 25 svn:wc:ra_dav:version-url V 50 -/svn/!svn/ver/3633/trunk/test/unit/version_test.rb +/svn/!svn/ver/4072/trunk/test/unit/version_test.rb END enumeration_test.rb K 25 @@ -55,7 +55,7 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/3683/trunk/test/unit/issue_test.rb +/svn/!svn/ver/4072/trunk/test/unit/issue_test.rb END issue_status_test.rb K 25 @@ -87,18 +87,18 @@ V 60 /svn/!svn/ver/2887/trunk/test/unit/repository_bazaar_test.rb END +changeset_test.rb +K 25 +svn:wc:ra_dav:version-url +V 52 +/svn/!svn/ver/3466/trunk/test/unit/changeset_test.rb +END role_test.rb K 25 svn:wc:ra_dav:version-url V 47 /svn/!svn/ver/3363/trunk/test/unit/role_test.rb END -changeset_test.rb -K 25 -svn:wc:ra_dav:version-url -V 52 -/svn/!svn/ver/3466/trunk/test/unit/changeset_test.rb -END comment_test.rb K 25 svn:wc:ra_dav:version-url @@ -139,7 +139,19 @@ K 25 svn:wc:ra_dav:version-url V 47 -/svn/!svn/ver/3873/trunk/test/unit/user_test.rb +/svn/!svn/ver/4058/trunk/test/unit/user_test.rb +END +time_entry_test.rb +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/!svn/ver/4087/trunk/test/unit/time_entry_test.rb +END +repository_test.rb +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/!svn/ver/2895/trunk/test/unit/repository_test.rb END mail_handler_test.rb K 25 @@ -147,17 +159,11 @@ V 55 /svn/!svn/ver/3801/trunk/test/unit/mail_handler_test.rb END -repository_test.rb +auth_source_ldap_test.rb K 25 svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/2895/trunk/test/unit/repository_test.rb -END -time_entry_test.rb -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/3232/trunk/test/unit/time_entry_test.rb +V 59 +/svn/!svn/ver/3492/trunk/test/unit/auth_source_ldap_test.rb END principal_test.rb K 25 @@ -165,11 +171,11 @@ V 52 /svn/!svn/ver/3152/trunk/test/unit/principal_test.rb END -auth_source_ldap_test.rb +repository_filesystem_test.rb K 25 svn:wc:ra_dav:version-url -V 59 -/svn/!svn/ver/3492/trunk/test/unit/auth_source_ldap_test.rb +V 64 +/svn/!svn/ver/2887/trunk/test/unit/repository_filesystem_test.rb END project_nested_set_test.rb K 25 @@ -177,12 +183,6 @@ V 61 /svn/!svn/ver/3354/trunk/test/unit/project_nested_set_test.rb END -repository_filesystem_test.rb -K 25 -svn:wc:ra_dav:version-url -V 64 -/svn/!svn/ver/2887/trunk/test/unit/repository_filesystem_test.rb -END wiki_redirect_test.rb K 25 svn:wc:ra_dav:version-url @@ -271,7 +271,7 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/3927/trunk/test/unit/query_test.rb +/svn/!svn/ver/4106/trunk/test/unit/query_test.rb END search_test.rb K 25 @@ -283,7 +283,7 @@ K 25 svn:wc:ra_dav:version-url V 50 -/svn/!svn/ver/3760/trunk/test/unit/project_test.rb +/svn/!svn/ver/4072/trunk/test/unit/project_test.rb END custom_value_test.rb K 25 @@ -301,7 +301,7 @@ K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/3907/trunk/test/unit/mailer_test.rb +/svn/!svn/ver/4167/trunk/test/unit/mailer_test.rb END news_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/entries --- a/test/unit/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit http://redmine.rubyforge.org/svn -2010-08-22T18:42:00.112555Z -4013 +2010-09-20T23:17:51.402972Z +4167 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.475805Z 050f600e502bb49c47e831975074cb3e 2009-11-26T20:12:20.779591Z 3095 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.511762Z 3ba1709e8893abeaa88fb00febcadc05 2009-09-20T14:06:57.257282Z 2895 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.507762Z b599c36bc2156f6812220a40f054d41e 2010-07-06T02:07:46.557097Z 3828 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.507762Z 09835c4db0f8cf952808da70c56f4efd 2009-09-13T17:14:35.707881Z 2887 @@ -168,7 +168,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.483825Z 229c99b63f05b560d8db3d2dbcb9e8b8 2010-05-01T14:07:36.553776Z 3729 @@ -202,11 +202,11 @@ -2010-07-23T14:49:43.616098Z -a54983ad74be5184bdc985cca4622b71 -2010-04-11T13:20:02.302574Z -3633 -jplang +2010-09-24T12:48:25.787400Z +81bfed065f741b348305d4d050df10af +2010-09-10T03:09:02.311267Z +4072 +edavis10 has-props @@ -228,7 +228,7 @@ -7230 +9748 enumeration_test.rb file @@ -236,7 +236,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.475805Z c3eca121e6f2d6794e4eeecfa9f165a0 2009-12-06T10:28:20.099964Z 3123 @@ -270,7 +270,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.471762Z 9a7c54f1a9af6217095062f77d08f10e 2009-09-13T17:14:35.707881Z 2887 @@ -304,11 +304,11 @@ -2010-07-23T14:49:43.616098Z -129e7f4c1a404cfdec667df2a7cd8a89 -2010-04-18T12:47:41.103926Z -3683 -jplang +2010-09-24T12:48:25.791803Z +0e1f710ecc564f8951d5f5805c440bc8 +2010-09-10T03:09:02.311267Z +4072 +edavis10 has-props @@ -330,7 +330,7 @@ -24974 +26011 issue_status_test.rb file @@ -338,7 +338,7 @@ -2010-07-28T11:07:47.032286Z +2010-09-23T14:37:45.483825Z 2c2ecec9fc2708d6aacff16c5aa29b87 2010-07-25T10:48:27.199057Z 3881 @@ -372,7 +372,7 @@ -2010-07-23T14:49:43.616098Z +2010-09-23T14:37:45.511762Z 773260be3210a157ed033c4d9097572c 2009-10-21T22:34:22.740755Z 2945 @@ -406,7 +406,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.511762Z f1aa4fc274b7ab94762c0dbc533a15fb 2009-12-18T15:41:32.828284Z 3188 @@ -440,7 +440,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.507762Z 0d3c13d5aab904f2bb8f1a1750219a81 2010-06-20T16:08:26.745839Z 3800 @@ -474,7 +474,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.507762Z 5334a637f05540a25a9769683dec3fca 2009-09-13T17:14:35.707881Z 2887 @@ -508,7 +508,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.475805Z b30a5968570e514baa53fccba66babd6 2010-02-20T11:24:41.988635Z 3466 @@ -542,7 +542,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.507762Z 01913aeac402c002ff86c6497513c795 2010-02-03T17:47:47.868223Z 3363 @@ -579,7 +579,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.475805Z 6bc5dfa26b0c2afd52f79678106a1247 2009-09-20T14:06:57.257282Z 2895 @@ -613,7 +613,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.511762Z 0187a399b60b9c512b74aa8e2eacbe31 2010-04-11T12:56:18.077630Z 3632 @@ -650,7 +650,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.475805Z 4e8fc1d75ed786b954e18d8bac093daf 2009-09-13T17:14:35.707881Z 2887 @@ -684,7 +684,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.483825Z dd19b3a0292fa879e0e4b3de171c4e16 2009-09-13T17:14:35.707881Z 2887 @@ -718,7 +718,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.475805Z 1457b47330c1f1cc47c0005509687cfa 2009-11-27T20:49:08.242340Z 3100 @@ -752,7 +752,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.475805Z 31716c010951f7a1b2d23cc481341cab 2009-09-13T17:14:35.707881Z 2887 @@ -786,11 +786,11 @@ -2010-07-28T11:07:47.032286Z -dfab6e6236689b96b48e527cb9b937cf -2010-07-25T09:50:41.235614Z -3873 -jplang +2010-09-24T12:48:25.791803Z +ee0a9f52ec52313eb2a7e6496590a3fc +2010-09-03T20:16:00.529106Z +4058 +jbbarth has-props @@ -812,7 +812,7 @@ -12037 +13887 mail_handler_test.rb file @@ -820,7 +820,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.503764Z 53cf7d3c94f63febd50685da486d8adf 2010-06-20T16:22:36.211973Z 3801 @@ -854,7 +854,7 @@ -2010-07-23T14:49:43.620098Z +2010-09-23T14:37:45.507762Z fe604b00b9f78fbe70c9c48bac2cd05d 2009-09-20T14:06:57.257282Z 2895 @@ -888,11 +888,11 @@ -2010-07-23T14:49:43.620098Z -7ab9e934925726ee86f4063f83b093a5 -2009-12-23T20:05:46.097327Z -3232 -jplang +2010-09-24T12:48:25.791803Z +461828d317588aef0b8ee8f85f11c62c +2010-09-14T19:02:25.847894Z +4087 +edavis10 has-props @@ -914,7 +914,7 @@ -1819 +3574 principal_test.rb file @@ -922,7 +922,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.503764Z f36cb1e2cd1746903fbd8d269179f177 2009-12-12T06:18:40.500267Z 3152 @@ -956,7 +956,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.471762Z a39d14a44a0576b6ec4bca546bded4f8 2010-02-26T09:13:12.187275Z 3492 @@ -990,7 +990,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.507762Z abb72953856c404a15739803efb36f1e 2009-09-13T17:14:35.707881Z 2887 @@ -1024,7 +1024,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.503764Z 2113efe7d95f20d9eeaffdc988f35894 2010-01-31T10:39:42.608434Z 3354 @@ -1058,7 +1058,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.503764Z 20812440391bc42bd1e4b87f2bb3dbc9 2009-09-13T17:14:35.707881Z 2887 @@ -1092,7 +1092,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.511762Z bb58e8be92cdf18494b20d79275f4c65 2009-09-13T17:14:35.707881Z 2887 @@ -1126,7 +1126,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.483825Z 3356be5d35b57347f74d7efcfca2ea4b 2009-09-13T17:14:35.707881Z 2887 @@ -1160,7 +1160,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.471762Z e1a50ba850106db6963584c8b99fd74c 2010-06-19T03:54:23.298445Z 3773 @@ -1194,7 +1194,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.483825Z 8dd5e3817f0e2e9e8c8a8a88e03fd090 2009-12-06T10:28:20.099964Z 3123 @@ -1228,7 +1228,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.507762Z 68dda2425484afbc3289b19b0af6c11b 2009-09-13T17:14:35.707881Z 2887 @@ -1262,7 +1262,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.507762Z d7f9177ff34693e1a7cfecd0cbe54a4d 2009-09-13T17:14:35.707881Z 2887 @@ -1296,7 +1296,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.471762Z 3f0d1a0fc3ebcd10386f704f30411caa 2009-09-13T17:14:35.707881Z 2887 @@ -1330,7 +1330,7 @@ -2010-07-23T14:49:43.624109Z +2010-09-23T14:37:45.475805Z 68e58d510faac50d9e774a3b231e6bd0 2009-09-13T17:14:35.707881Z 2887 @@ -1364,7 +1364,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.511762Z ea14acc0bf5df9331263c24aa933a721 2010-04-30T11:02:27.973988Z 3705 @@ -1398,7 +1398,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.511762Z 8aa3dd069d03e45cf6a40befaf3ac91f 2009-12-27T11:57:13.519273Z 3254 @@ -1432,7 +1432,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.475805Z 530c6c79db914598316f923400031643 2009-09-13T17:14:35.707881Z 2887 @@ -1466,7 +1466,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.511762Z e2e9a2270cda1fc763b02ca60e6758a3 2010-04-11T12:56:18.077630Z 3632 @@ -1500,7 +1500,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.483825Z 5985280247858f77d45d21b26e65c846 2010-06-30T02:45:34.835470Z 3821 @@ -1534,11 +1534,11 @@ -2010-08-25T15:27:52.586599Z -88e994d8bbc719f7845777d25082a782 -2010-08-08T09:01:25.536716Z -3927 -jbbarth +2010-09-24T12:48:25.791803Z +950344f6f29a4c954bd631c9ab64b447 +2010-09-20T02:55:32.251493Z +4106 +edavis10 has-props @@ -1560,7 +1560,7 @@ -14301 +20070 search_test.rb file @@ -1568,7 +1568,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.507762Z 32ca2cd3b7eedfa62d9b87754e4273ca 2009-09-13T17:14:35.707881Z 2887 @@ -1602,10 +1602,10 @@ -2010-07-23T14:49:43.628127Z -ec549e97ba009695d28b6bf7d1a62442 -2010-05-27T17:16:10.557962Z -3760 +2010-09-24T12:48:25.791803Z +987d196dcce3cb336836d449fd1cbd78 +2010-09-10T03:09:02.311267Z +4072 edavis10 has-props @@ -1628,7 +1628,7 @@ -31477 +35653 custom_value_test.rb file @@ -1636,7 +1636,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.475805Z e08bf636b0f3ecc54432d0bb395c2a5d 2009-10-10T10:16:00.250819Z 2905 @@ -1670,7 +1670,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.503764Z ed7eec76d8a869dfce4215fc249607bf 2010-04-30T09:57:58.536766Z 3700 @@ -1704,10 +1704,10 @@ -2010-08-25T15:27:52.586599Z -55e60d6f281a63b738acbc756170d544 -2010-08-03T16:01:53.564278Z -3907 +2010-09-24T12:48:25.791803Z +53a7d37c2d3f37d4bd092f325cd8d9ac +2010-09-20T23:17:51.402972Z +4167 edavis10 has-props @@ -1730,7 +1730,7 @@ -13115 +13583 news_test.rb file @@ -1738,7 +1738,7 @@ -2010-07-23T14:49:43.628127Z +2010-09-23T14:37:45.503764Z 6b43ef906ed80cc6a8e878c03d52ff53 2009-09-13T17:14:35.707881Z 2887 @@ -1772,7 +1772,7 @@ -2010-07-23T14:49:43.632158Z +2010-09-23T14:37:45.511762Z 7bcef4f9729fe09696f6ef878c6989dd 2009-09-20T14:06:57.257282Z 2895 @@ -1806,7 +1806,7 @@ -2010-07-23T14:49:43.632158Z +2010-09-23T14:37:45.475805Z c2e6042c8a03b41f1b6efe0e0b1c8df1 2009-09-13T17:14:35.707881Z 2887 @@ -1840,7 +1840,7 @@ -2010-07-23T14:49:43.632158Z +2010-09-23T14:37:45.507762Z b53999e1c089a0c5bbc8dfedb77cf761 2009-09-20T14:06:57.257282Z 2895 @@ -1874,7 +1874,7 @@ -2010-07-23T14:49:43.632158Z +2010-09-23T14:37:45.507762Z 27440b61f82014e00e991b4f00595ae5 2009-10-18T22:25:00.956502Z 2930 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/issue_test.rb.svn-base --- a/test/unit/.svn/text-base/issue_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/issue_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -510,6 +510,28 @@ assert !Issue.new(:due_date => nil).overdue? assert !Issue.new(:due_date => 1.day.ago.to_date, :status => IssueStatus.find(:first, :conditions => {:is_closed => true})).overdue? end + + context "#behind_schedule?" do + should "be false if the issue has no start_date" do + assert !Issue.new(:start_date => nil, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule? + end + + should "be false if the issue has no end_date" do + assert !Issue.new(:start_date => 1.day.from_now.to_date, :due_date => nil, :done_ratio => 0).behind_schedule? + end + + should "be false if the issue has more done than it's calendar time" do + assert !Issue.new(:start_date => 50.days.ago.to_date, :due_date => 50.days.from_now.to_date, :done_ratio => 90).behind_schedule? + end + + should "be true if the issue hasn't been started at all" do + assert Issue.new(:start_date => 1.day.ago.to_date, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule? + end + + should "be true if the issue has used more calendar time than it's done ratio" do + assert Issue.new(:start_date => 100.days.ago.to_date, :due_date => Date.today, :done_ratio => 90).behind_schedule? + end + end def test_assignable_users assert_kind_of User, Issue.find(1).assignable_users.first diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/mailer_test.rb.svn-base --- a/test/unit/.svn/text-base/mailer_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/mailer_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -355,6 +355,16 @@ assert_equal '1 issue(s) due in the next 42 days', mail.subject end + def test_reminders_for_users + Mailer.reminders(:days => 42, :users => ['5']) + assert_equal 0, ActionMailer::Base.deliveries.size # No mail for dlopper + Mailer.reminders(:days => 42, :users => ['3']) + assert_equal 1, ActionMailer::Base.deliveries.size # No mail for dlopper + mail = ActionMailer::Base.deliveries.last + assert mail.bcc.include?('dlopper@somenet.foo') + assert mail.body.include?('Bug #3: Error 281 when updating a recipe') + end + def last_email mail = ActionMailer::Base.deliveries.last assert_not_nil mail diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/project_test.rb.svn-base --- a/test/unit/.svn/text-base/project_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/project_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -842,4 +842,122 @@ end + context "#start_date" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + should "be nil if there are no issues on the project" do + assert_nil @project.start_date + end + + should "be nil if issue tracking is disabled" do + Issue.generate_for_project!(@project, :start_date => Date.today) + @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy} + @project.reload + + assert_nil @project.start_date + end + + should "be the earliest start date of it's issues" do + early = 7.days.ago.to_date + Issue.generate_for_project!(@project, :start_date => Date.today) + Issue.generate_for_project!(@project, :start_date => early) + + assert_equal early, @project.start_date + end + + end + + context "#due_date" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + should "be nil if there are no issues on the project" do + assert_nil @project.due_date + end + + should "be nil if issue tracking is disabled" do + Issue.generate_for_project!(@project, :due_date => Date.today) + @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy} + @project.reload + + assert_nil @project.due_date + end + + should "be the latest due date of it's issues" do + future = 7.days.from_now.to_date + Issue.generate_for_project!(@project, :due_date => future) + Issue.generate_for_project!(@project, :due_date => Date.today) + + assert_equal future, @project.due_date + end + + should "be the latest due date of it's versions" do + future = 7.days.from_now.to_date + @project.versions << Version.generate!(:effective_date => future) + @project.versions << Version.generate!(:effective_date => Date.today) + + + assert_equal future, @project.due_date + + end + + should "pick the latest date from it's issues and versions" do + future = 7.days.from_now.to_date + far_future = 14.days.from_now.to_date + Issue.generate_for_project!(@project, :due_date => far_future) + @project.versions << Version.generate!(:effective_date => future) + + assert_equal far_future, @project.due_date + end + + end + + context "Project#completed_percent" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + context "no versions" do + should "be 100" do + assert_equal 100, @project.completed_percent + end + end + + context "with versions" do + should "return 0 if the versions have no issues" do + Version.generate!(:project => @project) + Version.generate!(:project => @project) + + assert_equal 0, @project.completed_percent + end + + should "return 100 if the version has only closed issues" do + v1 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('Closed'), :fixed_version => v1) + v2 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('Closed'), :fixed_version => v2) + + assert_equal 100, @project.completed_percent + end + + should "return the averaged completed percent of the versions (not weighted)" do + v1 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('New'), :estimated_hours => 10, :done_ratio => 50, :fixed_version => v1) + v2 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('New'), :estimated_hours => 10, :done_ratio => 50, :fixed_version => v2) + + assert_equal 50, @project.completed_percent + end + + end + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/query_test.rb.svn-base --- a/test/unit/.svn/text-base/query_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/query_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -48,6 +48,16 @@ :conditions => query.statement end + def assert_find_issues_with_query_is_successful(query) + assert_nothing_raised do + find_issues_with_query(query) + end + end + + def assert_query_statement_includes(query, condition) + assert query.statement.include?(condition), "Query statement condition not found in: #{query.statement}" + end + def test_query_should_allow_shared_versions_for_a_project_query subproject_version = Version.find(4) query = Query.new(:project => Project.find(1), :name => '_') @@ -362,11 +372,153 @@ end context "#available_filters" do + setup do + @query = Query.new(:name => "_") + end + should "include users of visible projects in cross-project view" do - query = Query.new(:name => "_") - users = query.available_filters["assigned_to_id"] + users = @query.available_filters["assigned_to_id"] assert_not_nil users assert users[:values].map{|u|u[1]}.include?("3") end + + context "'member_of_group' filter" do + should "be present" do + assert @query.available_filters.keys.include?("member_of_group") + end + + should "be an optional list" do + assert_equal :list_optional, @query.available_filters["member_of_group"][:type] + end + + should "have a list of the groups as values" do + Group.destroy_all # No fixtures + group1 = Group.generate!.reload + group2 = Group.generate!.reload + + expected_group_list = [ + [group1.name, group1.id], + [group2.name, group2.id] + ] + assert_equal expected_group_list.sort, @query.available_filters["member_of_group"][:values].sort + end + + end + + context "'assigned_to_role' filter" do + should "be present" do + assert @query.available_filters.keys.include?("assigned_to_role") + end + + should "be an optional list" do + assert_equal :list_optional, @query.available_filters["assigned_to_role"][:type] + end + + should "have a list of the Roles as values" do + assert @query.available_filters["assigned_to_role"][:values].include?(['Manager',1]) + assert @query.available_filters["assigned_to_role"][:values].include?(['Developer',2]) + assert @query.available_filters["assigned_to_role"][:values].include?(['Reporter',3]) + end + + should "not include the built in Roles as values" do + assert ! @query.available_filters["assigned_to_role"][:values].include?(['Non member',4]) + assert ! @query.available_filters["assigned_to_role"][:values].include?(['Anonymous',5]) + end + + end + end + + context "#statement" do + context "with 'member_of_group' filter" do + setup do + Group.destroy_all # No fixtures + @user_in_group = User.generate! + @second_user_in_group = User.generate! + @user_in_group2 = User.generate! + @user_not_in_group = User.generate! + + @group = Group.generate!.reload + @group.users << @user_in_group + @group.users << @second_user_in_group + + @group2 = Group.generate!.reload + @group2.users << @user_in_group2 + + end + + should "search assigned to for users in the group" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '=', [@group.id.to_s]) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search not assigned to any group member (none)" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '!*', ['']) + + # Users not in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')" + assert_find_issues_with_query_is_successful @query + + end + + should "search assigned to any group member (all)" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '*', ['']) + + # Only users in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')" + assert_find_issues_with_query_is_successful @query + + end + end + + context "with 'assigned_to_role' filter" do + setup do + # No fixtures + MemberRole.delete_all + Member.delete_all + Role.delete_all + + @manager_role = Role.generate!(:name => 'Manager') + @developer_role = Role.generate!(:name => 'Developer') + + @project = Project.generate! + @manager = User.generate! + @developer = User.generate! + @boss = User.generate! + User.add_to_project(@manager, @project, @manager_role) + User.add_to_project(@developer, @project, @developer_role) + User.add_to_project(@boss, @project, [@manager_role, @developer_role]) + end + + should "search assigned to for users with the Role" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search assigned to for users not assigned to any Role (none)" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '!*', ['']) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search assigned to for users assigned to any Role (all)" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '*', ['']) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + end + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/time_entry_test.rb.svn-base --- a/test/unit/.svn/text-base/time_entry_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/time_entry_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -48,4 +48,52 @@ def test_hours_should_default_to_nil assert_nil TimeEntry.new.hours end + + context "#earilest_date_for_project" do + setup do + User.current = nil + @public_project = Project.generate!(:is_public => true) + @issue = Issue.generate_for_project!(@public_project) + TimeEntry.generate!(:spent_on => '2010-01-01', + :issue => @issue, + :project => @public_project) + end + + context "without a project" do + should "return the lowest spent_on value that is visible to the current user" do + assert_equal "2007-03-12", TimeEntry.earilest_date_for_project.to_s + end + end + + context "with a project" do + should "return the lowest spent_on value that is visible to the current user for that project and it's subprojects only" do + assert_equal "2010-01-01", TimeEntry.earilest_date_for_project(@public_project).to_s + end + end + + end + + context "#latest_date_for_project" do + setup do + User.current = nil + @public_project = Project.generate!(:is_public => true) + @issue = Issue.generate_for_project!(@public_project) + TimeEntry.generate!(:spent_on => '2010-01-01', + :issue => @issue, + :project => @public_project) + end + + context "without a project" do + should "return the highest spent_on value that is visible to the current user" do + assert_equal "2010-01-01", TimeEntry.latest_date_for_project.to_s + end + end + + context "with a project" do + should "return the highest spent_on value that is visible to the current user for that project and it's subprojects only" do + project = Project.find(1) + assert_equal "2007-04-22", TimeEntry.latest_date_for_project(project).to_s + end + end + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/user_test.rb.svn-base --- a/test/unit/.svn/text-base/user_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/user_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -355,6 +355,49 @@ end + context "#allowed_to?" do + context "with a unique project" do + should "return false if project is archived" do + project = Project.find(1) + Project.any_instance.stubs(:status).returns(Project::STATUS_ARCHIVED) + assert ! @admin.allowed_to?(:view_issues, Project.find(1)) + end + + should "return false if related module is disabled" do + project = Project.find(1) + project.enabled_module_names = ["issue_tracking"] + assert @admin.allowed_to?(:add_issues, project) + assert ! @admin.allowed_to?(:view_wiki_pages, project) + end + + should "authorize nearly everything for admin users" do + project = Project.find(1) + assert ! @admin.member_of?(project) + %w(edit_issues delete_issues manage_news manage_documents manage_wiki).each do |p| + assert @admin.allowed_to?(p.to_sym, project) + end + end + + should "authorize normal users depending on their roles" do + project = Project.find(1) + assert @jsmith.allowed_to?(:delete_messages, project) #Manager + assert ! @dlopper.allowed_to?(:delete_messages, project) #Developper + end + end + + context "with options[:global]" do + should "authorize if user has at least one role that has this permission" do + @dlopper2 = User.find(5) #only Developper on a project, not Manager anywhere + @anonymous = User.find(6) + assert @jsmith.allowed_to?(:delete_issue_watchers, nil, :global => true) + assert ! @dlopper2.allowed_to?(:delete_issue_watchers, nil, :global => true) + assert @dlopper2.allowed_to?(:add_issues, nil, :global => true) + assert ! @anonymous.allowed_to?(:add_issues, nil, :global => true) + assert @anonymous.allowed_to?(:view_issues, nil, :global => true) + end + end + end + if Object.const_defined?(:OpenID) def test_setting_identity_url diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/.svn/text-base/version_test.rb.svn-base --- a/test/unit/.svn/text-base/version_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/.svn/text-base/version_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -104,7 +104,57 @@ assert_progress_equal (25.0*0.2 + 25.0*1 + 10.0*0.3 + 40.0*0.1)/100.0*100, v.completed_pourcent assert_progress_equal 25.0/100.0*100, v.closed_pourcent end - + + context "#behind_schedule?" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + + @version = Version.generate!(:project => @project, :effective_date => nil) + end + + should "be false if there are no issues assigned" do + @version.update_attribute(:effective_date, Date.yesterday) + assert_equal false, @version.behind_schedule? + end + + should "be false if there is no effective_date" do + assert_equal false, @version.behind_schedule? + end + + should "be false if all of the issues are ahead of schedule" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60), # 14 day span, 60% done, 50% time left + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left + ] + assert_equal 60, @version.completed_pourcent + assert_equal false, @version.behind_schedule? + end + + should "be true if any of the issues are behind schedule" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60), # 14 day span, 60% done, 50% time left + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 20) # 14 day span, 20% done, 50% time left + ] + assert_equal 40, @version.completed_pourcent + assert_equal true, @version.behind_schedule? + end + + should "be false if all of the issues are complete" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)), # 7 day span + Issue.generate_for_project!(@project, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span + ] + assert_equal 100, @version.completed_pourcent + assert_equal false, @version.behind_schedule? + + end + end + context "#estimated_hours" do setup do @version = Version.create!(:project_id => 1, :name => '#estimated_hours') diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/helpers/.svn/all-wcprops --- a/test/unit/helpers/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/helpers/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 42 -/svn/!svn/ver/3936/trunk/test/unit/helpers +/svn/!svn/ver/4072/trunk/test/unit/helpers END custom_fields_helper_test.rb K 25 @@ -25,7 +25,7 @@ K 25 svn:wc:ra_dav:version-url V 69 -/svn/!svn/ver/3924/trunk/test/unit/helpers/application_helper_test.rb +/svn/!svn/ver/4072/trunk/test/unit/helpers/application_helper_test.rb END search_helper_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/helpers/.svn/entries --- a/test/unit/helpers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/helpers http://redmine.rubyforge.org/svn -2010-08-11T14:42:10.119704Z -3936 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.352096Z +2010-09-23T14:37:45.483825Z 2539cee92860ac8ec7abe2016b90b951 2009-03-01T10:00:52.175090Z 2541 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.352096Z +2010-09-23T14:37:45.483825Z f0de9a2559bb9dcfdf3c35436c737ee8 2009-10-21T22:34:39.509319Z 2948 @@ -100,7 +100,7 @@ -2010-08-25T15:27:52.314099Z +2010-09-23T14:37:45.483825Z 2c72db60f744a7dec4600df692c40766 2010-08-11T14:42:10.119704Z 3936 @@ -134,11 +134,11 @@ -2010-08-25T15:27:52.314099Z -d37c23ba9f68238d54ddfc3b5bf3b55b -2010-08-08T07:07:20.961363Z -3924 -jbbarth +2010-09-24T12:48:25.635718Z +7f682835f4e55f0f74513fb50a363168 +2010-09-10T03:09:02.311267Z +4072 +edavis10 has-props @@ -160,7 +160,7 @@ -28245 +29071 search_helper_test.rb file @@ -168,7 +168,7 @@ -2010-07-23T14:49:43.356096Z +2010-09-23T14:37:45.483825Z 09734417b458d837868bbd714ae2e011 2009-10-10T15:00:28.619200Z 2910 @@ -202,7 +202,7 @@ -2010-07-23T14:49:43.356096Z +2010-09-23T14:37:45.483825Z 204d96fe44cd80c7a1e4cbbd9de39cea 2009-09-20T14:06:57.257282Z 2895 @@ -236,7 +236,7 @@ -2010-07-23T14:49:43.356096Z +2010-09-23T14:37:45.483825Z 576e6ed0c8e4b7e69440c1f99b0b91a4 2009-12-09T09:22:16.985172Z 3140 @@ -270,7 +270,7 @@ -2010-07-23T14:49:43.356096Z +2010-09-23T14:37:45.483825Z 8ef7e3dfba1c93a07802c7fa579b6013 2010-03-08T16:47:47.660186Z 3552 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base --- a/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -17,10 +17,7 @@ require File.dirname(__FILE__) + '/../../test_helper' -class ApplicationHelperTest < HelperTestCase - include ApplicationHelper - include ActionView::Helpers::TextHelper - include ActionView::Helpers::DateHelper +class ApplicationHelperTest < ActionView::TestCase fixtures :projects, :roles, :enabled_modules, :users, :repositories, :changesets, @@ -33,6 +30,35 @@ def setup super end + + context "#link_to_if_authorized" do + context "authorized user" do + should "be tested" + end + + context "unauthorized user" do + should "be tested" + end + + should "allow using the :controller and :action for the target link" do + User.current = User.find_by_login('admin') + + @project = Issue.first.project # Used by helper + response = link_to_if_authorized("By controller/action", + {:controller => 'issues', :action => 'edit', :id => Issue.first.id}) + assert_match /href/, response + end + + should "allow using the url for the target link" do + User.current = User.find_by_login('admin') + + @project = Issue.first.project # Used by helper + response = link_to_if_authorized("By url", + new_issue_move_path(:id => Issue.first.id)) + assert_match /href/, response + end + + end def test_auto_links to_test = { @@ -575,7 +601,7 @@ # turn off avatars Setting.gravatar_enabled = '0' - assert_nil avatar(User.find_by_mail('jsmith@somenet.foo')) + assert_equal '', avatar(User.find_by_mail('jsmith@somenet.foo')) end def test_link_to_user diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/helpers/application_helper_test.rb --- a/test/unit/helpers/application_helper_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/helpers/application_helper_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -17,10 +17,7 @@ require File.dirname(__FILE__) + '/../../test_helper' -class ApplicationHelperTest < HelperTestCase - include ApplicationHelper - include ActionView::Helpers::TextHelper - include ActionView::Helpers::DateHelper +class ApplicationHelperTest < ActionView::TestCase fixtures :projects, :roles, :enabled_modules, :users, :repositories, :changesets, @@ -33,6 +30,35 @@ def setup super end + + context "#link_to_if_authorized" do + context "authorized user" do + should "be tested" + end + + context "unauthorized user" do + should "be tested" + end + + should "allow using the :controller and :action for the target link" do + User.current = User.find_by_login('admin') + + @project = Issue.first.project # Used by helper + response = link_to_if_authorized("By controller/action", + {:controller => 'issues', :action => 'edit', :id => Issue.first.id}) + assert_match /href/, response + end + + should "allow using the url for the target link" do + User.current = User.find_by_login('admin') + + @project = Issue.first.project # Used by helper + response = link_to_if_authorized("By url", + new_issue_move_path(:id => Issue.first.id)) + assert_match /href/, response + end + + end def test_auto_links to_test = { @@ -575,7 +601,7 @@ # turn off avatars Setting.gravatar_enabled = '0' - assert_nil avatar(User.find_by_mail('jsmith@somenet.foo')) + assert_equal '', avatar(User.find_by_mail('jsmith@somenet.foo')) end def test_link_to_user diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/issue_test.rb --- a/test/unit/issue_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/issue_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -510,6 +510,28 @@ assert !Issue.new(:due_date => nil).overdue? assert !Issue.new(:due_date => 1.day.ago.to_date, :status => IssueStatus.find(:first, :conditions => {:is_closed => true})).overdue? end + + context "#behind_schedule?" do + should "be false if the issue has no start_date" do + assert !Issue.new(:start_date => nil, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule? + end + + should "be false if the issue has no end_date" do + assert !Issue.new(:start_date => 1.day.from_now.to_date, :due_date => nil, :done_ratio => 0).behind_schedule? + end + + should "be false if the issue has more done than it's calendar time" do + assert !Issue.new(:start_date => 50.days.ago.to_date, :due_date => 50.days.from_now.to_date, :done_ratio => 90).behind_schedule? + end + + should "be true if the issue hasn't been started at all" do + assert Issue.new(:start_date => 1.day.ago.to_date, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule? + end + + should "be true if the issue has used more calendar time than it's done ratio" do + assert Issue.new(:start_date => 100.days.ago.to_date, :due_date => Date.today, :done_ratio => 90).behind_schedule? + end + end def test_assignable_users assert_kind_of User, Issue.find(1).assignable_users.first diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/.svn/all-wcprops --- a/test/unit/lib/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 38 -/svn/!svn/ver/4013/trunk/test/unit/lib +/svn/!svn/ver/4072/trunk/test/unit/lib END redmine_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/.svn/entries --- a/test/unit/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib http://redmine.rubyforge.org/svn -2010-08-22T18:42:00.112555Z -4013 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -35,7 +35,7 @@ -2010-08-25T15:27:52.490493Z +2010-09-23T14:37:45.503764Z 8adb9955639998853d35f1a1181cd654 2010-08-22T18:42:00.112555Z 4013 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/.svn/all-wcprops --- a/test/unit/lib/redmine/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/3926/trunk/test/unit/lib/redmine +/svn/!svn/ver/4072/trunk/test/unit/lib/redmine END menu_manager_test.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/.svn/entries --- a/test/unit/lib/redmine/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine http://redmine.rubyforge.org/svn -2010-08-08T07:07:38.841875Z -3926 -jbbarth +2010-09-10T03:09:02.311267Z +4072 +edavis10 @@ -32,7 +32,7 @@ -2010-08-25T15:27:52.366576Z +2010-09-23T14:37:45.495799Z ac6fa3504bb54b2f4279e3fb031b8366 2010-08-08T07:07:38.841875Z 3926 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.495799Z e77b70f296a1c5879f34d10c097bb45c 2009-12-16T02:07:46.084185Z 3175 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.499807Z 720444ae100b378352bff8ea8494b96f 2010-02-17T20:47:50.603139Z 3446 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.491768Z f6356bf322f1fd30abbdaedc92e615f6 2009-11-12T22:00:29.290944Z 3034 @@ -168,7 +168,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.491768Z 6fea1c3686a222539646f8c8efd7084b 2009-12-21T02:24:56.260725Z 3211 @@ -205,7 +205,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.491768Z 199d1a545256f49d0ac0dd5daa732322 2009-09-13T17:14:35.707881Z 2887 @@ -233,13 +233,16 @@ 1796 +helpers +dir + mime_type_test.rb file -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.495799Z 48babd3529b798dd5170d1214e8c732a 2009-09-13T17:14:35.707881Z 2887 @@ -273,7 +276,7 @@ -2010-07-23T14:49:43.480094Z +2010-09-23T14:37:45.499807Z a17bdd131369acd640ce61013ce4233b 2009-11-11T13:25:53.648186Z 3028 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/helpers/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unit/lib/redmine/helpers/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/!svn/ver/4072/trunk/test/unit/lib/redmine/helpers +END +gantt_test.rb +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/!svn/ver/4072/trunk/test/unit/lib/redmine/helpers/gantt_test.rb +END diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/helpers/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unit/lib/redmine/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,62 @@ +10 + +dir +4173 +http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/helpers +http://redmine.rubyforge.org/svn + + + +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + +e93f8b46-1217-0410-a6f0-8f06a7374b81 + +gantt_test.rb +file + + + + +2010-09-24T12:48:25.702613Z +1c573df96cc30534c8f3b66be599cce6 +2010-09-10T03:09:02.311267Z +4072 +edavis10 + + + + + + + + + + + + + + + + + + + + + +25186 + diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/helpers/.svn/text-base/gantt_test.rb.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unit/lib/redmine/helpers/.svn/text-base/gantt_test.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,703 @@ +# redMine - project management software +# Copyright (C) 2006-2008 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. + +require File.dirname(__FILE__) + '/../../../../test_helper' + +class Redmine::Helpers::GanttTest < ActiveSupport::TestCase + # Utility methods and classes so assert_select can be used. + class GanttViewTest < ActionView::Base + include ActionView::Helpers::UrlHelper + include ActionView::Helpers::TextHelper + include ActionController::UrlWriter + include ApplicationHelper + include ProjectsHelper + include IssuesHelper + + def self.default_url_options + {:only_path => true } + end + + end + + include ActionController::Assertions::SelectorAssertions + + def setup + @response = ActionController::TestResponse.new + # Fixtures + ProjectCustomField.delete_all + Project.destroy_all + + User.current = User.find(1) + end + + def build_view + @view = GanttViewTest.new + end + + def html_document + HTML::Document.new(@response.body) + end + + # Creates a Gantt chart for a 4 week span + def create_gantt(project=Project.generate!) + @project = project + @gantt = Redmine::Helpers::Gantt.new + @gantt.project = @project + @gantt.query = Query.generate_default!(:project => @project) + @gantt.view = build_view + @gantt.instance_variable_set('@date_from', 2.weeks.ago.to_date) + @gantt.instance_variable_set('@date_to', 2.weeks.from_now.to_date) + end + + context "#number_of_rows" do + + context "with one project" do + should "return the number of rows just for that project" + end + + context "with no project" do + should "return the total number of rows for all the projects, resursively" + end + + end + + context "#number_of_rows_on_project" do + setup do + create_gantt + end + + should "clear the @query.project so cross-project issues and versions can be counted" do + assert @gantt.query.project + @gantt.number_of_rows_on_project(@project) + assert_nil @gantt.query.project + end + + should "count 1 for the project itself" do + assert_equal 1, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of issues without a version" do + @project.issues << Issue.generate_for_project!(@project, :fixed_version => nil) + assert_equal 2, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of versions" do + @project.versions << Version.generate! + @project.versions << Version.generate! + assert_equal 3, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of issues on versions, including cross-project" do + version = Version.generate! + @project.versions << version + @project.issues << Issue.generate_for_project!(@project, :fixed_version => version) + + assert_equal 3, @gantt.number_of_rows_on_project(@project) + end + + should "recursive and count the number of rows on each subproject" do + @project.versions << Version.generate! # +1 + + @subproject = Project.generate!(:enabled_module_names => ['issue_tracking']) # +1 + @subproject.set_parent!(@project) + @subproject.issues << Issue.generate_for_project!(@subproject) # +1 + @subproject.issues << Issue.generate_for_project!(@subproject) # +1 + + @subsubproject = Project.generate!(:enabled_module_names => ['issue_tracking']) # +1 + @subsubproject.set_parent!(@subproject) + @subsubproject.issues << Issue.generate_for_project!(@subsubproject) # +1 + + assert_equal 7, @gantt.number_of_rows_on_project(@project) # +1 for self + end + end + + # TODO: more of an integration test + context "#subjects" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date, :sharing => 'none') + @project.versions << @version + + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + + @response.body = @gantt.subjects + end + + context "project" do + should "be rendered" do + assert_select "div.project-name a", /#{@project.name}/ + end + + should "have an indent of 4" do + assert_select "div.project-name[style*=left:4px]" + end + end + + context "version" do + should "be rendered" do + assert_select "div.version-name a", /#{@version.name}/ + end + + should "be indented 24 (one level)" do + assert_select "div.version-name[style*=left:24px]" + end + end + + context "issue" do + should "be rendered" do + assert_select "div.issue-subject", /#{@issue.subject}/ + end + + should "be indented 44 (two levels)" do + assert_select "div.issue-subject[style*=left:44px]" + end + end + end + + context "#lines" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + + @response.body = @gantt.lines + end + + context "project" do + should "be rendered" do + assert_select "div.project_todo" + assert_select "div.project-line.starting" + assert_select "div.project-line.ending" + assert_select "div.label.project-name", /#{@project.name}/ + end + end + + context "version" do + should "be rendered" do + assert_select "div.milestone_todo" + assert_select "div.milestone.starting" + assert_select "div.milestone.ending" + assert_select "div.label.version-name", /#{@version.name}/ + end + end + + context "issue" do + should "be rendered" do + assert_select "div.task_todo" + assert_select "div.label.issue-name", /#{@issue.done_ratio}/ + assert_select "div.tooltip", /#{@issue.subject}/ + end + end + end + + context "#render_project" do + should "be tested" + end + + context "#render_issues" do + should "be tested" + end + + context "#render_version" do + should "be tested" + end + + context "#subject_for_project" do + setup do + create_gantt + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_project(@project, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the project name" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select 'div', :text => /#{@project.name}/ + end + + should "include a link to the project" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select 'a[href=?]', "/projects/#{@project.identifier}", :text => /#{@project.name}/ + end + + should "style overdue projects" do + @project.enabled_module_names = [:issue_tracking] + @project.versions << Version.generate!(:effective_date => Date.yesterday) + + assert @project.overdue?, "Need an overdue project for this test" + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + + assert_select 'div span.project-overdue' + end + + + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_project" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => Date.yesterday) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_todo[style*=left:52px]" + end + + should "be the total width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_todo[style*=width:31px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_late[style*=left:52px]" + end + + should "be the total delayed width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_done[style*=left:52px]" + end + + should "Be the total done width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_done[style*=left:52px]" + end + end + + context "starting marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_from', Date.today) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.starting", false + end + + should "appear at the starting point" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.starting[style*=left:52px]" + end + end + + context "ending marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.ending", false + + end + + should "appear at the end of the date range" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.ending[style*=left:84px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /#{@project.name}/ + end + + should "show the project name" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /#{@project.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /0%/ + end + end + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#subject_for_version" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => Date.yesterday) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#subject_for_version", + :tracker => @tracker, + :project => @project, + :start_date => Date.today) + + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_version(@version, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the version name" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select 'div', :text => /#{@version.name}/ + end + + should "include a link to the version" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select 'a[href=?]', Regexp.escape("/versions/show/#{@version.to_param}"), :text => /#{@version.name}/ + end + + should "style late versions" do + assert @version.overdue?, "Need an overdue version for this test" + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + + assert_select 'div span.version-behind-schedule' + end + + should "style behind schedule versions" do + assert @version.behind_schedule?, "Need a behind schedule version for this test" + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + + assert_select 'div span.version-behind-schedule' + end + end + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_version" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_todo[style*=left:52px]" + end + + should "be the total width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_todo[style*=width:31px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_late[style*=left:52px]" + end + + should "be the total delayed width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_done[style*=left:52px]" + end + + should "Be the total done width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_done[style*=left:52px]" + end + end + + context "starting marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_from', Date.today) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.starting", false + end + + should "appear at the starting point" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.starting[style*=left:52px]" + end + end + + context "ending marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.ending", false + + end + + should "appear at the end of the date range" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.ending[style*=left:84px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /#{@version.name}/ + end + + should "show the version name" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /#{@version.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /30%/ + end + end + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#subject_for_issue" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + + @issue = Issue.generate!(:subject => "gantt#subject_for_issue", + :tracker => @tracker, + :project => @project, + :start_date => 3.days.ago.to_date, + :due_date => Date.yesterday) + @project.issues << @issue + + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the issue subject" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select 'div', :text => /#{@issue.subject}/ + end + + should "include a link to the issue" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select 'a[href=?]', Regexp.escape("/issues/#{@issue.to_param}"), :text => /#{@tracker.name} ##{@issue.id}/ + end + + should "style overdue issues" do + assert @issue.overdue?, "Need an overdue issue for this test" + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + + assert_select 'div span.issue-overdue' + end + + end + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_issue" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_todo[style*=left:52px]" + end + + should "be the total width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_todo[style*=width:34px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_late[style*=left:52px]" + end + + should "be the total delayed width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_done[style*=left:52px]" + end + + should "Be the total done width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_done[style*=left:52px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name" + end + + should "show the issue status" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name", /#{@issue.status.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name", /30%/ + end + end + end + + should "have an issue tooltip" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.tooltip", /#{@issue.subject}/ + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#to_image" do + should "be tested" + end + + context "#to_pdf" do + should "be tested" + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/helpers/gantt_test.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/unit/lib/redmine/helpers/gantt_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -0,0 +1,703 @@ +# redMine - project management software +# Copyright (C) 2006-2008 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. + +require File.dirname(__FILE__) + '/../../../../test_helper' + +class Redmine::Helpers::GanttTest < ActiveSupport::TestCase + # Utility methods and classes so assert_select can be used. + class GanttViewTest < ActionView::Base + include ActionView::Helpers::UrlHelper + include ActionView::Helpers::TextHelper + include ActionController::UrlWriter + include ApplicationHelper + include ProjectsHelper + include IssuesHelper + + def self.default_url_options + {:only_path => true } + end + + end + + include ActionController::Assertions::SelectorAssertions + + def setup + @response = ActionController::TestResponse.new + # Fixtures + ProjectCustomField.delete_all + Project.destroy_all + + User.current = User.find(1) + end + + def build_view + @view = GanttViewTest.new + end + + def html_document + HTML::Document.new(@response.body) + end + + # Creates a Gantt chart for a 4 week span + def create_gantt(project=Project.generate!) + @project = project + @gantt = Redmine::Helpers::Gantt.new + @gantt.project = @project + @gantt.query = Query.generate_default!(:project => @project) + @gantt.view = build_view + @gantt.instance_variable_set('@date_from', 2.weeks.ago.to_date) + @gantt.instance_variable_set('@date_to', 2.weeks.from_now.to_date) + end + + context "#number_of_rows" do + + context "with one project" do + should "return the number of rows just for that project" + end + + context "with no project" do + should "return the total number of rows for all the projects, resursively" + end + + end + + context "#number_of_rows_on_project" do + setup do + create_gantt + end + + should "clear the @query.project so cross-project issues and versions can be counted" do + assert @gantt.query.project + @gantt.number_of_rows_on_project(@project) + assert_nil @gantt.query.project + end + + should "count 1 for the project itself" do + assert_equal 1, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of issues without a version" do + @project.issues << Issue.generate_for_project!(@project, :fixed_version => nil) + assert_equal 2, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of versions" do + @project.versions << Version.generate! + @project.versions << Version.generate! + assert_equal 3, @gantt.number_of_rows_on_project(@project) + end + + should "count the number of issues on versions, including cross-project" do + version = Version.generate! + @project.versions << version + @project.issues << Issue.generate_for_project!(@project, :fixed_version => version) + + assert_equal 3, @gantt.number_of_rows_on_project(@project) + end + + should "recursive and count the number of rows on each subproject" do + @project.versions << Version.generate! # +1 + + @subproject = Project.generate!(:enabled_module_names => ['issue_tracking']) # +1 + @subproject.set_parent!(@project) + @subproject.issues << Issue.generate_for_project!(@subproject) # +1 + @subproject.issues << Issue.generate_for_project!(@subproject) # +1 + + @subsubproject = Project.generate!(:enabled_module_names => ['issue_tracking']) # +1 + @subsubproject.set_parent!(@subproject) + @subsubproject.issues << Issue.generate_for_project!(@subsubproject) # +1 + + assert_equal 7, @gantt.number_of_rows_on_project(@project) # +1 for self + end + end + + # TODO: more of an integration test + context "#subjects" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date, :sharing => 'none') + @project.versions << @version + + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + + @response.body = @gantt.subjects + end + + context "project" do + should "be rendered" do + assert_select "div.project-name a", /#{@project.name}/ + end + + should "have an indent of 4" do + assert_select "div.project-name[style*=left:4px]" + end + end + + context "version" do + should "be rendered" do + assert_select "div.version-name a", /#{@version.name}/ + end + + should "be indented 24 (one level)" do + assert_select "div.version-name[style*=left:24px]" + end + end + + context "issue" do + should "be rendered" do + assert_select "div.issue-subject", /#{@issue.subject}/ + end + + should "be indented 44 (two levels)" do + assert_select "div.issue-subject[style*=left:44px]" + end + end + end + + context "#lines" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + + @response.body = @gantt.lines + end + + context "project" do + should "be rendered" do + assert_select "div.project_todo" + assert_select "div.project-line.starting" + assert_select "div.project-line.ending" + assert_select "div.label.project-name", /#{@project.name}/ + end + end + + context "version" do + should "be rendered" do + assert_select "div.milestone_todo" + assert_select "div.milestone.starting" + assert_select "div.milestone.ending" + assert_select "div.label.version-name", /#{@version.name}/ + end + end + + context "issue" do + should "be rendered" do + assert_select "div.task_todo" + assert_select "div.label.issue-name", /#{@issue.done_ratio}/ + assert_select "div.tooltip", /#{@issue.subject}/ + end + end + end + + context "#render_project" do + should "be tested" + end + + context "#render_issues" do + should "be tested" + end + + context "#render_version" do + should "be tested" + end + + context "#subject_for_project" do + setup do + create_gantt + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_project(@project, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the project name" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select 'div', :text => /#{@project.name}/ + end + + should "include a link to the project" do + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + assert_select 'a[href=?]', "/projects/#{@project.identifier}", :text => /#{@project.name}/ + end + + should "style overdue projects" do + @project.enabled_module_names = [:issue_tracking] + @project.versions << Version.generate!(:effective_date => Date.yesterday) + + assert @project.overdue?, "Need an overdue project for this test" + @response.body = @gantt.subject_for_project(@project, {:format => :html}) + + assert_select 'div span.project-overdue' + end + + + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_project" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => Date.yesterday) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_todo[style*=left:52px]" + end + + should "be the total width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_todo[style*=width:31px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_late[style*=left:52px]" + end + + should "be the total delayed width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_done[style*=left:52px]" + end + + should "Be the total done width of the project" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project_done[style*=left:52px]" + end + end + + context "starting marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_from', Date.today) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.starting", false + end + + should "appear at the starting point" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.starting[style*=left:52px]" + end + end + + context "ending marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.ending", false + + end + + should "appear at the end of the date range" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-line.ending[style*=left:84px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /#{@project.name}/ + end + + should "show the project name" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /#{@project.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_project(@project, {:format => :html, :zoom => 4}) + assert_select "div.project-name", /0%/ + end + end + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#subject_for_version" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => Date.yesterday) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#subject_for_version", + :tracker => @tracker, + :project => @project, + :start_date => Date.today) + + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_version(@version, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the version name" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select 'div', :text => /#{@version.name}/ + end + + should "include a link to the version" do + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + assert_select 'a[href=?]', Regexp.escape("/versions/show/#{@version.to_param}"), :text => /#{@version.name}/ + end + + should "style late versions" do + assert @version.overdue?, "Need an overdue version for this test" + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + + assert_select 'div span.version-behind-schedule' + end + + should "style behind schedule versions" do + assert @version.behind_schedule?, "Need a behind schedule version for this test" + @response.body = @gantt.subject_for_version(@version, {:format => :html}) + + assert_select 'div span.version-behind-schedule' + end + end + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_version" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + + @project.issues << Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_todo[style*=left:52px]" + end + + should "be the total width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_todo[style*=width:31px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_late[style*=left:52px]" + end + + should "be the total delayed width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_done[style*=left:52px]" + end + + should "Be the total done width of the version" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone_done[style*=left:52px]" + end + end + + context "starting marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_from', Date.today) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.starting", false + end + + should "appear at the starting point" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.starting[style*=left:52px]" + end + end + + context "ending marker" do + should "not appear if the starting point is off the gantt chart" do + # Shift the date range of the chart + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.ending", false + + end + + should "appear at the end of the date range" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.milestone.ending[style*=left:84px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /#{@version.name}/ + end + + should "show the version name" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /#{@version.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4}) + assert_select "div.version-name", /30%/ + end + end + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#subject_for_issue" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + + @issue = Issue.generate!(:subject => "gantt#subject_for_issue", + :tracker => @tracker, + :project => @project, + :start_date => 3.days.ago.to_date, + :due_date => Date.yesterday) + @project.issues << @issue + + end + + context ":html format" do + should "add an absolute positioned div" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select "div[style*=absolute]" + end + + should "use the indent option to move the div to the right" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html, :indent => 40}) + assert_select "div[style*=left:40]" + end + + should "include the issue subject" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select 'div', :text => /#{@issue.subject}/ + end + + should "include a link to the issue" do + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + assert_select 'a[href=?]', Regexp.escape("/issues/#{@issue.to_param}"), :text => /#{@tracker.name} ##{@issue.id}/ + end + + should "style overdue issues" do + assert @issue.overdue?, "Need an overdue issue for this test" + @response.body = @gantt.subject_for_issue(@issue, {:format => :html}) + + assert_select 'div span.issue-overdue' + end + + end + should "test the PNG format" + should "test the PDF format" + end + + context "#line_for_issue" do + setup do + create_gantt + @project.enabled_module_names = [:issue_tracking] + @tracker = Tracker.generate! + @project.trackers << @tracker + @version = Version.generate!(:effective_date => 1.week.from_now.to_date) + @project.versions << @version + @issue = Issue.generate!(:fixed_version => @version, + :subject => "gantt#line_for_project", + :tracker => @tracker, + :project => @project, + :done_ratio => 30, + :start_date => Date.yesterday, + :due_date => 1.week.from_now.to_date) + @project.issues << @issue + end + + context ":html format" do + context "todo line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_todo[style*=left:52px]" + end + + should "be the total width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_todo[style*=width:34px]" + end + + end + + context "late line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_late[style*=left:52px]" + end + + should "be the total delayed width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_late[style*=width:6px]" + end + end + + context "done line" do + should "start from the starting point on the left" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_done[style*=left:52px]" + end + + should "Be the total done width of the issue" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.task_done[style*=left:52px]" + end + end + + context "status content" do + should "appear at the far left, even if it's far in the past" do + @gantt.instance_variable_set('@date_to', 2.weeks.ago.to_date) + + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name" + end + + should "show the issue status" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name", /#{@issue.status.name}/ + end + + should "show the percent complete" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.issue-name", /30%/ + end + end + end + + should "have an issue tooltip" do + @response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4}) + assert_select "div.tooltip", /#{@issue.subject}/ + end + + should "test the PNG format" + should "test the PDF format" + end + + context "#to_image" do + should "be tested" + end + + context "#to_pdf" do + should "be tested" + end + +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/menu_manager/.svn/entries --- a/test/unit/lib/redmine/menu_manager/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/menu_manager/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/menu_manager http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-08-25T15:27:52.354515Z +2010-09-23T14:37:45.495799Z f711293b27708be59b9a214afebd2301 2010-08-08T07:07:38.841875Z 3926 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.476193Z +2010-09-23T14:37:45.495799Z 39fc6bb354951d8a63ce60d7a8c6f3b9 2009-11-25T05:36:56.757796Z 3092 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.476193Z +2010-09-23T14:37:45.495799Z 36bcd70d121e19e4c51ee3b66120bd7a 2010-02-18T05:01:39.440573Z 3447 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/scm/.svn/entries --- a/test/unit/lib/redmine/scm/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/scm/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/scm/adapters/.svn/entries --- a/test/unit/lib/redmine/scm/adapters/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/scm/adapters/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm/adapters http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.454496Z +2010-09-23T14:37:45.499807Z bd8ceadd53ed4a3d051d65e88c7c9915 2010-05-01T08:32:21.345847Z 3720 @@ -66,7 +66,7 @@ -2010-08-25T15:27:52.338587Z +2010-09-23T14:37:45.499807Z 2a16f983128223e9db99adc3f1fffa75 2010-08-08T07:07:30.284069Z 3925 @@ -100,7 +100,7 @@ -2010-07-23T14:49:43.456096Z +2010-09-23T14:37:45.499807Z 5f323b405262d8aea1c3696721de1b46 2010-03-06T20:35:38.939541Z 3551 @@ -134,7 +134,7 @@ -2010-07-23T14:49:43.456096Z +2010-09-23T14:37:45.499807Z 9c84d86c3d7bdffa6d44a88bc3889baf 2010-03-06T20:35:38.939541Z 3551 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/lib/redmine/wiki_formatting/.svn/entries --- a/test/unit/lib/redmine/wiki_formatting/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/lib/redmine/wiki_formatting/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/wiki_formatting http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:43.460097Z +2010-09-23T14:37:45.503764Z b8ba1b21fe83c63c449dd87d6e0a3e29 2010-03-20T12:54:23.540906Z 3605 @@ -66,7 +66,7 @@ -2010-07-23T14:49:43.460097Z +2010-09-23T14:37:45.503764Z a1049f9d77597fa44715313283e4fdf6 2009-01-26T01:47:51.253124Z 2317 diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/mailer_test.rb --- a/test/unit/mailer_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/mailer_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -355,6 +355,16 @@ assert_equal '1 issue(s) due in the next 42 days', mail.subject end + def test_reminders_for_users + Mailer.reminders(:days => 42, :users => ['5']) + assert_equal 0, ActionMailer::Base.deliveries.size # No mail for dlopper + Mailer.reminders(:days => 42, :users => ['3']) + assert_equal 1, ActionMailer::Base.deliveries.size # No mail for dlopper + mail = ActionMailer::Base.deliveries.last + assert mail.bcc.include?('dlopper@somenet.foo') + assert mail.body.include?('Bug #3: Error 281 when updating a recipe') + end + def last_email mail = ActionMailer::Base.deliveries.last assert_not_nil mail diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/project_test.rb --- a/test/unit/project_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/project_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -842,4 +842,122 @@ end + context "#start_date" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + should "be nil if there are no issues on the project" do + assert_nil @project.start_date + end + + should "be nil if issue tracking is disabled" do + Issue.generate_for_project!(@project, :start_date => Date.today) + @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy} + @project.reload + + assert_nil @project.start_date + end + + should "be the earliest start date of it's issues" do + early = 7.days.ago.to_date + Issue.generate_for_project!(@project, :start_date => Date.today) + Issue.generate_for_project!(@project, :start_date => early) + + assert_equal early, @project.start_date + end + + end + + context "#due_date" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + should "be nil if there are no issues on the project" do + assert_nil @project.due_date + end + + should "be nil if issue tracking is disabled" do + Issue.generate_for_project!(@project, :due_date => Date.today) + @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy} + @project.reload + + assert_nil @project.due_date + end + + should "be the latest due date of it's issues" do + future = 7.days.from_now.to_date + Issue.generate_for_project!(@project, :due_date => future) + Issue.generate_for_project!(@project, :due_date => Date.today) + + assert_equal future, @project.due_date + end + + should "be the latest due date of it's versions" do + future = 7.days.from_now.to_date + @project.versions << Version.generate!(:effective_date => future) + @project.versions << Version.generate!(:effective_date => Date.today) + + + assert_equal future, @project.due_date + + end + + should "pick the latest date from it's issues and versions" do + future = 7.days.from_now.to_date + far_future = 14.days.from_now.to_date + Issue.generate_for_project!(@project, :due_date => far_future) + @project.versions << Version.generate!(:effective_date => future) + + assert_equal far_future, @project.due_date + end + + end + + context "Project#completed_percent" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + end + + context "no versions" do + should "be 100" do + assert_equal 100, @project.completed_percent + end + end + + context "with versions" do + should "return 0 if the versions have no issues" do + Version.generate!(:project => @project) + Version.generate!(:project => @project) + + assert_equal 0, @project.completed_percent + end + + should "return 100 if the version has only closed issues" do + v1 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('Closed'), :fixed_version => v1) + v2 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('Closed'), :fixed_version => v2) + + assert_equal 100, @project.completed_percent + end + + should "return the averaged completed percent of the versions (not weighted)" do + v1 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('New'), :estimated_hours => 10, :done_ratio => 50, :fixed_version => v1) + v2 = Version.generate!(:project => @project) + Issue.generate_for_project!(@project, :status => IssueStatus.find_by_name('New'), :estimated_hours => 10, :done_ratio => 50, :fixed_version => v2) + + assert_equal 50, @project.completed_percent + end + + end + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/query_test.rb --- a/test/unit/query_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/query_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -48,6 +48,16 @@ :conditions => query.statement end + def assert_find_issues_with_query_is_successful(query) + assert_nothing_raised do + find_issues_with_query(query) + end + end + + def assert_query_statement_includes(query, condition) + assert query.statement.include?(condition), "Query statement condition not found in: #{query.statement}" + end + def test_query_should_allow_shared_versions_for_a_project_query subproject_version = Version.find(4) query = Query.new(:project => Project.find(1), :name => '_') @@ -362,11 +372,153 @@ end context "#available_filters" do + setup do + @query = Query.new(:name => "_") + end + should "include users of visible projects in cross-project view" do - query = Query.new(:name => "_") - users = query.available_filters["assigned_to_id"] + users = @query.available_filters["assigned_to_id"] assert_not_nil users assert users[:values].map{|u|u[1]}.include?("3") end + + context "'member_of_group' filter" do + should "be present" do + assert @query.available_filters.keys.include?("member_of_group") + end + + should "be an optional list" do + assert_equal :list_optional, @query.available_filters["member_of_group"][:type] + end + + should "have a list of the groups as values" do + Group.destroy_all # No fixtures + group1 = Group.generate!.reload + group2 = Group.generate!.reload + + expected_group_list = [ + [group1.name, group1.id], + [group2.name, group2.id] + ] + assert_equal expected_group_list.sort, @query.available_filters["member_of_group"][:values].sort + end + + end + + context "'assigned_to_role' filter" do + should "be present" do + assert @query.available_filters.keys.include?("assigned_to_role") + end + + should "be an optional list" do + assert_equal :list_optional, @query.available_filters["assigned_to_role"][:type] + end + + should "have a list of the Roles as values" do + assert @query.available_filters["assigned_to_role"][:values].include?(['Manager',1]) + assert @query.available_filters["assigned_to_role"][:values].include?(['Developer',2]) + assert @query.available_filters["assigned_to_role"][:values].include?(['Reporter',3]) + end + + should "not include the built in Roles as values" do + assert ! @query.available_filters["assigned_to_role"][:values].include?(['Non member',4]) + assert ! @query.available_filters["assigned_to_role"][:values].include?(['Anonymous',5]) + end + + end + end + + context "#statement" do + context "with 'member_of_group' filter" do + setup do + Group.destroy_all # No fixtures + @user_in_group = User.generate! + @second_user_in_group = User.generate! + @user_in_group2 = User.generate! + @user_not_in_group = User.generate! + + @group = Group.generate!.reload + @group.users << @user_in_group + @group.users << @second_user_in_group + + @group2 = Group.generate!.reload + @group2.users << @user_in_group2 + + end + + should "search assigned to for users in the group" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '=', [@group.id.to_s]) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search not assigned to any group member (none)" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '!*', ['']) + + # Users not in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')" + assert_find_issues_with_query_is_successful @query + + end + + should "search assigned to any group member (all)" do + @query = Query.new(:name => '_') + @query.add_filter('member_of_group', '*', ['']) + + # Only users in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')" + assert_find_issues_with_query_is_successful @query + + end + end + + context "with 'assigned_to_role' filter" do + setup do + # No fixtures + MemberRole.delete_all + Member.delete_all + Role.delete_all + + @manager_role = Role.generate!(:name => 'Manager') + @developer_role = Role.generate!(:name => 'Developer') + + @project = Project.generate! + @manager = User.generate! + @developer = User.generate! + @boss = User.generate! + User.add_to_project(@manager, @project, @manager_role) + User.add_to_project(@developer, @project, @developer_role) + User.add_to_project(@boss, @project, [@manager_role, @developer_role]) + end + + should "search assigned to for users with the Role" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search assigned to for users not assigned to any Role (none)" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '!*', ['']) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + + should "search assigned to for users assigned to any Role (all)" do + @query = Query.new(:name => '_') + @query.add_filter('assigned_to_role', '*', ['']) + + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')" + assert_find_issues_with_query_is_successful @query + end + end + end + end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/time_entry_test.rb --- a/test/unit/time_entry_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/time_entry_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -48,4 +48,52 @@ def test_hours_should_default_to_nil assert_nil TimeEntry.new.hours end + + context "#earilest_date_for_project" do + setup do + User.current = nil + @public_project = Project.generate!(:is_public => true) + @issue = Issue.generate_for_project!(@public_project) + TimeEntry.generate!(:spent_on => '2010-01-01', + :issue => @issue, + :project => @public_project) + end + + context "without a project" do + should "return the lowest spent_on value that is visible to the current user" do + assert_equal "2007-03-12", TimeEntry.earilest_date_for_project.to_s + end + end + + context "with a project" do + should "return the lowest spent_on value that is visible to the current user for that project and it's subprojects only" do + assert_equal "2010-01-01", TimeEntry.earilest_date_for_project(@public_project).to_s + end + end + + end + + context "#latest_date_for_project" do + setup do + User.current = nil + @public_project = Project.generate!(:is_public => true) + @issue = Issue.generate_for_project!(@public_project) + TimeEntry.generate!(:spent_on => '2010-01-01', + :issue => @issue, + :project => @public_project) + end + + context "without a project" do + should "return the highest spent_on value that is visible to the current user" do + assert_equal "2010-01-01", TimeEntry.latest_date_for_project.to_s + end + end + + context "with a project" do + should "return the highest spent_on value that is visible to the current user for that project and it's subprojects only" do + project = Project.find(1) + assert_equal "2007-04-22", TimeEntry.latest_date_for_project(project).to_s + end + end + end end diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/user_test.rb --- a/test/unit/user_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/user_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -355,6 +355,49 @@ end + context "#allowed_to?" do + context "with a unique project" do + should "return false if project is archived" do + project = Project.find(1) + Project.any_instance.stubs(:status).returns(Project::STATUS_ARCHIVED) + assert ! @admin.allowed_to?(:view_issues, Project.find(1)) + end + + should "return false if related module is disabled" do + project = Project.find(1) + project.enabled_module_names = ["issue_tracking"] + assert @admin.allowed_to?(:add_issues, project) + assert ! @admin.allowed_to?(:view_wiki_pages, project) + end + + should "authorize nearly everything for admin users" do + project = Project.find(1) + assert ! @admin.member_of?(project) + %w(edit_issues delete_issues manage_news manage_documents manage_wiki).each do |p| + assert @admin.allowed_to?(p.to_sym, project) + end + end + + should "authorize normal users depending on their roles" do + project = Project.find(1) + assert @jsmith.allowed_to?(:delete_messages, project) #Manager + assert ! @dlopper.allowed_to?(:delete_messages, project) #Developper + end + end + + context "with options[:global]" do + should "authorize if user has at least one role that has this permission" do + @dlopper2 = User.find(5) #only Developper on a project, not Manager anywhere + @anonymous = User.find(6) + assert @jsmith.allowed_to?(:delete_issue_watchers, nil, :global => true) + assert ! @dlopper2.allowed_to?(:delete_issue_watchers, nil, :global => true) + assert @dlopper2.allowed_to?(:add_issues, nil, :global => true) + assert ! @anonymous.allowed_to?(:add_issues, nil, :global => true) + assert @anonymous.allowed_to?(:view_issues, nil, :global => true) + end + end + end + if Object.const_defined?(:OpenID) def test_setting_identity_url diff -r 1d32c0a0efbf -r 40f7cfd4df19 test/unit/version_test.rb --- a/test/unit/version_test.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/test/unit/version_test.rb Fri Sep 24 14:06:04 2010 +0100 @@ -104,7 +104,57 @@ assert_progress_equal (25.0*0.2 + 25.0*1 + 10.0*0.3 + 40.0*0.1)/100.0*100, v.completed_pourcent assert_progress_equal 25.0/100.0*100, v.closed_pourcent end - + + context "#behind_schedule?" do + setup do + ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests + @project = Project.generate!(:identifier => 'test0') + @project.trackers << Tracker.generate! + + @version = Version.generate!(:project => @project, :effective_date => nil) + end + + should "be false if there are no issues assigned" do + @version.update_attribute(:effective_date, Date.yesterday) + assert_equal false, @version.behind_schedule? + end + + should "be false if there is no effective_date" do + assert_equal false, @version.behind_schedule? + end + + should "be false if all of the issues are ahead of schedule" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60), # 14 day span, 60% done, 50% time left + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left + ] + assert_equal 60, @version.completed_pourcent + assert_equal false, @version.behind_schedule? + end + + should "be true if any of the issues are behind schedule" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 60), # 14 day span, 60% done, 50% time left + Issue.generate_for_project!(@project, :start_date => 7.days.ago, :done_ratio => 20) # 14 day span, 20% done, 50% time left + ] + assert_equal 40, @version.completed_pourcent + assert_equal true, @version.behind_schedule? + end + + should "be false if all of the issues are complete" do + @version.update_attribute(:effective_date, 7.days.from_now.to_date) + @version.fixed_issues = [ + Issue.generate_for_project!(@project, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)), # 7 day span + Issue.generate_for_project!(@project, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span + ] + assert_equal 100, @version.completed_pourcent + assert_equal false, @version.behind_schedule? + + end + end + context "#estimated_hours" do setup do @version = Version.create!(:project_id => 1, :name => '#estimated_hours') diff -r 1d32c0a0efbf -r 40f7cfd4df19 tmp/.svn/entries --- a/tmp/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/tmp/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/tmp http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 tmp/cache/.svn/entries --- a/tmp/cache/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/tmp/cache/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/tmp/cache http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 tmp/sessions/.svn/entries --- a/tmp/sessions/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/tmp/sessions/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/tmp/sessions http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 tmp/sockets/.svn/entries --- a/tmp/sockets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/tmp/sockets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/tmp/sockets http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 tmp/test/.svn/entries --- a/tmp/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/tmp/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/tmp/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.040095Z +2010-09-23T14:37:45.515807Z d41d8cd98f00b204e9800998ecf8427e 2009-06-08T02:07:30.275769Z 2784 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/.svn/all-wcprops --- a/vendor/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 31 -/svn/!svn/ver/3933/trunk/vendor +/svn/!svn/ver/4094/trunk/vendor END diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/.svn/entries --- a/vendor/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor http://redmine.rubyforge.org/svn -2010-08-10T21:12:32.103531Z -3933 -jbbarth +2010-09-17T04:06:40.671348Z +4094 +edavis10 has-props diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/gems/.svn/entries --- a/vendor/gems/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/gems/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/gems http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/gems/rubytree-0.5.2/.svn/entries --- a/vendor/gems/rubytree-0.5.2/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/gems/rubytree-0.5.2/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2 http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 48b46ff6764d5b76e1ad138669923aff 2009-11-25T05:36:44.792571Z 3090 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 954df52967073c3833d9c565bb4b1ea8 2009-11-25T05:36:44.792571Z 3090 @@ -103,7 +103,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.527765Z f3e96d4b9eeb3d0c4d841c7c7ea6259c 2009-11-25T05:36:44.792571Z 3090 @@ -137,7 +137,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 7a9a6ee34490c5d9c4148c7cf8f85034 2009-11-25T05:36:44.792571Z 3090 @@ -171,7 +171,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 82301a43d2504d992ba1cfd7839b2d7e 2009-11-25T05:36:44.792571Z 3090 @@ -208,7 +208,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z b15b8164d281daa7c7028cdda9635950 2009-11-25T05:36:44.792571Z 3090 @@ -242,7 +242,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 25d0fdd6b9633f784544a5c000dc1351 2009-11-25T05:36:44.792571Z 3090 @@ -276,7 +276,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.523822Z 13d490389c788748b3931b9e09b2b4d4 2009-11-25T05:36:44.792571Z 3090 @@ -310,7 +310,7 @@ -2010-07-23T14:49:47.036097Z +2010-09-23T14:37:45.519811Z 5906fb8bdb4197fe19171f795952ed9d 2009-11-25T05:36:44.792571Z 3090 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/gems/rubytree-0.5.2/lib/.svn/entries --- a/vendor/gems/rubytree-0.5.2/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/gems/rubytree-0.5.2/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.032097Z +2010-09-23T14:37:45.527765Z 46e46766767dc3a96b3019d385a5af83 2009-11-25T05:36:44.792571Z 3090 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries --- a/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib/tree http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.028098Z +2010-09-23T14:37:45.527765Z 54320f0ffbb41fa9d99ab2d617636ea1 2009-11-25T05:36:44.792571Z 3090 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/gems/rubytree-0.5.2/test/.svn/entries --- a/vendor/gems/rubytree-0.5.2/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/gems/rubytree-0.5.2/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.024226Z +2010-09-23T14:37:45.531765Z bd5257614b958bab00916feffc4fa9ae 2009-11-25T05:36:44.792571Z 3090 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.024226Z +2010-09-23T14:37:45.531765Z b9b4a1d43e859491e80fb1e2c7499d20 2009-11-25T05:36:44.792571Z 3090 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/.svn/all-wcprops --- a/vendor/plugins/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 39 -/svn/!svn/ver/3933/trunk/vendor/plugins +/svn/!svn/ver/4094/trunk/vendor/plugins END diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/.svn/entries --- a/vendor/plugins/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins http://redmine.rubyforge.org/svn -2010-08-10T21:12:32.103531Z -3933 -jbbarth +2010-09-17T04:06:40.671348Z +4094 +edavis10 @@ -41,10 +41,10 @@ engines dir -coderay-0.9.2 +classic_pagination dir -classic_pagination +coderay-0.9.2 dir acts_as_versioned diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_activity_provider/.svn/entries --- a/vendor/plugins/acts_as_activity_provider/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_activity_provider/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.920130Z +2010-09-23T14:37:45.531765Z 779d73c171dc111df084a0798cca73e2 2008-07-27T17:54:09.197937Z 1701 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_activity_provider/lib/.svn/entries --- a/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.920130Z +2010-09-23T14:37:45.535765Z 21fbeb28c4ce556d2534306b96be9497 2008-12-08T18:20:26.452857Z 2114 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_attachable/.svn/entries --- a/vendor/plugins/acts_as_attachable/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_attachable/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.367755Z +2010-09-23T14:37:45.535765Z b215588c95e69b4bb8f91ad91606bfbe 2008-12-09T16:54:46.963649Z 2116 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_attachable/lib/.svn/entries --- a/vendor/plugins/acts_as_attachable/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_attachable/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.367755Z +2010-09-23T14:37:45.535765Z 982227c44f1fe848c8aeed862ea027f3 2010-03-03T17:05:00.967826Z 3528 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_customizable/.svn/entries --- a/vendor/plugins/acts_as_customizable/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_customizable/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.892127Z +2010-09-23T14:37:45.539808Z 0d1f178b7636d6712b38304954530928 2008-06-27T20:13:56.888432Z 1592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_customizable/lib/.svn/entries --- a/vendor/plugins/acts_as_customizable/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_customizable/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.892127Z +2010-09-23T14:37:45.539808Z 9d2f2e3d8ac21a68cbaafca4788c2f1d 2010-03-13T14:56:49.379682Z 3573 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_event/.svn/entries --- a/vendor/plugins/acts_as_event/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_event/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.016159Z +2010-09-23T14:37:45.539808Z 60df7ab698ddd0c3701bb0efbb8233cf 2007-08-29T16:52:35.680643Z 674 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_event/lib/.svn/entries --- a/vendor/plugins/acts_as_event/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_event/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.016159Z +2010-09-23T14:37:45.543762Z ca8e33777d59976db870f71defe5f66d 2010-04-30T10:45:21.145380Z 3703 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_list/.svn/entries --- a/vendor/plugins/acts_as_list/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_list/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.944096Z +2010-09-23T14:37:45.543762Z 0bdbdc825f80fda1a94852a82b68ffd4 2007-12-10T17:58:07.273873Z 975 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.944096Z +2010-09-23T14:37:45.543762Z 42212b5cb681c9888d56f9c0f36e1e02 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_list/lib/.svn/entries --- a/vendor/plugins/acts_as_list/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_list/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_list/lib/active_record/.svn/entries --- a/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries --- a/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record/acts http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.940098Z +2010-09-23T14:37:45.547761Z a3ee41e8bed56868bc2e4ab2cb7df73a 2009-02-26T09:21:41.696815Z 2526 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_list/test/.svn/entries --- a/vendor/plugins/acts_as_list/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_list/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.936111Z +2010-09-23T14:37:45.551763Z 3d41debf5c631e88295d337507c3b5b6 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_searchable/.svn/entries --- a/vendor/plugins/acts_as_searchable/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_searchable/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.376142Z +2010-09-23T14:37:45.551763Z 7512fe68c7dfbb57e956d22b9aa8f8ed 2007-09-27T17:28:22.154371Z 766 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_searchable/lib/.svn/entries --- a/vendor/plugins/acts_as_searchable/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_searchable/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.372155Z +2010-09-23T14:37:45.551763Z f282f30a34a9560d7ef3d5883aba5fe9 2010-02-17T20:20:51.097274Z 3445 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/.svn/entries --- a/vendor/plugins/acts_as_tree/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.888097Z +2010-09-23T14:37:45.555763Z 77667cb4c41516750075eefb98896a93 2007-12-10T17:58:07.273873Z 975 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.888097Z +2010-09-23T14:37:45.555763Z 581c104f87fe90cfe9a7d1d41d77c84f 2007-12-10T17:58:07.273873Z 975 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.888097Z +2010-09-23T14:37:45.555763Z 918c85e850eb84259c178529b9aafd62 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/lib/.svn/entries --- a/vendor/plugins/acts_as_tree/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/lib/active_record/.svn/entries --- a/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries --- a/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record/acts http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.884126Z +2010-09-23T14:37:45.559786Z 544900d884182d6888334ce14323bef0 2009-04-21T12:19:56.547537Z 2676 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/test/.svn/entries --- a/vendor/plugins/acts_as_tree/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z d41d8cd98f00b204e9800998ecf8427e 2007-12-10T17:58:07.273873Z 975 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z d41d8cd98f00b204e9800998ecf8427e 2007-12-10T17:58:07.273873Z 975 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z d41d8cd98f00b204e9800998ecf8427e 2007-12-10T17:58:07.273873Z 975 @@ -137,7 +137,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z 7bd3d48984d0e563b9f5e20ca8fdff81 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_tree/test/fixtures/.svn/entries --- a/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test/fixtures http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z d41d8cd98f00b204e9800998ecf8427e 2007-12-10T17:58:07.273873Z 975 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.876124Z +2010-09-23T14:37:45.563764Z d41d8cd98f00b204e9800998ecf8427e 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_versioned/.svn/entries --- a/vendor/plugins/acts_as_versioned/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_versioned/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z 8aae554c93cc60ef98cb3da2dd7c1b4b 2007-03-04T13:40:21.895320Z 290 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z 1f57ce7fac2d625797b9ec6d6480cf5b 2008-07-04T17:58:14.743502Z 1623 @@ -103,7 +103,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z 1d117218f55938f9c75f1f814a4915d1 2007-03-04T13:40:21.895320Z 290 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z 3aa6f483cf322e248d4a1281160f8845 2007-03-04T13:40:21.895320Z 290 @@ -174,7 +174,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z e4ba7226e637685b5cca7a9cc5c05af2 2007-03-04T13:40:21.895320Z 290 @@ -208,7 +208,7 @@ -2010-07-23T14:49:46.868094Z +2010-09-23T14:37:45.567763Z 06ee73d1b4ad386b681f88b9326a0685 2007-03-04T13:40:21.895320Z 290 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_versioned/lib/.svn/entries --- a/vendor/plugins/acts_as_versioned/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_versioned/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.864095Z +2010-09-23T14:37:45.571763Z 474fc02132fce15712540924bb7b22cf 2008-07-04T17:58:14.743502Z 1623 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_versioned/test/.svn/entries --- a/vendor/plugins/acts_as_versioned/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_versioned/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.579760Z 8a2eaa42c29dc84e0c018e78c99987f1 2008-07-04T17:58:14.743502Z 1623 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.579760Z df4118ed0edd4b3a0bae0cbb3b7a8a6b 2007-03-04T13:40:21.895320Z 290 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.571763Z 99f5a4aa22b79a8f8c7521a0b1e9ec3e 2008-07-04T17:58:14.743502Z 1623 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.571763Z c5ac373bf98e48576df3a63ab4349883 2007-03-04T13:40:21.895320Z 290 @@ -171,7 +171,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.579760Z eb28101ab94f672b3a99998fc03f0d38 2008-07-04T17:58:14.743502Z 1623 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries --- a/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.579760Z 6052582a74186e97a71e6d50ff1c3558 2007-03-04T13:40:21.895320Z 290 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.575760Z 35aca448cc30c958ad2f3a8130903701 2007-03-04T13:40:21.895320Z 290 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.575760Z df240cb0129f29834aea167ea97df5c9 2007-03-04T13:40:21.895320Z 290 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.575760Z 3e63e88f04d92531412a5e328670313d 2007-03-04T13:40:21.895320Z 290 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.579760Z 9e0c65a239dc63caf3ba5b61e5acd86b 2007-03-04T13:40:21.895320Z 290 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.575760Z c9631a233cff08e617f783f2c5d4ebcb 2007-03-04T13:40:21.895320Z 290 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.579760Z 6cbb9a0d4b22160edce9cdd270943fcd 2008-07-04T17:58:14.743502Z 1623 @@ -270,7 +270,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.575760Z 7845068722476900746d101729c30187 2007-03-04T13:40:21.895320Z 290 @@ -307,7 +307,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.575760Z ebfb47357586fa12e4524a65ba0a714a 2007-03-04T13:40:21.895320Z 290 @@ -341,7 +341,7 @@ -2010-07-23T14:49:46.860128Z +2010-09-23T14:37:45.579760Z a93535c95869678b16df898b8de4259f 2007-03-04T13:40:21.895320Z 290 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries --- a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures/migrations http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.856130Z +2010-09-23T14:37:45.579760Z 8fca6192aeeba1c8456bd6ac6199839f 2007-03-04T13:40:21.895320Z 290 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_watchable/.svn/entries --- a/vendor/plugins/acts_as_watchable/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_watchable/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.380127Z +2010-09-23T14:37:45.583759Z 7051267daa625f991f2b604afde255ff 2007-04-21T12:08:31.130506Z 453 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/acts_as_watchable/lib/.svn/entries --- a/vendor/plugins/acts_as_watchable/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/acts_as_watchable/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.380127Z +2010-09-23T14:37:45.583759Z 30f73616865f02dadce09f9511269b70 2010-06-20T18:41:30.111362Z 3803 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/.svn/entries --- a/vendor/plugins/awesome_nested_set/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:47.008140Z +2010-09-23T14:37:45.587807Z c1f9a7c7c81a0c9150d260757c895ab3 2008-12-20T12:22:38.158335Z 2149 @@ -69,7 +69,7 @@ -2010-07-23T14:49:47.008140Z +2010-09-23T14:37:45.587807Z 75ea4a8e8109afdbce9214ac3e9aa40a 2008-12-20T12:22:38.158335Z 2149 @@ -103,7 +103,7 @@ -2010-07-23T14:49:47.012138Z +2010-09-23T14:37:45.587807Z 5d897290320b00753c366c59f40b213e 2008-12-20T12:22:38.158335Z 2149 @@ -137,7 +137,7 @@ -2010-07-23T14:49:47.012138Z +2010-09-23T14:37:45.587807Z af5f1806895c92bb03e8855a96d13a64 2008-12-20T12:22:38.158335Z 2149 @@ -174,7 +174,7 @@ -2010-07-23T14:49:47.012138Z +2010-09-23T14:37:45.587807Z ba826ae68593d063b726b4e66dcb1e8f 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/lib/.svn/entries --- a/vendor/plugins/awesome_nested_set/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.004158Z +2010-09-23T14:37:45.591804Z a881f7ea58b493a96550b4457057cddb 2010-03-13T14:56:49.379682Z 3573 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries --- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.004158Z +2010-09-23T14:37:45.591804Z d15393e7ec4757df0e53641d9a8d76f4 2008-12-20T12:22:38.158335Z 2149 @@ -66,7 +66,7 @@ -2010-07-23T14:49:47.004158Z +2010-09-23T14:37:45.591804Z d4a9622144313fa6b56117a6c1f11e61 2008-12-20T12:22:38.158335Z 2149 @@ -100,7 +100,7 @@ -2010-07-23T14:49:47.004158Z +2010-09-23T14:37:45.591804Z cebe8bf25e6f479251be38c80a246574 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/rails/.svn/entries --- a/vendor/plugins/awesome_nested_set/rails/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/rails/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/rails http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:47.008140Z +2010-09-23T14:37:45.595761Z d5995cbfa2abdc12b57c44d69dc0085b 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/test/.svn/entries --- a/vendor/plugins/awesome_nested_set/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.996103Z +2010-09-23T14:37:45.603759Z 41b65aff686211d45ba085c1b0791218 2008-12-20T12:22:38.158335Z 2149 @@ -75,7 +75,7 @@ -2010-07-23T14:49:46.996103Z +2010-09-23T14:37:45.599759Z d177339aefb3c4a8f280efff48c974b6 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries --- a/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/awesome_nested_set http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.992131Z +2010-09-23T14:37:45.595761Z 03a414e3247544a5a2334aed005764f3 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/test/db/.svn/entries --- a/vendor/plugins/awesome_nested_set/test/db/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/test/db/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/db http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.984095Z +2010-09-23T14:37:45.599759Z ae23aecda935bb66e29aa4f02ea9de0a 2008-12-20T12:22:38.158335Z 2149 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.984095Z +2010-09-23T14:37:45.599759Z 359889e11314c2969bdf7e37475bdc62 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries --- a/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/fixtures http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.988148Z +2010-09-23T14:37:45.603759Z 460e90d6f219f339e8e4c64aaae0063c 2008-12-20T12:22:38.158335Z 2149 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.988148Z +2010-09-23T14:37:45.599759Z 4b6a06e11c21a3aadd09e60dee443110 2008-12-20T12:22:38.158335Z 2149 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.988148Z +2010-09-23T14:37:45.603759Z e4eb5dbc7f2a2aa2fee79dba9210e769 2008-12-20T12:22:38.158335Z 2149 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.988148Z +2010-09-23T14:37:45.603759Z e8b507fd94ed89b9997c3f9f137290cf 2008-12-20T12:22:38.158335Z 2149 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/classic_pagination/.svn/entries --- a/vendor/plugins/classic_pagination/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/classic_pagination/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.744099Z +2010-09-23T14:37:45.607804Z b14424b71d2f606a775061237c8226f1 2007-12-10T17:58:07.273873Z 975 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.744099Z +2010-09-23T14:37:45.607804Z 181539722e198d92992a94f40310f4fc 2007-12-10T17:58:07.273873Z 975 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.744099Z +2010-09-23T14:37:45.607804Z 3ef206f381b42341342908fcc0001210 2007-12-09T21:53:46.068689Z 966 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.744099Z +2010-09-23T14:37:45.607804Z 1c88d6bc27aa809cd6ef26543c18b1e6 2007-12-10T17:58:07.273873Z 975 @@ -174,7 +174,7 @@ -2010-07-23T14:49:46.744099Z +2010-09-23T14:37:45.607804Z f1df690ff1ea0da74f8fe161f50722ad 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/classic_pagination/lib/.svn/entries --- a/vendor/plugins/classic_pagination/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/classic_pagination/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.740098Z +2010-09-23T14:37:45.607804Z 535b7515c14fb3964e97be32c2d36415 2007-12-10T17:58:07.273873Z 975 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.740098Z +2010-09-23T14:37:45.607804Z d770c57066726c423cc9de4ca5b552cd 2008-12-14T15:36:59.418123Z 2134 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/classic_pagination/test/.svn/entries --- a/vendor/plugins/classic_pagination/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/classic_pagination/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.736101Z +2010-09-23T14:37:45.623761Z 50c7fabeb3d6728ce24eada59d5b2b67 2007-12-10T17:58:07.273873Z 975 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.736101Z +2010-09-23T14:37:45.623761Z 0a02d28a37b53a8e19af7935db5be1a8 2007-12-10T17:58:07.273873Z 975 @@ -103,7 +103,7 @@ -2010-07-23T14:49:46.736101Z +2010-09-23T14:37:45.623761Z 597b7501984a5ecd10242163d06c33e7 2007-12-10T17:58:07.273873Z 975 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/classic_pagination/test/fixtures/.svn/entries --- a/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test/fixtures http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.728154Z +2010-09-23T14:37:45.619761Z 4e923be7fd534a67635192bcfcbed5cf 2007-12-10T17:58:07.273873Z 975 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.728154Z +2010-09-23T14:37:45.619761Z 021192cd31a5c3a39cbe7bd14144425a 2007-12-10T17:58:07.273873Z 975 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.728154Z +2010-09-23T14:37:45.619761Z 5953f128689c82c1d5c9ab2709a682e4 2007-12-10T17:58:07.273873Z 975 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z cc2715c9793cffccefbac86e97dd5a08 2007-12-10T17:58:07.273873Z 975 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 92e8d8a3cd6b419bdabbafc91be07b13 2007-12-10T17:58:07.273873Z 975 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 182661632986d51f75c49d74b19df40c 2007-12-10T17:58:07.273873Z 975 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z f1bf372057211d4a6d86499e561d903c 2007-12-10T17:58:07.273873Z 975 @@ -270,7 +270,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 98f978d0e16223524ee8dc769136a3c4 2007-12-10T17:58:07.273873Z 975 @@ -304,7 +304,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 3605b2a8f1cf10cbc34343bd7c49330d 2007-12-10T17:58:07.273873Z 975 @@ -338,7 +338,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z dccebb95780c20b896fe26306d904e9d 2007-12-10T17:58:07.273873Z 975 @@ -372,7 +372,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 318c27008dc35148da64e32ff9bf53c7 2007-12-10T17:58:07.273873Z 975 @@ -406,7 +406,7 @@ -2010-07-23T14:49:46.732157Z +2010-09-23T14:37:45.619761Z 78b664b5dbb72751888e7f6bf4cd12f8 2007-12-09T21:53:46.068689Z 966 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/.svn/entries --- a/vendor/plugins/coderay-0.9.2/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2 http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.840155Z +2010-09-23T14:37:45.623761Z 071d975e884a936b40eab0b865ea4da1 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.840155Z +2010-09-23T14:37:45.627760Z c736c3ed620d59c1c6799d6fa340b0af 2010-03-16T20:29:12.319937Z 3592 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.840155Z +2010-09-23T14:37:45.627760Z 0d50df22acd760dc1905c7ef55e509e6 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.683786Z 4f17211f3874899049db6111ef282a3b 2010-03-16T20:29:12.319937Z 3592 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.631818Z f0ead48eaa86c8b4d6a5587e9b5450ca 2010-03-16T20:29:12.319937Z 3592 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.679790Z 409fa492a5470a8bed5ae969f270decf 2010-03-16T20:29:12.319937Z 3592 @@ -143,7 +143,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.683786Z b7662592ff38046174f935548f579ce4 2010-03-16T20:29:12.319937Z 3592 @@ -177,7 +177,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.631818Z b33e5b83e354c09655f46d37ae662f64 2010-03-16T20:29:12.319937Z 3592 @@ -211,7 +211,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.655760Z f75f38c93ee8de3e6df1c08773b62319 2010-03-16T20:29:12.319937Z 3592 @@ -248,7 +248,7 @@ -2010-07-23T14:49:46.836129Z +2010-09-23T14:37:45.651759Z d216c2f1c7a84a23ce3feff0b1358d60 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.772156Z +2010-09-23T14:37:45.643761Z f0c5be15265facadc46889fbbc2613f1 2010-03-16T20:29:12.319937Z 3592 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.772156Z +2010-09-23T14:37:45.651759Z 2914ed90921556a01a79f3fb6d549b09 2010-03-16T20:29:12.319937Z 3592 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.643761Z 08591bbd1f20dc7dce67030a294d1636 2010-03-16T20:29:12.319937Z 3592 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.643761Z 9e878089035fe9ad88c808bd1a15cf7a 2010-03-16T20:29:12.319937Z 3592 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z 966e154458fb6c665b6d62aa90d07e18 2010-03-16T20:29:12.319937Z 3592 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.643761Z c262d84ddbdf37e99ff6bcf6dd6a66c2 2010-03-16T20:29:12.319937Z 3592 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.651759Z ada7effba81bbc28f41efeaef69dcc51 2010-03-16T20:29:12.319937Z 3592 @@ -270,7 +270,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z e4228be45ad0f818a0e125caee838d56 2010-03-16T20:29:12.319937Z 3592 @@ -304,7 +304,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.651759Z 04c428b240ef44de896ad15827cf51df 2010-03-16T20:29:12.319937Z 3592 @@ -341,7 +341,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.643761Z 85370d734631d5ad2c034541e66e2910 2010-03-16T20:29:12.319937Z 3592 @@ -375,7 +375,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z 422a51cd181de3cc0a55aba7f9915c18 2010-03-16T20:29:12.319937Z 3592 @@ -409,7 +409,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z 49017735ef679f73dd65795e30d8e5c7 2010-03-16T20:29:12.319937Z 3592 @@ -443,7 +443,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.643761Z 32f2d1a9db6f58636d3946a43b5a60f0 2010-03-16T20:29:12.319937Z 3592 @@ -477,7 +477,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z 86a2dcae2ef0a971f70386c3b794469f 2010-03-16T20:29:12.319937Z 3592 @@ -511,7 +511,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.647759Z 9c9dcf3ba3f2effa5ebd4cd37417db36 2010-03-16T20:29:12.319937Z 3592 @@ -545,7 +545,7 @@ -2010-07-23T14:49:46.776144Z +2010-09-23T14:37:45.651759Z e59791dbcdce328f09240e7e5c8b3d0e 2010-03-16T20:29:12.319937Z 3592 @@ -579,7 +579,7 @@ -2010-07-23T14:49:46.780098Z +2010-09-23T14:37:45.647759Z 26da5aef43dc8731fbd63dcffea259bf 2010-03-16T20:29:12.319937Z 3592 @@ -613,7 +613,7 @@ -2010-07-23T14:49:46.780098Z +2010-09-23T14:37:45.643761Z 964d7ee16d213ab2e41418257f1eb8aa 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.764128Z +2010-09-23T14:37:45.647759Z 8d0cea50dc9e6743bd10a8e0c6f1db17 2010-03-16T20:29:12.319937Z 3592 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.764128Z +2010-09-23T14:37:45.647759Z 6f9a2f0d033d9af4d4804ecd8751a3f7 2010-03-16T20:29:12.319937Z 3592 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.764128Z +2010-09-23T14:37:45.647759Z aa931c09ed5f16abfed3b7c99f0f684d 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.784098Z +2010-09-23T14:37:45.655760Z a8ef4aea22392cc4012ee679fc1d15ba 2010-03-16T20:29:12.319937Z 3592 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.784098Z +2010-09-23T14:37:45.655760Z 107e3d46dc60830e87b1a4ce4d467ce8 2010-03-16T20:29:12.319937Z 3592 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.784098Z +2010-09-23T14:37:45.655760Z ffacc98651f60a6fe698427bbc3c3c86 2010-03-16T20:29:12.319937Z 3592 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.784098Z +2010-09-23T14:37:45.655760Z 86d05af27cbe342789f28ed543956aa5 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.671759Z c812fce5db1da4af753e919407494271 2010-03-16T20:29:12.319937Z 3592 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.675761Z 939e009d9b197cb6437646be82c02982 2010-03-16T20:29:12.319937Z 3592 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.675761Z 4a49513a2bda4483a1bfaeba8e57fb2c 2010-03-16T20:29:12.319937Z 3592 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.667815Z afc4a4b0842e5efdafe98f6c5a10810e 2010-03-16T20:29:12.319937Z 3592 @@ -174,7 +174,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.667815Z 299db2bdce8368d0bc6d90f5839c87ee 2010-03-16T20:29:12.319937Z 3592 @@ -208,7 +208,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.671759Z 7fc1acca7ff04fa00160349b3a1b543e 2010-03-16T20:29:12.319937Z 3592 @@ -242,7 +242,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.671759Z 94bdd6c948cb9c3d21ef94a5cec19e05 2010-03-16T20:29:12.319937Z 3592 @@ -276,7 +276,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.675761Z 456da0b0587037dce29f70bdb4d42253 2010-03-16T20:29:12.319937Z 3592 @@ -310,7 +310,7 @@ -2010-07-23T14:49:46.828117Z +2010-09-23T14:37:45.675761Z 90f9a8053ea7eaef089e5140188c9950 2010-03-16T20:29:12.319937Z 3592 @@ -344,7 +344,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.671759Z dfbdae0781ad8376342b8c0f5733c2ba 2010-03-16T20:29:12.319937Z 3592 @@ -378,7 +378,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.679790Z dd1580e74abffd4c30a8b941b3903f07 2010-03-16T20:29:12.319937Z 3592 @@ -412,7 +412,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.679790Z 798309ac45aa9d4ccc159242f3a6f150 2010-03-16T20:29:12.319937Z 3592 @@ -446,7 +446,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.679790Z f62eab25adbef42e92cad3f5463f91ac 2010-03-16T20:29:12.319937Z 3592 @@ -480,7 +480,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.671759Z 9a21ea0438e6eea6962a27aa15f55645 2010-03-16T20:29:12.319937Z 3592 @@ -514,7 +514,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.679790Z f6c296bbb33704ec2a03725b01e06719 2010-03-16T20:29:12.319937Z 3592 @@ -548,7 +548,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.675761Z 821536789acfa80a62a4fb54ab6f31d4 2010-03-16T20:29:12.319937Z 3592 @@ -582,7 +582,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.671759Z 182116a4525447d4faed874dfb790277 2010-03-16T20:29:12.319937Z 3592 @@ -616,7 +616,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.675761Z f7d82e60f68fe6c9d46b63e63f6ec9f6 2010-03-16T20:29:12.319937Z 3592 @@ -650,7 +650,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.675761Z ae16e40b3db78a5d8c793165085f5db9 2010-03-16T20:29:12.319937Z 3592 @@ -684,7 +684,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.671759Z fbe0f5af1885b8c58e55c9ba2891ce49 2010-03-16T20:29:12.319937Z 3592 @@ -718,7 +718,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.675761Z 0284131b18751e532a2c5e2dd8d51426 2010-03-16T20:29:12.319937Z 3592 @@ -752,7 +752,7 @@ -2010-07-23T14:49:46.832153Z +2010-09-23T14:37:45.667815Z b3eadcc78242cf25ba0ab3205d6a2b61 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.804130Z +2010-09-23T14:37:45.675761Z 2522414597cbbef27fad175c20c8a556 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.800127Z +2010-09-23T14:37:45.679790Z ae0aca82c4390ffcc5757c97c71bc8f3 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries --- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.792152Z +2010-09-23T14:37:45.683786Z e8d4af106543cf30dcc95fd942044e63 2010-03-16T20:29:12.319937Z 3592 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.792152Z +2010-09-23T14:37:45.683786Z 7c7e3c4f8f845a59359649b3221689a7 2010-03-16T20:29:12.319937Z 3592 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.792152Z +2010-09-23T14:37:45.683786Z 9b92a72b99db4496e76665edb7b38c00 2010-03-16T20:29:12.319937Z 3592 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/.svn/all-wcprops --- a/vendor/plugins/engines/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 47 -/svn/!svn/ver/3186/trunk/vendor/plugins/engines +/svn/!svn/ver/4094/trunk/vendor/plugins/engines END Rakefile K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/.svn/entries --- a/vendor/plugins/engines/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,15 +1,15 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines http://redmine.rubyforge.org/svn -2009-12-18T14:41:37.649419Z -3186 -jplang +2010-09-17T04:06:40.671348Z +4094 +edavis10 @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.687760Z b8328004b1bb94c84d90c0839cd7d41d 2009-09-13T17:14:35.707881Z 2887 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.683786Z a523ea1465a566ae38fba96a99506ff3 2008-07-12T10:17:14.809831Z 1654 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.691758Z f653a768811758cee11e21d4de00b381 2009-10-07T16:43:50.656336Z 2904 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.695759Z e4f81ba26f0b10a838b3336ba263aaa5 2009-09-13T17:14:35.707881Z 2887 @@ -177,7 +177,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.687760Z 41bb5eeb2864cd46438eefb1cb048c4d 2009-02-21T11:04:50.579477Z 2493 @@ -214,7 +214,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.687760Z 6e112fd6d07885bef3fd5bd537fc1409 2008-07-12T10:17:14.809831Z 1654 @@ -248,7 +248,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.691758Z 18cc761cb69b7735ecf0cdb0d9b6d640 2009-09-13T17:14:35.707881Z 2887 @@ -282,7 +282,7 @@ -2010-07-23T14:49:46.716156Z +2010-09-23T14:37:45.687760Z 7e25f2cbded59c24735a20510040bb74 2008-07-12T10:17:14.809831Z 1654 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/generators/.svn/entries --- a/vendor/plugins/engines/generators/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/generators/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/generators/plugin_migration/.svn/entries --- a/vendor/plugins/engines/generators/plugin_migration/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/generators/plugin_migration/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.712131Z +2010-09-23T14:37:45.691758Z e7efe6b1595915b993b92a7804dd810b 2009-10-07T16:43:50.656336Z 2904 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.712131Z +2010-09-23T14:37:45.691758Z d796f61555b36ef9941ea049c94df06b 2008-07-12T10:17:14.809831Z 1654 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries --- a/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.712131Z +2010-09-23T14:37:45.695759Z 0b30f95c4244242093ded274caf9e4a8 2008-07-12T10:17:14.809831Z 1654 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/.svn/all-wcprops --- a/vendor/plugins/engines/lib/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 51 -/svn/!svn/ver/2887/trunk/vendor/plugins/engines/lib +/svn/!svn/ver/4094/trunk/vendor/plugins/engines/lib END engines.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/.svn/entries --- a/vendor/plugins/engines/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib http://redmine.rubyforge.org/svn -2009-09-13T17:14:35.707881Z -2887 +2010-09-17T04:06:40.671348Z +4094 edavis10 @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.704134Z +2010-09-23T14:37:45.695759Z b9128ad79c06e8c2eb2474a7f9edf60d 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/.svn/all-wcprops --- a/vendor/plugins/engines/lib/engines/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 59 -/svn/!svn/ver/2887/trunk/vendor/plugins/engines/lib/engines +/svn/!svn/ver/4094/trunk/vendor/plugins/engines/lib/engines END testing.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/.svn/entries --- a/vendor/plugins/engines/lib/engines/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines http://redmine.rubyforge.org/svn -2009-09-13T17:14:35.707881Z -2887 +2010-09-17T04:06:40.671348Z +4094 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.707755Z f5e61f1312a19bdac20f06b7529eaa98 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.699755Z d084e8ccb3edfb9f481f2626ee9e57e1 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.699755Z a2cb2f3c517fbe62ab1277e44b0a05ed 2009-02-21T11:04:50.579477Z 2493 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/plugin/.svn/entries --- a/vendor/plugins/engines/lib/engines/plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.703755Z 2adca63e7c7d7c38a91953458e893bb2 2008-07-12T10:17:14.809831Z 1654 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.703755Z 21ac938bcf4f86e62ec21e9803cfd76e 2009-02-21T11:04:50.579477Z 2493 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.703755Z 38eaf6e3b113f74daa0669c67261cc72 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.700093Z +2010-09-23T14:37:45.703755Z d68941171066743dd63a174b5f270f66 2008-07-12T10:17:14.809831Z 1654 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/rails_extensions/.svn/all-wcprops --- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ K 25 svn:wc:ra_dav:version-url V 76 -/svn/!svn/ver/2887/trunk/vendor/plugins/engines/lib/engines/rails_extensions +/svn/!svn/ver/4094/trunk/vendor/plugins/engines/lib/engines/rails_extensions END form_tag_helpers.rb K 25 @@ -13,7 +13,7 @@ K 25 svn:wc:ra_dav:version-url V 93 -/svn/!svn/ver/1654/trunk/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb +/svn/!svn/ver/4094/trunk/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb END dependencies.rb K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries --- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/rails_extensions http://redmine.rubyforge.org/svn -2009-09-13T17:14:35.707881Z -2887 +2010-09-17T04:06:40.671348Z +4094 edavis10 @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.692131Z +2010-09-23T14:37:45.707755Z 3e26c9fe2cd009cb5e81f6ccea3f012c 2009-02-21T11:04:50.579477Z 2493 @@ -66,11 +66,11 @@ -2010-07-23T14:49:46.692131Z -6df88867c6f46b0e34973d765f941b3c -2008-07-12T10:17:14.809831Z -1654 -jplang +2010-09-24T12:48:29.635919Z +c5a5e8b469c1e3fefcc5bedca9f4ac82 +2010-09-17T04:06:40.671348Z +4094 +edavis10 has-props @@ -92,7 +92,7 @@ -4642 +4686 dependencies.rb file @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.692131Z +2010-09-23T14:37:45.707755Z 6e29697f02c187c9033624422365044a 2009-02-21T11:04:50.579477Z 2493 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.692131Z +2010-09-23T14:37:45.707755Z f26da6a18ffcc7b846838f038a0abea4 2008-07-12T10:17:14.809831Z 1654 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.696105Z +2010-09-23T14:37:45.707755Z 8f8e408b9f1a72af1cc5232ddb888266 2009-02-21T11:04:50.579477Z 2493 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/rails_extensions/.svn/text-base/asset_helpers.rb.svn-base --- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/text-base/asset_helpers.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/text-base/asset_helpers.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -109,11 +109,11 @@ # Returns the publicly-addressable relative URI for the given asset, type and plugin def self.plugin_asset_path(plugin_name, type, asset) raise "No plugin called '#{plugin_name}' - please use the full name of a loaded plugin." if Engines.plugins[plugin_name].nil? - "/#{Engines.plugins[plugin_name].public_asset_directory}/#{type}/#{asset}" + "#{ActionController::Base.relative_url_root}/#{Engines.plugins[plugin_name].public_asset_directory}/#{type}/#{asset}" end end module ::ActionView::Helpers::AssetTagHelper #:nodoc: include Engines::RailsExtensions::AssetHelpers -end \ No newline at end of file +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb --- a/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb Fri Sep 24 14:06:04 2010 +0100 @@ -109,11 +109,11 @@ # Returns the publicly-addressable relative URI for the given asset, type and plugin def self.plugin_asset_path(plugin_name, type, asset) raise "No plugin called '#{plugin_name}' - please use the full name of a loaded plugin." if Engines.plugins[plugin_name].nil? - "/#{Engines.plugins[plugin_name].public_asset_directory}/#{type}/#{asset}" + "#{ActionController::Base.relative_url_root}/#{Engines.plugins[plugin_name].public_asset_directory}/#{type}/#{asset}" end end module ::ActionView::Helpers::AssetTagHelper #:nodoc: include Engines::RailsExtensions::AssetHelpers -end \ No newline at end of file +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/tasks/.svn/entries --- a/vendor/plugins/engines/tasks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/tasks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/tasks http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.684127Z +2010-09-23T14:37:45.707755Z 10b9e5aacd9d0673e694f6ababd6ee3b 2009-12-18T14:41:37.649419Z 3186 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/.svn/entries --- a/vendor/plugins/engines/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/.svn/entries --- a/vendor/plugins/engines/test/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/controllers/.svn/entries --- a/vendor/plugins/engines/test/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.404129Z +2010-09-23T14:37:45.711814Z 8e2adc646126f3962ca1eaf16d663fa7 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/controllers/namespace/.svn/entries --- a/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers/namespace http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.404129Z +2010-09-23T14:37:45.711814Z ed9f029690f9d77b31e0d68cff2f8ff3 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/helpers/.svn/entries --- a/vendor/plugins/engines/test/app/helpers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/helpers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/helpers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.396130Z +2010-09-23T14:37:45.715757Z b3286b0384ccf10d15423a78b8a70c3a 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/models/.svn/entries --- a/vendor/plugins/engines/test/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/models http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.400129Z +2010-09-23T14:37:45.715757Z 53fd050b6dc2f5da77439ffab6e1dd6e 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.400129Z +2010-09-23T14:37:45.715757Z ffba288117364d8379bd2b6788e2fd2f 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/things/.svn/entries --- a/vendor/plugins/engines/test/app/things/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/things/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/things http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.408135Z +2010-09-23T14:37:45.715757Z aaa0b6b1363b304ca66c8def3c543b13 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/.svn/entries --- a/vendor/plugins/engines/test/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries --- a/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/app_and_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.412132Z +2010-09-23T14:37:45.719755Z e6dca36d9e91414f1a520ffddb5202d7 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/namespace/.svn/entries --- a/vendor/plugins/engines/test/app/views/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries --- a/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace/app_and_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.428099Z +2010-09-23T14:37:45.719755Z e6dca36d9e91414f1a520ffddb5202d7 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/notify_mail/.svn/entries --- a/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/notify_mail http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.424155Z +2010-09-23T14:37:45.723813Z 8e367f8a525da2fddf6b32d5f874c6ba 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.424155Z +2010-09-23T14:37:45.723813Z 50ed7a6afc64b4a326aa8b681a31b9a3 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.424155Z +2010-09-23T14:37:45.723813Z cb0d28ce47ca265d02f252970ac69194 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.424155Z +2010-09-23T14:37:45.723813Z 5a4f738dec733e5f4ad703495c5eb54a 2009-09-13T17:14:35.707881Z 2887 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.424155Z +2010-09-23T14:37:45.723813Z 3b779e7b00bfe0f9b876bfebd7905a4e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries --- a/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/plugin_mail http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.416130Z +2010-09-23T14:37:45.727757Z d0e724c594c43b6db39389834f3c26e2 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.416130Z +2010-09-23T14:37:45.727757Z 317dc13d851c827568f61def9b031803 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/functional/.svn/entries --- a/vendor/plugins/engines/test/functional/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/functional/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/functional http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.727757Z 53bf916868db17fcb64853aab45ce80b 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.727757Z 03f318c931cb7d40733445e72a504c95 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.731757Z 43b6ff22af92cc8988a51d1b50c4c587 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.727757Z 0ca8b6e7e4b7655c3633b11d4ff61cc6 2009-09-13T17:14:35.707881Z 2887 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.731757Z afcc79d3fa1c4f1615b271f65d982d8b 2009-09-13T17:14:35.707881Z 2887 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.672099Z +2010-09-23T14:37:45.727757Z 6bd25b9259dbf37b6d31e69f83a32fe0 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/lib/.svn/entries --- a/vendor/plugins/engines/test/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.676160Z +2010-09-23T14:37:45.731757Z 1fde453d5263852d1ba9fc3dd90254fc 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.676160Z +2010-09-23T14:37:45.731757Z b00ea9b677cec76cd2fc19b1f66db3e2 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.676160Z +2010-09-23T14:37:45.731757Z 52fd5b17adc2fec1950be496b5ff3a3d 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/.svn/entries --- a/vendor/plugins/engines/test/plugins/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.735800Z b70de56fa165815bbab14f584b6fbdb4 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.735800Z 9e56eb4864bc1877cc8a6e69ca873157 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.739799Z f9f42ac7db3bb715ff4f055162013aba 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.739799Z a24a7b9dd5706d2daef2456b1b1cac4c 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.739799Z b1c4a105ad8bfa7add28c583dbd9ef8a 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.520099Z +2010-09-23T14:37:45.739799Z 43152818b40142db88dffe0192e66582 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/models http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.508097Z +2010-09-23T14:37:45.739799Z a661e69f87fead66873ac8cc162da128 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.508097Z +2010-09-23T14:37:45.739799Z 01ab2dea5fd3e341bd082f2fc507f760 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.508097Z +2010-09-23T14:37:45.739799Z ae48cf4ce7068428c1525dba877a880c 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.532127Z +2010-09-23T14:37:45.743801Z eeb9900e088c367d06668e201e4be39e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.524125Z +2010-09-23T14:37:45.743801Z 68deee946f4e81fafcae37d51f2e6bd5 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.528128Z +2010-09-23T14:37:45.747800Z 3791a6748098d1382b11556ec47b6366 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.544095Z +2010-09-23T14:37:45.747800Z eeb9900e088c367d06668e201e4be39e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.540098Z +2010-09-23T14:37:45.747800Z eeb9900e088c367d06668e201e4be39e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.548094Z +2010-09-23T14:37:45.751796Z 3bef9fe54ed08fd7ce454a189b2b3195 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.536104Z +2010-09-23T14:37:45.751796Z 3bef9fe54ed08fd7ce454a189b2b3195 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/lib http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.556099Z +2010-09-23T14:37:45.751796Z 4799f34099980de6af0dc719c7f04845 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.556099Z +2010-09-23T14:37:45.751796Z e892323cf7ac415a30ca41b49ab96d1d 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries --- a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/locales http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.552094Z +2010-09-23T14:37:45.755800Z 8fb4d64b7ed263c84a6aa2974eb71f25 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:46.624093Z +2010-09-23T14:37:45.763755Z cee45809cc705092eca4e13d3aa204f1 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.608163Z +2010-09-23T14:37:45.759798Z 6c633d0dcb606e532dd906bd2567bf57 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.608163Z +2010-09-23T14:37:45.759798Z df7f8bb84aa9fcbe07534d5aa59e11b8 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.608163Z +2010-09-23T14:37:45.759798Z a8bcbb79381d6db75a9ea6e2704828a9 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/models http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.600093Z +2010-09-23T14:37:45.759798Z c9a469b003eca7ac6627c41deeda1b4c 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.620099Z +2010-09-23T14:37:45.763755Z 78db1a7e1a9f6216dfa3671e5d42c81b 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.616100Z +2010-09-23T14:37:45.763755Z 78db1a7e1a9f6216dfa3671e5d42c81b 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries --- a/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/locales http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.624093Z +2010-09-23T14:37:45.767754Z 277816fa171800daec137e70993e39f6 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries --- a/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries --- a/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin/public http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.664155Z +2010-09-23T14:37:45.767754Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.492095Z +2010-09-23T14:37:45.775754Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.436161Z +2010-09-23T14:37:45.771797Z ba97b09a04ada07aa57234ea8649c128 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/assets http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.484093Z +2010-09-23T14:37:45.771797Z 5c22cfc5b27a3b2b869075baacf530a6 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.480155Z +2010-09-23T14:37:45.775754Z 8a99331150683df5edbd645cb851de37 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.492095Z +2010-09-23T14:37:45.775754Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public/subfolder http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.488096Z +2010-09-23T14:37:45.775754Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.500110Z +2010-09-23T14:37:45.779781Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.500110Z +2010-09-23T14:37:45.779781Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.496098Z +2010-09-23T14:37:45.779781Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.572097Z +2010-09-23T14:37:45.783782Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.572097Z +2010-09-23T14:37:45.783782Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.568097Z +2010-09-23T14:37:45.783782Z cee45809cc705092eca4e13d3aa204f1 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app/things http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.564097Z +2010-09-23T14:37:45.783782Z 3b8cfcd53b03ccc6db1aac5b542abaa4 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_load_path/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_load_path http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.628128Z +2010-09-23T14:37:45.787823Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_migration/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.596101Z +2010-09-23T14:37:45.791825Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db/migrate http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.596101Z +2010-09-23T14:37:45.791825Z ba950e9dc666a42d09029148ae7e3234 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.596101Z +2010-09-23T14:37:45.791825Z de937ac5b434955daacc33306a5a1a2d 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.596101Z +2010-09-23T14:37:45.791825Z b9241da5bb8308bcea2f4cd5cbd32ff1 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.660177Z +2010-09-23T14:37:45.799837Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.648129Z +2010-09-23T14:37:45.791825Z 6bfa7a84bb26ae29617568896fec30ae 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.656097Z +2010-09-23T14:37:45.795823Z cf207341167ec099c0e0ffbe3935a4d4 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.656097Z +2010-09-23T14:37:45.795823Z c54772416c0a8c4f3d46880180299dd5 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.656097Z +2010-09-23T14:37:45.799837Z 6f32fb0cf1bfbf4dcc8636f350a126e8 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.656097Z +2010-09-23T14:37:45.795823Z 6f32fb0cf1bfbf4dcc8636f350a126e8 2009-09-13T17:14:35.707881Z 2887 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.656097Z +2010-09-23T14:37:45.795823Z ededb32a08ab9582df24ce1572dc2a20 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_routing/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:46.588095Z +2010-09-23T14:37:45.803782Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.580097Z +2010-09-23T14:37:45.803782Z e5a27666b16bdff58054a3440cf14516 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.580097Z +2010-09-23T14:37:45.803782Z 515669edfb53126155e911a1ae5149ec 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/config http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.584163Z +2010-09-23T14:37:45.803782Z 47135f279d2e64a431d8604df1402ffb 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_testing/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing http://redmine.rubyforge.org/svn @@ -38,7 +38,7 @@ -2010-07-23T14:49:46.640116Z +2010-09-23T14:37:45.807778Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/app http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.640116Z +2010-09-23T14:37:45.807778Z 9cbac832f86ac5e8cfbbc4c69811910e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/fixtures http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.636170Z +2010-09-23T14:37:45.807778Z d41d8cd98f00b204e9800998ecf8427e 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries --- a/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/unit http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.632116Z +2010-09-23T14:37:45.807778Z 35e9fbc2fb32c9114a5d6cf531f41e8d 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/unit/.svn/entries --- a/vendor/plugins/engines/test/unit/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/unit/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.815811Z 6724203a17cf765303c1f1cad440ec45 2009-09-13T17:14:35.707881Z 2887 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.811809Z 45a0f490d23fbb62bab17f142ba7e3a6 2009-09-13T17:14:35.707881Z 2887 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.811809Z 061b4ca6bf8ee79b149289ced48c0389 2009-09-13T17:14:35.707881Z 2887 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.811809Z caf5ed93e20f9675e13260049b591bcb 2009-09-13T17:14:35.707881Z 2887 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.811809Z d48da3c38e3e757d1649f48a25913284 2009-09-13T17:14:35.707881Z 2887 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.815811Z ba3376b21f9304e1bc6dd06e88fb031f 2009-09-13T17:14:35.707881Z 2887 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.815811Z 7930dc88c66a78e10283af28694f9d75 2009-09-13T17:14:35.707881Z 2887 @@ -273,7 +273,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.811809Z da88ee34b7ad92288156f6dc33bc8945 2009-09-13T17:14:35.707881Z 2887 @@ -307,7 +307,7 @@ -2010-07-23T14:49:46.392190Z +2010-09-23T14:37:45.815811Z 749dec42d5f8db283afd40fa09a7a323 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/engines/test/unit/test_testing/.svn/entries --- a/vendor/plugins/engines/test/unit/test_testing/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/engines/test/unit/test_testing/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit/test_testing http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.388128Z +2010-09-23T14:37:45.815811Z 55340a07100e4eea865c224b450561d8 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/.svn/all-wcprops --- a/vendor/plugins/gravatar/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 48 -/svn/!svn/ver/2832/trunk/vendor/plugins/gravatar +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar END Rakefile K 25 svn:wc:ra_dav:version-url V 57 -/svn/!svn/ver/2832/trunk/vendor/plugins/gravatar/Rakefile +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar/Rakefile END README.rdoc K 25 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/.svn/entries --- a/vendor/plugins/gravatar/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar http://redmine.rubyforge.org/svn -2009-08-02T04:19:44.367555Z -2832 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,10 +32,10 @@ -2010-07-23T14:49:46.928151Z -702833cdff531d151408e9b47adb6aa3 -2009-08-02T04:19:44.367555Z -2832 +2010-09-24T12:48:29.643852Z +dcfa5a7b3c1cc768b2c0e3ad1ab802d0 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -58,7 +58,7 @@ -966 +968 README.rdoc file @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.932153Z +2010-09-23T14:37:45.819779Z 3b03a1f4670e486bfc0a99ea42fcc661 2009-08-02T04:19:44.367555Z 2832 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.932153Z +2010-09-23T14:37:45.815811Z cd9b6943fc8fe58cdccef0b0215bf6bb 2009-08-02T04:19:44.367555Z 2832 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.932153Z +2010-09-23T14:37:45.819779Z 7560c41dd1c4891e83f52d2855a6a4e9 2008-10-30T02:58:04.259131Z 1962 @@ -171,7 +171,7 @@ -2010-07-23T14:49:46.932153Z +2010-09-23T14:37:45.819779Z b718f27e16d77b36a24720b5b902328f 2008-10-30T02:58:04.259131Z 1962 @@ -208,7 +208,7 @@ -2010-07-23T14:49:46.932153Z +2010-09-23T14:37:45.819779Z e052390cb0624d4b81b7809e65db85f6 2009-08-02T04:19:44.367555Z 2832 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/.svn/text-base/Rakefile.svn-base --- a/vendor/plugins/gravatar/.svn/text-base/Rakefile.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/.svn/text-base/Rakefile.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -6,7 +6,7 @@ desc 'Run all application-specific specs' Spec::Rake::SpecTask.new(:spec) do |t| - t.rcov = true + # t.rcov = true end desc "Report code statistics (KLOCs, etc) from the application" diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/Rakefile --- a/vendor/plugins/gravatar/Rakefile Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/Rakefile Fri Sep 24 14:06:04 2010 +0100 @@ -6,7 +6,7 @@ desc 'Run all application-specific specs' Spec::Rake::SpecTask.new(:spec) do |t| - t.rcov = true + # t.rcov = true end desc "Report code statistics (KLOCs, etc) from the application" diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/lib/.svn/all-wcprops --- a/vendor/plugins/gravatar/lib/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/lib/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 52 -/svn/!svn/ver/2832/trunk/vendor/plugins/gravatar/lib +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar/lib END gravatar.rb K 25 svn:wc:ra_dav:version-url V 64 -/svn/!svn/ver/2832/trunk/vendor/plugins/gravatar/lib/gravatar.rb +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar/lib/gravatar.rb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/lib/.svn/entries --- a/vendor/plugins/gravatar/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/lib http://redmine.rubyforge.org/svn -2009-08-02T04:19:44.367555Z -2832 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,10 +32,10 @@ -2010-07-23T14:49:46.924126Z -c686acac699ae970650d4a48ab5e84ec -2009-08-02T04:19:44.367555Z -2832 +2010-09-24T12:48:29.639851Z +a988835a981d11a6fb73f61ba01e56e4 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -58,5 +58,5 @@ -2963 +3076 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/lib/.svn/text-base/gravatar.rb.svn-base --- a/vendor/plugins/gravatar/lib/.svn/text-base/gravatar.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/lib/.svn/text-base/gravatar.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -26,6 +26,9 @@ # decorational picture, the alt text should be empty according to the # XHTML specs. :alt => '', + + # The title text to use for the img tag for the gravatar. + :title => '', # The class to assign to the img tag for the gravatar. :class => 'gravatar', @@ -48,8 +51,8 @@ def gravatar(email, options={}) src = h(gravatar_url(email, options)) options = DEFAULT_OPTIONS.merge(options) - [:class, :alt, :size].each { |opt| options[opt] = h(options[opt]) } - "\"#{options[:alt]}\"" + [:class, :alt, :size, :title].each { |opt| options[opt] = h(options[opt]) } + "\"#{options[:alt]}\"" end # Returns the base Gravatar URL for the given email hash. If ssl evaluates to true, @@ -82,4 +85,4 @@ end -end \ No newline at end of file +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/lib/gravatar.rb --- a/vendor/plugins/gravatar/lib/gravatar.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/lib/gravatar.rb Fri Sep 24 14:06:04 2010 +0100 @@ -26,6 +26,9 @@ # decorational picture, the alt text should be empty according to the # XHTML specs. :alt => '', + + # The title text to use for the img tag for the gravatar. + :title => '', # The class to assign to the img tag for the gravatar. :class => 'gravatar', @@ -48,8 +51,8 @@ def gravatar(email, options={}) src = h(gravatar_url(email, options)) options = DEFAULT_OPTIONS.merge(options) - [:class, :alt, :size].each { |opt| options[opt] = h(options[opt]) } - "\"#{options[:alt]}\"" + [:class, :alt, :size, :title].each { |opt| options[opt] = h(options[opt]) } + "\"#{options[:alt]}\"" end # Returns the base Gravatar URL for the given email hash. If ssl evaluates to true, @@ -82,4 +85,4 @@ end -end \ No newline at end of file +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/spec/.svn/all-wcprops --- a/vendor/plugins/gravatar/spec/.svn/all-wcprops Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/spec/.svn/all-wcprops Fri Sep 24 14:06:04 2010 +0100 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/1962/trunk/vendor/plugins/gravatar/spec +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar/spec END gravatar_spec.rb K 25 svn:wc:ra_dav:version-url V 70 -/svn/!svn/ver/1962/trunk/vendor/plugins/gravatar/spec/gravatar_spec.rb +/svn/!svn/ver/4072/trunk/vendor/plugins/gravatar/spec/gravatar_spec.rb END diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/spec/.svn/entries --- a/vendor/plugins/gravatar/spec/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/spec/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,14 +1,14 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/spec http://redmine.rubyforge.org/svn -2008-10-30T02:58:04.259131Z -1962 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -32,10 +32,10 @@ -2010-07-23T14:49:46.928151Z -2aaebfd60071b5f1889e3875086cbdbb -2008-10-30T02:58:04.259131Z -1962 +2010-09-24T12:48:29.643852Z +26b23e5e988b11435e121bf53624d934 +2010-09-10T03:09:02.311267Z +4072 edavis10 @@ -58,5 +58,5 @@ -942 +1177 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/spec/.svn/text-base/gravatar_spec.rb.svn-base --- a/vendor/plugins/gravatar/spec/.svn/text-base/gravatar_spec.rb.svn-base Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/spec/.svn/text-base/gravatar_spec.rb.svn-base Fri Sep 24 14:06:04 2010 +0100 @@ -4,34 +4,40 @@ require File.dirname(__FILE__) + '/../lib/gravatar' include GravatarHelper, GravatarHelper::PublicMethods, ERB::Util -context "gravatar_url with a custom default URL" do - setup do +describe "gravatar_url with a custom default URL" do + before(:each) do @original_options = DEFAULT_OPTIONS.dup DEFAULT_OPTIONS[:default] = "no_avatar.png" @url = gravatar_url("somewhere") end - specify "should include the \"default\" argument in the result" do + it "should include the \"default\" argument in the result" do @url.should match(/&default=no_avatar.png/) end - teardown do + after(:each) do DEFAULT_OPTIONS.merge!(@original_options) end end -context "gravatar_url with default settings" do - setup do +describe "gravatar_url with default settings" do + before(:each) do @url = gravatar_url("somewhere") end - specify "should have a nil default URL" do + it "should have a nil default URL" do DEFAULT_OPTIONS[:default].should be_nil end - specify "should not include the \"default\" argument in the result" do + it "should not include the \"default\" argument in the result" do @url.should_not match(/&default=/) end -end \ No newline at end of file +end + +describe "gravatar with a custom title option" do + it "should include the title in the result" do + gravatar('example@example.com', :title => "This is a title attribute").should match(/This is a title attribute/) + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/gravatar/spec/gravatar_spec.rb --- a/vendor/plugins/gravatar/spec/gravatar_spec.rb Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/gravatar/spec/gravatar_spec.rb Fri Sep 24 14:06:04 2010 +0100 @@ -4,34 +4,40 @@ require File.dirname(__FILE__) + '/../lib/gravatar' include GravatarHelper, GravatarHelper::PublicMethods, ERB::Util -context "gravatar_url with a custom default URL" do - setup do +describe "gravatar_url with a custom default URL" do + before(:each) do @original_options = DEFAULT_OPTIONS.dup DEFAULT_OPTIONS[:default] = "no_avatar.png" @url = gravatar_url("somewhere") end - specify "should include the \"default\" argument in the result" do + it "should include the \"default\" argument in the result" do @url.should match(/&default=no_avatar.png/) end - teardown do + after(:each) do DEFAULT_OPTIONS.merge!(@original_options) end end -context "gravatar_url with default settings" do - setup do +describe "gravatar_url with default settings" do + before(:each) do @url = gravatar_url("somewhere") end - specify "should have a nil default URL" do + it "should have a nil default URL" do DEFAULT_OPTIONS[:default].should be_nil end - specify "should not include the \"default\" argument in the result" do + it "should not include the \"default\" argument in the result" do @url.should_not match(/&default=/) end -end \ No newline at end of file +end + +describe "gravatar with a custom title option" do + it "should include the title in the result" do + gravatar('example@example.com', :title => "This is a title attribute").should match(/This is a title attribute/) + end +end diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/.svn/entries --- a/vendor/plugins/open_id_authentication/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.976208Z +2010-09-23T14:37:45.823780Z b66b372df8374607d104228f41a06671 2009-02-11T19:06:45.087605Z 2438 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.976208Z +2010-09-23T14:37:45.831824Z 22579abfc9dc6a4cf475150e407e9a17 2009-02-12T21:25:50.680468Z 2458 @@ -109,7 +109,7 @@ -2010-07-23T14:49:46.976208Z +2010-09-23T14:37:45.823780Z d23f4c2e6c00805d7172c76ad52ebe6f 2009-02-11T19:06:45.087605Z 2438 @@ -146,7 +146,7 @@ -2010-07-23T14:49:46.976208Z +2010-09-23T14:37:45.823780Z 45eb3e296a3591fca629d0c8eab71e4c 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/generators/.svn/entries --- a/vendor/plugins/open_id_authentication/generators/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/generators/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries --- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.968098Z +2010-09-23T14:37:45.827780Z ee799e52b83b842fa2a879431195e9eb 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries --- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.968098Z +2010-09-23T14:37:45.827780Z 352b0b17c079fdf355c028a9b990b3b7 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries --- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.976208Z +2010-09-23T14:37:45.831824Z f401bfd8b5d2dd3008d16bf79de8c1e4 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries --- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.972128Z +2010-09-23T14:37:45.831824Z 512b6bc6321e15e12a9eb5ef10317b73 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/lib/.svn/entries --- a/vendor/plugins/open_id_authentication/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-08-25T15:27:56.758589Z +2010-09-23T14:37:45.831824Z c72f1bd48e8c2dfe4e84ba232fc40030 2010-08-10T21:12:32.103531Z 3933 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries --- a/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib/open_id_authentication http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z 1effe2a3ab6ff2cf3a4ffc288222b114 2009-02-11T19:06:45.087605Z 2438 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z 9ed2aea6a3f0e76f21a84bf5bdb1bebe 2009-02-11T19:06:45.087605Z 2438 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z 4aa743638f54375c2f1f25e62fa50bf3 2009-02-11T19:06:45.087605Z 2438 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z d05c8725996156d4cc153a2fc0891db8 2009-02-11T19:06:45.087605Z 2438 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z 6a6fdfddabbc9ae4b8c11f69bc653107 2009-02-11T19:06:45.087605Z 2438 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.960095Z +2010-09-23T14:37:45.835838Z 42863e1d17d5af05e0e896d336def59c 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/tasks/.svn/entries --- a/vendor/plugins/open_id_authentication/tasks/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/tasks/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/tasks http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.952194Z +2010-09-23T14:37:45.835838Z 54b595ee92e0adb364a9086340b2af51 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/open_id_authentication/test/.svn/entries --- a/vendor/plugins/open_id_authentication/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/open_id_authentication/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.948095Z +2010-09-23T14:37:45.839834Z 9448478c6f6c999b3dfae03f9661a7a9 2009-02-11T19:06:45.087605Z 2438 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.948095Z +2010-09-23T14:37:45.839834Z 218b9c429fce5d50a6de37d10d4c626a 2009-02-11T19:06:45.087605Z 2438 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.948095Z +2010-09-23T14:37:45.839834Z 3ffcd8ee621212d3a963257c35cf565c 2009-02-11T19:06:45.087605Z 2438 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.948095Z +2010-09-23T14:37:45.839834Z 26175162cebaa3962614100cac9726fc 2009-02-11T19:06:45.087605Z 2438 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.948095Z +2010-09-23T14:37:45.839834Z c3e483ae649f9324f093075331c26ed1 2009-02-11T19:06:45.087605Z 2438 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/prepend_engine_views/.svn/entries --- a/vendor/plugins/prepend_engine_views/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/prepend_engine_views/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/prepend_engine_views http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.892127Z +2010-09-23T14:37:45.843778Z 720c397a2f5ed49f4436f5d9cbe0b5ec 2009-09-13T17:14:35.707881Z 2887 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/rfpdf/.svn/entries --- a/vendor/plugins/rfpdf/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/rfpdf/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.916157Z +2010-09-23T14:37:45.843778Z 1da9fbada6119233134b3aab6c7d0edf 2008-07-04T17:58:14.743502Z 1623 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.916157Z +2010-09-23T14:37:45.843778Z 275a3dc6407eaf7c40f1d8f4e6b08803 2006-11-21T18:34:04.275680Z 49 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.916157Z +2010-09-23T14:37:45.843778Z 40cf182dab06e3de067375de5bbab322 2006-11-21T18:34:04.275680Z 49 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.916157Z +2010-09-23T14:37:45.843778Z d58199e83ebcaa5d234764407c238bb2 2006-11-21T18:34:04.275680Z 49 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/rfpdf/lib/.svn/entries --- a/vendor/plugins/rfpdf/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/rfpdf/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.847779Z 9667df0ee17c3893ec4025f214d990ee 2006-11-21T18:34:04.275680Z 49 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/rfpdf/lib/rfpdf/.svn/entries --- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib/rfpdf http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.908132Z +2010-09-23T14:37:45.851779Z ddaf6868455af432aac221e53aadc10a 2008-06-07T08:39:06.277997Z 1497 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.908132Z +2010-09-23T14:37:45.851779Z 69406d6105df50a9552702d133889fd6 2006-11-21T18:34:04.275680Z 49 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.908132Z +2010-09-23T14:37:45.855835Z 61d6e8e3bc2a549b1adf12c8e5148019 2010-02-07T12:30:44.486359Z 3389 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.908132Z +2010-09-23T14:37:45.855835Z f504607d615e4d100eb506daf3dfe038 2006-11-21T18:34:04.275680Z 49 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.855835Z 267f469d753d389beda7bb8d39ef5e79 2007-02-18T10:33:22.252239Z 248 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.851779Z 8b971319c65229a7075520cf5ce0fb84 2006-11-21T18:34:04.275680Z 49 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.851779Z c11f99560b9b2e12cf9c679f8ef11c37 2006-11-21T18:34:04.275680Z 49 @@ -270,7 +270,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.851779Z 48cd43d67257151aebb2e0aeee6f4cbf 2007-03-01T19:49:04.518842Z 287 @@ -304,7 +304,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.855835Z 9bdec08cb98e4413cfb9c39877f3734d 2008-07-04T17:58:14.743502Z 1623 @@ -338,7 +338,7 @@ -2010-07-23T14:49:46.912143Z +2010-09-23T14:37:45.851779Z e759935ac5ac9027073e9a2f3543b231 2006-11-21T18:34:04.275680Z 49 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/rfpdf/test/.svn/entries --- a/vendor/plugins/rfpdf/test/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/rfpdf/test/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/test http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.896133Z +2010-09-23T14:37:45.855835Z 65b672e3025a6dc9ed22dc2cb1356061 2006-11-21T18:34:04.275680Z 49 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries --- a/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4 http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.328096Z +2010-09-23T14:37:45.859799Z 100efd8d000514effa3709713ab85acb 2007-01-02T08:48:40.736310Z 134 @@ -72,7 +72,7 @@ -2010-07-23T14:49:46.328096Z +2010-09-23T14:37:45.859799Z e951c712b462c2e6e01f12474d4a23c2 2007-01-02T08:48:40.736310Z 134 @@ -106,7 +106,7 @@ -2010-07-23T14:49:46.328096Z +2010-09-23T14:37:45.859799Z ff6d66271209d878dbe3742d8061151e 2007-01-02T08:48:40.736310Z 134 @@ -140,7 +140,7 @@ -2010-07-23T14:49:46.328096Z +2010-09-23T14:37:45.859799Z 365281a5053e3232092adff0636600b3 2007-01-02T08:48:40.736310Z 134 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries --- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib http://redmine.rubyforge.org/svn diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries --- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net http://redmine.rubyforge.org/svn @@ -35,7 +35,7 @@ -2010-07-23T14:49:46.324130Z +2010-09-23T14:37:45.867778Z bcd7fbc67923f3cc1491ca301a5c39cb 2007-01-02T08:48:40.736310Z 134 @@ -69,7 +69,7 @@ -2010-07-23T14:49:46.324130Z +2010-09-23T14:37:45.863819Z 47d5a9c76d96071a1de184dd49c09194 2007-01-02T08:48:40.736310Z 134 @@ -103,7 +103,7 @@ -2010-07-23T14:49:46.324130Z +2010-09-23T14:37:45.863819Z 40f7f978006674f2b916ce341e5ad684 2008-02-15T17:22:21.293943Z 1148 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries --- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.320094Z +2010-09-23T14:37:45.867778Z be6b5dd522a4532ceeda4ab5bddcb53e 2007-01-02T08:48:40.736310Z 134 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.320094Z +2010-09-23T14:37:45.867778Z dce002e156bf793b6219b50e5d4ede3a 2007-01-02T08:48:40.736310Z 134 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.320094Z +2010-09-23T14:37:45.867778Z 39c1aa4a3ff36f2769b6855a4b56faa7 2007-02-18T11:45:55.832750Z 252 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.320094Z +2010-09-23T14:37:45.867778Z 7acdae44250f47d4b177c0367865d5f7 2007-01-02T08:48:40.736310Z 134 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.320094Z +2010-09-23T14:37:45.867778Z 7af528c0721148b904f82e64e523ee74 2007-01-02T08:48:40.736310Z 134 diff -r 1d32c0a0efbf -r 40f7cfd4df19 vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries --- a/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Wed Aug 25 16:30:24 2010 +0100 +++ b/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Fri Sep 24 14:06:04 2010 +0100 @@ -1,7 +1,7 @@ 10 dir -4040 +4173 http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/tests http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z d32a0d5d48658b30de358974dc588b6a 2007-01-02T08:48:40.736310Z 134 @@ -66,7 +66,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z 9a4a1de4982131870bcc016b3062b563 2007-01-02T08:48:40.736310Z 134 @@ -100,7 +100,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z 07fadb83b55212328945590db904016b 2007-01-02T08:48:40.736310Z 134 @@ -134,7 +134,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z f60b9471933a7a534097d3fd1fe38a18 2007-01-02T08:48:40.736310Z 134 @@ -168,7 +168,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z 98e4a39b73665ed7c274457213d8e3d5 2007-01-02T08:48:40.736310Z 134 @@ -202,7 +202,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z a6eed10e89ba06f4ffa2da720bb1752f 2007-01-02T08:48:40.736310Z 134 @@ -236,7 +236,7 @@ -2010-07-23T14:49:46.296143Z +2010-09-23T14:37:45.871778Z 3dcbc8b4c3717fa97211a1d75a7fab4f 2007-01-02T08:48:40.736310Z 134