backlog 0.35.5 → 0.36.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. data/Gemfile +19 -0
  2. data/Gemfile~ +4 -0
  3. data/History.txt +25 -0
  4. data/Rakefile +3 -3
  5. data/app/controllers/{application.rb → application_controller.rb} +1 -2
  6. data/app/controllers/backlogs_controller.rb +0 -16
  7. data/app/controllers/search_controller.rb +0 -2
  8. data/app/controllers/user_controller.rb +7 -7
  9. data/app/controllers/work_locks_controller.rb +2 -2
  10. data/app/controllers/works_controller.rb +23 -23
  11. data/app/helpers/application_helper.rb +9 -6
  12. data/app/helpers/backlogs_helper.rb +1 -1
  13. data/app/helpers/periods_helper.rb +1 -1
  14. data/app/models/backlog.rb +13 -10
  15. data/app/models/period.rb +0 -5
  16. data/app/models/sidebar.rb +1 -0
  17. data/app/models/task.rb +4 -10
  18. data/app/models/user.rb +5 -6
  19. data/app/models/user_notify.rb +0 -1
  20. data/app/models/work.rb +20 -25
  21. data/app/models/works_report_filter.rb +4 -4
  22. data/app/views/backlogs/_buttons.rhtml +1 -1
  23. data/app/views/backlogs/_form.rhtml +5 -9
  24. data/app/views/layouts/_left_top.rhtml +0 -1
  25. data/app/views/periods/_form.rhtml +1 -1
  26. data/app/views/search/results.rhtml +1 -12
  27. data/app/views/task_notify/{invite_en.rhtml → invite.en.html.erb} +0 -0
  28. data/app/views/task_notify/{invite_no.rhtml → invite.no.html.erb} +0 -0
  29. data/app/views/tasks/_task.rhtml +49 -50
  30. data/app/views/tasks/edit.rhtml +4 -4
  31. data/app/views/tasks/start_work.rjs +1 -1
  32. data/app/views/user/_edit.rhtml +1 -1
  33. data/app/views/user/change_password.rhtml +1 -1
  34. data/app/views/user/edit.rhtml +4 -4
  35. data/app/views/user/signup.rhtml +2 -2
  36. data/app/views/user_notify/{change_password_en.rhtml → change_password.en.html.erb} +0 -0
  37. data/app/views/user_notify/{change_password_no.rhtml → change_password.no.html.erb} +0 -0
  38. data/app/views/user_notify/{forgot_password_en.rhtml → forgot_password.en.html.erb} +0 -0
  39. data/app/views/user_notify/{forgot_password_no.rhtml → forgot_password.no.html.erb} +0 -0
  40. data/app/views/user_notify/{monitoring_en.rhtml → monitoring.en.html.erb} +0 -0
  41. data/app/views/user_notify/{monitoring_no.rhtml → monitoring.no.html.erb} +0 -0
  42. data/app/views/user_notify/{monitoring_invitation_en.rhtml → monitoring_invitation.en.html.erb} +0 -0
  43. data/app/views/user_notify/{monitoring_invitation_no.rhtml → monitoring_invitation.no.html.erb} +0 -0
  44. data/app/views/user_notify/{signup_en.rhtml → signup.en.html.erb} +0 -0
  45. data/app/views/user_notify/{signup_no.rhtml → signup.no.html.erb} +0 -0
  46. data/app/views/work_lock_notify/{lock_en.rhtml → lock.en.html.erb} +0 -0
  47. data/app/views/work_lock_notify/{lock_no.rhtml → lock.no.html.erb} +0 -0
  48. data/app/views/work_lock_notify/{nag_en.rhtml → nag.en.html.erb} +0 -0
  49. data/app/views/work_lock_notify/{nag_no.rhtml → nag.no.html.erb} +0 -0
  50. data/app/views/works/_form.rhtml +6 -6
  51. data/app/views/works/_new_row.rhtml +6 -6
  52. data/app/views/works/_row.rhtml +2 -2
  53. data/app/views/works/daily_work_sheet.rhtml +1 -1
  54. data/app/views/works/list.rhtml +6 -6
  55. data/app/views/works/list_excel.rhtml +8 -4
  56. data/app/views/works/timeliste.rhtml +14 -14
  57. data/app/views/works/update_row.rjs +1 -1
  58. data/app/views/works/weekly_work_sheet.rhtml +5 -5
  59. data/app/views/works/weekly_work_sheet_details.rhtml +5 -5
  60. data/config/boot.rb +108 -27
  61. data/config/database.yml +3 -26
  62. data/config/environment.rb +4 -12
  63. data/config/environments/development.rb +0 -1
  64. data/config/initializers/jdbc.rb +7 -0
  65. data/config/initializers/mongrel.rb +83 -0
  66. data/config/locales/en.yml +189 -0
  67. data/config/locales/no.yml +192 -0
  68. data/config/preinitializer.rb +20 -0
  69. data/cruise_build.sh +10 -0
  70. data/cruise_config.rb +1 -1
  71. data/db/migrate/20100720124707_merge_work_account_into_backlog.rb +74 -0
  72. data/db/schema.rb +93 -127
  73. data/lib/class_table_inheritance.rb +53 -11
  74. data/lib/tasks/jdbc.rake +8 -0
  75. data/lib/user_system.rb +5 -1
  76. data/public/javascripts/controls.js +76 -79
  77. data/public/javascripts/dragdrop.js +166 -167
  78. data/public/javascripts/effects.js +174 -168
  79. data/public/javascripts/prototype.js +470 -334
  80. data/public/stylesheets/mwrt002.css +6 -6
  81. data/script/dbconsole +3 -0
  82. data/test/fixtures/backlogs.yml +2 -2
  83. data/test/fixtures/work_lock_subscriptions.yml +2 -2
  84. data/test/fixtures/works.yml +6 -6
  85. data/test/functional/absences_controller_test.rb +1 -1
  86. data/test/functional/backlogs_controller_test.rb +4 -4
  87. data/test/functional/customers_controller_test.rb +1 -1
  88. data/test/functional/dashboard_controller_test.rb +1 -1
  89. data/test/functional/estimates_controller_test.rb +1 -1
  90. data/test/functional/groups_controller_test.rb +1 -1
  91. data/test/functional/parties_controller_test.rb +1 -1
  92. data/test/functional/periods_controller_test.rb +1 -1
  93. data/test/functional/public_holidays_controller_test.rb +1 -1
  94. data/test/functional/search_controller_test.rb +1 -1
  95. data/test/functional/task_files_controller_test.rb +1 -1
  96. data/test/functional/tasks_controller_test.rb +6 -6
  97. data/test/functional/user_controller_test.rb +3 -2
  98. data/test/functional/welcome_controller_test.rb +1 -1
  99. data/test/functional/work_locks_controller_test.rb +1 -1
  100. data/test/functional/works_controller_test.rb +11 -11
  101. data/test/test_helper.rb +2 -2
  102. data/test/unit/absence_test.rb +1 -1
  103. data/test/unit/configuration_test.rb +1 -1
  104. data/test/unit/customer_test.rb +1 -1
  105. data/test/unit/estimate_test.rb +1 -1
  106. data/test/unit/group_test.rb +1 -1
  107. data/test/unit/party_test.rb +1 -1
  108. data/test/unit/period_test.rb +1 -1
  109. data/test/unit/public_holiday_test.rb +1 -1
  110. data/test/unit/task_file_test.rb +1 -1
  111. data/test/unit/task_test.rb +1 -1
  112. data/test/unit/user_test.rb +1 -1
  113. data/test/unit/work_lock_subscription_test.rb +1 -1
  114. data/test/unit/work_lock_test.rb +1 -1
  115. data/test/unit/work_test.rb +8 -8
  116. data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +3 -3
  117. data/vendor/plugins/assert_cookie/lib/assert_cookie.rb +2 -2
  118. data/vendor/plugins/auto_complete/README +23 -0
  119. data/vendor/plugins/auto_complete/Rakefile +22 -0
  120. data/vendor/plugins/auto_complete/init.rb +2 -0
  121. data/vendor/plugins/auto_complete/lib/auto_complete.rb +47 -0
  122. data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +143 -0
  123. data/vendor/plugins/auto_complete/test/auto_complete_test.rb +67 -0
  124. data/vendor/plugins/backlog_jira/init.rb +4 -0
  125. data/vendor/plugins/backlog_jira/{tasks → lib/tasks}/backlog_jira_tasks.rake +0 -0
  126. data/vendor/plugins/has_history/{tasks → lib/tasks}/has_history_tasks.rake +0 -0
  127. metadata +745 -817
  128. data/#SearchRequest.xml# +0 -3443
  129. data/app/controllers/application.rb~ +0 -207
  130. data/app/controllers/work_accounts_controller.rb +0 -58
  131. data/app/helpers/work_accounts_helper.rb +0 -2
  132. data/app/models/work_account.rb +0 -18
  133. data/app/models/work_lock_subscription.rb +0 -3
  134. data/app/views/work_accounts/_form.rhtml +0 -16
  135. data/app/views/work_accounts/_name_list.rhtml +0 -5
  136. data/app/views/work_accounts/_title.rhtml +0 -5
  137. data/app/views/work_accounts/edit.rhtml +0 -12
  138. data/app/views/work_accounts/list.rhtml +0 -31
  139. data/app/views/work_accounts/new.rhtml +0 -10
  140. data/app/views/work_accounts/show.rhtml +0 -50
  141. data/config/environments/localization_environment.rb +0 -10
  142. data/jira.log +0 -98246
  143. data/lang/en.yaml +0 -147
  144. data/lang/localizations.yaml +0 -2
  145. data/lang/no.yaml +0 -146
  146. data/lib/localization.rb +0 -88
  147. data/test/fixtures/work_accounts.yml +0 -7
  148. data/test/functional/work_accounts_controller_test.rb +0 -94
  149. data/test/unit/localization_test.rb +0 -47
  150. data/test/unit/work_account_test.rb +0 -10
