backlog 0.36.2 → 0.37.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. data/Gemfile +16 -4
  2. data/Gemfile.lock +130 -0
  3. data/History.txt +17 -0
  4. data/README.txt +0 -2
  5. data/Rakefile +17 -7
  6. data/app/controllers/absences_controller.rb +1 -2
  7. data/app/controllers/application_controller.rb +13 -14
  8. data/app/controllers/application_controller.rb.rails2 +186 -0
  9. data/app/controllers/estimates_controller.rb +1 -1
  10. data/app/controllers/groups_controller.rb +3 -1
  11. data/app/controllers/periods_controller.rb +61 -50
  12. data/app/controllers/{backlogs_controller.rb → projects_controller.rb} +35 -35
  13. data/app/controllers/search_controller.rb +2 -2
  14. data/app/controllers/tasks_controller.rb +11 -11
  15. data/app/controllers/user_controller.rb +6 -4
  16. data/app/controllers/welcome_controller.rb +4 -4
  17. data/app/controllers/work_locks_controller.rb +2 -2
  18. data/app/controllers/works_controller.rb +31 -31
  19. data/app/helpers/application_helper.rb +2 -2
  20. data/app/helpers/application_helper.rb.rails2 +118 -0
  21. data/app/helpers/periods_helper.rb +3 -3
  22. data/app/helpers/{backlogs_helper.rb → projects_helper.rb} +5 -5
  23. data/app/helpers/user_helper.rb +2 -2
  24. data/app/{models → mailers}/user_notify.rb +1 -0
  25. data/app/models/absence.rb +2 -2
  26. data/{lib → app/models}/clock.rb +0 -0
  27. data/app/models/estimate.rb +2 -2
  28. data/app/models/party.rb +1 -2
  29. data/app/models/period.rb +17 -18
  30. data/app/models/{backlog.rb → project.rb} +2 -2
  31. data/app/models/sidebar.rb +2 -2
  32. data/app/models/task.rb +28 -28
  33. data/app/models/user.rb +5 -4
  34. data/app/models/work.rb +29 -23
  35. data/app/models/work_lock_nagger.rb +1 -1
  36. data/app/models/works_report_filter.rb +4 -4
  37. data/app/views/customers/_name_list.rhtml +1 -1
  38. data/app/views/layouts/_headers.rhtml +2 -1
  39. data/app/views/layouts/_left_top.rhtml +32 -29
  40. data/app/views/layouts/_shortcuts.rhtml +15 -9
  41. data/app/views/layouts/_shortcuts_js.rhtml +4 -4
  42. data/app/views/layouts/mwrt002.html.erb +44 -0
  43. data/app/views/periods/_burn_down_chart.rhtml +1 -1
  44. data/app/views/periods/_show_active.rhtml +3 -3
  45. data/app/views/periods/_title.rhtml +1 -1
  46. data/app/views/{backlogs → projects}/_buttons.rhtml +4 -4
  47. data/app/views/projects/_form.rhtml +44 -0
  48. data/app/views/projects/_name_list.rhtml +5 -0
  49. data/app/views/projects/edit.rhtml +14 -0
  50. data/app/views/{backlogs → projects}/finish_task.rjs +0 -0
  51. data/app/views/projects/list.rhtml +16 -0
  52. data/app/views/{backlogs → projects}/move_task_to_period.rjs +0 -0
  53. data/app/views/{backlogs → projects}/new.rhtml +1 -1
  54. data/app/views/{backlogs → projects}/reopen_task.rjs +0 -0
  55. data/app/views/{backlogs → projects}/show.rhtml +6 -6
  56. data/app/views/search/results.rhtml +3 -3
  57. data/app/views/tasks/_backlog_header.rhtml +4 -4
  58. data/app/views/tasks/_completed.rhtml +2 -2
  59. data/app/views/tasks/_form.rhtml +13 -13
  60. data/app/views/tasks/_task.rhtml +10 -10
  61. data/app/views/tasks/edit.rhtml +1 -1
  62. data/app/views/tasks/list.rhtml +3 -3
  63. data/app/views/tasks/list_started.rhtml +4 -4
  64. data/app/views/tasks/start_work.rjs +1 -1
  65. data/app/views/user/login.rhtml +1 -1
  66. data/app/views/user/signup.rhtml +1 -1
  67. data/app/views/user/welcome.rhtml +1 -1
  68. data/app/views/works/_description_list.rhtml +1 -1
  69. data/app/views/works/_form.rhtml +5 -5
  70. data/app/views/works/_new_row.rhtml +8 -8
  71. data/app/views/works/_row.rhtml +1 -1
  72. data/app/views/works/_task_id_list.rhtml +1 -1
  73. data/app/views/works/daily_work_sheet.rhtml +1 -1
  74. data/app/views/works/list.rhtml +5 -5
  75. data/app/views/works/list_excel.rhtml +2 -2
  76. data/app/views/works/timeliste.rhtml +14 -14
  77. data/app/views/works/weekly_work_sheet.rhtml +5 -5
  78. data/app/views/works/weekly_work_sheet_details.rhtml +5 -5
  79. data/backlog.gemspec +44 -0
  80. data/bin/backlog +5 -1
  81. data/config.ru +4 -0
  82. data/config/application.rb +10 -0
  83. data/config/boot.rb +12 -116
  84. data/config/database.yml +3 -6
  85. data/config/database.yml~ +17 -0
  86. data/config/environment.rb +28 -49
  87. data/config/environments/development.rb +24 -20
  88. data/config/environments/development.rb.rails2 +26 -0
  89. data/config/environments/production.rb +26 -22
  90. data/config/environments/test.rb +20 -15
  91. data/config/environments/user_environment.rb +1 -1
  92. data/config/initializers/backtrace_silencers.rb +7 -0
  93. data/config/initializers/inflections.rb +10 -0
  94. data/config/initializers/jdbc.rb +1 -1
  95. data/config/initializers/mime_types.rb +5 -0
  96. data/config/initializers/secret_token.rb +7 -0
  97. data/config/initializers/session_store.rb +8 -0
  98. data/config/locales/en.yml +22 -11
  99. data/config/locales/no.yml +1 -0
  100. data/config/routes.rb +4 -5
  101. data/cruise_build.sh +6 -2
  102. data/db/migrate/004_add_period.rb +22 -22
  103. data/db/migrate/015_add_user_option.rb +5 -19
  104. data/db/migrate/017_increase_backlog_name_limit.rb +10 -0
  105. data/db/migrate/021_create_work_accounts.rb +0 -2
  106. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb +22 -0
  107. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb~ +22 -0
  108. data/db/schema.rb +27 -30
  109. data/db/seeds.rb +7 -0
  110. data/lib/array_helper.rb +0 -8
  111. data/lib/class_table_inheritance.rb +8 -7
  112. data/lib/tasks/backup.rake +3 -3
  113. data/lib/tasks/jdbc.rake +2 -2
  114. data/lib/version_from_history.rb +1 -1
  115. data/public/404.html +23 -7
  116. data/public/422.html +26 -0
  117. data/public/500.html +23 -6
  118. data/public/images/rails.png +0 -0
  119. data/public/javascripts/controls.js +5 -3
  120. data/public/javascripts/dragdrop.js +7 -6
  121. data/public/javascripts/effects.js +8 -13
  122. data/public/javascripts/prototype.js +3381 -1700
  123. data/public/javascripts/rails.js +175 -0
  124. data/public/robots.txt +5 -1
  125. data/script/rails +6 -0
  126. data/test/client/login.rb +0 -2
  127. data/test/client/login_test.rb +1 -1
  128. data/test/client/setup.rb +25 -24
  129. data/test/fixtures/{backlogs.yml → projects.yml} +2 -2
  130. data/test/fixtures/tasks.yml +9 -9
  131. data/test/fixtures/work_lock_subscriptions.yml +2 -2
  132. data/test/fixtures/works.yml +7 -7
  133. data/test/functional/periods_controller_test.rb +1 -1
  134. data/test/functional/{backlogs_controller_test.rb → projects_controller_test.rb} +22 -21
  135. data/test/functional/search_controller_test.rb +1 -1
  136. data/test/functional/tasks_controller_test.rb +17 -17
  137. data/test/functional/user_controller_test.rb +16 -21
  138. data/test/functional/welcome_controller_test.rb +4 -3
  139. data/test/functional/works_controller_test.rb +5 -5
  140. data/test/integration/user_system_test.rb +1 -1
  141. data/test/mocks/test/clock.rb +1 -1
  142. data/test/performance/browsing_test.rb +9 -0
  143. data/test/performance/common.rb +1 -1
  144. data/test/test_helper.rb +23 -6
  145. data/test/test_helper.rb~ +121 -0
  146. data/test/unit/user_test.rb +3 -3
  147. data/test/unit/work_test.rb +7 -7
  148. data/vendor/plugins/assert_cookie/lib/assert_cookie.rb +0 -2
  149. data/vendor/plugins/{foreign_key_migrations → dynamic_form}/MIT-LICENSE +1 -1
  150. data/vendor/plugins/dynamic_form/README +13 -0
  151. data/vendor/plugins/dynamic_form/Rakefile +10 -0
  152. data/vendor/plugins/dynamic_form/dynamic_form.gemspec +12 -0
  153. data/vendor/plugins/dynamic_form/init.rb +1 -0
  154. data/vendor/plugins/dynamic_form/lib/action_view/helpers/dynamic_form.rb +300 -0
  155. data/vendor/plugins/dynamic_form/lib/action_view/locale/en.yml +8 -0
  156. data/vendor/plugins/dynamic_form/lib/dynamic_form.rb +5 -0
  157. data/vendor/plugins/dynamic_form/test/dynamic_form_i18n_test.rb +42 -0
  158. data/vendor/plugins/dynamic_form/test/dynamic_form_test.rb +370 -0
  159. data/vendor/plugins/dynamic_form/test/test_helper.rb +9 -0
  160. data/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +432 -0
  161. data/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +297 -0
  162. data/vendor/plugins/rails_time/test/debug.log +1 -0
  163. data/vendor/plugins/{redhillonrails_core → verification}/MIT-LICENSE +1 -1
  164. data/vendor/plugins/verification/README +34 -0
  165. data/vendor/plugins/verification/Rakefile +22 -0
  166. data/vendor/plugins/verification/init.rb +3 -0
  167. data/vendor/plugins/verification/lib/action_controller/verification.rb +132 -0
  168. data/vendor/plugins/verification/test/test_helper.rb +18 -0
  169. data/vendor/plugins/verification/test/verification_test.rb +270 -0
  170. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +1 -1
  171. metadata +115 -134
  172. data/Gemfile~ +0 -4
  173. data/History.txt~ +0 -961
  174. data/LICENSE_LOCALIZATION +0 -20
  175. data/README_LOCALIZATION +0 -61
  176. data/README_RAILS +0 -180
  177. data/app/views/backlogs/_form.rhtml +0 -44
  178. data/app/views/backlogs/_name_list.rhtml +0 -5
  179. data/app/views/backlogs/edit.rhtml +0 -14
  180. data/app/views/backlogs/list.rhtml +0 -16
  181. data/app/views/layouts/mwrt002.rhtml +0 -43
  182. data/config/initializers/mongrel.rb +0 -83
  183. data/config/preinitializer.rb +0 -20
  184. data/config/warble.rb~ +0 -84
  185. data/db/migrate/017_insert_datek_projects.rb +0 -98
  186. data/lib/change_column_null_migration_fix.rb +0 -15
  187. data/no_test.rb~ +0 -6
  188. data/public/dispatch.cgi +0 -10
  189. data/public/dispatch.fcgi +0 -24
  190. data/public/dispatch.rb +0 -10
  191. data/script/about +0 -3
  192. data/script/breakpointer +0 -3
  193. data/script/console +0 -3
  194. data/script/dbconsole +0 -3
  195. data/script/destroy +0 -3
  196. data/script/generate +0 -3
  197. data/script/performance/benchmarker +0 -3
  198. data/script/performance/profiler +0 -3
  199. data/script/plugin +0 -3
  200. data/script/process/inspector +0 -3
  201. data/script/process/reaper +0 -3
  202. data/script/process/spawner +0 -3
  203. data/script/runner +0 -3
  204. data/script/server +0 -3
  205. data/test/client/login.rb~ +0 -33
  206. data/test/mocks/test/user_notify.rb +0 -16
  207. data/vendor/plugins/foreign_key_migrations/CHANGELOG +0 -103
  208. data/vendor/plugins/foreign_key_migrations/README +0 -87
  209. data/vendor/plugins/foreign_key_migrations/about.yml +0 -5
  210. data/vendor/plugins/foreign_key_migrations/init.rb +0 -1
  211. data/vendor/plugins/foreign_key_migrations/install.rb +0 -1
  212. data/vendor/plugins/foreign_key_migrations/lib/foreign_key_migrations.rb +0 -3
  213. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/base.rb +0 -22
  214. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/connection_adapters/abstract_adapter.rb +0 -22
  215. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/connection_adapters/table_definition.rb +0 -28
  216. data/vendor/plugins/lightwindow_helper/README +0 -33
  217. data/vendor/plugins/lightwindow_helper/assets/images/ajax-loading.gif +0 -0
  218. data/vendor/plugins/lightwindow_helper/assets/images/arrow-down.gif +0 -0
  219. data/vendor/plugins/lightwindow_helper/assets/images/arrow-up.gif +0 -0
  220. data/vendor/plugins/lightwindow_helper/assets/images/black-70.png +0 -0
  221. data/vendor/plugins/lightwindow_helper/assets/images/black.png +0 -0
  222. data/vendor/plugins/lightwindow_helper/assets/images/nextlabel.gif +0 -0
  223. data/vendor/plugins/lightwindow_helper/assets/images/prevlabel.gif +0 -0
  224. data/vendor/plugins/lightwindow_helper/assets/javascripts/lightwindow.js +0 -1921
  225. data/vendor/plugins/lightwindow_helper/assets/stylesheets/lightwindow.css +0 -376
  226. data/vendor/plugins/lightwindow_helper/init.rb +0 -1
  227. data/vendor/plugins/lightwindow_helper/install.rb +0 -7
  228. data/vendor/plugins/lightwindow_helper/lib/lightwindow_helper.rb +0 -31
  229. data/vendor/plugins/redhillonrails_core/CHANGELOG +0 -150
  230. data/vendor/plugins/redhillonrails_core/README +0 -124
  231. data/vendor/plugins/redhillonrails_core/init.rb +0 -19
  232. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/base.rb +0 -54
  233. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb +0 -31
  234. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/column.rb +0 -21
  235. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb +0 -26
  236. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb +0 -11
  237. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb +0 -74
  238. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb +0 -8
  239. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb +0 -99
  240. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb +0 -16
  241. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb +0 -9
  242. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb +0 -27
  243. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema.rb +0 -27
  244. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema_dumper.rb +0 -47
  245. data/vendor/plugins/transactional_migrations/CHANGELOG +0 -9
  246. data/vendor/plugins/transactional_migrations/MIT-LICENSE +0 -20
  247. data/vendor/plugins/transactional_migrations/README +0 -15
  248. data/vendor/plugins/transactional_migrations/about.yml +0 -5
  249. data/vendor/plugins/transactional_migrations/init.rb +0 -1
  250. data/vendor/plugins/transactional_migrations/lib/red_hill_consulting/transactional_migrations/active_record/migration.rb +0 -19
@@ -1,5 +1,5 @@
1
1
  class WorkLockNagger
2
- include ActionController::UrlWriter
2
+ include Rails.application.routes.url_helpers
3
3
 
4
4
  def initialize(start_delay = 1)
5
5
  @start_delay = start_delay
@@ -1,18 +1,18 @@
1
1
  class WorksReportFilter < ReportFilter
2
- attr_reader :backlog_id
2
+ attr_reader :project_id
3
3
  attr_reader :invoice
4
4
  attr_reader :user_id
5
5
 
6
6
  def initialize(attributes)
7
- @backlog_id = nil
7
+ @project_id = nil
8
8
  @invoice = nil
9
9
  @user_id = nil
10
10
 
11
11
  if attributes
12
12
  attributes = attributes.clone
13
13
 
14
- backlog_id_param = attributes.delete(:backlog_id)
15
- @backlog_id = backlog_id_param.to_i if backlog_id_param && backlog_id_param.size > 0
14
+ project_id_param = attributes.delete(:project_id)
15
+ @project_id = project_id_param.to_i if project_id_param && project_id_param.size > 0
16
16
 
17
17
  invoice_param = attributes.delete(:invoice)
18
18
  @invoice = invoice_param == 'true' if invoice_param && invoice_param.size > 0
@@ -1,4 +1,4 @@
1
- <ul class="backlogs">
1
+ <ul class="projects">
2
2
  <% for customer in @customers do -%>