@@ -1,36 +1,117 @@
1
- # Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
2
3
 
3
4
  RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
4
5
 
5
- unless defined?(Rails::Initializer)
6
- if File.directory?("#{RAILS_ROOT}/vendor/rails")
7
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
8
- else
9
- require 'rubygems'
10
-
11
- environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join
12
- environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
13
- rails_gem_version = $1
14
-
15
- if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version
16
- # Asking for 1.1.6 will give you 1.1.6.5206, if available -- makes it easier to use beta gems
17
- rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
18
-
19
- if rails_gem
20
- gem "rails", "=#{rails_gem.version.version}"
21
- require rails_gem.full_gem_path + '/lib/initializer'
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exist?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
34
+ end
35
+
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+
40
+ Rails::Initializer.class_eval do
41
+ def load_gems
42
+ @bundler_loaded ||= Bundler.require :default, Rails.env
43
+ end
44
+ end
45
+
46
+ Rails::Initializer.run(:set_load_path)
47
+ end
48
+ end
49
+
50
+ class VendorBoot < Boot
51
+ def load_initializer
52
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
53
+ Rails::Initializer.run(:install_gem_spec_stubs)
54
+ Rails::GemDependency.add_frozen_gem_path
55
+ end
56
+ end
57
+
58
+ class GemBoot < Boot
59
+ def load_initializer
60
+ self.class.load_rubygems
61
+ load_rails_gem
62
+ require 'initializer'
63
+ end
64
+
65
+ def load_rails_gem
66
+ if version = self.class.gem_version
67
+ gem 'rails', version
22
68
  else
23
- STDERR.puts %(Cannot find gem for Rails ~>#{version}.0:
24
- Install the missing gem with 'gem install -v=#{version} rails', or
25
- change environment.rb to define RAILS_GEM_VERSION with your desired version.
26
- )
69
+ gem 'rails'
70
+ end
71
+ rescue Gem::LoadError => load_error
72
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
73
+ exit 1
74
+ end
75
+
76
+ class << self
77
+ def rubygems_version
78
+ Gem::RubyGemsVersion rescue nil
79
+ end
80
+
81
+ def gem_version
82
+ if defined? RAILS_GEM_VERSION
83
+ RAILS_GEM_VERSION
84
+ elsif ENV.include?('RAILS_GEM_VERSION')
85
+ ENV['RAILS_GEM_VERSION']
86
+ else
87
+ parse_gem_version(read_environment_rb)
88
+ end
89
+ end
90
+
91
+ def load_rubygems
92
+ require 'rubygems'
93
+ min_version = '1.3.1'
94
+ unless rubygems_version >= min_version
95
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
96
+ exit 1
97
+ end
98
+
99
+ rescue LoadError
100
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
27
101
  exit 1
28
102
  end
29
- else
30
- gem "rails"
31
- require 'initializer'
103
+
104
+ def parse_gem_version(text)
105
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
106
+ end
107
+
108
+ private
109
+ def read_environment_rb
110
+ File.read("#{RAILS_ROOT}/config/environment.rb")
111
+ end
32
112
  end