3
3
  <li class="task"><div class="name"><%=h customer.name %></div></li>
4
4
  <% end -%>
@@ -2,7 +2,7 @@
2
2
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
3
3
  <meta http-equiv="content-language" content="en" />
4
4
  <meta name="description" content="<%=@page_title || @application_description%>" />
5
- <meta name="keywords" content="backlog, project, project management, todo list, time sheet" />
5
+ <meta name="keywords" content="project, project, project management, todo list, time sheet" />
6
6
  <meta http-equiv="pragma" content="no-cache" />
7
7
  <meta name="robots" content="index,follow" />
8
8
  <meta name="rating" content="general" />
@@ -20,4 +20,5 @@
20
20
  <%= javascript_include_tag "effects" %>
21
21
  <%= javascript_include_tag "controls" %>
22
22
  <%= javascript_include_tag "dragdrop" %>
23
+ <%= javascript_include_tag :defaults %>
23
24
  <%#= javascript_include_tag "ruby" %>
@@ -1,30 +1,33 @@
1
- <div id="navbar">
2
- <span style="float: left"><%=link_to "#{l :backlog} #{APP::VERSION}", 'http://rubyforge.org/projects/backlog'%></span>
3
- <span style="float: left"><form action="<%=url_for :controller => 'search', :action => :results%>"><%=text_field_tag :q, @search || l(:search), :onfocus => "if (value == '#{l(:search)}') value='' "%><%=submit_tag :search, :style => 'display: none'%></form></span>
4
- <span style="float: left; margin-left: 5px; font-weight: bold"><%=Time.new.strftime('%Y-%m-%d %H:%M')%></span>
5
- <%= link_to l(:home), url_for('/') %>
6
-
7
- <% if user? %>
8
- | <%= link_to l(:backlogs), :controller => 'backlogs', :action => :list %>
9
- | <%= link_to l(:log_out), :controller => 'user', :action => :logout %>
10
- <% else %>
11
- | <%= detour_to l(:log_in), :controller => 'user', :action => :login %>
12
- <% end %>
13
- <!-- | <%= link_to l(:administration), :controller => 'administration', :action => :index %> -->
14
- <% if user? %>| <%=link_to user.email, :controller => 'user', :action => :edit%><% end %>
15
- </div>
16
- <div id="header">
17
- <%=render :partial => '/layouts/notice'%>
18
- <%= error_messages_for :backlog %>
19
- <%= error_messages_for :estimate %>
20
- <%= error_messages_for :group %>
21
- <%= error_messages_for :period %>
22
- <%= error_messages_for :task %>
23
- <%= error_messages_for :user %>
24
- <%= error_messages_for :work %>
1
+ <form action="<%= url_for :controller => 'search', :action => :results %>">
2
+ <div id="navbar">
3
+ <span style="float: left"><%= link_to "#{l :project} #{APP::VERSION}", 'http://rubyforge.org/projects/project' %></span>
4
+ <span style="float: left"><%= text_field_tag :q, @search || l(:search), :onfocus => "if (value == '#{l(:search)}') value='' " %><%= submit_tag :search, :style => 'display: none' %></span>
5
+ <span style="float: left; margin-left: 5px; font-weight: bold"><%= Time.new.strftime('%Y-%m-%d %H:%M') %></span>
6
+ <%= link_to l(:home), url_for('/') %>
25
7
 