33
113
  end
34
-
35
- Rails::Initializer.run(:set_load_path)
36
114
  end
115
+
116
+ # All that for this:
117
+ Rails.boot!
@@ -1,40 +1,17 @@
1
1
  development:
2
- #<% if RUBY_PLATFORM =~ /java/ %>
3
- adapter: jdbc
4
- driver: org.postgresql.Driver
5
- url: jdbc:postgresql://localhost:5432/backlog_development
6
- database: backlog_development
7
- username: root
8
- host: localhost
9
- #<% else %>
10
2
  adapter: postgresql
11
3
  database: backlog_development
12
- #<% end %>
4
+ username: root
13
5
 
14
6
  # Warning: The database defined as 'test' will be erased and
15
7
  # re-generated from your development database when you run 'rake'.
16
8
  # Do not set this db to the same as development or production.
17
9
  test:
18
- #<% if RUBY_PLATFORM =~ /java/ %>
19
- adapter: jdbc
20
- driver: org.postgresql.Driver
21
- url: jdbc:postgresql://localhost:5432/backlog_test
22
- database: backlog_test
23
- username: cruisecontrol
24
- host: localhost
25
- #<% else %>
26
10
  adapter: postgresql
27
11
  database: backlog_test
28
- #<% end %>
12
+ username: cruisecontrol
29
13
 
30
14
  production:
31
- #<% if RUBY_PLATFORM =~ /java/ %>
32
- adapter: jdbc
33
- driver: org.postgresql.Driver
34
- url: jdbc:postgresql://localhost:5432/backlog_production
35
- username: root
36
- host: localhost
37
- #<% else %>
38
15
  adapter: postgresql
39
16
  database: backlog_production
40
- #<% end %>
17
+ username: root
@@ -18,7 +18,7 @@ unless '1.9'.respond_to?(:force_encoding)
18
18
  end
19
19
 
20
20
  # Specifies gem version of Rails to use when vendor/rails is not present
21
- RAILS_GEM_VERSION = '1.2.4'
21
+ RAILS_GEM_VERSION = '~>2.3.8'
22
22
 
23
23
  # Bootstrap the Rails environment, frameworks, and default configuration
24
24
  require File.join(File.dirname(__FILE__), 'boot')
@@ -58,11 +58,7 @@ else
58
58
  puts "Optional global database config file not present (#{DB_CONFIG_FILE})"
59
59
  end
60
60
 
61
- if RUBY_PLATFORM =~ /java/
62
- require 'rubygems'
63
- RAILS_CONNECTION_ADAPTERS = %w(jdbc)
64
- require 'postgresql-8.2-504.jdbc4'
65
- end
61
+ require 'class_table_inheritance'
66
62
 
67
63
  Rails::Initializer.run do |config|
68
64
  # Settings in config/environments/* take precedence those specified here
@@ -94,6 +90,7 @@ Rails::Initializer.run do |config|
94
90
  # config.active_record.default_timezone = :utc
95
91
 
96
92
  # See Rails::Configuration for more options
93
+ config.action_controller.session = { :key => "_backlog_session", :secret => "Uffsbarr, I'hll pha<dr, cum rAgdios, Vixef." }
97
94
  end
98
95
 
99
96
  # Add new inflection rules using the following format
@@ -106,15 +103,10 @@ end
106
103
  # end
107
104
 
108
105
  # Include your application configuration below
109
- require 'environments/localization_environment'
110
- require 'localization'
111
- Localization::load_localized_strings
112
- require 'rubygems'
113
106
 
114
- require 'environments/user_environment'
107
+ require 'config/environments/user_environment'
115
108
  require 'array_helper'
116
109
  require 'big_decimal_yaml_fix'
117
- require 'class_table_inheritance'
118
110
 
119
111
  require 'version_from_history'
120
112
  require 'user_system'
@@ -11,7 +11,6 @@ config.whiny_nils = true
11
11
  # Show full error reports and disable caching
12
12
  config.action_controller.consider_all_requests_local = true
13
13
  config.action_controller.perform_caching = false
14
- config.action_view.cache_template_extensions = false
15
14
  config.action_view.debug_rjs = true
16
15
 
17
16
  # Raise exceptions when mailer fails