26
- <div id="introtext">
27
- <h1><%=@application_title%></h1>
28
- <h3><%=@page_title || @application_description%></h3>
29
- </div>
30
- </div>
8
+ <% if user? %>
9
+ | <%= link_to l(:projects), :controller => 'projects', :action => :list %>
10
+ | <%= link_to l(:log_out), :controller => 'user', :action => :logout %>
11
+ <% else %>
12
+ | <%= detour_to l(:log_in), :controller => 'user', :action => :login %>
13
+ <% end %>
14
+ <!-- | <%= link_to l(:administration), :controller => 'administration', :action => :index %> -->
15
+ <% if user? %>| <%= link_to user.email, :controller => 'user', :action => :edit %>
16
+ <% end %>
17
+ </div>
18
+ </form>
19
+ <div id="header">
20
+ <%= render :partial => '/layouts/notice' %>
21
+ <%= error_messages_for :project %>
22
+ <%= error_messages_for :estimate %>
23
+ <%= error_messages_for :group %>
24
+ <%= error_messages_for :period %>
25
+ <%= error_messages_for :task %>
26
+ <%= error_messages_for :user %>
27
+ <%= error_messages_for :work %>
28
+
29
+ <div id="introtext">
30
+ <h1><%= @application_title %></h1>
31
+ <h3><%= @page_title || @application_description %></h3>
32
+ </div>
33
+ </div>
@@ -1,16 +1,22 @@
1
1
  <% if @shortcuts %>
2
2
  <div class="rblock">
3
3
  <div class="btitle">
4
- <h4><%=l :shortcuts %></h4>
4
+ <h4><%= l :shortcuts %></h4>
5
5
  </div>
6
6
  <table>
7
- <% @shortcuts.each_with_index do |shortcut, index| %>
8
- <% if shortcut[:options] %>
9
- <tr><td valign="top"><%= shortcut[:key]%></td><td><%=detour_to l(shortcut[:function]), shortcut[:options], :id => shortcut[:function], :tabindex => index+100 %></td></tr>
10
- <% else %>
11
- <tr><td valign="top"><%= shortcut[:key]%></td><td><%=l shortcut[:function] %></td></tr>
12
- <% end %>
13
- <% end %>
7
+ <% @shortcuts.each_with_index do |shortcut, index| %>
8
+ <% if shortcut[:options] %>
9
+ <tr>
10
+ <td valign="top"><%= shortcut[:key] %></td>
11
+ <td><%= detour_to l(shortcut[:function]), shortcut[:options], :id => shortcut[:function], :tabindex => index+100 %></td>
12
+ </tr>
13
+ <% else %>
14
+ <tr>
15
+ <td valign="top"><%= shortcut[:key] %></td>
16
+ <td><%= l shortcut[:function] %></td>
17
+ </tr>
18
+ <% end %>
19
+ <% end %>
14
20
  </table>
15
21
  </div>