@@ -0,0 +1,7 @@
1
+ # This file was generated by the "jdbc" generator, which is provided
2
+ # by the activerecord-jdbc-adapter gem.
3
+ #
4
+ # This file allows the JDBC drivers to be hooked into ActiveRecord
5
+ # such that you don't have to change anything else in your Rails
6
+ # application.
7
+ require 'jdbc_adapter' if defined?(JRUBY_VERSION)
@@ -0,0 +1,83 @@
1
+
2
+ if Rails.version == '2.3.8' && self.class.const_defined?(:Mongrel)
3
+
4
+ # Pulled right from latest rack. Old looked like this in 1.1.0 version.
5
+ #
6
+ # def [](k)
7
+ # super(@names[k] ||= @names[k.downcase])
8
+ # end
9
+ #
10
+ module Rack
11
+ module Utils
12
+ class HeaderHash < Hash
13
+ def [](k)
14
+ super(@names[k]) if @names[k]
15
+ super(@names[k.downcase])
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ # Code pulled from the ticket above.
22
+ #
23
+ class Mongrel::CGIWrapper
24
+ def header_with_rails_fix(options = 'text/html')
25
+ @head['cookie'] = options.delete('cookie').flatten.map { |v| v.sub(/^\n/,'') } if options.class != String and options['cookie']
26
+ header_without_rails_fix(options)
27
+ end
28
+ alias_method_chain :header, :rails_fix
29
+ end
30
+
31
+ # Pulled right from 2.3.8 ActionPack. Simple diff was
32
+ #
33
+ # if headers.include?('Set-Cookie')
34
+ # headers['cookie'] = headers.delete('Set-Cookie').split("\n")
35
+ # end
36
+ #
37
+ # to
38
+ #
39
+ # if headers['Set-Cookie']
40
+ # headers['cookie'] = headers.delete('Set-Cookie').split("\n")
41
+ # end
42
+ #
43
+ module ActionController
44
+ class CGIHandler
45
+ def self.dispatch_cgi(app, cgi, out = $stdout)
46
+ env = cgi.__send__(:env_table)
47
+ env.delete "HTTP_CONTENT_LENGTH"
48
+ cgi.stdinput.extend ProperStream
49
+ env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
50
+ env.update({
51
+ "rack.version" => [0,1],
52
+ "rack.input" => cgi.stdinput,
53
+ "rack.errors" => $stderr,
54
+ "rack.multithread" => false,
55
+ "rack.multiprocess" => true,
56
+ "rack.run_once" => false,
57
+ "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
58
+ })
59
+ env["QUERY_STRING"] ||= ""
60
+ env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
61
+ env["REQUEST_PATH"] ||= "/"
62
+ env.delete "PATH_INFO" if env["PATH_INFO"] == ""
63
+ status, headers, body = app.call(env)
64
+ begin
65
+ out.binmode if out.respond_to?(:binmode)
66
+ out.sync = false if out.respond_to?(:sync=)
67
+ headers['Status'] = status.to_s
68
+ if headers['Set-Cookie']
69
+ headers['cookie'] = headers.delete('Set-Cookie').split("\n")
70
+ end
71
+ out.write(cgi.header(headers))
72
+ body.each { |part|
73
+ out.write part
74
+ out.flush if out.respond_to?(:flush)
75
+ }
76
+ ensure
77
+ body.close if body.respond_to?(:close)
78
+ end
79
+ end
80
+ end
81
+ end
82
+
83
+ end
@@ -0,0 +1,189 @@
1
+ en:
2
+ activerecord:
3
+ errors:
4
+ # The values :model, :attribute and :value are always available for interpolation
5
+ # The value :count is available when applicable. Can be used for pluralization.
6
+ messages:
7
+ inclusion: "is not included in the list"
8
+ exclusion: "is reserved"
9
+ invalid: "is invalid"
10
+ confirmation: "doesn't match confirmation"
11
+ accepted: "must be accepted"
12
+ empty: "can't be empty"
13
+ blank: "can't be blank"
14
+ too_long: "is too long (maximum is {{count}} characters)"
15
+ too_short: "is too short (minimum is {{count}} characters)"
16
+ wrong_length: "is the wrong length (should be {{count}} characters)"
17
+ taken: "has already been taken"
18
+ not_a_number: "is not a number"
19
+ greater_than: "must be greater than {{count}}"
20
+ greater_than_or_equal_to: "must be greater than or equal to {{count}}"
21
+ equal_to: "must be equal to {{count}}"
22
+ less_than: "must be less than {{count}}"
23
+ less_than_or_equal_to: "must be less than or equal to {{count}}"
24
+ odd: "must be odd"
25
+ even: "must be even"
26
+ # Append your own errors here or at the model/attributes scope.
27
+
28
+ # You can define own errors for models or model attributes.
29
+ # The values :model, :attribute and :value are always available for interpolation.
30
+ #
31
+ # For example,
32
+ # models:
33
+ # user:
34
+ # blank: "This is a custom blank message for {{model}}: {{attribute}}"
35
+ # attributes:
36
+ # login:
37
+ # blank: "This is a custom blank message for User login"
38
+ # Will define custom blank validation message for User model and
39
+ # custom blank validation message for login attribute of User model.
40
+ models:
41
+
42
+ abort: Abort
43
+ aborted: Aborted
44
+ absent: Absent
45
+ account: Account
46
+ active: Active
47
+ administration: Administration
48
+ all: All
49
+ all_accounts: all accounts
50
+ assigned_to: Assigned to
51
+ back: Back
52
+ backlog: Backlog
53
+ backlog_description: Task list with ordering and status tracking
54
+ backlogs: Backlogs
55
+ burn_down_chart: Burn Down Chart
56
+ cannot_find_user: Cannot find user %s
57
+ change_password: Change Password
58
+ complete: Complete
59
+ completed: Completed
60
+ completed_at: Ended at
61
+ completed_tasks: Completed Tasks
62
+ confirmation: Are you sure?
63
+ created_by: Created by
64
+ customer: Customer
65
+ daily_work_sheet: Daily work sheet
66
+ dashboard: Dashboard
67
+ delete: Delete
68
+ description: Description
69
+ details: Details
70
+ done: Done
71
+ down: Down
72
+ edit: Edit
73
+ edit_task: Edit task
74
+ editing: Editing
75
+ empty_work_record: Empty work record
76
+ enable_customer: Enable customer
77
+ enable_invoicing: Enable invoicing
78
+ enable_periods: Enable Sprints
79
+ enable_subtasks: Enable Subtasks
80
+ enable_users: Enable users
81
+ end_on: End on
82
+ end_work: Stop
83
+ estimate: Estimate
84
+ experimental: Experimental!
85
+ files: Files
86
+ friday: Friday
87
+ grab_task: Grab task
88
+ grabbed_by_you: Grabbed by you
89
+ group: Group
90
+ groups: Groups
91
+ holiday: Holiday
92
+ holidays_used: Holidays used
93
+ home: Home
94
+ hours: Hours
95
+ hours_last_month: Hours last month
96
+ hours_last_week: Hours last week
97
+ hours_this_month: Hours this month
98
+ hours_this_week: Hours this week
99
+ hours_today: Hours today
100
+ invite: Invite
101
+ invoice: Invoice
102
+ invoice_code: Invoice Code
103
+ invoice_short: Inv.
104
+ left: Left
105
+ listing_works: Recorded work
106
+ lock: Lock
107
+ log_in: Log in
108
+ log_out: Log out
109
+ main_backlog: Main Backlog
110
+ members: Members
111
+ monday: Monday
112
+ move_to_bottom: Move task to bottom of list
113
+ move_to_next_period: Move task to next sprint
114
+ move_to_top: Move task to top of list
115
+ moved: Moved
116
+ name: Name
117
+ new_backlog: Start new backlog
118
+ new_customer: Add new customer
119
+ new_group: Form new group
120
+ new_period: Add new sprint
121
+ new_task: Add new task
122
+ new_work: Add new work record
123
+ new_work_account: Add new work account
124
+ next: Next
125
+ no: No
126
+ no_backlog: No Backlog
127
+ no_pending_tasks: There are no pending tasks in this sprint.
128
+ no_pending_tasks_in_backlog: There are no pending tasks in this backlog.
129
+ not_grabbed: Not grabbed by anyone
130
+ notes: Notes
131
+ ownership: Ownership
132
+ paging: Paging
133
+ password: Password
134
+ period: Sprint
135
+ periods: Sprints
136
+ please_login: Please login
137
+ position: Position
138
+ postponed: Postponed
139
+ previous: Previous
140
+ previous_abr: Prev.
141
+ projection: Projection
142
+ public_holiday: Public Holiday
143
+ release_task: Release task
144
+ reopen: Reopen task
145
+ resolution: Resolution
146
+ resolution_abr: Res.
147
+ right: Right
148
+ saturday: Saturday
149
+ save: Save
150
+ search: Search
151
+ search_results_for: "Search results for '{{query}}'"
152
+ select: Select
153
+ shortcuts: Shortcuts
154
+ sick_days_used: Sick days
155
+ signup: Sign Up
156
+ specify: Specify
157
+ spreadsheet: Spreadsheet
158
+ start: Start
159
+ start_on: Start on
160
+ start_work: Start
161
+ started_at: Started at
162
+ started_tasks: Started tasks
163
+ stop: Stop
164
+ work_lock_subscriptions: Work Lock Subscriptions
165
+ sunday: Sunday
166
+ task: Task
167
+ tasks: Tasks
168
+ thursday: Thursday
169
+ todo: Todo
170
+ total: Total
171
+ totals: Totals
172
+ track_todo: Estimates
173
+ track_done: Track work done
174
+ track_times: Track start and stop times
175
+ tuesday: Tuesday
176
+ unlock: Unlock
177
+ unplanned_tasks: Unplanned tasks
178
+ up: Up
179
+ updated_by: Updated by
180
+ user: User
181
+ view_fullscreen: View fullscreen
182
+ wednesday: Wednesday
183
+ week: Week
184
+ weekly_work_sheet: Weekly work sheet
185
+ welcome_link: Start getting things done.
186
+ work: Work
187
+ work_account: Work Account
188
+ work_accounts: Work Accounts
189
+ yes: Yes