16
- <% end %>
22
+ <% end %>
@@ -1,11 +1,11 @@
1
- <script type="text/javascript">
1
+ <%=javascript_tag do %>
2
2
  function handlePageEvent(event) {
3
3
  if (event.altKey && event.shiftKey && event.charCode == 110) {
4
4
  window.location = '<%=url_for(:controller => 'periods', :action => :new)%>';
5
5
  } else if (event.altKey && event.ctrlKey && event.charCode == 110) {
6
- window.location = '<%=url_for(:controller => 'backlogs', :action => :new ) %>';
6
+ window.location = '<%=url_for(:controller => 'projects', :action => :new ) %>';
7
7
  } else if (event.altKey && event.charCode == 110) {
8
- window.location = '<%=url_for(:controller => 'tasks', :action => :new, :task => {:backlog_id => (@backlog ? @backlog.id : nil), :period_id => (@period ? @period.id : nil)} ) %>';
8
+ window.location = '<%=url_for(:controller => 'tasks', :action => :new, :task => {:project_id => (@project ? @project.id : nil), :period_id => (@period ? @period.id : nil)} ) %>';
9
9
  } else if (event.altKey && event.ctrlKey && event.charCode == 103) {
10
10
  window.location = '<%=url_for(:controller => 'groups', :action => :new ) %>';
11
11
  } else if (event.shiftKey && event.altKey && event.charCode == 100) {
@@ -16,4 +16,4 @@ function handlePageEvent(event) {
16
16
  //alert("shift: " + event.shiftKey + ", alt: " + event.altKey + ", ctrl: " + event.ctrlKey + ", " + event.charCode + ", " + event.keyCode);
17
17
  }
18
18
  }
19
- </script>
19
+ <% end %>
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5
+ <head>
6
+ <%= render :partial => '/layouts/headers' %>
7
+ <%= render :partial => '/layouts/shortcuts_js' %>
8
+ </head>
9
+
10
+ <body onkeypress="handlePageEvent(event);">
11
+ <div id="wrap">
12
+ <div id="leftcol">
13
+ <%= render :partial => '/layouts/left_top' %>
14
+ <div id="content">
15
+ <%= yield %>
16
+ </div>
17
+ </div>
18
+ <div id="rightcol">
19
+ <%= render :partial => '/layouts/shortcuts' %>
20
+ <% @sidebars = @sidebar.blocks(@period) %>
21
+ <% if @sidebars %>
22
+ <% @sidebars.each do |sidebar| %>
23
+ <div class="rblock" id="sidebar_<%= sidebar[:id] %>">
24
+ <div class="btitle">
25
+ <% if sidebar[:options] %>
26
+ <h4><%= link_to h(sidebar[:title]), sidebar[:options] %></h4>
27
+ <% else %>
28
+ <h4><%= h(sidebar[:title]) %></h4>
29
+ <% end %>
30
+ </div>
31
+ <%= sidebar[:content] %>
32
+ </div>
33
+ <% end %>
34
+ <% end %>
35
+ </div>
36
+ <div id="footer">
37
+ <div id="footertext">Copyright &copy; 2006 Kubosch Consulting | All Rights Reserved<br/>Design By
38
+ <a href="http://mywebresource.com" title="Design By MyWebResource">MyWebResource</a> |
39
+ <a href="http://validator.w3.org/check?uri=referer" title="W3C XHTML 1.0 Strict Compliant">W3C XHTML 1.0</a> |
40
+ <a href="http://jigsaw.w3.org/css-validator/" title="W3C CSS 2.0 Compliant">W3C CSS 2.0</a></div>
41
+ </div>
42
+ </div>
43
+ </body>
44
+ </html>
@@ -3,7 +3,7 @@
3
3
  <h4><%=l :burn_down_chart %></h4>
4
4
  </div>
5
5
 
6
- <%= link_to %Q{<img id="burn_down_chart" src="#{url_for(:controller => 'periods', :action => :burn_down_chart_thumbnail, :id => @period, :format => :png)}" alt="Burn down chart" />}, :controller => 'periods', :action => :burn_down_chart, :id => @period, :format => :png %>
6
+ <%= link_to %Q{<img id="burn_down_chart" src="#{url_for(:controller => 'periods', :action => :burn_down_chart_thumbnail, :id => @period, :format => :png)}" alt="Burn down chart" />}.html_safe, :controller => 'periods', :action => :burn_down_chart, :id => @period, :format => :png %>
7
7
 
8
8
 
9
9
  </div>
@@ -1,6 +1,6 @@
1
1
  <%=render :partial => 'title' %>
2
2
 
3
- <!-- TODO: Insert backlog logo here
3
+ <!-- TODO: Insert project logo here
4
4
  <img src="/images/blank.jpg" width="100" height="100" alt="Place An Alternate Description Here!" longdesc="image-description.txt" />
5
5
  <a href="image-description.txt" class="dlink" title="Place An Alternate Description Here!"></a>
6
6
  -->
@@ -33,14 +33,14 @@ function handleEvent(field, event, id) {
33
33
 
34
34
 
35
35
  <div id="active_tasks"<%=' style="display: none;"' unless @tasks and not @tasks.empty?%>>
36
- <%=render :partial => '/tasks/fields_header', :locals => { :backlog => nil, :active => true, :track_todo => @tasks.find {|t|t.period && t.period.active?}, :track_times => @tasks.find {|t|t.period && t.period.active?}, :track_done => @tasks.find {|t|t.period && t.period.active? }, :work_done => @tasks.find {|t| t.total_done > 0} } %>
36
+ <%=render :partial => '/tasks/fields_header', :locals => { :project => nil, :active => true, :track_todo => @tasks.find {|t|t.period && t.period.active?}, :track_times => @tasks.find {|t|t.period && t.period.active?}, :track_done => @tasks.find {|t|t.period && t.period.active? }, :work_done => @tasks.find {|t| t.total_done > 0} } %>
37
37
  <ul id="active_tasks_<%=@period.id%>" class="task_list">
38
38
  <% max_depth = @tasks.map{|t|t.depth}.max %>
39
39
  <% for task in @tasks -%>
40
40
  <% next if @show_only_grabbed_tasks && !(task.users.empty? || task.users.include?(current_user))%>
41
41
  <%=render :partial => '/tasks/task', :locals => { :task => task, :i => i,
42
42
  :active => true, :highlight_task => (task == @selected_task),
43
- :update => :spotlight, :show_backlog => true, :hidden => false,
43
+ :update => :spotlight, :show_project => true, :hidden => false,
44
44
  :max_depth => max_depth} %>
45
45
  <% i += 1 %>
46
46
  <% end -%>
@@ -6,7 +6,7 @@
6
6
  <%=detour_to(image_tag(url_for(@period.party.to_sym.to_s + ".png"), :alt => l(@period.party.to_sym), :title => l(@period.party.to_sym), :class => 'image-submit'), :controller => @period.party.controller, :action => :edit, :id => @period.party) %>
7
7
 
8
8
  <%=if @period.higher_item then link_to(image_tag(url_for("arrow_left.png"), :alt => "#{l :previous} #{l :period}", :title => "#{l :previous} #{l :period}", :class => 'image-submit'), :controller => 'periods', :action => :show, :id => @period.higher_item) end%>
9
- <%=unless @period.passed? then detour_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:period_id => (@period ? @period.id : (@backlog && @backlog.periods.first ? @backlog.periods.first.id : nil))} ) end %>
9
+ <%=unless @period.passed? then detour_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:period_id => (@period ? @period.id : (@project && @project.periods.first ? @project.periods.first.id : nil))} ) end %>
10
10
  <h4><%=h @period.name %> (<%=@period.start_on%> - <%=@period.end_on%>)
11
11
  <% filter_style = {:style => 'float: none; vertical-align: bottom'} %>
12
12
  <% if @show_only_grabbed_tasks %>
@@ -1,4 +1,4 @@
1
- <%=image_link_to 'arrow_up.png', l(:backlogs), :action => :list %>
2
- <%=image_detour_to('clipboard.png', l(:edit), :controller => 'backlogs', :action => :edit, :id => @backlog) unless controller.action_name == 'edit' %>
3
- <%=image_detour_to('hammer.png', l(:work), :controller => 'works', :action => :list, :report_filter => {:backlog_id => @backlog.id}) %>
4
- <%=detour_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:backlog_id => @backlog.id} ) %>
1
+ <%=image_link_to 'arrow_up.png', l(:projects), :action => :list %>
2
+ <%=image_detour_to('clipboard.png', l(:edit), :controller => 'projects', :action => :edit, :id => @project) unless controller.action_name == 'edit' %>
3
+ <%=image_detour_to('hammer.png', l(:work), :controller => 'works', :action => :list, :report_filter => {:project_id => @project.id}) %>
4
+ <%=detour_to(image_tag(url_for("add.png"), :alt => l(:add_task), :title => l(:add_task), :class => 'image-submit'), :controller => 'tasks', :action => 'new', :task => {:project_id => @project.id} ) %>
@@ -0,0 +1,44 @@
1
+ <!--[form:task]-->
2
+ <p>
3
+ <label for="project_name"><%=l :name%></label><br/>
4
+ <%= text_field 'project', 'name', :maxlength => 64 %>
5
+ </p>
6
+
7
+ <h3>Options</h3>
8
+
9
+ <p>
10
+ <%= check_box 'project', 'track_times' %>
11
+ <label for="project_track_times"><%=l :track_times%></label>
12
+ </p>
13
+
14
+ <p>
15
+ <%= check_box 'project', 'track_todo' %>
16
+ <label for="project_track_todo"><%=l :track_todo%></label>
17
+ </p>
18
+
19
+ <p>
20
+ <%= check_box 'project', 'enable_subtasks' %>
21
+ <label for="project_enable_subtasks"><%=l :enable_subtasks%></label>
22
+ </p>
23
+
24
+ <p>
25
+ <%= check_box 'project', 'enable_periods' %>
26
+ <label for="project_enable_periods"><%=l :enable_periods%></label>
27
+ </p>
28
+
29
+ <p>
30
+ <%= check_box 'project', 'enable_customer' %>
31
+ <label for="project_enable_customer"><%=l :enable_customer%></label>
32
+ </p>
33
+
34
+ <p>
35
+ <%= check_box 'project', 'enable_users' %>
36
+ <label for="project_enable_users"><%=l :enable_users%></label>
37
+ </p>
38
+
39
+ <!--[eoform:task]-->
40
+
41
+
42
+ <script type="text/JavaScript">
43
+ document.getElementById('project_name').focus();
44
+ </script>
@@ -0,0 +1,5 @@
1
+ <ul class="projects">
2
+ <% for project in @projects do -%>
3
+ <li class="task"><div class="name"><%=h project.name %></div></li>
4
+ <% end -%>
5
+ </ul>
@@ -0,0 +1,14 @@
1
+ <% @page_title = "#{l(:editing)} #{l(:project)}" %>
2
+
3
+ <div id="spotlight">
4
+ <div class="btitle">
5
+ <%=render :partial => 'buttons'%>
6
+ <h4><%=@project.name%></h4>
7
+ </div>
8
+
9
+ <% form_tag :action => 'update', :id => @project do %>
10
+ <%=render :partial => 'form' %>
11
+ <%=submit_tag l(:save) %>
12
+ <%=back_or_link_to l(:back), :action => 'show', :id => @project %>
13
+ <% end %>
14
+ </div>
@@ -0,0 +1,16 @@
1
+ <% @page_title = "#{l(:listing)} #{l(:projects)}" %>
2
+
3
+ <div id="spotlight">
4
+ <div class="btitle">
5
+ <h4><%=l :projects%></h4>
6
+ </div>
7
+
8
+ <table>
9
+ <% i = 0 %>
10
+ <% for @project in @projects %>
11
+ <tr>
12
+ <td><%=link_to @project.name, :action => :show, :id => @project.id%></td>
13
+ </tr>
14
+ <% end %>
15
+ </table>
16
+ </div>
@@ -1,4 +1,4 @@
1
- <% @page_title = l :new_backlog %>
1
+ <% @page_title = l :new_project %>
2
2
 
3
3
  <div id="spotlight">
4
4
 
@@ -1,9 +1,9 @@
1
- <%@page_title = @backlog.name %>
1
+ <%@page_title = @project.name %>
2
2
  <div id="spotlight">
3
3
  <div class="btitle">
4
4
  <%=render :partial => 'buttons' %><h4><%=l :tasks %></h4>
5
5
  </div>
6
- <div id="active_tasks"<%=' style="display: none;"' unless @tasks and not @tasks.empty? %>>
6
+ <div id="active_tasks"<%=' style="display: none;"'.html_safe unless @tasks and not @tasks.empty? %>>
7
7
  <%i = 0 %>
8
8
  <% periods = @tasks.map {|t| t.period}.uniq %>
9
9
  <% list_ids = periods.map {|period| "active_tasks_#{period && period.id}"} %>
@@ -11,11 +11,11 @@
11
11
  <% tasks_in_period = @tasks.select {|t| t.period_id == (period && period.id)} %>
12
12
  <% work_done = !tasks_in_period.find{|t| t.total_done > 0}.nil? %>
13
13
  <div id="active_period_<%=period && period.id%>">
14
- <%=render :partial => '/tasks/period_header', :locals => {:period => period} if @backlog.enable_periods %>
15
- <%=render :partial => '/tasks/fields_header', :locals => {:backlog => @backlog, :active => true, :track_todo => @backlog.track_todo?, :track_done => @backlog.track_done?, :track_times => tasks_in_period.find {|t|t.period && t.period.active?}, :work_done => work_done} %>
14
+ <%=render :partial => '/tasks/period_header', :locals => {:period => period} if @project.enable_periods %>
15
+ <%=render :partial => '/tasks/fields_header', :locals => {:project => @project, :active => true, :track_todo => @project.track_todo?, :track_done => @project.track_done?, :track_times => tasks_in_period.find {|t|t.period && t.period.active?}, :work_done => work_done} %>
16
16
  <ul id="active_tasks_<%=period && period.id%>" class="task_list">
17
17
  <%for @task in tasks_in_period %>
18
- <%=render :partial => '/tasks/task/', :locals => {:task => @task, :i => i += 1, :active => true, :highlight_task => false, :update => :maincontent, :show_backlog => false, :hidden => false} %>
18
+ <%=render :partial => '/tasks/task/', :locals => {:task => @task, :i => i += 1, :active => true, :highlight_task => false, :update => :maincontent, :show_project => false, :hidden => false} %>
19
19
  <%end %>
20
20
  </ul>
21
21
  </div>
@@ -25,7 +25,7 @@
25
25
  <%=sortable_element list_id, :url => { :action => :order }, :containment => list_ids, :constraint => false, :dropOnEmpty => true %>
26
26
  <% end %>
27
27
  <p id="no_tasks_message"<%=' style="display: none;"' if @tasks and not @tasks.empty? %>>
28
- <%=l :no_pending_tasks_in_backlog %>
28
+ <%=l :no_pending_tasks_in_project %>
29
29
  </p>
30
30
  <%=back_or_link_to(l(:back)) %>
31
31
  </div>
@@ -2,11 +2,11 @@
2
2
 
3
3
  <div id="lfeature">
4
4
  <div class="btitle">
5
- <h4><%=l(:backlogs) %></h4>
5
+ <h4><%=l(:projects) %></h4>
6
6
  </div>
7
7
  <ul>
8
- <% @backlogs.each do |backlog| %>
9
- <li><%=link_to backlog.name, :controller => 'backlogs', :action => :show, :id => backlog%></li>
8
+ <% @projects.each do |project| %>
9
+ <li><%=link_to project.name, :controller => 'projects', :action => :show, :id => project%></li>
10
10
  <% end %>
11
11
  </ul>
12
12
  </div>
@@ -1,14 +1,14 @@
1
- <% @backlog = backlog %>
1
+ <% @project = project %>
2
2
 
3
3
  <div valign="top">
4
4
  <div>
5
5
  <span style="float: left">
6
- <%=image_detour_to('add.png', l(:new_task), :controller => 'tasks', :action => :new, :task => {:backlog_id => @backlog.id, :period_id => @period && @period.id})%>
6
+ <%=image_detour_to('add.png', l(:new_task), :controller => 'tasks', :action => :new, :task => {:project_id => @project.id, :period_id => @period && @period.id})%>
7
7
  </span>
8
8
  <span colspan="4" style="float: left; vertical-align: middle">
9
9
  <h5>
10
- <%=detour_to(h(backlog.name), :controller => 'backlogs', :action => :show, :id => @backlog) %>
11
- <%=image_detour_to('clipboard.png', l(:edit), :controller => 'backlogs', :action => :edit, :id => @backlog.id)%>
10
+ <%=detour_to(h(project.name), :controller => 'projects', :action => :show, :id => @project) %>
11
+ <%=image_detour_to('clipboard.png', l(:edit), :controller => 'projects', :action => :edit, :id => @project.id)%>
12
12
  </h5>
13
13
  </span>
14
14
  <span style="float: left" width="*"/>
@@ -4,12 +4,12 @@
4
4
  <% work_done = !tasks_in_period.find{|t| t.total_done != 0}.nil? %>
5
5
  <div id="completed_period_<%=period && period.id%>">
6
6
  <%=render :partial => '/tasks/period_header', :locals => {:period => period} unless @completed_tasks.map(&:period).uniq.size == 1 %>
7
- <%=render :partial => '/tasks/fields_header', :locals => {:backlog => @backlog, :active => false, :track_times => false, :work_done => work_done} %>
7
+ <%=render :partial => '/tasks/fields_header', :locals => {:project => @project, :active => false, :track_times => false, :work_done => work_done} %>
8
8
  <ul id="completed_tasks_<%=period && period.id%>" class="task_list" style="width: 100%;">
9
9
  <% @completed_tasks.select {|t| t.period == period}.each do |task| %>
10
10
  <%=render :partial => '/tasks/task', :locals => { :task => task, :i => i, :active => false,
11
11
  :highlight_task => task == @selected_task, :hidden => false,
12
- :show_backlog => controller.class != BacklogsController, :update => :spotlight } %>
12
+ :show_project => controller.class != ProjectsController, :update => :spotlight } %>
13
13
  <% i += 1 %>
14
14
  <% end %>
15
15
  </ul>