Compare commits

..

107 Commits

Author SHA1 Message Date
bsatarnejad 7d4896523f show asterisks beside date in date-picker 2 years ago
Oliver Günther 262420b440
Add required validation 2 years ago
Oliver Günther e4ea29abb2
WIP 2 years ago
bsatarnejad d44e928a54 remove Non-working days only toggle 2 years ago
Oliver Günther 6f1953d140
Merge remote-tracking branch 'origin/dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Oliver Günther 30190a5a5d
Add spec to add a NWD 2 years ago
Oliver Günther a95512c55e
Use slots from single datepicker to wire up modal 2 years ago
Oliver Günther 6318017e22
Merge remote-tracking branch 'origin/feature/42358-standardise-date-pickers-2' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf c218f1c26d
Remove logs, fix wp single date form initializion 2 years ago
Benjamin Bädorf ba52f73307
Merge branch 'feature/42358-standardise-date-pickers-2' of github.com:opf/openproject into feature/42358-standardise-date-pickers-2 2 years ago
Benjamin Bädorf df49549857
Fix date modal saving for new resources 2 years ago
Benjamin Bädorf 581d1b7ea9
Fix date modal opening for new resources 2 years ago
Dombi Attila 2c885576cc Update time_logging_modal helper to find hidden field 2 years ago
Benjamin Bädorf 532f8b9779
Fix autofocus directive 2 years ago
Benjamin Bädorf 9ec00019e1
Properly focus duration when opening from the wp table 2 years ago
Benjamin Bädorf d2ab657f2c
Merge branch 'feature/42358-standardise-date-pickers-2' of github.com:opf/openproject into feature/42358-standardise-date-pickers-2 2 years ago
Benjamin Bädorf bade5147f3
Fix value update for date picker in wp table 2 years ago
Dombi Attila df74324938 Fix some new_work_package_specs 2 years ago
Benjamin Bädorf 1ad534b8e9
Fix date picker overflows in work package table, add auto alignment option for spot-drop-modal 2 years ago
Oliver Günther 4b3638a826
Merge remote-tracking branch 'origin/feature/42358-standardise-date-pickers-2' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 8d9cf86115
Fix custom field form builder specs 2 years ago
Benjamin Bädorf a341f0b798
Fix broken specs 2 years ago
Benjamin Bädorf 09af5cf34e
Merge branch 'dev' into feature/42358-standardise-date-pickers-2 2 years ago
Benjamin Bädorf 3291a882ed
Removed unused file 2 years ago
Yule d67d18c8f5
Merge branch 'dev' into feature/42358-standardise-date-pickers-2 2 years ago
Benjamin Bädorf 1a32034950
Add date_picker form field type to FormBuilder and use it where possible 2 years ago
Benjamin Bädorf eacbc7528d
Fix overflow for cost types date picker 2 years ago
Benjamin Bädorf dc6417e14a
Add slot for trigger 2 years ago
Oliver Günther 8e928f0d97
WIP single date picker 2 years ago
Oliver Günther 46d8b0c6e0
Merge remote-tracking branch 'origin/feature/42358-standardise-date-pickers-2' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 7401f7c749
Add slot for extra form fields in date picker, make non working days toggle configurable 2 years ago
Benjamin Bädorf f33e1b8dbd
Use op-single-date-picker for budget forms 2 years ago
Oliver Günther 55613c663d
Merge remote-tracking branch 'origin/feature/42358-standardise-date-pickers-2' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf c3d0522b97
Use op-single-date-picker for cost report filters 2 years ago
Benjamin Bädorf 3d9080085b
Remove unused old datepicker code 2 years ago
Benjamin Bädorf 510d389618
Use op-single-date-picker for backlogs, fix value from dataset loading for op-single-date-picker 2 years ago
Benjamin Bädorf 7eb7fcaf61
Use op-single-date-picker for project filters 2 years ago
Benjamin Bädorf d045a8383c
Use op-single-date-picker for version forms 2 years ago
Benjamin Bädorf 290d79aae4
Fix announcement form date picker initial value 2 years ago
Benjamin Bädorf e434ef5b0a
Use op-single-date-picker for announcement form 2 years ago
Benjamin Bädorf 3c853958d2
Use op-single-date-picker for work package bulk edit form 2 years ago
Benjamin Bädorf 9f251db19e
Use op-single-date-picker for work package move form 2 years ago
Benjamin Bädorf 0d4e3a1e2c
Have working date filters 2 years ago
Benjamin Bädorf 47c6ea330c
Use new date picker for dynamic forms 2 years ago
Benjamin Bädorf 47eac9bfd6
Use new date pickers in meetings, unit costs, and email remidners 2 years ago
Benjamin Bädorf a066f83350
Single date picker works in time entry modal 2 years ago
Dombi Attila eb78edfba1 fixup! Allow dangling underscore for _destroy 2 years ago
Benjamin Bädorf 7c346b2e82
Change detection problems 2 years ago
Dombi Attila 51f052f990 Allow dangling underscore for _destroy 2 years ago
Dombi Attila 6157248974 Add requests spec for deleting non working days 2 years ago
Benjamin Bädorf f0d86c1cc2
Separate changeset and non-changeset datepickers 2 years ago
bsatarnejad bdd0c91ca0 add a method to check if a date is a NWD 2 years ago
bsatarnejad 2b59d8fd74 add hidden inputs for a new nwd in ngoninit and add it to the calendar itself at the same time, when it is back from a failed proces 2 years ago
Benjamin Bädorf 6e41289573
Single date picker input field works 2 years ago
Benjamin Bädorf d2ca6969d2
Multi date picker opens correctly 2 years ago
bsatarnejad ff8e61090b add non-working days as test 2 years ago
Dombi Attila 53941c928b Limit json attributes 2 years ago
Dombi Attila 4b5b5a3c13 Fix specs 2 years ago
Benjamin Bädorf 3cc9c05748
Start transforming multi date modal 2 years ago
bsatarnejad 9ab429fa2e Merge branch '45001-component-to-show-the-list-of-non-working-days-of-year' of github.com:opf/openproject into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
bsatarnejad 8ee8792fa9 create hidden inputs only for added and deleted NWDs 2 years ago
Dombi Attila bcadb62f9d Update the modified_non_working_days variable to also propagate the _destroy field to the frontend 2 years ago
bsatarnejad 6b28d037dd add inputs to the form itself instead of row of calendar, while adding a new NWD 2 years ago
Dombi Attila 3c66eca1b9 Pass this.modifiedNonWorkingDays to the angular component 2 years ago
Dombi Attila 5df6dfde50 fixup! Pass ruby variable to the op-non-working-days-list component 2 years ago
Dombi Attila d0b104e501 Pass ruby variable to the op-non-working-days-list component 2 years ago
Dombi Attila 4f5f8ca03b Fix non working days attributes _deleted to _destroy 2 years ago
Dombi Attila 5aa8d0c2a1 Fix parameter name on WorkingDaysSettingsController 2 years ago
Benjamin Bädorf 050aa94c4d
Working build with a workaround for the date modal scheduling and relations services 2 years ago
Benjamin Bädorf 9a923edc36
In-between commit 2 years ago
bsatarnejad 3fd11042d9 use id returned from the API 2 years ago
bsatarnejad 20cdae4003 Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 3fc36bda26
Fix flatpickr initialization 2 years ago
bsatarnejad a415c9b4fb set suto to content height of calendar 2 years ago
bsatarnejad 67f49f38d0 fetch data from non-working days API endpoint 2 years ago
bsatarnejad 7840a9820d Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf eb165e37b7
Merge branch 'dev' into feature/42358-standardise-date-pickers 2 years ago
bsatarnejad 5980033e8b Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
bsatarnejad edf5db21c4 reinstall list in fullcalendar 2 years ago
bsatarnejad d4ca32c14a merge branch dev into current branch 2 years ago
Benjamin Bädorf 53aac04610
Merge branch 'dev' into feature/42358-standardise-date-pickers 2 years ago
bsatarnejad bb7b27e1ac make a connection between rails and calendar list component 2 years ago
bsatarnejad 53df3054ac Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
bsatarnejad 3d14c66b00 change a warning string 2 years ago
bsatarnejad 073e335cdc format removed dates to be shown on the confirmation modal 2 years ago
bsatarnejad 18b73ae414 open confirmation modal in list of non-working days component while submitting the form 2 years ago
bsatarnejad 88acdec6bb change confirm modal to show a list of data and a warning 2 years ago
Benjamin Bädorf 8d5ec86b1c
Fix closing of single date picker 2 years ago
bsatarnejad e9aec723f3 Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 9b63226795
Merge branch 'dev' into feature/42358-standardise-date-pickers 2 years ago
bsatarnejad 557b3c4525 fix full calendar/list css import issue in anguar 14 2 years ago
bsatarnejad fd8e3d0cde Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf c8bfaf98c1
Start rewriting op-single-date-picker from scratch 2 years ago
bsatarnejad 8aa7ec0250 Merge branch dev into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 0cadc6cdad
Refactor date filter templates, try to reach fixed build 2 years ago
Benjamin Bädorf 764ffe28b5
Hard remove op-date-picker directory 2 years ago
bsatarnejad d5d8ee6802 Change componenet name and add empty state handleing and add button for opening the date picker modal 2 years ago
bsatarnejad 75aea8a20f Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
Benjamin Bädorf 2ae17f10fb
Remove date-picker-control, use op-single-date-picker directly 2 years ago
bsatarnejad 9d00f7e22f add delete icon to the list of non-working days 2 years ago
Benjamin Bädorf 6ef33e6151
Fix build 2 years ago
Benjamin Bädorf 0b4bcad061
Initial commit on date picker changes 2 years ago
bsatarnejad 6a514963ce Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
bsatarnejad e6e5028481 Merge branch 'dev' into 45001-component-to-show-the-list-of-non-working-days-of-year 2 years ago
bsatarnejad 0e81099a36 fix eslint errors 2 years ago
bsatarnejad 6317018f83 fix the method for fetching data from the database 2 years ago
bsatarnejad 71cbc45c92 create a new component for showing list of NWD 2 years ago
  1. 8
      Gemfile
  2. 204
      Gemfile.lock
  3. 8
      app/contracts/work_packages/create_contract.rb
  4. 14
      app/controllers/admin/settings/working_days_settings_controller.rb
  5. 2
      app/helpers/application_helper.rb
  6. 10
      app/helpers/confirmation_dialog_helper.rb
  7. 15
      app/helpers/custom_fields_helper.rb
  8. 9
      app/models/work_package.rb
  9. 6
      app/services/settings/working_days_update_service.rb
  10. 24
      app/services/work_packages/create_service.rb
  11. 6
      app/services/work_packages/set_attributes_service.rb
  12. 11
      app/views/admin/settings/working_days_settings/show.html.erb
  13. 2
      app/views/announcements/edit.html.erb
  14. 16
      app/views/projects/filters/date/_between_dates.html.erb
  15. 12
      app/views/projects/filters/date/_on_date.html.erb
  16. 16
      app/views/versions/_form.html.erb
  17. 20
      app/views/work_packages/bulk/edit.html.erb
  18. 20
      app/views/work_packages/moves/new.html.erb
  19. 19
      config/constants/settings/definition.rb
  20. 147
      config/constants/settings/definitions.rb
  21. 66
      config/locales/crowdin/ca.yml
  22. 42
      config/locales/crowdin/es.yml
  23. 74
      config/locales/crowdin/fr.yml
  24. 40
      config/locales/crowdin/js-ca.yml
  25. 24
      config/locales/crowdin/js-es.yml
  26. 42
      config/locales/crowdin/js-fr.yml
  27. 98
      config/locales/crowdin/js-tr.yml
  28. 4
      config/locales/crowdin/ru.yml
  29. 32
      config/locales/crowdin/tr.yml
  30. 2
      config/locales/en.yml
  31. 14
      config/locales/js-en.yml
  32. 64
      docs/api/apiv3/components/schemas/file_collection_model.yml
  33. 22
      docs/api/apiv3/components/schemas/storage_file_location_model.yml
  34. 34
      docs/api/apiv3/components/schemas/storage_file_model.yml
  35. 34
      docs/api/apiv3/components/schemas/storage_file_upload_link_model.yml
  36. 20
      docs/api/apiv3/components/schemas/storage_file_upload_preparation_model.yml
  37. 80
      docs/api/apiv3/components/schemas/storage_files_model.yml
  38. 2
      docs/api/apiv3/components/schemas/time_entry_create_form.yml
  39. 2
      docs/api/apiv3/components/schemas/time_entry_update_form.yml
  40. 2
      docs/api/apiv3/components/schemas/unlock_user.yml
  41. 2
      docs/api/apiv3/components/schemas/update_group.yml
  42. 2
      docs/api/apiv3/components/schemas/update_user.yml
  43. 66
      docs/api/apiv3/components/schemas/work_package_model.yml
  44. 22
      docs/api/apiv3/openapi-spec.yml
  45. 10
      docs/api/apiv3/paths/storage.yml
  46. 2
      docs/api/apiv3/paths/storage_files.yml
  47. 71
      docs/api/apiv3/paths/storage_files_prepare_upload.yml
  48. 5
      docs/api/apiv3/paths/work_packages.yml
  49. 2
      docs/installation-and-operations/configuration/README.md
  50. 16
      docs/installation-and-operations/operation/upgrading/README.md
  51. 29
      docs/release-notes/12-4-3/README.md
  52. 7
      docs/release-notes/README.md
  53. 4
      docs/system-admin-guide/integrations/README.md
  54. BIN
      docs/system-admin-guide/users-permissions/users/Authentication.png
  55. 95
      docs/system-admin-guide/users-permissions/users/README.md
  56. BIN
      docs/system-admin-guide/users-permissions/users/Rate-history-change.png
  57. BIN
      docs/system-admin-guide/users-permissions/users/Sys-admin-add-project.gif
  58. BIN
      docs/system-admin-guide/users-permissions/users/Sys-admin-add-project1.gif
  59. BIN
      docs/system-admin-guide/users-permissions/users/Sys-admin-delete-user.png
  60. BIN
      docs/system-admin-guide/users-permissions/users/Sys-admin-resend-invitation.png
  61. BIN
      docs/system-admin-guide/users-permissions/users/System-admin-guide_lock-users.png
  62. BIN
      docs/system-admin-guide/users-permissions/users/delete-user-confirmation.png
  63. BIN
      docs/system-admin-guide/users-permissions/users/image-20200115155456033.png
  64. BIN
      docs/system-admin-guide/users-permissions/users/image-20200115155855409.png
  65. BIN
      docs/system-admin-guide/users-permissions/users/image-20200115162533470.png
  66. BIN
      docs/system-admin-guide/users-permissions/users/image-20200211141841492.png
  67. BIN
      docs/system-admin-guide/users-permissions/users/image-20210215185753826.png
  68. BIN
      docs/system-admin-guide/users-permissions/users/image-20210302092958881.png
  69. BIN
      docs/system-admin-guide/users-permissions/users/image-20210413112220100.png
  70. BIN
      docs/system-admin-guide/users-permissions/users/image-20210429114602604.png
  71. BIN
      docs/system-admin-guide/users-permissions/users/openproject_system_guide_add_global_roles.png
  72. BIN
      docs/system-admin-guide/users-permissions/users/openproject_system_guide_create_user.png
  73. BIN
      docs/system-admin-guide/users-permissions/users/openproject_system_guide_delete_user.png
  74. BIN
      docs/system-admin-guide/users-permissions/users/openproject_system_guide_general_tab.png
  75. BIN
      docs/system-admin-guide/users-permissions/users/openproject_systemguide_filter_users.png
  76. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_activate_user_list.png
  77. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_activate_user_profile.png
  78. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_adjust_rate_history.png
  79. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_manage_groups.png
  80. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_rate_history.png
  81. BIN
      docs/system-admin-guide/users-permissions/users/system_guide_user_groups.png
  82. 6
      docs/use-cases/README.md
  83. 24
      docs/use-cases/portfolio-management/README.md
  84. 28
      docs/use-cases/resource-management/README.md
  85. BIN
      docs/use-cases/resource-management/configure_wp_view.png
  86. 67
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/README.md
  87. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/Start-time-in-OP.png
  88. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/Time-appears-in-TC.png
  89. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/TimeCamp_Chrome_plugin.png
  90. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/add_extension.png
  91. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/create-project-in-TimeCamp.png
  92. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/create-task-in-TimeCamp.png
  93. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/download-timecamp-extension.png
  94. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/pin-to-browser-full.png
  95. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/pin_to_browser.png
  96. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/project-with-2-tasks-in-timecamp.png
  97. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/project-with-2-tasks.png
  98. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/select-a-task-2.png
  99. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/select-a-task.png
  100. BIN
      docs/user-guide/time-and-costs/time-tracking/timecamp-integration/stop-time-in-OP.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -56,7 +56,7 @@ gem 'will_paginate', '~> 3.3.0'
gem 'friendly_id', '~> 5.5.0'
gem 'acts_as_list', '~> 1.1.0'
gem 'acts_as_list', '~> 1.0.1'
gem 'acts_as_tree', '~> 2.9.0'
gem 'awesome_nested_set', '~> 3.5.0'
gem 'closure_tree', '~> 7.4.0'
@ -92,7 +92,7 @@ gem 'escape_utils', '~> 1.3'
# Syntax highlighting used in html-pipeline with rouge
gem 'rouge', '~> 4.0.0'
# HTML sanitization used for html-pipeline
gem 'sanitize', '~> 6.0.1'
gem 'sanitize', '~> 6.0.0'
# HTML autolinking for mails and urls (replaces autolink)
gem 'rinku', '~> 2.0.4'
# Version parsing with semver
@ -116,7 +116,7 @@ gem 'posix-spawn', '~> 0.3.13', require: false
gem 'bcrypt', '~> 3.1.6'
gem 'multi_json', '~> 1.15.0'
gem 'oj', '~> 3.14.0'
gem 'oj', '~> 3.13.0'
gem 'daemons'
gem 'delayed_cron_job', '~> 0.9.0'
@ -300,7 +300,7 @@ group :development, :test do
gem 'danger-brakeman'
end
gem 'bootsnap', '~> 1.16.0', require: false
gem 'bootsnap', '~> 1.15.0', require: false
# API gems
gem 'grape', '~> 1.7.0'

@ -48,7 +48,7 @@ PATH
remote: modules/backlogs
specs:
openproject-backlogs (1.0.0)
acts_as_list (~> 1.1.0)
acts_as_list (~> 1.0.1)
openproject-pdf_export
PATH
@ -188,34 +188,34 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actioncable (7.0.4.2)
actionpack (= 7.0.4.2)
activesupport (= 7.0.4.2)
actioncable (7.0.4.1)
actionpack (= 7.0.4.1)
activesupport (= 7.0.4.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.4.2)
actionpack (= 7.0.4.2)
activejob (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionmailbox (7.0.4.1)
actionpack (= 7.0.4.1)
activejob (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.4.2)
actionpack (= 7.0.4.2)
actionview (= 7.0.4.2)
activejob (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionmailer (7.0.4.1)
actionpack (= 7.0.4.1)
actionview (= 7.0.4.1)
activejob (= 7.0.4.1)
activesupport (= 7.0.4.1)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.4.2)
actionview (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionpack (7.0.4.1)
actionview (= 7.0.4.1)
activesupport (= 7.0.4.1)
rack (~> 2.0, >= 2.2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
@ -223,31 +223,31 @@ GEM
actionpack-xml_parser (2.0.1)
actionpack (>= 5.0)
railties (>= 5.0)
actiontext (7.0.4.2)
actionpack (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
actiontext (7.0.4.1)
actionpack (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.4.2)
activesupport (= 7.0.4.2)
actionview (7.0.4.1)
activesupport (= 7.0.4.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (7.0.4.2)
activesupport (= 7.0.4.2)
activejob (7.0.4.1)
activesupport (= 7.0.4.1)
globalid (>= 0.3.6)
activemodel (7.0.4.2)
activesupport (= 7.0.4.2)
activemodel (7.0.4.1)
activesupport (= 7.0.4.1)
activemodel-serializers-xml (1.0.2)
activemodel (> 5.x)
activesupport (> 5.x)
builder (~> 3.1)
activerecord (7.0.4.2)
activemodel (= 7.0.4.2)
activesupport (= 7.0.4.2)
activerecord (7.0.4.1)
activemodel (= 7.0.4.1)
activesupport (= 7.0.4.1)
activerecord-import (1.4.1)
activerecord (>= 4.2)
activerecord-nulldb-adapter (0.8.0)
@ -258,19 +258,19 @@ GEM
multi_json (~> 1.11, >= 1.11.2)
rack (>= 2.0.8, < 3)
railties (>= 5.2.4.1)
activestorage (7.0.4.2)
actionpack (= 7.0.4.2)
activejob (= 7.0.4.2)
activerecord (= 7.0.4.2)
activesupport (= 7.0.4.2)
activestorage (7.0.4.1)
actionpack (= 7.0.4.1)
activejob (= 7.0.4.1)
activerecord (= 7.0.4.1)
activesupport (= 7.0.4.1)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.4.2)
activesupport (7.0.4.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
acts_as_list (1.1.0)
acts_as_list (1.0.4)
activerecord (>= 4.2)
acts_as_tree (2.9.1)
activerecord (>= 3.0.0)
@ -282,7 +282,7 @@ GEM
airbrake-ruby (~> 6.0)
airbrake-ruby (6.2.0)
rbtree3 (~> 0.5)
appsignal (3.3.3)
appsignal (3.3.2)
rack
ast (2.4.2)
attr_required (1.0.1)
@ -291,8 +291,8 @@ GEM
awesome_nested_set (3.5.0)
activerecord (>= 4.0.0, < 7.1)
aws-eventstream (1.2.0)
aws-partitions (1.702.0)
aws-sdk-core (3.170.0)
aws-partitions (1.697.0)
aws-sdk-core (3.169.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@ -300,7 +300,7 @@ GEM
aws-sdk-kms (1.62.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.119.0)
aws-sdk-s3 (1.118.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
@ -311,7 +311,7 @@ GEM
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bindata (2.4.14)
bootsnap (1.16.0)
bootsnap (1.15.0)
msgpack (~> 1.2)
brakeman (5.4.0)
browser (5.3.1)
@ -358,10 +358,10 @@ GEM
with_advisory_lock (>= 4.0.0)
coderay (1.1.3)
colored2 (3.1.2)
commonmarker (0.23.8)
commonmarker (0.23.7)
compare-xml (0.66)
nokogiri (~> 1.8)
concurrent-ruby (1.2.0)
concurrent-ruby (1.1.10)
cookiejar (0.3.3)
cork (0.3.0)
colored2 (~> 3.1)
@ -370,12 +370,12 @@ GEM
crass (1.0.6)
daemons (1.4.1)
dalli (3.2.3)
danger (9.2.0)
danger (9.1.0)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
cork (~> 0.1)
faraday (>= 0.9.0, < 3.0)
faraday (>= 0.9.0, < 2.0)
faraday-http-cache (~> 2.0)
git (~> 1.7)
kramdown (~> 2.3)
@ -458,24 +458,43 @@ GEM
tzinfo
eventmachine (1.2.7)
eventmachine_httpserver (0.2.1)
excon (0.98.0)
excon (0.97.2)
factory_bot (6.2.1)
activesupport (>= 5.0.0)
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faraday (2.7.4)
faraday-net_http (>= 2.0, < 3.1)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-follow_redirects (0.3.0)
faraday (>= 1, < 3)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-http-cache (2.4.1)
faraday (>= 0.8)
faraday-net_http (3.0.2)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
ffi (1.15.5)
flamegraph (0.9.5)
fog-aws (3.16.0)
fog-aws (3.15.0)
fog-core (~> 2.1)
fog-json (~> 1.1)
fog-xml (~> 0.1)
@ -502,7 +521,7 @@ GEM
git (1.13.1)
addressable (~> 2.8)
rchardet (~> 1.8)
globalid (1.1.0)
globalid (1.0.1)
activesupport (>= 5.0)
gon (6.4.0)
actionpack (>= 3.0.20)
@ -547,12 +566,11 @@ GEM
iso8601 (0.13.0)
jmespath (1.6.2)
json (2.6.3)
json-jwt (1.16.3)
json-jwt (1.15.3)
activesupport (>= 4.2)
aes_key_wrap
bindata
faraday (~> 2.0)
faraday-follow_redirects
httpclient
json_schemer (0.2.24)
ecma-re-validator (~> 0.3)
hana (~> 1.3)
@ -614,6 +632,7 @@ GEM
minitest (5.17.0)
msgpack (1.6.0)
multi_json (1.15.0)
multipart-post (2.2.3)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
mustermann-grape (1.0.2)
@ -632,13 +651,13 @@ GEM
netrc (0.11.0)
nio4r (2.5.8)
no_proxy_fix (0.1.2)
nokogiri (1.14.1)
nokogiri (1.14.0)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
octokit (5.6.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
oj (3.14.0)
oj (3.13.23)
okcomputer (1.18.4)
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
@ -739,20 +758,20 @@ GEM
rack_session_access (0.2.0)
builder (>= 2.0.0)
rack (>= 1.0.0)
rails (7.0.4.2)
actioncable (= 7.0.4.2)
actionmailbox (= 7.0.4.2)
actionmailer (= 7.0.4.2)
actionpack (= 7.0.4.2)
actiontext (= 7.0.4.2)
actionview (= 7.0.4.2)
activejob (= 7.0.4.2)
activemodel (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
rails (7.0.4.1)
actioncable (= 7.0.4.1)
actionmailbox (= 7.0.4.1)
actionmailer (= 7.0.4.1)
actionpack (= 7.0.4.1)
actiontext (= 7.0.4.1)
actionview (= 7.0.4.1)
activejob (= 7.0.4.1)
activemodel (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
bundler (>= 1.15.0)
railties (= 7.0.4.2)
railties (= 7.0.4.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@ -765,9 +784,9 @@ GEM
rails-i18n (7.0.6)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.0.4.2)
actionpack (= 7.0.4.2)
activesupport (= 7.0.4.2)
railties (7.0.4.1)
actionpack (= 7.0.4.1)
activesupport (= 7.0.4.1)
method_source
rake (>= 12.2)
thor (~> 1.0)
@ -783,7 +802,7 @@ GEM
psych (>= 4.0.0)
recaptcha (5.12.3)
json
redcarpet (3.6.0)
redcarpet (3.5.1)
regexp_parser (2.6.2)
reline (0.3.2)
io-console (~> 0.5)
@ -831,7 +850,7 @@ GEM
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.12.0)
rubocop (1.44.1)
rubocop (1.44.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
@ -867,7 +886,7 @@ GEM
rubytree (2.0.0)
json (~> 2.0, > 2.3.1)
rubyzip (2.3.2)
sanitize (6.0.1)
sanitize (6.0.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
sassc (2.4.0)
@ -882,7 +901,7 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
secure_headers (6.5.0)
selenium-webdriver (4.8.0)
selenium-webdriver (4.7.1)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
@ -908,15 +927,14 @@ GEM
stringio (3.0.4)
structured_warnings (0.4.0)
svg-graph (2.2.1)
swd (2.0.2)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
faraday (~> 2.0)
faraday-follow_redirects
httpclient (>= 2.4)
sys-filesystem (1.4.3)
ffi (~> 1.1)
table_print (1.5.7)
temple (0.10.0)
temple (0.9.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
test-prof (1.1.0)
@ -928,7 +946,7 @@ GEM
ttfunk (1.7.0)
typed_dag (2.0.2)
rails (>= 5.0.4)
tzinfo (2.0.6)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.7)
tzinfo (>= 1.0.0)
@ -952,10 +970,10 @@ GEM
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (~> 4.0)
webfinger (2.1.2)
webfinger (2.0.0)
activesupport
faraday (~> 2.0)
faraday-follow_redirects
faraday (~> 1.7)
faraday_middleware (~> 1.1)
webmock (3.18.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
@ -980,7 +998,7 @@ DEPENDENCIES
activerecord-import (~> 1.4.0)
activerecord-nulldb-adapter (~> 0.8.0)
activerecord-session_store (~> 2.0.0)
acts_as_list (~> 1.1.0)
acts_as_list (~> 1.0.1)
acts_as_tree (~> 2.9.0)
addressable (~> 2.8.0)
airbrake (~> 13.0.0)
@ -990,7 +1008,7 @@ DEPENDENCIES
aws-sdk-core (~> 3.107)
aws-sdk-s3 (~> 1.91)
bcrypt (~> 3.1.6)
bootsnap (~> 1.16.0)
bootsnap (~> 1.15.0)
brakeman (~> 5.4.0)
browser (~> 5.3.0)
budgets!
@ -1050,7 +1068,7 @@ DEPENDENCIES
my_page!
net-ldap (~> 0.17.0)
nokogiri (~> 1.14.0)
oj (~> 3.14.0)
oj (~> 3.13.0)
okcomputer (~> 1.18.1)
omniauth!
omniauth-openid-connect!
@ -1120,7 +1138,7 @@ DEPENDENCIES
ruby-prof
ruby-progressbar (~> 1.11.0)
rubytree (~> 2.0.0)
sanitize (~> 6.0.1)
sanitize (~> 6.0.0)
sassc-rails
secure_headers (~> 6.5.0)
selenium-webdriver (~> 4.0)

@ -38,20 +38,14 @@ module WorkPackages
default_attribute_permission :add_work_packages
validate :user_allowed_to_add
validate :user_allowed_to_manage_file_links
private
def user_allowed_to_add
if (model.project && !@user.allowed_to?(:add_work_packages, model.project)) ||
!@user.allowed_to_globally?(:add_work_packages)
errors.add(:base, :error_unauthorized)
end
end
def user_allowed_to_manage_file_links
if model.file_links.present? && model.project.present? && !user.allowed_to?(:manage_file_links, model.project)
errors.add(:base, :error_unauthorized)
errors.add :base, :error_unauthorized
end
end

@ -13,7 +13,7 @@ module Admin::Settings
end
def failure_callback(call)
@modified_non_working_days = call.result
@modified_non_working_days = modified_non_working_days_for(call.result)
flash[:error] = call.message || I18n.t(:notice_internal_server_error)
render action: 'show', tab: params[:tab]
end
@ -38,8 +38,18 @@ module Admin::Settings
end
def non_working_days_params
non_working_days = params[:settings].to_unsafe_hash[:non_working_days] || {}
non_working_days = params[:settings].to_unsafe_hash[:non_working_days_attributes] || {}
non_working_days.to_h.values
end
def modified_non_working_days_for(result)
return if result.nil?
result.map do |record|
json_attributes = record.as_json(only: %i[id name date])
json_attributes["_destroy"] = true if record.marked_for_destruction?
json_attributes
end
end
end
end

@ -385,7 +385,7 @@ module ApplicationHelper
end
def calendar_for(*_args)
ActiveSupport::Deprecation.warn "calendar_for has been removed. Please add the class '-augmented-datepicker' instead.", caller
ActiveSupport::Deprecation.warn "calendar_for has been removed. Please use the op-single-date-picker angular component instead", caller
end
def locale_first_day_of_week

@ -34,10 +34,14 @@ module ConfirmationDialogHelper
title: nil,
text: nil,
danger_zone: false,
show_list_data: false,
list_title: nil,
warning_text: nil,
button_continue: nil,
button_cancel: nil,
icon_continue: nil,
divider: nil
divider: nil,
passed_data: nil
)
{
'augmented-confirm-dialog': {
@ -49,6 +53,10 @@ module ConfirmationDialogHelper
}.compact,
dangerHighlighting: danger_zone,
divideContent: divider,
listTitle: list_title,
warningText: warning_text,
passedData: passed_data,
showListData: show_list_data,
icon: {
continue: icon_continue
}.compact

@ -78,8 +78,13 @@ module CustomFieldsHelper
tag = case field_format.try(:edit_as)
when 'date'
styled_text_field_tag(field_name, custom_value.value, id: field_id, class: '-augmented-datepicker', size: 10,
container_class: '-slim', required: custom_field.is_required)
angular_component_tag 'op-single-date-picker',
inputs: {
required: custom_field.is_required,
value: custom_value.value,
id: field_id,
name: field_name
}
when 'text'
styled_text_area_tag(field_name, custom_value.value, id: field_id, rows: 3, container_class: '-middle',
required: custom_field.is_required)
@ -150,7 +155,11 @@ module CustomFieldsHelper
field_format = OpenProject::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.try(:edit_as)
when 'date'
styled_text_field_tag(field_name, '', id: field_id, size: 10, class: '-augmented-datepicker')
angular_component_tag 'op-single-date-picker',
inputs: {
id: field_id,
name: field_name,
}
when 'text'
styled_text_area_tag(field_name, '', id: field_id, rows: 3, with_text_formatting: true)
when 'bool'

@ -57,8 +57,8 @@ class WorkPackage < ApplicationRecord
has_many :time_entries, dependent: :delete_all
has_many :file_links, dependent: :delete_all, class_name: 'Storages::FileLink', as: :container
has_many :file_links,
dependent: :delete_all, class_name: 'Storages::FileLink', foreign_key: 'container_id', inverse_of: :container
has_many :storages, through: :project
has_and_belongs_to_many :changesets, -> { # rubocop:disable Rails/HasAndBelongsToMany
@ -310,7 +310,8 @@ class WorkPackage < ApplicationRecord
def type_id=(tid)
self.type = nil
write_attribute(:type_id, tid)
result = write_attribute(:type_id, tid)
result
end
# Overrides attributes= so that type_id gets assigned first
@ -477,7 +478,7 @@ class WorkPackage < ApplicationRecord
key = 'activity_id'
id = attributes[key]
default_id = if id&.present?
Enumeration.exists? id:, is_default: true, type: 'TimeEntryActivity'
Enumeration.exists? id: id, is_default: true, type: 'TimeEntryActivity'
else
true
end

@ -93,7 +93,11 @@ class Settings::WorkingDaysUpdateService < Settings::UpdateService
end
def destroy_records(ids)
wrap_result NonWorkingDay.where(id: ids).destroy_all
records = NonWorkingDay.where(id: ids)
# In case the transaction fails we also mark the records for destruction,
# this way we can display them correctly on the frontend.
records.each(&:mark_for_destruction)
wrap_result records.destroy_all
end
def wrap_result(result)

@ -26,7 +26,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++
class WorkPackages::CreateService < BaseServices::BaseCallable
class WorkPackages::CreateService < ::BaseServices::BaseCallable
include ::WorkPackages::Shared::UpdateAncestors
include ::Shared::ServiceContext
@ -51,13 +51,11 @@ class WorkPackages::CreateService < BaseServices::BaseCallable
def create(attributes, work_package)
result = set_attributes(attributes, work_package)
result.success =
if result.success
work_package.attachments = work_package.attachments_replacements if work_package.attachments_replacements
work_package.save
else
false
end
result.success = if result.success
replace_attachments(work_package)
else
false
end
if result.success?
result.merge!(reschedule_related(work_package))
@ -82,10 +80,16 @@ class WorkPackages::CreateService < BaseServices::BaseCallable
.call(attributes)
end
def replace_attachments(work_package)
work_package.attachments = work_package.attachments_replacements if work_package.attachments_replacements
work_package.save
end
def reschedule_related(work_package)
result = WorkPackages::SetScheduleService
.new(user:, work_package:)
.call
.new(user:,
work_package:)
.call
result.self_and_dependent.each do |r|
unless r.result.save

@ -26,15 +26,12 @@
# See COPYRIGHT and LICENSE files for more details.
#++
class WorkPackages::SetAttributesService < BaseServices::SetAttributes
class WorkPackages::SetAttributesService < ::BaseServices::SetAttributes
include Attachments::SetReplacements
private
def set_attributes(attributes)
file_links_ids = attributes.delete(:file_links_ids)
model.file_links = Storages::FileLink.where(id: file_links_ids) if file_links_ids
set_attachments_attributes(attributes)
set_static_attributes(attributes)
@ -385,7 +382,6 @@ class WorkPackages::SetAttributesService < BaseServices::SetAttributes
max = max_child_date
return unless max
days.duration(min_child_date, max_child_date)
end

@ -42,13 +42,6 @@ See COPYRIGHT and LICENSE files for more details.
<%= styled_form_tag(
admin_settings_working_days_path,
method: :patch,
data: augmented_confirmation_dialog(
title: t('working_days.change_button'),
button_continue: t('working_days.change_button'),
text: "#{t('working_days.warning')}\n#{t(:text_are_you_sure_continue)}",
danger_zone: true,
divider: true
),
class: 'op-working-days-admin-settings'
) do %>
<section class="form--section">
@ -62,5 +55,9 @@ See COPYRIGHT and LICENSE files for more details.
label: false %>
</div>
</section>
<%= angular_component_tag 'op-non-working-days-list',
data: { modified_non_working_days: @modified_non_working_days } %>
<%= styled_button_tag t(:button_save), class: '-highlight -with-icon icon-checkmark' %>
<% end %>

@ -16,7 +16,7 @@
with_text_formatting: true %>
</div>
<div class="form--field">
<%= f.text_field :show_until, label: t('announcements.show_until'), container_class: '-xslim', class: '-augmented-datepicker' %>
<%= f.date_picker :show_until, label: t('announcements.show_until') %>
</div>
<div class="form--field">
<%= f.check_box :active, label: t(:label_active) %>

@ -1,6 +1,18 @@
<div class="between-dates">
<span><%= t(:label_date_from) %>:</span>
<%= text_field_tag :from_value, from_value, id: "between-dates-from-value-#{filter.name}", class: 'advanced-filters--text-field -augmented-datepicker -slim', size: '10' %>
<%= angular_component_tag 'op-single-date-picker',
inputs: {
value: from_value,
id: "between-dates-from-value-#{filter.name}",
name: "from_value"
}
%>
<span><%= t(:label_date_to) %>:</span>
<%= text_field_tag :to_value, to_value, id: "between-dates-to-value-#{filter.name}", class: 'advanced-filters--text-field -augmented-datepicker -slim', size: '10' %>
<%= angular_component_tag 'op-single-date-picker',
inputs: {
value: to_value,
id: "between-dates-to-value-#{filter.name}",
name: "to_value"
}
%>
</div>

@ -1,7 +1,11 @@
<div class="on-date">
<div class="form--field-container">
<div class="form--text-field-container -slim">
<%= text_field_tag :value, value, id: "on-date-value-#{filter.name}", class: 'advanced-filters--text-field -slim -augmented-datepicker', size: '10' %>
</div>
<div class="form--field-container -visible-overflow">
<%= angular_component_tag 'op-single-date-picker',
inputs: {
value: value,
id: "on-date-value-#{filter.name}",
name: "value"
}
%>
</div>
</div>

@ -58,11 +58,23 @@ See COPYRIGHT and LICENSE files for more details.
</div>
<div class="form--field">
<%= f.text_field :start_date, container_class: '-xslim', class: '-augmented-datepicker' %>
<label
class="form--label"
for="version_start_date"
><%= t(:start_date) %></label>
<div class="form--field-container -visible-overflow">
<%= f.date_picker :start_date %>
</div>
</div>
<div class="form--field">
<%= f.text_field :effective_date, container_class: '-xslim', class: '-augmented-datepicker' %>
<label
class="form--label"
for="version_effective_date"
><%= t(:effective_date) %></label>
<div class="form--field-container -visible-overflow">
<%= f.date_picker :effective_date %>
</div>
</div>
<div class="form--field">

@ -48,7 +48,7 @@ See COPYRIGHT and LICENSE files for more details.
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= t(:label_change_properties) %></legend>
<div class="grid-block">
<div class="grid-block grid-block_visible-overflow">
<div class="grid-content medium-6">
<div class="form--field">
<%= styled_label_tag :work_package_type_id, WorkPackage.human_attribute_name(:type) %>
@ -150,14 +150,24 @@ See COPYRIGHT and LICENSE files for more details.
<% end %>
<div class="form--field">
<%= styled_label_tag :work_package_start_date, WorkPackage.human_attribute_name(:start_date) %>
<div class="form--field-container">
<%= styled_text_field_tag 'work_package[start_date]', '', size: 10, class: '-augmented-datepicker' %>
<div class="form--field-container -visible-overflow">
<%= angular_component_tag 'op-single-date-picker',
inputs: {
id: "work_package_start_date",
name: "work_package[start_date]"
}
%>
</div>
</div>
<div class="form--field">
<%= styled_label_tag :work_package_due_date, WorkPackage.human_attribute_name(:due_date) %>
<div class="form--field-container">
<%= styled_text_field_tag 'work_package[due_date]', '', size: 10, class: '-augmented-datepicker' %>
<div class="form--field-container -visible-overflow">
<%= angular_component_tag 'op-single-date-picker',
inputs: {
id: "work_package_due_date",
name: "work_package[due_date]"
}
%>
</div>
</div>
<% if WorkPackage.use_field_for_done_ratio? %>

@ -53,7 +53,7 @@ See COPYRIGHT and LICENSE files for more details.
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= t(:label_change_properties) %></legend>
<div class="grid-block">
<div class="grid-block grid-block_visible-overflow">
<div class="grid-content medium-6">
<div class="form--field">
<label class="form--label" for="new_project_id"><%= WorkPackage.human_attribute_name(:project) %>:</label>
@ -133,14 +133,24 @@ See COPYRIGHT and LICENSE files for more details.
<div class="grid-content medium-6">
<div class="form--field">
<label class="form--label" for='start_date'><%= WorkPackage.human_attribute_name(:start_date) %></label>
<div class="form--field-container">
<%= styled_text_field_tag 'start_date', '', size: 10, class: '-augmented-datepicker' %>
<div class="form--field-container -visible-overflow">
<%= angular_component_tag 'op-single-date-picker',
inputs: {
id: "start_date",
name: "start_date"
}
%>
</div>
</div>
<div class="form--field">
<label class="form--label" for='due_date'><%= WorkPackage.human_attribute_name(:due_date) %></label>
<div class="form--field-container">
<%= styled_text_field_tag 'due_date', '', size: 10, class: '-augmented-datepicker' %>
<div class="form--field-container -visible-overflow">
<%= angular_component_tag 'op-single-date-picker',
inputs: {
id: "due_date",
name: "due_date"
}
%>
</div>
</div>
<% if @target_type %>

@ -36,12 +36,10 @@ module Settings
:env_alias
attr_writer :value,
:description,
:allowed
def initialize(name,
default:,
description: nil,
format: nil,
writable: true,
allowed: nil,
@ -54,7 +52,6 @@ module Settings
self.writable = writable
self.allowed = allowed
self.env_alias = env_alias
self.description = description.presence || :"setting_#{name}"
end
def default
@ -65,14 +62,6 @@ module Settings
cast(@value)
end
def description
if @description.is_a?(Symbol)
I18n.t(@description, default: nil)
else
@description
end
end
def serialized?
%i[array hash].include?(format)
end
@ -135,7 +124,6 @@ module Settings
# @param [Object] default The default value the setting has if not overridden.
# @param [nil] format The format the value is in e.g. symbol, array, hash, string. If a value is present,
# the format is deferred.
# @param [nil] description A human-readable description of this setting.
# @param [TrueClass] writable Whether the value can be set in the UI. In case the value is set via file or ENV var,
# this will be set to false later on and UI elements that refer to the definition will be disabled.
# @param [nil] allowed The array of allowed values that can be assigned to the definition.
@ -148,7 +136,6 @@ module Settings
def add(name,
default:,
format: nil,
description: nil,
writable: true,
allowed: nil,
env_alias: nil)
@ -158,7 +145,6 @@ module Settings
definition = new(name,
format:,
description:,
default:,
writable:,
allowed:,
@ -288,8 +274,8 @@ module Settings
env_var_hash_part
.scan(/(?:[a-zA-Z0-9]|__)+/)
.map do |seg|
unescape_underscores(seg.downcase)
end
unescape_underscores(seg.downcase)
end
end
# takes the path provided and transforms it into a deeply nested hash
@ -343,7 +329,6 @@ module Settings
env_name_alias(definition)
].compact
end
public :possible_env_names
def env_name_nested(definition)

@ -39,29 +39,24 @@ Settings::Definition.define do
add :after_first_login_redirect_url,
format: :string,
description: 'URL users logging in for the first time will be redirected to (e.g., a help screen)',
default: nil,
writable: false
add :after_login_default_redirect_url,
description: 'Override URL to which logged in users are redirected instead of the My page',
format: :string,
default: nil,
writable: false
add :apiv3_cors_enabled,
description: 'Enable CORS headers for APIv3 server responses',
default: false
add :apiv3_cors_origins,
default: []
add :apiv3_docs_enabled,
description: 'Enable interactive APIv3 documentation as part of the application',
default: true
add :apiv3_enable_basic_auth,
description: 'Enable API token or global basic authentication for APIv3 requests',
default: true,
writable: false
@ -82,25 +77,21 @@ Settings::Definition.define do
# Carrierwave storage type. Possible values are, among others, :file and :fog.
# The latter requires further configuration.
add :attachments_storage,
description: 'File storage configuration',
default: :file,
format: :symbol,
allowed: %i[file fog],
writable: false
add :attachments_storage_path,
description: 'File storage disk location (only applicable for local file storage)',
format: :string,
default: nil,
writable: false
add :attachments_grace_period,
description: 'Time to wait before uploaded files not attached to any container are removed',
default: 180,
writable: false
add :auth_source_sso,
description: 'Configuration for Header-based Single Sign-On',
format: :hash,
default: nil,
writable: false
@ -113,7 +104,6 @@ Settings::Definition.define do
# user: admin
# password: 123456
add :authentication,
description: 'Configuration options for global basic auth',
format: :hash,
default: nil,
writable: false
@ -127,17 +117,14 @@ Settings::Definition.define do
default: 0
add :autologin_cookie_name,
description: 'Cookie name for autologin cookie',
default: 'autologin',
writable: false
add :autologin_cookie_path,
description: 'Cookie path for autologin cookie',
default: '/',
writable: false
add :autologin_cookie_secure,
description: 'Cookie secure mode for autologin cookie',
default: false,
writable: false
@ -147,39 +134,32 @@ Settings::Definition.define do
allowed: -> { Redmine::I18n.all_languages }
add :avatar_link_expiry_seconds,
description: 'Cache duration for avatar image API responses',
default: 24.hours.to_i,
writable: false
# Allow users with the required permissions to create backups via the web interface or API.
add :backup_enabled,
description: 'Enable application backups through the UI',
default: true,
writable: false
add :backup_daily_limit,
description: 'Maximum number of application backups allowed per day',
default: 3,
writable: false
add :backup_initial_waiting_period,
description: 'Wait time before newly created backup tokens are usable',
default: 24.hours,
format: :integer,
writable: false
add :backup_include_attachments,
description: 'Allow inclusion of attachments in application backups',
default: true,
writable: false
add :backup_attachment_size_max_sum_mb,
description: 'Maximum limit of attachment size to include into application backups',
default: 1024,
writable: false
add :blacklisted_routes,
description: 'Blocked routes to prevent access to certain modules or pages',
default: [],
writable: false
@ -187,19 +167,15 @@ Settings::Definition.define do
default: true
add :boards_demo_data_available,
description: 'Internal setting determining availability of demo seed data',
default: false
add :brute_force_block_minutes,
description: 'Number of minutes to block users after presumed brute force attack',
default: 30
add :brute_force_block_after_failed_logins,
description: 'Number of login attempts per user before assuming brute force attack',
default: 20
add :cache_expires_in_seconds,
description: 'Expiration time for memcache entries, empty for no expiry be default',
format: :integer,
default: nil,
writable: false
@ -209,47 +185,39 @@ Settings::Definition.define do
# use dalli defaults for memcache
add :cache_memcache_server,
description: 'The memcache server host and IP',
format: :string,
default: nil,
writable: false
add :cache_namespace,
format: :string,
description: 'Namespace for cache keys, useful when multiple applications use a single memcache server',
default: nil,
writable: false
add :commit_fix_done_ratio,
description: 'Progress to apply when commit fixes work package',
default: 100
add :commit_fix_keywords,
description: 'Keywords to look for in commit for fixing work packages',
default: 'fixes,closes'
add :commit_fix_status_id,
description: 'Assigned status when fixing keyword is found',
format: :integer,
default: nil,
allowed: -> { Status.pluck(:id) + [nil] }
# encoding used to convert commit logs to UTF-8
add :commit_logs_encoding,
description: "Encoding used to convert commit logs to UTF-8",
default: 'UTF-8'
add :commit_logtime_activity_id,
description: :setting_commit_logtime_activity_id,
format: :integer,
default: nil,
allowed: -> { TimeEntryActivity.pluck(:id) + [nil] }
add :commit_logtime_enabled,
description: "Allow logging time through commit message",
default: false
add :commit_ref_keywords,
description: "Keywords used in commits for referencing work packages",
default: 'refs,references,IssueID'
add :consent_decline_mail,
@ -266,7 +234,7 @@ Settings::Definition.define do
add :consent_info,
default: {
en: "## Consent\n\nYou need to agree to the [privacy and security policy]" +
"(https://www.openproject.org/data-privacy-and-security/) of this OpenProject instance."
"(https://www.openproject.org/data-privacy-and-security/) of this OpenProject instance."
}
# Indicates whether or not users need to consent to something such as privacy policy.
@ -278,12 +246,10 @@ Settings::Definition.define do
# Allow in-context translations to be loaded with CSP
add :crowdin_in_context_translations,
description: 'Add crowdin in-context translations helper',
default: true,
writable: false
add :database_cipher_key,
description: 'Encryption key for repository credentials',
format: :string,
default: nil,
writable: false
@ -304,12 +270,10 @@ Settings::Definition.define do
].freeze
add :default_auto_hide_popups,
description: 'Whether to automatically hide success notifications by default',
default: true
# user configuration
add :default_comment_sort_order,
description: 'Default sort order for activities',
default: 'asc',
writable: false
@ -335,59 +299,55 @@ Settings::Definition.define do
add :diff_max_lines_displayed,
default: 1500
# only applicable in conjunction with fog (effectively S3) attachments
# which will be uploaded directly to the cloud storage rather than via OpenProject's
# server process.
add :direct_uploads,
description: 'Enable direct uploads to AWS S3. Only applicable with enabled Fog / AWS S3 configuration',
default: true,
writable: false
add :disable_browser_cache,
description: 'Prevent browser from caching any logged-in responses for security reasons',
default: true,
writable: false
# allow to disable default modules
add :disabled_modules,
description: 'A list of module names to prevent access to in the application',
default: [],
writable: false
add :disable_password_choice,
description: "If enabled a user's password cannot be set to an arbitrary value, but can only be randomized.",
default: false,
writable: false
add :disable_password_login,
description: 'Disable internal logins and instead only allow SSO through OmniAuth.',
default: false,
writable: false
add :display_subprojects_work_packages,
default: true
# Destroy all sessions for current_user on logout
add :drop_old_sessions_on_logout,
description: 'Destroy all sessions for current_user on logout',
default: true,
writable: false
# Destroy all sessions for current_user on login
add :drop_old_sessions_on_login,
description: 'Destroy all sessions for current_user on login',
default: false,
writable: false
add :edition,
format: :string,
default: 'standard',
description: 'OpenProject edition mode',
writable: false,
allowed: %w[standard bim]
add :ee_manager_visible,
description: 'Show or hide the Enterprise configuration page and enterprise banners',
default: true,
writable: false
# Enable internal asset server
add :enable_internal_assets_server,
description: 'Serve assets through the Rails internal asset server',
default: false,
writable: false
@ -426,17 +386,14 @@ Settings::Definition.define do
# Allow connections for trial creation and booking
add :enterprise_trial_creation_host,
description: 'Host for EE trial service',
default: 'https://augur.openproject.com',
writable: false
add :enterprise_chargebee_site,
description: 'Site name for EE trial service',
default: 'openproject-enterprise',
writable: false
add :enterprise_plan,
description: 'Default EE selected plan',
default: 'enterprise-on-premises---euro---1-year',
writable: false
@ -456,30 +413,26 @@ Settings::Definition.define do
format: :integer,
allowed: [1, 4]
# Configure fog, e.g. when using an S3 uploader
add :fog,
description: 'Configure fog, e.g. when using an S3 uploader',
default: {}
add :fog_download_url_expires_in,
description: 'Expiration time in seconds of created shared presigned URLs',
default: 21600, # 6h by default as 6 hours is max in S3 when using IAM roles
writable: false
# Additional / overridden help links
add :force_help_link,
description: 'You can set a custom URL for the help button in application header menu.',
format: :string,
default: nil,
writable: false
add :force_formatting_help_link,
description: 'You can set a custom URL for the help button in the WYSIWYG editor.',
format: :string,
default: nil,
writable: false
add :forced_single_page_size,
description: 'Forced page size for manually sorted work package views',
default: 250
add :host_name,
@ -487,7 +440,6 @@ Settings::Definition.define do
# Health check configuration
add :health_checks_authentication_password,
description: 'Add an authentication challenge for the /health_check endpoint',
format: :string,
default: nil,
writable: false
@ -495,21 +447,18 @@ Settings::Definition.define do
# Maximum number of backed up jobs (that are not yet executed)
# before health check fails
add :health_checks_jobs_queue_count_threshold,
description: 'Set threshold of backed up background jobs to fail health check',
format: :integer,
default: 50,
writable: false
## Maximum number of minutes that jobs have not yet run after their designated 'run_at' time
add :health_checks_jobs_never_ran_minutes_ago,
description: 'Set threshold of outstanding background jobs to fail health check',
format: :integer,
default: 5,
writable: false
## Maximum number of unprocessed requests in puma's backlog.
add :health_checks_backlog_threshold,
description: 'Set threshold of outstanding HTTP requests to fail health check',
format: :integer,
default: 20,
writable: false
@ -517,17 +466,15 @@ Settings::Definition.define do
# Default gravatar image, set to something other than 404
# to ensure a default is returned
add :gravatar_fallback_image,
description: 'Set default gravatar image fallback',
default: '404',
writable: false
add :hidden_menu_items,
description: 'Hide menu items in the menu sidebar for each main menu (such as Administration and Projects).',
default: {},
writable: false
# Impressum link to be set, nil by default (= hidden)
add :impressum_link,
description: 'Impressum link to be set, hidden by default',
format: :string,
default: nil,
writable: false
@ -541,7 +488,6 @@ Settings::Definition.define do
default: nil
add :internal_password_confirmation,
description: 'Require password confirmations for certain administrative actions',
default: true,
writable: false
@ -551,24 +497,24 @@ Settings::Definition.define do
add :journal_aggregation_time_minutes,
default: 5
# Allow override of LDAP options
add :ldap_force_no_page,
description: 'Force LDAP to respond as a single page, in case paged responses do not work with your server.',
format: :string,
default: nil,
writable: false
# Allow users to manually sync groups in a different way
# than the provided job using their own cron
add :ldap_groups_disable_sync_job,
description: 'Deactivate regular synchronization job for groups in case scheduled as a separate cronjob',
default: false,
writable: false
add :ldap_users_disable_sync_job,
description: 'Deactive user attributes synchronization from LDAP',
default: false,
writable: false
# Update users' status through the synchronization job
add :ldap_users_sync_status,
description: 'Enable user status (locked/unlocked) synchronization from LDAP',
format: :boolean,
default: false,
writable: false
@ -579,9 +525,7 @@ Settings::Definition.define do
writable: true
add :log_level,
description: 'Set the OpenProject logger level',
default: Rails.env.development? ? 'debug' : 'info',
allowed: %w[debug info warn error fatal],
writable: false
add :log_requesting_user,
@ -589,7 +533,6 @@ Settings::Definition.define do
# Use lograge to format logs, off by default
add :lograge_formatter,
description: 'Use lograge formatter for outputting logs',
default: nil,
format: :string,
writable: false
@ -598,7 +541,6 @@ Settings::Definition.define do
default: false
add :lost_password,
description: 'Activate or deactivate lost password form',
default: true
add :mail_from,
@ -622,13 +564,10 @@ Settings::Definition.define do
add :main_content_language,
default: 'english',
description: 'Main content language for PostgreSQL full text features',
writable: false,
allowed: %w[danish dutch english finnish french german hungarian
italian norwegian portuguese romanian russian simple spanish swedish turkish]
writable: false
# Check for missing migrations in internal errors
add :migration_check_on_exceptions,
description: 'Check for missing migrations in internal errors',
default: true,
writable: false
@ -639,29 +578,29 @@ Settings::Definition.define do
allowed: -> { Role.pluck(:id) }
add :oauth_allow_remapping_of_existing_users,
description: 'When set to false, prevent users from other identity providers to take over accounts connected ' \
'to another identity provider.',
default: true
add :omniauth_direct_login_provider,
description: 'Clicking on login sends a login request to the specified OmniAuth provider.',
format: :string,
default: nil,
writable: false
add :override_bcrypt_cost_factor,
description: "Set a custom BCrypt cost factor for deriving a user's bcrypt hash.",
format: :string,
default: nil,
writable: false
add :notification_email_delay_minutes,
default: 15
add :notification_email_digest_time,
default: '08:00'
add :onboarding_video_url,
description: 'Onboarding guide instructional video URL',
default: 'https://player.vimeo.com/video/163426858?autoplay=1',
writable: false
add :onboarding_enabled,
description: 'Enable or disable onboarding guided tour for new users',
default: true,
writable: false
@ -695,31 +634,30 @@ Settings::Definition.define do
format: :string
add :rails_asset_host,
description: 'Custom asset hostname for serving assets (e.g., Cloudfront)',
format: :string,
default: nil,
writable: false
add :rails_cache_store,
description: 'Set cache store implemenation to use with OpenProject',
format: :symbol,
default: :file_store,
writable: false,
allowed: %i[file_store memcache]
# url-path prefix
add :rails_relative_url_root,
description: 'Set a URL prefix / base path to run OpenProject under, e.g., host.tld/openproject',
default: '',
writable: false
# Assume we're running in an TLS terminated connection.
add :https,
description: 'Set assumed connection security for the Rails processes',
format: :boolean,
default: -> { Rails.env.production? },
writable: false
# Allow disabling of HSTS headers and http -> https redirects
# for non-localhost hosts
add :hsts,
description: 'Allow disabling of HSTS headers and http -> https redirects',
format: :boolean,
default: true,
writable: false
@ -730,9 +668,7 @@ Settings::Definition.define do
},
writable: false
add :report_incoming_email_errors,
description: 'Respond to incoming mails with error details',
default: true
add :report_incoming_email_errors, default: true
add :repositories_automatic_managed_vendor,
default: nil,
@ -790,7 +726,6 @@ Settings::Definition.define do
default: true
add :security_badge_url,
description: 'URL of the update check badge',
default: "https://releases.openproject.com/v1/check.svg",
writable: false
@ -798,13 +733,11 @@ Settings::Definition.define do
default: 2
add :sendmail_arguments,
description: 'Arguments to call sendmail with in case it is configured as outgoing email setup',
format: :string,
default: "-i",
writable: false
add :sendmail_location,
description: 'Location of sendmail to call if it is configured as outgoing email setup',
format: :string,
default: "/usr/sbin/sendmail"
@ -812,16 +745,14 @@ Settings::Definition.define do
add :appsignal_frontend_key,
format: :string,
default: nil,
description: 'Appsignal API key for JavaScript error reporting',
writable: false
add :session_cookie_name,
description: 'Set session cookie name',
default: '_open_project_session',
writable: false
# where to store session data
add :session_store,
description: 'Where to store session data',
default: :active_record_store,
writable: false
@ -832,28 +763,28 @@ Settings::Definition.define do
default: 120
add :show_community_links,
description: 'Enable or disable links to OpenProject community instances',
default: true,
writable: false
# Show pending migrations as warning bar
add :show_pending_migrations_warning,
description: 'Enable or disable warning bar in case of pending migrations',
default: true,
writable: false
# Show mismatched protocol/hostname warning
# in settings where they must differ this can be disabled
add :show_setting_mismatch_warning,
description: 'Show mismatched protocol/hostname warning. In cases where they must differ this can be disabled',
default: true,
writable: false
# Render storage information
add :show_storage_information,
description: 'Show available and taken storage information under administration / info',
default: true,
writable: false
# Render warning bars (pending migrations, deprecation, unsupported browsers)
# Set to false to globally disable this for all users!
add :show_warning_bars,
description: 'Render warning bars (pending migrations, deprecation, unsupported browsers)',
default: true,
writable: false
@ -868,7 +799,6 @@ Settings::Definition.define do
env_alias: 'SMTP_ENABLE_STARTTLS_AUTO'
add :smtp_openssl_verify_mode,
description: 'Globally set verify mode for OpenSSL. Careful: Setting to none will disable any SSL verification!',
format: :string,
default: "peer",
allowed: %w[none peer client_once fail_if_no_peer_cert],
@ -905,15 +835,13 @@ Settings::Definition.define do
env_alias: 'SMTP_PASSWORD'
add :software_name,
description: 'Override software application name',
default: 'OpenProject'
add :software_url,
description: 'Override software application URL',
default: 'https://www.openproject.org/'
# Slow query logging threshold in ms
add :sql_slow_query_threshold,
description: 'Time limit in ms after which queries will be logged as slow queries',
default: 2000,
writable: false
@ -922,8 +850,8 @@ Settings::Definition.define do
format: :integer,
allowed: [1, 6, 7]
# enable statsd metrics (currently puma only) by configuring host
add :statsd,
description: 'enable statsd metrics (currently puma only) by configuring host',
default: {
'host' => nil,
'port' => 8125
@ -931,11 +859,9 @@ Settings::Definition.define do
writable: false
add :sys_api_enabled,
description: 'Enable internal system API for setting up managed repositories',
default: false
add :sys_api_key,
description: 'Internal system API key for setting up managed repositories',
default: nil,
format: :string
@ -963,7 +889,6 @@ Settings::Definition.define do
allowed: -> { User::USER_FORMATS_STRUCTURE.keys }
add :web,
description: 'Web worker count and threads configuration',
default: {
'workers' => 2,
'timeout' => 120,
@ -1011,13 +936,11 @@ Settings::Definition.define do
default: false
add :working_days,
description: 'Set working days of the week (Array of 1 to 7, where 1=Monday, 7=Sunday)',
format: :array,
allowed: Array(1..7),
default: Array(1..5) # Sat, Sun being non-working days
add :youtube_channel,
description: 'Link to YouTube channel in help menu',
default: 'https://www.youtube.com/c/OpenProjectCommunity',
writable: false
end

@ -49,7 +49,7 @@ ca:
main-menu-border-color: "Vora del menú principal"
custom_colors: "Colors personalitzats"
customize: "Personalitza la teva instal·lació d'OpenProject amb el teu propi logotip i colors."
enterprise_notice: "Com un \"Gràcies!\" especial per la contribució financera al desenvolupament d'OpenProject, aquest petit add-on només està disponible pels subscriptors de l'edició Enterprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Nota: el logotip utilitzat serà accessible públicament."
manage_colors: "Edita les opcions de selecció de colors"
instructions:
@ -64,15 +64,15 @@ ca:
main-menu-bg-color: "Color de fons del menú lateral de l'esquerra."
theme_warning: Canviant el tema substituiràs el teu estil personalitzat. El disseny es perdrà. Estàs segur que vols continuar?
enterprise:
upgrade_to_ee: "Actualitza a l'edició Enterprise"
add_token: "Carrega un token de suport de l'edició Enterprise"
upgrade_to_ee: "Upgrade to the Enterprise edition"
add_token: "Upload an Enterprise edition support token"
delete_token_modal:
text: "Estàs segur que vols eliminar el token de l'edició Enterprise utilitzat?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Eliminar el token"
replace_token: "Substitueix el teu token de suport actual"
order: "Ordena l'edició Enterpise on-premises"
paste: "Enganxa el teu token de suport de l'edició Enterprise"
required_for_feature: "Aquest add-om només està disponible amb un token de suport de l'edició Enterprise."
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Per a més informació, cliqueu aquí."
start_trial: 'Inicia la prova gratuïta'
book_now: 'Reserva ara'
@ -80,7 +80,7 @@ ca:
buttons:
upgrade: "Actualitza ara"
contact: "Contacta amb nosaltres per una demostració"
enterprise_info_html: "és un add-on de l'edició Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Si us plau, actualitza a una versió de pagament per tal d'activar i començar a utilitzar aquesta funcionalitat en el teu equip."
journal_aggregation:
explanation:
@ -319,7 +319,7 @@ ca:
settings: "Configuració"
form_configuration: "Configuració del formulari"
more_info_text_html: >
L'edició Enterprise et permet personalitzar la configuració de formularis amb aquests add-ons extra: <br> <ul class="%{list_styling_class}"><ul class="%{list_styling_class}"> <li><b>Afegeix nous grups d'atributs</b></li> <li><b>Canvia el nom dels grups d'atributs</b></li> <li><b>Afegeix una taula de paquets de treball relacionats</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Projectes"
enabled_projects: "Projectes habilitats"
edit_query: "Edita la taula"
@ -333,7 +333,7 @@ ca:
wiki:
page_not_editable_index: La pàgina sol·licitada no existeix (encara). Se t'ha redirigit a la pàgina índex de totes les pàgines wiki.
no_results_title_text: Actualment no hi ha cap pàgina wiki.
print_hint: Aquesta acció imprimirà el contingut de la pàgina wiki sense cap barra de navegació.
print_hint: This will print the content of this wiki page without any navigation bars.
index:
no_results_content_text: Afegiu una nova pàgina wiki
work_flows:
@ -372,7 +372,7 @@ ca:
account:
delete: "Elimina el compte"
delete_confirmation: "Segur que vols eliminar aquest compte?"
deletion_pending: "El compte ha estat bloquejat i està programada per eliminar-se. Tingues en compte que aquesta acció es processa de fons. Pot tardar uns moments fins que l'usuari estigui eliminat completament."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "De les dades de l'usuari ha creat (per exemple, correu electrònic, preferències, paquets de treball, wiki entrades) se n'esborraran tantes com sigui possible. Fixeu-vos que dades com paquets de treball i entrades de la wiki no es poden suprimir sense que obstaculitzin la feina d'altres usuaris. Aquestes dades es reassignaran a un compte genèric anomenat \"Usuari esborrat\". Com que les dades de cada usuari suprimit es reassignen sempre a aquest compte genèric no serà possible distingir les dades d'aquest usuari de les dades d'un altre usuari esborrat."
@ -584,7 +584,7 @@ ca:
confirmation: "no coincideix amb el %{attribute}."
could_not_be_copied: "%{dependency} no s'ha pogut copiar (completament)."
does_not_exist: "no existeix."
error_enterprise_only: "%{action} només està disponible en l'edició Enterprise d'OpenProject"
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "no és possible accedir."
error_readonly: "es va intentar d'escriure-hi però no és modificable."
email: "no és una adreça de correu electrònic vàlida."
@ -634,7 +634,7 @@ ca:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "El certificat SSL proporcionat és invàlid: %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -689,7 +689,7 @@ ca:
non_working_day:
attributes:
date:
taken: "Un dia no laborable ja existeix el %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -702,7 +702,7 @@ ca:
foreign_wps_reference_version: 'Els paquets de treball en projectes no descendents referencien versions del projecte o els seus descendents.'
attributes:
base:
archive_permission_missing_on_subprojects: "No tens els permisos requerits per arxivar tots els subprojectes. Si us plau, contacta amb un administrador."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "encara en ús pels paquets de treball: %{types}"
enabled_modules:
@ -1267,11 +1267,11 @@ ca:
ee:
upsale:
form_configuration:
description: "Personalitza la configuració del formulari amb aquests add-ons extres:"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Afegir un nou atribut de grups"
rename_groups: "Canviar de nom atribut de grups"
project_filters:
description_html: "Filtrar i ordenar camps personalitzats és un add-on de l'edició Enterprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Activitats de rastrejament del temps"
enumeration_work_package_priorities: "Prioritats dels paquets de treball"
enumeration_reported_project_statuses: "Estats de projecte notificats"
@ -1293,7 +1293,7 @@ ca:
error_cookie_missing: 'La cookie d''OpenProject no s''ha trobat. Assegureu-vos que les cookies estan habilitades, ja que aquesta aplicació no pot funcionar correctament sense.'
error_custom_option_not_found: "L'opció no existeix."
error_enterprise_activation_user_limit: "El teu compte no s'ha pogut activar (límit d'usuaris assolit). Si us plau, contacte amb el teu administrador per obtenir accés."
error_enterprise_token_invalid_domain: "L'edició Enterprise no està activa. El domini del token Enterprise (%{actual}) no concorda amb el nom d'allotjament del sistema (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'Error a l''eliminar aquesta entrada.'
error_in_dependent: "Error en intentar alterar objectes dependents: %{dependent_class} #%{related_id} -%{related_subject}: %{error}" #%{related_id} -%{related_subject}: %{error}"
error_in_new_dependent: "Error en intentar crear objectes dependents: %{dependent_class} #%{related_id} -%{related_subject}: %{error}" #%{related_id} -%{related_subject}: %{error}"
@ -1331,8 +1331,8 @@ ca:
changeset: 'Conjunt de canvis editat'
message: Missatge editat
news: Notícies
project_attributes: 'Atributs del projecte editats'
projects: 'Projecte editat'
project_attributes: 'Project attributes edited'
projects: 'Project edited'
reply: Respost
time_entry: 'Registre horari editat'
wiki_page: 'Pàgina wiki editada'
@ -1340,7 +1340,7 @@ ca:
work_package_edit: 'Paquet de treball editat'
work_package_note: 'Afegida nota al paquet de treball'
title:
project: "Projecte: %{name}"
project: "Project: %{name}"
export:
your_work_packages_export: "La teva exportació de paquets de treball"
succeeded: "L'exportació s'ha completat amb èxit."
@ -1384,10 +1384,10 @@ ca:
blocks:
community: "Comunitat OpenProject"
upsale:
title: "Actualitza a l'edició Enterprise"
title: "Upgrade to Enterprise edition"
more_info: "Més informació"
links:
upgrade_enterprise_edition: "Actualitza a l'edició Enterprise"
upgrade_enterprise_edition: "Upgrade to Enterprise edition"
postgres_migration: "Migrant la teva instal·lació a PostgreSQL"
user_guides: "Guies d'usuari"
faq: "Preguntes Més Freqüents"
@ -1603,7 +1603,7 @@ ca:
label_enumerations: "Enumeracions"
label_enterprise: "Enterprise"
label_enterprise_active_users: "%{current}/%{limit} usuaris actius registrats"
label_enterprise_edition: "Edició Enterprise."
label_enterprise_edition: "Enterprise edition"
label_environment: "Entorn"
label_estimates_and_time: "Estimacions i temps"
label_equals: "és"
@ -1793,8 +1793,8 @@ ca:
label_product_version: "Versió del producte"
label_professional_support: "Suport professional"
label_profile: "Perfil"
label_project_activity: "Activitat del projecte"
label_project_attribute_plural: "Atributs de projecte"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Nombre total de projectes"
label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte"
label_project_latest: "Últims projectes"
@ -2212,7 +2212,7 @@ ca:
permission_add_work_packages: "Afegir paquets de treball"
permission_add_messages: "Publicar missatges"
permission_add_project: "Crear un projecte"
permission_archive_project: "Arxiva el projecte"
permission_archive_project: "Archive project"
permission_manage_user: "Crear i editar usuaris"
permission_manage_placeholder_user: "Crea, edita i elimina usuaris de marcador de posició"
permission_add_subprojects: "Crear subprojectes"
@ -2612,11 +2612,11 @@ ca:
text_custom_field_hint_activate_per_project_and_type: >
Els camps personalitzats han d'activar-se per classe de paquet de treball i per projecte.
text_wp_custom_field_html: >
L'edició Enterprise afegirà add-ons extra pels camps personalitzats de paquets de treball: <br> <ul> <li><b>Permet múltiple selecció dels camps personalitzats pels estils Llista o Usuari</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
L'edició Enterprise afegirà add-ons extra pels estats de paquets de treball: <br> <ul> <li><b>Permet marcar paquets de treball com a només lectura per a estats específics</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
L'edició Enterprise afegirà add-ons extra pels camps personalitzats de projectes: <br> <ul> <li><b>Afegeix camps personalitzats pels teus projectes a la teva llista de projectes per crear una vista de cartera de projectes</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Es recomana un logo blanc amb fons transparent. Per a un millor resultat tant en pantalles retina o convencionals assegura't que la teva imatge té unes dimensions de 460px per 60px.
text_custom_favicon_instructions: >
@ -2918,7 +2918,7 @@ ca:
warning_user_limit_reached: >
Límit d'usuaris assolit. No pots activar cap més usuari. Si us plau, <a href="%{upgrade_url}">actualitza el teu pla</a> o bloqueja a membres per permetre nous usuaris.
warning_user_limit_reached_instructions: >
Has assolit el nombre d'usuaris límit (%{current}/%{max} usuaris actius. Si us plau, posa't en contacte amb sales@openproject.com per actualitzar la teva edició Enterpirse i afegir nous usuaris.
You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users.
warning_protocol_mismatch_html: >
warning_bar:
@ -2956,8 +2956,8 @@ ca:
working: "%{day} és ara laboral"
non_working: "%{day} és ara no laboral"
dates:
working: "%{day} és ara laboral"
non_working: "%{day} és ara no laboral"
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Res per previsualitzar"
api_v3:
attributes:

@ -49,7 +49,7 @@ es:
main-menu-border-color: "Borde del menú principal"
custom_colors: "Colores personalizados"
customize: "Personalice su instalación de OpenProject con su logotipo y colores."
enterprise_notice: "Como un agradecimiento especial por su contribución financiera para desarrollar OpenProject, este pequeño complemento solo está disponible para suscriptores de la edición Enterprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Nota: el logotipo utilizado será de acceso público."
manage_colors: "Editar opciones de selección de colores"
instructions:
@ -67,12 +67,12 @@ es:
upgrade_to_ee: "Actualizar a la edición Enterprise"
add_token: "Cargue el token de soporte de la edición Enterprise"
delete_token_modal:
text: "¿Está seguro que desea eliminar el token actual de la edición Enterpise usado?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Eliminar token"
replace_token: "Reemplace su token de apoyo actual"
order: "Solicitar la edición Enterprise on-premises"
paste: "Pegue su token de soporte de la edición Enterprise"
required_for_feature: "Este add-on solo está disponible con un token de soporte activo de la edición Enterprise."
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Para obtener más información, haga clic aquí."
start_trial: 'Iniciar prueba gratuita'
book_now: 'Reservar ahora'
@ -80,7 +80,7 @@ es:
buttons:
upgrade: "Actualizar ahora"
contact: "Contáctenos para una demostración"
enterprise_info_html: "es un add-on de la edición Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Actualice a un plan de pago para activarlo y empezar a usarlo en su equipo."
journal_aggregation:
explanation:
@ -319,7 +319,7 @@ es:
settings: "Configuración"
form_configuration: "Configuración del formulario"
more_info_text_html: >
La edición Enterprise te permite personalizar el formulario de configuración con estos add-ons adicionales: <br><ul class="%{list_styling_class}"><li><b>Añade nuevos grupos de atributo</b></li> <li><b>Renombra grupos de atributo</b></li> <li><b>Añada tablas de paquetes de trabajo relacionados</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Proyectos"
enabled_projects: "Proyectos habilitados"
edit_query: "Editar tabla"
@ -373,7 +373,7 @@ es:
account:
delete: "Borrar cuenta"
delete_confirmation: "¿Está seguro que desea eliminar la cuenta?"
deletion_pending: "La cuenta ha sido bloqueada y está programada para su eliminación. Tenga en cuenta que este proceso tiene lugar en segundo plano. Puede tardar un tiempo hasta que el usuario se borre por completo."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "De los datos del usuario creado (por ejemplo correo electrónico, preferencias, paquetes de trabajo, entradas wiki) serán eliminados, en la medida de lo posible. Sin embargo, tenga en cuenta que no se pueden eliminar datos como entradas wiki y paquetes de trabajo sin obstaculizar el trabajo de los demás usuarios. Dichos datos, por lo tanto, serán reasignados a una cuenta denominada \"Usuarios Eliminados\". Como los datos de cada cuenta borrada son reasignados al eliminarla, no será posible distinguir los datos del usuario creado a partir de los datos de otra cuenta eliminada."
@ -585,7 +585,7 @@ es:
confirmation: "no coincide con %{attribute}."
could_not_be_copied: "%{dependency} no se pudo copiar (en su totalidad)."
does_not_exist: "no existe."
error_enterprise_only: "%{action} solo está disponible en OpenProject edición Enterprise"
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "no se puede acceder."
error_readonly: "se intentó escribir pero no se puede escribir."
email: "no es una dirección de correo válida."
@ -635,7 +635,7 @@ es:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "El certificado SSL proporcionado no es válido: %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -690,7 +690,7 @@ es:
non_working_day:
attributes:
date:
taken: "Ya existe un día no laboral para %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -703,7 +703,7 @@ es:
foreign_wps_reference_version: 'Los paquetes de trabajo en los proyectos no descendientes hacen referencia a versiones del proyecto o a sus descendientes.'
attributes:
base:
archive_permission_missing_on_subprojects: "No tiene los permisos necesarios para archivar todos los subproyectos. Por favor, póngase en contacto con un administrador."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "todavia en uso por los paquetes de trabajo: %{types}"
enabled_modules:
@ -1268,11 +1268,11 @@ es:
ee:
upsale:
form_configuration:
description: "Personalice la configuración del formulario con estos add-ons extra:"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Añadir nuevos grupos de atributos"
rename_groups: "Cambiar nombre de grupos de atributos"
project_filters:
description_html: "Filtrar y ordenar en campos personalizados es un add-on de la edición Enterprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Actividades de seguimiento del tiempo"
enumeration_work_package_priorities: "Prioridades del paquete de trabajo"
enumeration_reported_project_statuses: "Estatus del proyecto reportado"
@ -1294,7 +1294,7 @@ es:
error_cookie_missing: 'No se encuentra la cookie de OpenProject. Por favor asegúrese de que las cookies están habilitadas, ya que sin ellas esta aplicación no funcionará correctamente.'
error_custom_option_not_found: "Esta opción no existe."
error_enterprise_activation_user_limit: "Su cuenta no puede ser activada (se alcanzó el límite del usuario). Por favor, contacte su administrador para obtener acceso."
error_enterprise_token_invalid_domain: "La edición Enterprise no está activa. Su dominio del token de Enterprise (%{actual}) no coincide con el nombre de host del sistema (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'No se puede eliminar esta entrada.'
error_in_dependent: "Error al intentar alterar el objeto dependiente: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" #%{related_id} - %{related_subject}: %{error}"
error_in_new_dependent: "Error al crear el objeto dependiente: %{dependent_class} - %{related_subject}: %{error}"
@ -1794,7 +1794,7 @@ es:
label_product_version: "Versión del producto"
label_professional_support: "Soporte profesional"
label_profile: "Perfil"
label_project_activity: "Actividad del proyecto"
label_project_activity: "Project activity"
label_project_attribute_plural: "Atributos del proyecto"
label_project_count: "Número total de proyectos"
label_project_copy_notifications: "Enviar notificaciones por correo electrónico durante la copia del proyecto"
@ -2217,7 +2217,7 @@ es:
permission_add_work_packages: "Añadir paquetes de trabajo"
permission_add_messages: "Publicar mensajes"
permission_add_project: "Crear proyecto"
permission_archive_project: "Archivar proyecto"
permission_archive_project: "Archive project"
permission_manage_user: "Crear y editar usuarios"
permission_manage_placeholder_user: "Crear, editar y eliminar usuarios de marcador de posición"
permission_add_subprojects: "Crear subproyectos"
@ -2619,11 +2619,11 @@ es:
text_custom_field_hint_activate_per_project_and_type: >
Los campos personalizados se deben activar en cada tipo de paquete de trabajo y en cada proyecto por separado.
text_wp_custom_field_html: >
La edición Enterprise añadirá estos add-ons extra para los campos personalizados de los paquetes de trabajo: <br> <ul> <li><b>Permitir la selección múltiple de campos personalizados de tipo Lista o Usuario</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
La edición Enterprise añadirá estos add-ons extras para los campos de estado de los paquetes de trabajo: <br> <ul> <li><b>Permitir marcar como solo lectura los paquetes de trabajo en estados específicos</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
La edición Enterprise añadirá estos add-ons extra para los campos personalizados de los proyectos: <br> <ul> <li><b>Añadir campos personalizados para proyectos a tu lista de proyectos para crear una vista porfolio de proyectos</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Se recomienda usar un logotipo blanco sobre un fondo transparente. Para obtener los mejores resultados, tanto en pantallas convencionales como en las del tipo Retina, asegúrese de que las dimensiones de la imagen sean de 460 × 60 px.
text_custom_favicon_instructions: >
@ -2924,7 +2924,7 @@ es:
warning_user_limit_reached: >
Alcanzado el límite de usuarios. No se puede activar ningún usuario más. <a href="%{upgrade_url}">actualice su plan</a> o bloquee miembros para permitir usuarios adicionales.
warning_user_limit_reached_instructions: >
Has alcanzado el límite de usuarios (%{current}/%{max} usuarios activos). Por favor, contacta con sales@openproject.com para mejorar tu plan de edición Enterprise y añadir usuarios adicionales.
You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users.
warning_protocol_mismatch_html: >
warning_bar:
@ -2962,8 +2962,8 @@ es:
working: "%{day} es ahora laboral"
non_working: "%{day} es ahora no laboral"
dates:
working: "%{day} es ahora laboral"
non_working: "%{day} es ahora no laboral"
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nada para previsualizar"
api_v3:
attributes:

@ -49,7 +49,7 @@ fr:
main-menu-border-color: "Bordure du menu principal"
custom_colors: "Couleurs personnalisées"
customize: "Personnalisez votre installation OpenProject avec votre propre logo et couleurs."
enterprise_notice: "Comme remerciement spécial pour leur contribution financière au développement d'OpenProject, cet add-on n’est disponible que pour les titulaires d'une version Entreprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Remarque : le logo utilisé sera accessible publiquement."
manage_colors: "Modifier les options du sélecteur de couleur"
instructions:
@ -64,15 +64,15 @@ fr:
main-menu-bg-color: "Couleur d’arrière-plan du menu de gauche."
theme_warning: Le changement de thème écrasera votre style personnalisé. Le design sera alors perdu. Êtes-vous sûr de vouloir continuer ?
enterprise:
upgrade_to_ee: "Passer à la version Entreprise"
add_token: "Charger un jeton de support pour la version Entreprise"
upgrade_to_ee: "Upgrade to the Enterprise edition"
add_token: "Upload an Enterprise edition support token"
delete_token_modal:
text: "Voulez-vous vraiment supprimer le jeton actuellement utilisé pour l'édition Entreprise ?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Supprimer le jeton"
replace_token: "Remplacer votre licence actuelle"
order: "Commander l'édition Entreprise autohebergée"
paste: "Coller votre jeton de support pour la version Entreprise"
required_for_feature: "Cet add-on n'est disponible qu'avec un jeton de support actif pour la version Entreprise."
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Pour plus d'informations, cliquez ici."
start_trial: 'Commencer l''essai gratuit'
book_now: 'Réserver maintenant'
@ -80,7 +80,7 @@ fr:
buttons:
upgrade: "Passer au plan supérieur"
contact: "Contactez-nous pour une démo"
enterprise_info_html: "est un <span class='spot-icon spot-icon_enterprise-addons'></span> add-on Entreprise."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Veuillez passer à un plan payant pour l'activer et commencer à l'utiliser dans votre équipe."
journal_aggregation:
explanation:
@ -138,7 +138,7 @@ fr:
lorsqu'ils s'authentifieront pour la première fois avec OpenProject.
Laissez ceci non coché pour permettre uniquement aux comptes existants dans OpenProject de s'authentifier via LDAP!
connection_encryption: 'Cryptage de la connexion'
encryption_details: 'Options LDAPS / STARTTLS'
encryption_details: 'LDAPS / STARTTLS options'
system_account: 'Compte système'
system_account_legend: |
OpenProject nécessite un accès en lecture seule via un compte système pour rechercher des utilisateurs et des groupes dans votre arborescence LDAP.
@ -152,16 +152,16 @@ fr:
plain: 'aucune'
simple_tls: 'LDAPS'
start_tls: 'STARTTLS'
plain_description: "Ouvre une connexion non chiffrée au serveur LDAP. Déconseillé en production."
simple_tls_description: "Utiliser LDAPS. Nécessite un port séparé sur le serveur LDAP. Ce mode est souvent obsolète, nous vous recommandons d'utiliser STARTTLS dès que possible."
start_tls_description: "Envoie une commande STARTTLS après la connexion au port LDAP standard. Recommandé pour les connexions chiffrées."
plain_description: "Opens an unencrypted connection to the LDAP server. Not recommended for production."
simple_tls_description: "Use LDAPS. Requires a separate port on the LDAP server. This mode is often deprecated, we recommend using STARTTLS whenever possible."
start_tls_description: "Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections."
section_more_info_link_html: >
Cette section concerne la sécurité de connexion de cette source d'authentification LDAP. Pour plus d'informations, visitez <a href="%{link}">the Net::LDAP documentation</a>.
tls_options:
verify_peer: "Vérifier le certificat SSL"
verify_peer: "Verify SSL certificate"
verify_peer_description_html: >
Active la vérification SSL stricte de la chaîne de confiance du certificat. <br/> <strong> Avertissement :</strong> décocher cette option désactive la vérification SSL du certificat de serveur LDAP. Cela expose votre connexion aux attaques de type "Man In The Middle".
tls_certificate_description: "Si le certificat du serveur LDAP n'appartient pas aux sources de confiance de ce système, vous pouvez manuellement l'ajouter ici. Entrez une chaîne de certificat PEM X509."
Enables strict SSL verification of the certificate trusted chain. <br/> <strong>Warning:</strong> Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks.
tls_certificate_description: "If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string."
forums:
show:
no_results_title_text: Il n'y a actuellement aucun message pour le forum.
@ -322,7 +322,7 @@ fr:
settings: "Paramètres"
form_configuration: "Configuration du formulaire"
more_info_text_html: >
L'édition Entreprise vous permet de personnaliser la configuration du formulaire avec ces add-ons supplémentaires : <br> <ul class="%{list_styling_class}"> <li><b>Ajouter de nouveaux groupes d'attributs</b></li> <li><b>Renommer les groupes d'attributs</b></li> <li><b>Ajouter une table des lots de travaux connexes</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Projets"
enabled_projects: "Projets activés"
edit_query: "Modifier le tableau"
@ -337,7 +337,7 @@ fr:
wiki:
page_not_editable_index: La page demandée n'existe pas (encore). Vous avez été redirigé vers l'index de toutes les pages du wiki.
no_results_title_text: Il n'y a actuellement aucune page wiki.
print_hint: Ceci affichera le contenu de cette page wiki sans aucune barre de navigation.
print_hint: This will print the content of this wiki page without any navigation bars.
index:
no_results_content_text: Ajouter une nouvelle page wiki
work_flows:
@ -376,7 +376,7 @@ fr:
account:
delete: "Supprimer le compte"
delete_confirmation: "Êtes-vous sûr de vouloir supprimer le compte ?"
deletion_pending: "Le compte a été verrouillé et a été programmé pour suppression. Notez que ce processus a lieu en arrière-plan. Cela peut prendre quelques instants avant que l'utilisateur soit complètement supprimé."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "Les données créées par l'utilisateur (e.g. e-mail, préférences, lots de travaux, entrées wiki) seront supprimées autant que possible. Notez toutefois que les données comme les lots de travaux et les entrées wiki ne peuvent pas être supprimées sans impacter le travail des autres utilisateurs. Ces données sont donc réaffectées à un compte appelé «Utilisateur supprimé». Étant donné que les données de chaque compte supprimé sont réaffectées à ce compte, il ne sera plus possible de distinguer les données créées par cet utilisateur de celles d'un autre compte supprimé."
@ -426,7 +426,7 @@ fr:
host: "Hôte"
onthefly: "Création automatique d'un utilisateur"
port: "Port"
tls_certificate_string: "Certificat SSL du serveur LDAP"
tls_certificate_string: "LDAP server SSL certificate"
changeset:
repository: "Référentiel"
comment:
@ -588,7 +588,7 @@ fr:
confirmation: "ne correspond pas à %{attribute}."
could_not_be_copied: "%{dependency} n'a pas pu être copié (entièrement)."
does_not_exist: "n'existe pas."
error_enterprise_only: "%{action} n'est disponible que dans la version Entreprise d'OpenProject."
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "est interdit d'accès."
error_readonly: "a tenté d'être écrit mais n'est pas accessible en écriture."
email: "n'est pas une adresse e-mail valide."
@ -638,7 +638,7 @@ fr:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "Le certificat SSL fourni est invalide : %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -693,7 +693,7 @@ fr:
non_working_day:
attributes:
date:
taken: "Un jour non ouvrable existe déjà pour %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -706,7 +706,7 @@ fr:
foreign_wps_reference_version: 'Les lots de travaux dans les projets non-descendants font référence aux versions du projet ou de ses descendants.'
attributes:
base:
archive_permission_missing_on_subprojects: "Vous n'avez pas les permissions requises pour archiver tous les sous-projets. Veuillez contacter un administrateur."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "toujours en cours d'utilisation par les lots de travaux : %{types}"
enabled_modules:
@ -1271,11 +1271,11 @@ fr:
ee:
upsale:
form_configuration:
description: "Personnaliser la configuration du formulaire avec ces add-ons supplémentaires :"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Ajouter de nouveaux groupes d’attributs"
rename_groups: "Renommer les groupes d’attributs"
project_filters:
description_html: "Le filtrage et le tri sur les champs personnalisés sont un add-on de l'édition Entreprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Activités de suivi du temps"
enumeration_work_package_priorities: "Priorités du Lot de Travaux"
enumeration_reported_project_statuses: "Statuts de projet signalés"
@ -1297,7 +1297,7 @@ fr:
error_cookie_missing: 'Le cookie OpenProject est manquant. Assurez-vous que les cookies sont activés, sans quoi cette application ne fonctionnera pas correctement.'
error_custom_option_not_found: "L'option n'existe pas."
error_enterprise_activation_user_limit: "Votre compte n'a pas pu être activé (limite d'utilisateurs atteinte). Veuillez contacter votre administrateur pour obtenir l'accès."
error_enterprise_token_invalid_domain: "La version Entreprise n'est pas active. Le domaine de votre jeton Entreprise (%{actual}) ne correspond pas au nom d'hôte du système (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'Échec lors de la suppression de cette entrée.'
error_in_dependent: "Erreur lors de la tentative de modification de l'objet dépendant : %{dependent_class} #%{related_id} - %{related_subject} : %{error}" #%{related_id} - %{related_subject} : %{error}"
error_in_new_dependent: "Erreur lors de la tentative de création d'un objet dépendant : %{dependent_class} - %{related_subject} : %{error}"
@ -1388,10 +1388,10 @@ fr:
blocks:
community: "Communauté OpenProject"
upsale:
title: "Passer à la version Entreprise"
title: "Upgrade to Enterprise edition"
more_info: "Plus d'informations"
links:
upgrade_enterprise_edition: "Passer à la version Entreprise"
upgrade_enterprise_edition: "Upgrade to Enterprise edition"
postgres_migration: "Migration de votre installation vers PostgreSQL"
user_guides: "Guides d'utilisation"
faq: "FAQ"
@ -1607,7 +1607,7 @@ fr:
label_enumerations: "Énumérations"
label_enterprise: "Entreprise"
label_enterprise_active_users: "%{current}/%{limit} utilisateurs actifs inscrits"
label_enterprise_edition: "Version Entreprise"
label_enterprise_edition: "Enterprise edition"
label_environment: "Environement"
label_estimates_and_time: "Estimations et temps"
label_equals: "est"
@ -1797,7 +1797,7 @@ fr:
label_product_version: "Version du produit"
label_professional_support: "Support professionnel"
label_profile: "Profil"
label_project_activity: "Activité du projet"
label_project_activity: "Project activity"
label_project_attribute_plural: "Attributs du projet"
label_project_count: "Nombre total de projets"
label_project_copy_notifications: "Notifier par courriel lors de la copie du projet"
@ -2221,7 +2221,7 @@ fr:
permission_add_work_packages: "Ajouter des lots de travaux"
permission_add_messages: "Poster des messages"
permission_add_project: "Créer un projet"
permission_archive_project: "Archiver le projet"
permission_archive_project: "Archive project"
permission_manage_user: "Créer et éditer des utilisateurs"
permission_manage_placeholder_user: "Créer, modifier et supprimer des utilisateurs fictifs"
permission_add_subprojects: "Créer des sous-projets"
@ -2623,11 +2623,11 @@ fr:
text_custom_field_hint_activate_per_project_and_type: >
Les champs personnalisés doivent être activés par type de lot de travaux et par projet.
text_wp_custom_field_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs personnalisés des lots de travaux : <br> <ul> <li><b>Autoriser la sélection multiple pour les champs personnalisés de type Liste ou Utilisateur</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs de statut des lots de travaux : <br> <ul> <li><b>Permet de marquer les lots de travaux en lecture seule pour des statuts spécifiques</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs personnalisés des projets : <br> <ul> <li><b>Ajouter des champs personnalisés pour les projets à votre liste de projets pour créer une vue du portefeuille de projets</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Un logo blanc sur fond transparent est recommandé. Pour obtenir les meilleurs résultats sur les deux, affichage classique et retina, assurez-vous que les dimensions de votre image soient de 460px par 60px.
text_custom_favicon_instructions: >
@ -2928,7 +2928,7 @@ fr:
warning_user_limit_reached: >
Limite d'utilisateur atteinte. Vous ne pouvez plus activer d'autres utilisateurs. Veuillez <a href="%{upgrade_url}">mettre à jour votre plan</a> ou bloquez des membres pour permettre d'autres utilisateurs.
warning_user_limit_reached_instructions: >
Vous avez atteint le nombre limite d'utilisateurs (%{current}/%{max} utilisateurs actifs). Veuillez contacter sales@openproject.com pour mettre à jour votre abonnement Entreprise et ajouter des utilisateurs supplémentaires.
You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users.
warning_protocol_mismatch_html: >
warning_bar:
@ -2966,8 +2966,8 @@ fr:
working: "%{day} est maintenant un jour ouvrable"
non_working: "%{day} est maintenant un jour non ouvrable"
dates:
working: "%{date} est maintenant un jour ouvrable"
non_working: "%{date} est maintenant un jour non ouvrable"
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Rien à afficher en apperçu"
api_v3:
attributes:

@ -224,14 +224,14 @@ ca:
status_label: "Estat:"
status_confirmed: "confirmat"
status_waiting: "correu electrònic enviat - esperant la confirmació"
test_ee: "Prova l'edició Enterprise de forma gratuïta per 14 dies"
quick_overview: "Obté una visió general ràpida de la gestió de projectes i col·laboració d'equips amb l'edició Enterprise d'OpenProject."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Sigues un heroi!"
enterprise_info_html: "%{feature_title} és un add-on de l'edició Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Si us plau, actualitza a una versió de pagament per tal d'activar i començar a utilitzar-la en el teu equip."
benefits:
description: "Quins són els beneficis de l'edició Enterprise on-premises?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Funcions de seguretat"
high_security_text: "Inici de sessió únic (SAML, OpenID Conenct, CAS), grups LDAP."
installation: "Suport d'instal·lació"
@ -249,9 +249,9 @@ ca:
link_quote: "Obtenir un pressupost"
more_info: "Més informació"
text: >
L'edició Enterprise d'OpenProject es construeix a sobre de l'edició Community. Inclou Enterprise add-ons i suport professional pensat especialment per a organitzacions de més de 10 usuaris que manegin projectes empresarialment crítics amb OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Il·limitat"
you_contribute: "Els desenvolupadors també han de pagar les seves factures. Actualitzant a l'edició Enterprise, donaràs suport aquesta comunitat de codi obert i contribuiràs al seu desenvolupament, manteniment i millora continua."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'en'
@ -280,8 +280,8 @@ ca:
one: "Primer criteri d'ordenació"
two: "Segon criteri d'ordenació"
three: "Tercer criteri d'ordenació"
upsale_for_more: "Els filtres avançats et permeten també filtrar per noms de fitxer o contingut adjuntat en paquets de treball. Si us plau, actualitza a un pla de pagament per utilitzar aquest add-on."
upsale_link: 'Edició Enterprise.'
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise edition.'
general_text_no: "no"
general_text_yes: "sí"
general_text_No: "No"
@ -475,10 +475,10 @@ ca:
label_custom_queries: "Privat"
label_columns: "Columnes"
label_attachments: Fitxers adjunts
label_drop_files: "Arrossega fitxers aquí per adjuntar-los."
label_drop_or_click_files: "Arrossega fitxers o fes clic aquí per adjuntar-los."
label_drop_files: "Drop files here to attach files."
label_drop_or_click_files: "Drop files here or click to attach files."
label_drop_folders_hint: No pots carregar carpetes com a fitxers adjunts. Si us plau, selecciona fitxers únics.
label_add_attachments: "Adjuntar arxius"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Adjuntar i enllaça fitxers arrossegant-los en aquest camp, o enganxant-los des del porta-papers."
label_remove_file: "Eliminar %{fileName}"
label_remove_watcher: "Elimina l'observador %{name}"
@ -572,7 +572,7 @@ ca:
one: ' i 1 altre'
other: ' i %{count} altres'
no_results:
at_all: 'Noves notificacions apareixeran aquí quan hi hagi activitat que sigui important per a tu.'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'En aquest moment no hi han notificacions en aquesta vista'
mark_all_read: 'Marca tot com a llegit'
mark_as_read: 'Marca com a llegit'
@ -595,7 +595,7 @@ ca:
watched: 'Observador'
date_alert: 'Alerta per dates'
settings:
change_notification_settings: 'Pots modificar la teva <a target="_blank" href="%{url}">configuració de notificacions</a> per assegurar-te que mai et perds informació important.'
change_notification_settings: 'You can modify your <a target="_blank" href="%{url}">notification settings</a> to ensure you never miss an important update.'
title: "Configuració de notificacions"
notify_me: "Notifica’m"
reminders:
@ -657,7 +657,7 @@ ca:
project:
required_outside_context: >
Si us plau, selecciona un projecte on crear el paquet de treball per a veure tots els atributs. Només pots seleccionar projectes que tinguin activat la classe indicada anteriorment.
details_activity: 'Detalls de l''activitat del projecte'
details_activity: 'Project details activity'
context: 'Context del projecte'
work_package_belongs_to: 'Aquest paquet de treball pertany al projecte %{projectname}.'
click_to_switch_context: 'Obre aquest paquet de treball en aquell projecte.'
@ -708,8 +708,8 @@ ca:
reset_title: "Reiniciar la configuració del formulari"
confirm_reset: >
Alerta: Estàs segur que vols reiniciar la configuració del formulari? Això reiniciarà els atributs als seus grups per defecte i desactivarà TOTS els camps personalitzats.
upgrade_to_ee: "Actualitza a l'edició Enterprise on-premises"
upgrade_to_ee_text: "Ostres! Si necessita aquesta funció ets un súper pro! T'importaria donar suport als nostres desenvolupadors de codi obert convertint-te en client de l'edició Enterprise?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Més informació"
nevermind: "Sense importància"
edit:
@ -856,7 +856,7 @@ ca:
zooms: "Nivell de zoom"
outlines: "Nivell de jerarquia"
upsale:
ee_only: 'Add-on de l''edició Enterprise'
ee_only: 'Enterprise edition add-on'
wiki_formatting:
strong: "Negreta"
italic: "Cursiva"
@ -1047,7 +1047,7 @@ ca:
upsale:
attribute_highlighting: 'Necessites ressaltar alguns paquets de treball per sobre de la resta?'
relation_columns: 'Necessites veure les relacions en una llista de paquets de treball?'
check_out_link: 'Fes una ullada a l''edició Enterprise.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'Filtra paquets de treball per classe de relació'
tabs:
@ -1191,9 +1191,9 @@ ca:
description: 'Permisos basats en el rol assignat en el projecte seleccionat'
placeholder:
title: 'Usuari de marcador de posició'
title_no_ee: 'Usuari de marcador de posició (add-on només de l''edició Enterprise)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'No té accés al projecte i no s''han enviat els correus electrònics.'
description_no_ee: 'No tens accés al projecte i per tant, no s''han enviat els correus electrònics. <br>Fes una ullada a <a href="%{eeHref}" target="_blank">l''edició Enterprise</a>'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nom o adreça de correu electrònic'

@ -225,13 +225,13 @@ es:
status_confirmed: "confirmado"
status_waiting: "correo electrónico enviado - esperando confirmación"
test_ee: "Pruebe la edición Enterprise de forma gratuita durante 14 días"
quick_overview: "Obtenga un resumen rápido sobre la gestión de proyectos y la colaboración en equipo con OpenProject edición Enterprise."
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "¡Conviértete en un héroe!"
enterprise_info_html: "%{feature_title} es un add-on de la edición Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Actualice a un plan de pago para activarla y empiece a usarla en su equipo."
benefits:
description: "¿Cuáles son las ventajas de la edición Enterprise on-premises?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Funcionalidades de seguridad"
high_security_text: "Inicio de sesión único (SAML, OpenID Connect, CAS), grupos LDAP."
installation: "Ayuda en la instalación"
@ -249,9 +249,9 @@ es:
link_quote: "Solicitar presupuesto"
more_info: "Más información"
text: >
La edición Enterprise de OpenProject esta basada en la edición Community. Incluye Enterprise add-ons y soporte profesional dirigida principalmente a organizaciones con más de 10 usuarios que gestionen proyectos empresariales críticos con OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Ilimitado"
you_contribute: "Los desarrolladores también tienen que pagar sus facturas. Al actualizar a edición Enterprise, apoyará el esfuerzo de la comunidad de código abierto y contribuirá a su desarrollo, mantenimiento y mejora continua."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'en'
@ -280,7 +280,7 @@ es:
one: "Primer criterio de ordenación"
two: "Segundo criterio de ordenación"
three: "Tercer criterio de ordenación"
upsale_for_more: "Los filtros avanzados te permiten también filtrar los nombres de los archivos y el contenido de los archivos adjuntos del paquete de trabajo. Por favor, actualice a un plan de pago para utilizar este add-on."
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Edición Enterprise.'
general_text_no: "no"
general_text_yes: "sí"
@ -478,7 +478,7 @@ es:
label_drop_files: "Arrastra archivos aquí para adjuntarlos."
label_drop_or_click_files: "Arrastra los archivos o haz clic aquí para adjuntar archivos."
label_drop_folders_hint: No se pueden cargar carpetas como archivos adjuntos. Seleccione archivos individuales.
label_add_attachments: "Adjuntar archivos"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Para adjuntar y vincular archivos, colóquelos en este campo o péguelos desde el portapapeles."
label_remove_file: "Eliminar %{fileName}"
label_remove_watcher: "Eliminar observador %{name}"
@ -572,7 +572,7 @@ es:
one: 'y 1 más'
other: 'y %{count} más'
no_results:
at_all: 'Aquí se mostrarán las nuevas notificaciones cuando haya actividad que le resulte pertinente.'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'No hay notificaciones en esta vista actualmente'
mark_all_read: 'Marcar todas como leídas'
mark_as_read: 'Marcar como leída'
@ -595,7 +595,7 @@ es:
watched: 'Observador'
date_alert: 'Alerta de fecha'
settings:
change_notification_settings: 'Puede modificar su <a target="_blank" href="%{url}">configuración de notificaciones</a> para asegurarse que nunca se pierda una actualización importante.'
change_notification_settings: 'You can modify your <a target="_blank" href="%{url}">notification settings</a> to ensure you never miss an important update.'
title: "Ajustes de notificación"
notify_me: "Notifícame"
reminders:
@ -657,7 +657,7 @@ es:
project:
required_outside_context: >
Seleccione el proyecto donde quiere crear el paquete de trabajo para ver todos los atributos. Solo puede seleccionar proyectos que tengan activado el tipo de paquete utilizado.
details_activity: 'Actividad de detalles del proyecto'
details_activity: 'Project details activity'
context: 'Contexto del proyecto'
work_package_belongs_to: 'Este paquete de trabajo pertenece al proyecto %{projectname}.'
click_to_switch_context: 'Abra este paquete de trabajo en ese proyecto.'
@ -709,7 +709,7 @@ es:
confirm_reset: >
Advertencia: ¿Está seguro de que quiere restablecer la configuración del formulario? Se restablecerán los atributos al grupo predeterminado y se deshabilitarán TODOS los campos personalizados.
upgrade_to_ee: "Actualizar a edición Enterprise on-premises"
upgrade_to_ee_text: "¡Vaya! Si necesita está opción, entonces ¡es un usuario experto! ¿Le importaría apoyar a los desarrolladores de código abierto convirtiéndose en cliente de la edición Enterprise?"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Más información"
nevermind: "No importa"
edit:
@ -1193,7 +1193,7 @@ es:
title: 'Usuario de marcador de posición'
title_no_ee: 'Usuario de marcador de posición (add-on solo para edición Enterprise)'
description: 'No tiene acceso al proyecto y no se enviarán correos electrónicos.'
description_no_ee: 'No tiene acceso al proyecto y no se enviarán correos electrónicos. <br>Consulte <a href="%{eeHref}" target="_blank">edición Enterprise</a>'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nombre o dirección de correo electrónico'

@ -224,19 +224,19 @@ fr:
status_label: "Statut :"
status_confirmed: "confirmé"
status_waiting: "e-mail envoyé - en attente de confirmation"
test_ee: "Essayez gratuitement la version Entreprise pendant 14 jours"
quick_overview: "Obtenez un aperçu rapide de la gestion de projets et de la collaboration en équipe avec la version Entreprise d'OpenProject."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Devenez un héros !"
enterprise_info_html: "%{feature_title} est un <span class='spot-icon spot-icon_enterprise-addons'></span>add-on Entreprise."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Veuillez passer à une offre payante pour l'activer et commencer à l'utiliser dans votre équipe."
benefits:
description: "Quels sont les avantages de l'édition Entreprise autohébergée ?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Fonctionnalités de sécurité"
high_security_text: "Authentification unique (SAML, OpenID Connect, CAS), groupes LDAP."
high_security_text: "Single sign on (SAML, OpenID Connect, CAS), LDAP groups."
installation: "Assistance à l'installation"
installation_text: "Des ingénieurs logiciel expérimentés vous guident à travers le processus complet d'installation et de configuration de votre propre infrastructure."
premium_features: "Add-ons Entreprise"
premium_features: "Enterprise add-ons"
premium_features_text: "Tableaux agiles, thème et logo personnalisés, graphiques, flux de travail intelligents avec actions personnalisées, recherche en plein texte des pièces jointes de lots de travaux et champs personnalisés à choix multiples"
professional_support: "Support professionnel"
professional_support_text: "Obtenez une assitance fiable et à haut contact de la part d'ingénieurs d'assistance expérimentés qui ont une connaissance approfondie de la mise en œuvre d'OpenProject dans des environnements critiques pour l'entreprise."
@ -249,9 +249,9 @@ fr:
link_quote: "Obtenir un devis"
more_info: "Plus d'informations"
text: >
La version Entreprise d'OpenProject s'appuie sur la version Community. Elle comprend des add-ons Entreprise et un support professionnel principalement destiné aux organisations comptant plus de 10 utilisateurs gérant des projets critiques avec OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Illimité"
you_contribute: "Les développeurs aussi ont besoin de payer leurs factures. En passant à la version Entreprise, vous soutiendrez cet effort communautaire open source et contribuerez à son développement, sa maintenance et son amélioration continue."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'le'
@ -280,8 +280,8 @@ fr:
one: "Premier critère de tri"
two: "Second critère de tri"
three: "Troisième critère de tri"
upsale_for_more: "Les filtres avancés vous permettent également de filtrer les noms de fichiers et le contenu des pièces jointes du lot de travaux. Veuillez passer à une offre payante pour utiliser cet add-on."
upsale_link: 'Version Entreprise'
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise edition.'
general_text_no: "non"
general_text_yes: "oui"
general_text_No: "Non"
@ -478,7 +478,7 @@ fr:
label_drop_files: "Déposez des fichiers ici pour joindre des fichiers."
label_drop_or_click_files: "Déposez des fichiers ici ou cliquez pour joindre des fichiers."
label_drop_folders_hint: Vous ne pouvez pas télécharger les dossiers en pièce jointe. S’il vous plaît sélectionnez des fichiers seuls.
label_add_attachments: "Joindre fichiers"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Insérer des fichiers en les glissant sur ce champ, ou en les collant depuis le presse-papiers."
label_remove_file: "Supprimer %{fileName}"
label_remove_watcher: "Retirer l'observateur %{name}"
@ -625,18 +625,18 @@ fr:
global:
immediately:
title: 'Participant'
description: 'Notifications pour toute activité sur les lots de travaux vous concernant (assigné, responsable ou observateur).'
description: 'Notifications for all activities in work packages you are involved in (assignee, accountable or watcher).'
delayed:
title: 'Non participants'
description: 'Notifications additionnelles lors d''activité sur tous les projects.'
description: 'Additional notifications for activities in all projects.'
date_alerts:
title: 'Alarmes'
description: 'Notifications automatiques lorsque des dates importantes approchent pour les lots de travaux ouverts vous concernant (assigné, responsable ou observateur).'
description: 'Automatic notifications when important dates are approaching for open work packages you are involved in (assignee, accountable or watcher).'
teaser_text: 'Avec les alarmes, vous serez informé(e) à l''approche des dates de début ou de fin vous concernant afin de ne jamais manquer ou oublier une échéance importante.'
overdue: En cas de retard
project_specific:
title: 'Paramètres de notification spécifiques au projet'
description: 'Ces paramètres spécifiques au projet remplacent les paramètres par défaut ci-dessus.'
description: 'These project-specific settings override default settings above.'
add: 'Ajouter un paramètre pour le projet'
already_selected: 'Ce projet est déjà sélectionné'
remove: 'Suppression des paramètres de projet'
@ -657,7 +657,7 @@ fr:
project:
required_outside_context: >
Veuillez choisir un projet pour créer le lot de travaux et voir tous les attributs. Vous pouvez seulement sélectionner des projets ayant le type ci-dessus activé.
details_activity: 'Activité des détails du projet'
details_activity: 'Project details activity'
context: 'Contexte du projet'
work_package_belongs_to: 'Ce lot de travaux appartient au projet %{projectname}.'
click_to_switch_context: 'Ouvrir ce lot de travaux dans ce projet.'
@ -708,8 +708,8 @@ fr:
reset_title: "Réinitialiser la configuration du formulaire"
confirm_reset: >
Avertissement : êtes-vous sûr de vouloir réinitialiser la configuration du formulaire ? Ceci va réinitialiser les attributs à leur groupe par défaut et désactiver TOUS les champs personnalisés.
upgrade_to_ee: "Mettre à niveau vers la version Entreprise autohébergée"
upgrade_to_ee_text: "Waouh ! Si vous avez besoin de cette fonctionnalité, vous êtes un véritable pro ! Cela vous dérangerait-il de soutenir les développeurs Open Source en devenant un client de la version Entreprise ?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Plus d'informations"
nevermind: "Peu importe"
edit:
@ -1047,7 +1047,7 @@ fr:
upsale:
attribute_highlighting: 'Vous avez besoin de lots de travaux qui sortent du lot ?'
relation_columns: 'Besoin de voir les relations sur la liste des lots de travaux ?'
check_out_link: 'Découvrez l’édition Entreprise.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'Filtrer les lots de travaux par type de relation'
tabs:
@ -1191,9 +1191,9 @@ fr:
description: 'Permissions basées sur le rôle attribué dans le projet sélectionné'
placeholder:
title: 'Utilisateur de remplacement'
title_no_ee: 'Utilisateur fictif (add-on de la version Entreprise uniquement)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'N''a pas d''accès au projet et aucun e-mail n''est envoyé.'
description_no_ee: 'N''a pas accès au projet et aucun courriel n''est envoyé. <br>Consultez la <a href="%{eeHref}" target="_blank">version Entreprise</a>.'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nom ou adresse e-mail'

@ -224,19 +224,19 @@ tr:
status_label: "Durum:"
status_confirmed: "onaylanmış"
status_waiting: "e-posta gönderildi - onay bekleniyor"
test_ee: "Enterprise Edition ürününü 14 gün ücretsiz test edin"
quick_overview: "OpenProject Enterprise sürümü ile proje yönetimi ve ekip işbirliğine hızlı bir genel bakış elde edin."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Kahraman olun!"
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team."
benefits:
description: "Enterprise şirket içi sürümünün avantajları nelerdir?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Güvenlik özellikleri"
high_security_text: "Single sign on (SAML, OpenID Connect, CAS), LDAP groups."
installation: "Kurulum desteği"
installation_text: "Deneyimli yazılım mühendisleri, kendi altyapınızdaki eksiksiz kurulum ve kurulum sürecinde size rehberlik eder."
premium_features: "Enterprise eklentiler"
premium_features: "Enterprise add-ons"
premium_features_text: "Çevik tahtalar, özel tema ve logo, grafikler, özel eylemlerle akıllı iş akışları, iş paketi ekleri için tam metin araması ve çoklu seçim özel alanları."
professional_support: "Profesyonel destek"
professional_support_text: "İş açısından kritik ortamlarda OpenProject çalıştırma konusunda uzman bilgiye sahip kıdemli destek mühendislerinden güvenilir, yüksek dokunuşlu destek alın."
@ -249,9 +249,9 @@ tr:
link_quote: "Fiyat teklifi alın"
more_info: "Daha fazla bilgi"
text: >
OpenProject Enterprise sürümü, Community sürümünün üzerine kuruludur. OpenProject ile iş açısından kritik projeleri yöneten 10'dan fazla kullanıcısı olan kuruluşlara yönelik Kurumsal eklentiler ve profesyonel destek içerir.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Sınırsız"
you_contribute: "Geliştiricilerin de faturalarını ödemeleri gerekiyor. Enterprise sürümüne yükselterek, bu açık kaynak topluluk çabasını destekleyecek ve geliştirilmesine, sürdürülmesine ve sürekli iyileştirilmesine katkıda bulunacaksınız."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'açık'
@ -280,7 +280,7 @@ tr:
one: "İlk sıralama ölçütü"
two: "İkinci sıralama ölçütü"
three: "Üçüncü sıralama ölçütleri"
upsale_for_more: "Gelişmiş filtreler, iş paketi eklerinin dosya adları ve içeriği için de filtre uygulamanıza olanak tanır. Bu eklentiyi kullanmak için lütfen ücretli bir plana yükseltin."
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise sürümü'
general_text_no: "hayır"
general_text_yes: "evet"
@ -400,7 +400,7 @@ tr:
label_no_data: "Görüntülenecek veri yok"
label_no_due_date: "bitiş tarihi yok"
label_no_start_date: "başlangıç tarihi yok"
label_no_date: "tarih yok"
label_no_date: "no date"
label_no_value: "Değer yok"
label_none: "hiçbiri"
label_not_contains: "içermiyor"
@ -476,7 +476,7 @@ tr:
label_columns: "Sütunlar"
label_attachments: Ekler
label_drop_files: "Dosya eklemek için dosyaları buraya bırakın."
label_drop_or_click_files: "Dosyaları buraya bırakın veya eklemek için tıklayın"
label_drop_or_click_files: "Drop files here or click to attach files."
label_drop_folders_hint: Klasörleri ek olarak karşıya yükleyemezsiniz. Lütfen tekil dosyalar seçiniz.
label_add_attachments: "Dosyaları ekle"
label_formattable_attachment_hint: "Dosyaları bu alana sürükleyerek ekleyebilir veya panodan yapıştırabilirsiniz."
@ -549,31 +549,31 @@ tr:
commented: 'yorumlandı'
processed: 'işlem uygulandı'
prioritized: 'öncelik verildi'
dateAlert: 'Tarih uyarısı'
dateAlert: 'Date alert'
date_alerts:
milestone_date: 'Milestone date'
overdue: 'Overdue'
overdue_since: 'since %{difference_in_days}'
property_today: 'bugün'
property_today: 'is today'
property_is: 'is in %{difference_in_days}'
property_was: 'was %{difference_in_days} ago'
property_is_deleted: 'silindi'
upsale:
title: 'Tarih uyarısı'
title: 'Date alerts'
description: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
facets:
unread: 'okunmamış'
unread_title: 'Okunmayanları göster'
unread_title: 'Show unread'
all: 'Hepsi'
all_title: 'Tümünü göster'
center:
label_actor_and: 've'
label_actor_and: 'and'
and_more_users:
one: 've 1 diğer'
other: 've 1 diğer'
no_results:
at_all: 'Sizi ilgilendiren bir etkinlik olduğunda yeni bildirimler burada görünecektir.'
with_current_filter: 'Şu anda bu görünümde bildirim yok'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'There are no notifications in this view at the moment'
mark_all_read: 'Tümünü okundu olarak işaretle'
mark_as_read: 'Okundu olarak işaretle'
text_update_date: "%{date} by"
@ -608,13 +608,13 @@ tr:
P7D: 1 hafta önce
overdue:
P1D: her gün
P3D: Her 3 günde bir
P3D: every 3 days
P7D: her hafta
reasons:
mentioned:
title: 'Bahsedilen'
description: 'Receive a notification every time someone mentions me anywhere'
assignee: 'Atanan'
assignee: 'Assignee'
responsible: 'Sorumlu'
watched: 'İzleyici'
work_package_commented: 'Tüm yeni yorumlar'
@ -624,19 +624,19 @@ tr:
work_package_scheduled: 'Tüm tarih değişiklikleri'
global:
immediately:
title: 'Katılım'
description: 'Dahil olduğunuz (vekil, sorumlu veya gözlemci) iş paketlerindeki tüm faaliyetler için bildirimler.'
title: 'Participating'
description: 'Notifications for all activities in work packages you are involved in (assignee, accountable or watcher).'
delayed:
title: 'Non-participating'
description: 'Tüm projelerdeki faaliyetler için ek bildirimler.'
description: 'Additional notifications for activities in all projects.'
date_alerts:
title: 'Tarih uyarısı'
description: 'Dahil olduğunuz (vekil, sorumlu veya gözlemci) açık iş paketleri için önemli tarihler yaklaştığında otomatik bildirimler.'
title: 'Date alerts'
description: 'Automatic notifications when important dates are approaching for open work packages you are involved in (assignee, accountable or watcher).'
teaser_text: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
overdue: When overdue
project_specific:
title: 'Projeye özel bildirim ayarları'
description: 'Bu projeye özgü ayarlar, yukarıdaki varsayılan ayarları geçersiz kılar.'
title: 'Project-specific notification settings'
description: 'These project-specific settings override default settings above.'
add: 'Proje için ayar ekle'
already_selected: 'Bu proje zaten seçildi'
remove: 'Proje ayarlarını sil'
@ -657,7 +657,7 @@ tr:
project:
required_outside_context: >
Lütfen tüm özellikleri görmek için çalışma paketini oluşturacak bir proje seçin. Yalnızca yukarıdaki türden etkin olan projeleri seçebilirsiniz.
details_activity: 'Proje ayrıntıları etkinliği'
details_activity: 'Project details activity'
context: 'Proje içeriği'
work_package_belongs_to: 'Bu iş paketi %{projectname} projesine ait.'
click_to_switch_context: 'Bu iş paketini o projede aç.'
@ -673,8 +673,8 @@ tr:
daily:
add_time: 'Süre ekle'
enable: 'Günlük email hatırlatıcılarını etkinleştir'
explanation: 'Bu hatırlatıcıları yalnızca okunmamış bildirimler için ve yalnızca sizin belirlediğiniz saatlerde alacaksınız. %{no_time_zone}'
no_time_zone: 'Hesabınız için bir saat dilimi yapılandırana kadar, saatler UTC olarak yorumlanacaktır.'
explanation: 'You will receive these reminders only for unread notifications and only at hours you specify. %{no_time_zone}'
no_time_zone: 'Until you configure a time zone for your account, the times will be interpreted to be in UTC.'
time_label: 'Zaman %{counter}:'
title: 'Okunmamış bildirimler için bana günlük e-posta hatırlatıcıları gönder'
workdays:
@ -683,11 +683,11 @@ tr:
title: 'Bana email hatırlatıcısı gönder'
mentioned: 'Immediately when someone @mentions me'
alerts:
title: 'Diğer öğeler için e-posta uyarıları (iş paketleri olmayanlar)'
title: 'Email alerts for other items (that are not work packages)'
explanation: >
Bildirimler bugün iş paketleri ile sınırlıdır. Bildirimlere eklenene kadar bu etkinlikler için e-posta uyarıları almaya devam etmeyi seçebilirsiniz:
Notifications today are limited to work packages. You can choose to continue receiving email alerts for these events until they are included in notifications:
news_added: 'Haberler eklendi'
news_commented: 'Bir habere yorum yapın'
news_commented: 'Comment on a news item'
document_added: 'Belgeler eklendi'
forum_messages: 'Yeni forum mesajları'
wiki_page_added: 'Viki sayfası eklendi'
@ -708,8 +708,8 @@ tr:
reset_title: "Form ayarlarlarını sıfırlayın"
confirm_reset: >
Uyarı: Form yapılandırmasını sıfırlamak istediğinizden emin misiniz? Bu, nitelikleri varsayılan gruplarına sıfırlar ve TÜM özel alanları devre dışı bırakır.
upgrade_to_ee: "Enterprise on-premises edition'a yükseltin"
upgrade_to_ee_text: "Vay! Bu eklentiye ihtiyacınız varsa, siz bir süper profesyonelsiniz! Enterprise sürümü müşterisi olarak biz OpenSource geliştiricilerini destekler misiniz?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Daha fazla bilgi"
nevermind: "Boşver"
edit:
@ -885,11 +885,11 @@ tr:
comment_updated: "Yorum başarıyla güncelleştirildi."
confirm_edit_cancel: "İş paketini düzenlemeyi iptal etmek istediğinizden emin misiniz?"
datepicker_modal:
automatically_scheduled_parent: "Otomatik olarak planlandı. Tarihler ilişkilerden türetilir."
manually_scheduled: "Manuel planlama etkinleştirildi, tüm ilişkiler göz ardı edildi."
start_date_limited_by_relations: "Kullanılabilir başlangıç ve bitiş tarihleri ilişkilerle sınırlıdır."
changing_dates_affects_follow_relations: "Bu tarihlerin değiştirilmesi, ilgili iş paketlerinin tarihlerini etkileyecektir."
click_on_show_relations_to_open_gantt: 'GANTT''ye genel bakış için "%{button_name}" üzerine tıklayın.'
automatically_scheduled_parent: "Automatically scheduled. Dates are derived from relations."
manually_scheduled: "Manual scheduling enabled, all relations ignored."
start_date_limited_by_relations: "Available start and finish dates are limited by relations."
changing_dates_affects_follow_relations: "Changing these dates will affect dates of related work packages."
click_on_show_relations_to_open_gantt: 'Click on "%{button_name}" for GANTT overview.'
show_relations: 'İlişkileri göster'
ignore_non_working_days:
title: 'Sadece iş günleri'
@ -913,7 +913,7 @@ tr:
message_work_package_status_blocked: "İş paketi durumu, kapalı durum ve kapalı sürüm tahsis edildiğinden dolayı yazılamaz."
placeholder_filter_by_text: "Konu, açıklama, yorumlar, ..."
filters:
title: 'İş paketlerini filtrele'
title: 'Filter work packages'
inline_create:
title: 'Listeden yeni bir iş paketi eklemek için buraya tıklayınız'
create:
@ -937,7 +937,7 @@ tr:
no_results:
title: Görüntülecek bir iş paketi bulunmuyor.
description: Ya hiç iş paketi oluşturulmamış, ya da tüm iş paketeri filtrelenmiş.
limited_results: Manuel sıralama modunda yalnızca %{count} iş paketi gösterilebilir. Lütfen filtreleyerek sonuçları azaltın veya otomatik sıralamaya geçin.
limited_results: Only %{count} work packages can be shown in manual sorting mode. Please reduce the results by filtering, or switch to automatic sorting.
property_groups:
details: "Detaylar"
people: "Kişiler"
@ -1047,7 +1047,7 @@ tr:
upsale:
attribute_highlighting: 'Kitleden sıyrılmak için bazı iş paketlerine mi ihtiyacınız var?'
relation_columns: 'İş paketleri listesindeki ilişkileri görmek ister misiniz?'
check_out_link: 'Enterprise sürümünü inceleyin.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'İş paketlerini ilişki türüne göre filtreleme'
tabs:
@ -1056,7 +1056,7 @@ tr:
relations: İlişkiler
watchers: Takip Edenler
files: Dosyalar
files_tab_migration_help: 'Artık yeni sekme aracılığıyla iş paketlerine dosya ekleyebilirsiniz:'
files_tab_migration_help: 'You can now attach files to work packages via the new tab:'
time_relative:
days: "gün"
weeks: "hafta"
@ -1093,8 +1093,8 @@ tr:
text: 'Bu işlemi gerçekleştirmek istediğinizden emin misiniz?'
destroy_work_package:
title: "%{label} için silme işlimini onaylayın"
single_text: "Bu iş paketini silmek istediğinize emin misiniz?"
bulk_text: "Aşağıdaki %{label}'i silmek istediğinizden emin misiniz?"
single_text: "Are you sure you want to delete the work package"
bulk_text: "Are you sure you want to delete the following %{label}?"
has_children: "İş paketi %{childUnits} alt paketlerine sahip:"
confirm_deletion_children: "Listelenen iş paketlerinin TÜM soylarının tekrar tekrar kaldırılacağını kabul ediyorum."
deletes_children: "Tüm çocuk iş paketleri ve torunları da tekrar tekrar silinir."
@ -1191,9 +1191,9 @@ tr:
description: 'Seçilen projede atanan role dayalı izinler'
placeholder:
title: 'Yer tutucu kullanıcı'
title_no_ee: 'Yer tutucu kullanıcı (yalnızca Enterprise sürümü eklentisi)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'Projeye erişimi yoktur ve e-posta gönderilmez.'
description_no_ee: 'Projeye erişimi yoktur ve e-posta gönderilmez. <br><a href="%{eeHref}" target="_blank">Enterprise sürümünü</a> inceleyin'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'İsim veya e-posta adresi'
@ -1217,7 +1217,7 @@ tr:
next_button: 'Sonraki'
message:
label: 'Davet Mesajı'
description: 'Kullanıcıya, buradan kişisel bir mesaj ekleyebileceğiniz bir e-posta göndereceğiz. Davet için bir açıklama yararlı olabilir veya belki de başlamalarına yardımcı olacak projeyle ilgili bir parça bilgi olabilir.'
description: 'We will send an email to the user, to which you can add a personal message here. An explanation for the invitation could be useful, or prehaps a bit of information regarding the project to help them get started.'
next_button: 'Sonraki'
summary:
next_button: 'Davet gönder'
@ -1237,9 +1237,9 @@ tr:
all: 'Tüm projeler'
selected: 'Sadece seçilen'
search_placeholder: 'Proje ara...'
include_subprojects: 'Tüm alt projeleri dahil et'
include_subprojects: 'Include all sub-projects'
tooltip:
include_all_selected: 'Tüm alt projeleri dahil et etkinleştirildiğinden, proje zaten dahil edilmiştir.'
include_all_selected: 'Project already included since Include all sub-projects is enabled.'
current_project: 'Bu, içinde bulunduğunuz mevcut projedir.'
does_not_match_search: 'Proje arama kriterleriyle eşleşmiyor.'
no_results: 'Arama kriterleriniz ile eşleşen proje yok'

@ -3004,8 +3004,8 @@ ru:
working: "%{day} сейчас работает"
non_working: "%{day} теперь не работает"
dates:
working: "%{date} сейчас работает"
non_working: "%{date} теперь не работает"
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Нет ничего для предосмотра"
api_v3:
attributes:

@ -70,7 +70,7 @@ tr:
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Delete token"
replace_token: "Geçerli destek anahtarını değiştirin"
order: "Enterprise on-premises edition sipariş edin"
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Daha fazla bilgi için burayı tıklatın."
@ -84,7 +84,7 @@ tr:
upgrade_info: "Etkinleştirmek ve ekibinizde kullanmaya başlamak için lütfen ücretli bir plana yükseltin."
journal_aggregation:
explanation:
text: "Bir kullanıcının bireysel eylemleri (örneğin, bir iş paketini iki kez güncelleme), yaş farkı belirtilen zaman aralığından azsa tek bir eylemde toplanır. Uygulama içinde tek bir eylem olarak görüntülenecektir. Bu aynı zamanda gönderilen e-posta sayısını azaltarak bildirimleri aynı süre kadar geciktirecek ve ayrıca %{webhook_link} gecikmesini etkileyecektir."
text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay."
link: "webhook"
announcements:
show_until: Son görüntülenme tarihi
@ -220,10 +220,10 @@ tr:
#Contains custom strings for options when copying a project that cannot be found elsewhere.
members: 'Proje üyeleri'
overviews: 'Projeye Genel Bakış'
queries: 'İş paketleri: kaydedilen görünümler'
wiki_page_attachments: 'Wiki sayfaları: ekler'
work_package_attachments: 'İş paketleri: ekler'
work_package_categories: 'İş paketleri: kategoriler'
queries: 'Work packages: saved views'
wiki_page_attachments: 'Wiki pages: attachments'
work_package_attachments: 'Work packages: attachments'
work_package_categories: 'Work packages: categories'
work_package_file_links: 'Çalışma paketleri: dosya bağlantıları'
delete:
scheduled: "Silme planlandı ve arka planda gerçekleştirilir. Sonuçtan haberdar edileceksiniz."
@ -280,7 +280,7 @@ tr:
no_results_title_text: Bu kullanıcı şuan için bir proje üyesi değil.
placeholder_users:
right_to_manage_members_missing: >
Yer tutucu kullanıcıyı silme izniniz yok. Yer tutucu kullanıcının üyesi olduğu tüm projeler için üyeleri yönetme hakkınız yoktur.
You are not allowed to delete the placeholder user. You do not have the right to manage members for all projects that the placeholder user is a member of.
delete_tooltip: "Yer tutucu kullanıcısını silin."
deletion_info:
heading: "%{name} yer tutucu kullanıcısını sil."
@ -638,7 +638,7 @@ tr:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "Sağlanan SSL sertifikası geçersiz: %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -1271,11 +1271,11 @@ tr:
ee:
upsale:
form_configuration:
description: "Bu ek eklentilerle form yapılandırmasını özelleştirin:"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Yeni öznitelik grubu ekleyin"
rename_groups: "Öznitelik grubunun adını değiştirin"
project_filters:
description_html: "Özel alanlarda filtreleme ve sıralama, bir Enterprise sürümü eklentisidir."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Zaman izleme faaliyetleri"
enumeration_work_package_priorities: "İş paketi öncelikleri"
enumeration_reported_project_statuses: "Bildirilen proje durumları"
@ -1797,7 +1797,7 @@ tr:
label_product_version: "Ürün sürümü"
label_professional_support: "Profesyonel destek"
label_profile: "Profil"
label_project_activity: "Proje etkinliği"
label_project_activity: "Project activity"
label_project_attribute_plural: "Proje öznitelikleri"
label_project_count: "Toplam proje sayısı"
label_project_copy_notifications: "Proje kopyalaması esnasında bilgilendirme e-postaları gönder"
@ -2046,9 +2046,9 @@ tr:
other: 'There are %{count} more work packages with notifications.'
reason:
watched: 'İzlendi'
assigned: 'Atanmış'
assigned: 'Assigned'
responsible: 'Sorumlu'
mentioned: 'Bahsedilen'
mentioned: 'Mentioned'
subscribed: 'tüm'
prefix: 'Received because of the notification setting: %{reason}'
date_alert_start_date: 'Date alert'
@ -2221,7 +2221,7 @@ tr:
permission_add_work_packages: "İş paketi eklemek"
permission_add_messages: "İleti göndermek"
permission_add_project: "Proje oluşturmak"
permission_archive_project: "Projeyi arşivle"
permission_archive_project: "Archive project"
permission_manage_user: "Kullanıcılar oluştur ve düzenle"
permission_manage_placeholder_user: "Yer tutucu kullanıcıları oluşturun, düzenleyin ve silin"
permission_add_subprojects: "Alt proje oluşturmak"
@ -2607,7 +2607,7 @@ tr:
text_access_token_hint: "Erişim belirteçleri, OpenProject içindeki kaynaklara harici uygulamalar erişimi vermenizi sağlar."
text_analyze: "Daha fazla analiz: %{subject}"
text_are_you_sure: "Emin misiniz?"
text_are_you_sure_continue: "Devam etmek istediğinizden emin misiniz?"
text_are_you_sure_continue: "Are you sure you want to continue?"
text_are_you_sure_with_children: "Sil iş paketi ve tüm alt çalışma paketlerini?"
text_assign_to_project: "Projeye ata"
text_form_configuration: >
@ -2972,7 +2972,7 @@ tr:
api_v3:
attributes:
lock_version: "Sürümü Kilitle"
property: 'Özellik'
property: 'Property'
errors:
code_400: "Geçersiz istek: %{message}"
code_401: "Bu kaynağa erişim sağlayabilmeniz için yetkilendirilmiş olmalısınız"

@ -3154,7 +3154,7 @@ en:
Non-working days are skipped when scheduling work packages and are excluded when calculating duration. This can be overridden at a work-package level.
change_button: "Change working days"
warning: >
Changing which days of the week are considered working days can affect the start and finish days of all work packages in all projects in this instance.
Changing which days of the week are considered working days or non-working days can affect the start and finish days of all work packages in all projects in this instance. Please not that changes are only applied after you click on the save changes button.
journal_note:
changed: _**Working days** changed (%{changes})._
days:

@ -278,6 +278,20 @@ en:
unlimited: "Unlimited"
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
working_days:
calendar:
empty_state_header: "Non-working days"
empty_state_description: 'No specific non-working days are defined for this year. Click on "Add non-working day" below to add a date.'
new_date: '(new)'
add_non_working_day: "Add non-working day"
change_button: "Save and reschedule"
change_title: "Change working days"
removed_title: "You will remove the following days from the non-working days list:"
change_description: "Changing which days of the week are considered working days or non-working days can affect the start and finish days of all work packages in all projects in this instance."
warning: >
The changes might take some time to take effect. You will be notified when all relevant work packages have been updated.
Are you sure you want to to continue?
custom_actions:
date:
specific: 'on'

@ -0,0 +1,64 @@
# Schema: FileCollectionModel
---
allOf:
- $ref: './collection_model.yml'
- type: object
required:
- _links
- _embedded
properties:
_links:
type: object
required:
- self
properties:
self:
allOf:
- $ref: './link.yml'
- description: |-
This file collection
**Resource**: FileCollectionModel
_embedded:
type: object
required:
- elements
properties:
elements:
type: array
items:
$ref: './storage_file_model.yml'
example:
_type: Collection
total: 2
count: 2
_links:
self:
href: '/api/v3/storages/42/files'
_embedded:
elements:
- id: 1337
location: '/data/logo.png'
name: logo.png
mimeType: image/png
size: 16042
createdAt: '2021-12-19T09:42:10.170Z'
lastModifiedAt: '2021-12-20T14:00:13.987Z'
createdByName: Luke Skywalker
lastModifiedByName: Anakin Skywalker
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'
- id: 1338
location: '1338'
name: README.md
mimeType: text/markdown
size: 3742
createdAt: '2021-12-20T09:42:10.170Z'
lastModifiedAt: '2021-12-21T14:00:13.987Z'
createdByName: Leia Organa
lastModifiedByName: Leia Organa
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'

@ -0,0 +1,22 @@
# Schema: StorageFileLocationModel
---
type: object
required:
- location
properties:
location:
type: string
description: Location identification for file in storage
_links:
type: object
required:
- self
properties:
self:
allOf:
- "$ref": "./link.yml"
- description: |-
Not provided
**Resource**: urn:openproject-org:api:v3:storages:storage_file:no_link_provided
readOnly: true

@ -2,36 +2,4 @@
---
allOf:
- $ref: './file_link_origin_data_model.yml'
- type: object
required:
- _type
- location
- _links
properties:
_type:
type: string
enum:
- StorageFile
location:
type: string
description: Location identification for file in storage
_links:
type: object
required:
- self
properties:
self:
allOf:
- $ref: './link.yml'
- description: |-
Not provided
**Resource**: urn:openproject-org:api:v3:storages:storage_file:no_link_provided
example:
id: 42
name: readme.md
_type: StorageFile
location: '/readme.md'
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'
- $ref: './storage_file_location_model.yml'

@ -1,34 +0,0 @@
# Schema: StorageFileUploadLinkModel
---
type: object
required:
- _type
- _links
properties:
_type:
type: string
enum:
- UploadLink
_links:
type: object
required:
- self
- destination
properties:
self:
allOf:
- $ref: './link.yml'
- description: |-
The resource link of the upload link resource.
As the upload link is a temporal object, and cannot be retrieved again, the
self link usually is `urn:openproject-org:api:v3:storages:upload_link:no_link_provided`.
**Resource**: UploadLink
destination:
allOf:
- $ref: './link.yml'
- description: |-
The direct upload link.
**Resource**: N/A

@ -1,20 +0,0 @@
# Schema: StorageFileUploadPreparationModel
---
type: object
required:
- projectId
- fileName
- parent
properties:
projectId:
type: integer
description: The project identifier, from where a user starts uploading a file.
minimum: 1
fileName:
type: string
description: The file name.
parent:
type: string
description: |-
The directory to which the file is to be uploaded. For root directories, the value `/` must
be provided.

@ -1,80 +0,0 @@
# Schema: StorageFilesModel
---
type: object
required:
- _type
- files
- parent
- _links
properties:
_type:
type: string
enum:
- StorageFiles
files:
type: array
items:
$ref: './storage_file_model.yml'
description: List of files provided by the selected storage.
parent:
allOf:
- $ref: './storage_file_model.yml'
- description: File of the currently selected parent directory.
_links:
type: object
required:
- self
properties:
self:
allOf:
- $ref: "./link.yml"
- description: |-
Not provided
**Resource**: urn:openproject-org:api:v3:storages:storage_file:no_link_provided
example:
_type: StorageFiles
files:
- id: 42
name: readme.md
_type: StorageFile
location: '/readme.md'
mimeType: 'text/markdown'
size: 4096
createdAt: '2021-12-19T09:42:10.170Z'
lastModifiedAt: '2021-12-20T14:00:13.987Z'
createdByName: Luke Skywalker
lastModifiedByName: Anakin Skywalker
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'
- id: 43
name: readme.pdf
_type: StorageFile
location: '/readme.pdf'
mimeType: 'application/pdf'
size: 2048
createdAt: '2021-12-19T09:42:10.170Z'
lastModifiedAt: '2021-12-20T14:00:13.987Z'
createdByName: Luke Skywalker
lastModifiedByName: Anakin Skywalker
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'
parent:
id: 41
name: '/'
location: '/'
mimeType: 'application/x-op-directory'
size: 6144
createdAt: '2021-12-20T09:42:10.170Z'
lastModifiedAt: '2021-12-21T14:00:13.987Z'
createdByName: Luke Skywalker
lastModifiedByName: Anakin Skywalker
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'
_links:
self:
href: 'urn:openproject-org:api:v3:storages:storage_file:no_link_provided'

@ -0,0 +1,2 @@
# Schema: Time_entry_create_form
--- {}

@ -0,0 +1,2 @@
# Schema: Time_entry_update_form
--- {}

@ -0,0 +1,2 @@
# Schema: Unlock_user
--- {}

@ -0,0 +1,2 @@
# Schema: Update_group
--- {}

@ -0,0 +1,2 @@
# Schema: Update_User
--- {}

@ -24,7 +24,7 @@ properties:
readOnly: true
description:
allOf:
- $ref: "./formattable.yml"
- "$ref": "./formattable.yml"
- description: The work package description
scheduleManually:
type: boolean
@ -120,7 +120,7 @@ properties:
properties:
addAttachment:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Attach a file to the WP
@ -130,7 +130,7 @@ properties:
readOnly: true
addComment:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Post comment to WP
@ -140,7 +140,7 @@ properties:
readOnly: true
addRelation:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Adds a relation to this work package.
@ -150,7 +150,7 @@ properties:
readOnly: true
addWatcher:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Add any user to WP watchers
@ -163,7 +163,7 @@ properties:
readOnly: true
items:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
A predefined action that can be applied to the work package.
@ -171,13 +171,13 @@ properties:
readOnly: true
previewMarkup:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: Post markup (in markdown) here to receive an HTML-rendered
response
readOnly: true
removeWatcher:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Remove any user from WP watchers
@ -187,7 +187,7 @@ properties:
readOnly: true
unwatch:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Remove current user from WP watchers
@ -197,7 +197,7 @@ properties:
readOnly: true
update:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Form endpoint that aids in preparing and performing edits on a WP
@ -207,7 +207,7 @@ properties:
readOnly: true
updateImmediately:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Directly perform edits on a work package
@ -217,7 +217,7 @@ properties:
readOnly: true
watch:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Add current user to WP watchers
@ -227,7 +227,7 @@ properties:
readOnly: true
self:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
This work package
@ -235,7 +235,7 @@ properties:
readOnly: true
schema:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The schema of this work package
@ -246,7 +246,7 @@ properties:
readOnly: true
items:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
A visible ancestor work package of the current work package.
@ -258,14 +258,14 @@ properties:
readOnly: true
attachments:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The files attached to this work package
**Resource**: Collection
author:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The person that created the work package
@ -273,14 +273,14 @@ properties:
readOnly: true
assignee:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The person that is intended to work on the work package
**Resource**: User
availableWatchers:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
All users that can be added to the work package as watchers.
@ -292,7 +292,7 @@ properties:
readOnly: true
budget:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The budget this work package is associated to
@ -303,7 +303,7 @@ properties:
**Permission** view cost objects
category:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The category of the work package
@ -313,7 +313,7 @@ properties:
readOnly: true
items:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
A visible child work package of the current work package.
@ -343,35 +343,35 @@ properties:
**Permission**: view file links
parent:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Parent work package
**Resource**: WorkPackage
priority:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The priority of the work package
**Resource**: Priority
project:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The project to which the work package belongs
**Resource**: Project
responsible:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The person that is responsible for the overall outcome
**Resource**: User
relations:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Relations this work package is involved in
@ -383,7 +383,7 @@ properties:
readOnly: true
revisions:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
Revisions that are referencing the work package
@ -395,14 +395,14 @@ properties:
readOnly: true
status:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The current status of the work package
**Resource**: Status
timeEntries:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
All time entries logged on the work package. Please note that this is a link to an HTML resource for now and as such, the link is subject to change.
@ -414,21 +414,21 @@ properties:
readOnly: true
type:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The type of the work package
**Resource**: Type
version:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
The version associated to the work package
**Resource**: Version
watchers:
allOf:
- $ref: "./link.yml"
- "$ref": "./link.yml"
- description: |-
All users that are currently watching this work package

@ -363,8 +363,6 @@ paths:
"$ref": "./paths/storage.yml"
"/api/v3/storages/{id}/files":
"$ref": "./paths/storage_files.yml"
"/api/v3/storages/{id}/files/prepare_upload":
"$ref": "./paths/storage_files_prepare_upload.yml"
"/api/v3/storages/{id}/oauth_client_credentials":
"$ref": "./paths/storage_oauth_client_credentials.yml"
"/api/v3/time_entries":
@ -584,6 +582,8 @@ components:
"$ref": "./components/schemas/example_schema_model.yml"
Execute_custom_action:
"$ref": "./components/schemas/execute_custom_action.yml"
FileCollectionModel:
$ref: './components/schemas/file_collection_model.yml'
FileLinkCollectionReadModel:
$ref: './components/schemas/file_link_collection_read_model.yml'
FileLinkCollectionWriteModel:
@ -748,12 +748,8 @@ components:
"$ref": "./components/schemas/statuses_model.yml"
StorageFileModel:
"$ref": "./components/schemas/storage_file_model.yml"
StorageFilesModel:
"$ref": "./components/schemas/storage_files_model.yml"
StorageFileUploadPreparationModel:
"$ref": "./components/schemas/storage_file_upload_preparation_model.yml"
StorageFileUploadLinkModel:
"$ref": "./components/schemas/storage_file_upload_link_model.yml"
StorageFileLocationModel:
"$ref": "./components/schemas/storage_file_location_model.yml"
StorageReadModel:
"$ref": "./components/schemas/storage_read_model.yml"
StorageWriteModel:
@ -762,14 +758,24 @@ components:
"$ref": "./components/schemas/time_entry_model.yml"
Time_Entry_ActivityModel:
"$ref": "./components/schemas/time_entry_activity_model.yml"
Time_entry_create_form:
"$ref": "./components/schemas/time_entry_create_form.yml"
Time_entry_update_form:
"$ref": "./components/schemas/time_entry_update_form.yml"
TypeModel:
"$ref": "./components/schemas/type_model.yml"
TypesModel:
"$ref": "./components/schemas/types_model.yml"
Types_by_ProjectModel:
"$ref": "./components/schemas/types_by_project_model.yml"
Unlock_user:
"$ref": "./components/schemas/unlock_user.yml"
Unstar_QueryModel:
"$ref": "./components/schemas/unstar_query_model.yml"
Update_User:
"$ref": "./components/schemas/update_user.yml"
Update_group:
"$ref": "./components/schemas/update_group.yml"
UserCollectionModel:
"$ref": "./components/schemas/user_collection_model.yml"
UserCreateModel:

@ -116,10 +116,12 @@ delete:
application/hal+json:
schema:
$ref: '../components/schemas/error_response.yml'
example:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
message: You are not authorized to access this resource.
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
message: You are not authorized to access this resource.
description: |-
Returned if the client does not have sufficient permissions.

@ -33,7 +33,7 @@ get:
content:
application/hal+json:
schema:
$ref: '../components/schemas/storage_files_model.yml'
$ref: '../components/schemas/file_collection_model.yml'
'400':
description: Returned if the given parent parameter value does not refer to a directory.
content:

@ -1,71 +0,0 @@
# /api/v3/storages/{id}/files/prepare_upload
---
post:
summary: Preparation of a direct upload of a file to the given storage.
operationId: prepare_storage_file_upload
tags:
- File links
description: |-
Executes a request that prepares a link for a direct upload to the storage.
The background here is, that the client needs to make a direct request to the storage instance for file uploading,
but should not get access to the credentials, which are stored in the backend. The response contains a link object,
that enables the client to execute a file upload without the real credentials.
parameters:
- name: id
description: Storage id
in: path
required: true
schema:
type: integer
example: 1337
requestBody:
content:
application/json:
schema:
$ref: '../components/schemas/storage_file_upload_preparation_model.yml'
responses:
'201':
description: OK
content:
application/hal+json:
schema:
$ref: '../components/schemas/storage_file_upload_link_model.yml'
'400':
description: Returned if the given parent parameter value does not refer to a directory.
content:
application/hal+json:
schema:
$ref: '../components/schemas/error_response.yml'
example:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
message: The given parent is not a directory.
'403':
content:
application/hal+json:
schema:
$ref: '../components/schemas/error_response.yml'
example:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
message: You are not authorized to access this resource.
description: |-
Returned if the client does not have sufficient permissions.
**Required permission:** manage file links
'404':
content:
application/hal+json:
schema:
$ref: '../components/schemas/error_response.yml'
example:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
message: The requested resource could not be found.
description: |-
Returned in either of those cases:
- if the storage does not exist or the client does not have sufficient permissions to see it
**Required permission:** view file links
- if the document root file identification does not exist on the storage

@ -108,7 +108,8 @@ get:
required: false
schema:
type: string
- description: Indicates whether properties should be summed up if they support it.
- description: Indicates whether properties should be summed up if they support
it.
example: true
in: query
name: showSums
@ -149,7 +150,7 @@ get:
post:
summary: Create Work Package
operationId: create_work_package
operationId: Create_Work_Package
tags:
- Work Packages
description: |-

@ -616,7 +616,7 @@ To disable 2FA altogether and remove all menus from the system, so that users ca
```yaml
OPENPROJECT_2FA_DISABLED="true"
OPENPROJECT_2FA_ACTIVE__STRATEGIES="[]"
OPENPROJECT_2FA_ACTIVE__STRATEGIES="[]
```
### statsd

@ -33,22 +33,6 @@ sudo apt-get install --only-upgrade openproject
sudo openproject configure
```
**A note for Ubuntu 22.04 installations**
On Ubuntu 22.04., you might see warnings like these:
> W: https://dl.packager.io/srv/deb/opf/openproject/stable/12/ubuntu/dists/22.04/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
This message is due to Ubuntu 22.04 switching to a more secure way of adding repository sources, which is not yet supported by the repository provider. There is ongoing work on this item, the message is for information only.
If you get an error like the following:
> E: Repository 'https://dl.packager.io/srv/deb/opf/openproject/stable/12/ubuntu 22.04 InRelease' changed its 'Origin' value from '' to 'https://packager.io/gh/opf/openproject'
> E: Repository 'https://dl.packager.io/srv/deb/opf/openproject/stable/12/ubuntu 22.04 InRelease' changed its 'Label' value from '' to 'Ubuntu 22.04 packages for opf/openproject'
These two messages messages are expected, due to a change in Origin and Label repository metadata, to better explain what the repository is about. You should allow the change, and/or run `sudo apt-get update --allow-releaseinfo-change` for the update to go through.
### CentOS / RHEL
```bash

@ -1,29 +0,0 @@
---
title: OpenProject 12.4.3
sidebar_navigation:
title: 12.4.3
release_version: 12.4.3
release_date: 2023-01-30
---
# OpenProject 12.4.3
Release date: 2023-01-30
We released [OpenProject 12.4.3](https://community.openproject.com/versions/1621).
The release contains several bug fixes and we recommend updating to the newest version.
<!--more-->
#### Bug fixes and changes
- Fixed: Custom field in cost report show "not found" after custom filed's value \[[#34978](https://community.openproject.com/wp/34978)\]
- Fixed: Race condition with outdated OAuth access token \[[#45799](https://community.openproject.com/wp/45799)\]
- Fixed: Notifications API are still showing errors in case of not authorized / other errors \[[#45854](https://community.openproject.com/wp/45854)\]
- Fixed: Administration: Permissions report page doesn't work in french in 12.4.1 \[[#45892](https://community.openproject.com/wp/45892)\]
#### Contributions
A big thanks to community members for reporting bugs and helping us identifying and providing fixes.
Special thanks for reporting and finding bugs go to
Paolo De Marco, Simon Rohart

@ -14,13 +14,6 @@ Stay up to date and get an overview of the new features included in the releases
<!--- New release notes are generated below. Do not remove comment. -->
<!--- RELEASE MARKER -->
## 12.4.3
Release date: 2023-01-30
[Release Notes](12-4-3/)
## 12.4.2
Release date: 2023-01-16

@ -54,10 +54,6 @@ To activate it in the Enterprise cloud please [get in touch](https://www.openpro
There is an OpenProject integration with Thunderbird from the Community. Please note that this add-on is not officially supported and that we do not take any liability when you use it. You can find it [here](https://addons.thunderbird.net/en-GB/thunderbird/addon/thunderbird-openproject/).
## TimeCamp
There is an integration between OpenProject and TimeCamp. We provide a [short instruction](../../user-guide/time-and-costs/time-tracking/timecamp-integration/) how to set it up and use it. However, please note that this add-on is not officially supported and we do not take any liability when you use it.
## Timesheet
Currently, there is no direct integration between OpenProject and Timesheet. If you are looking for a time tracking tool with a simple push of a button, consider the integration with [Toggl](../../user-guide/time-and-costs/time-tracking/toggl-integration/).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

@ -13,7 +13,7 @@ The user list provides an overview of all users in OpenProject. You can create n
<div class="glossary">
**User** is defined as a person (described by an identifier) who uses OpenProject. Users can become project members by assigning them a role and adding them via the project settings.
</div>
To manage users click on your avatar (top right corner) and select **Administration**. Select ***Users and permissions -> Users**. The list of current users is shown.
To manage users click on your avatar (top right corner) and select *Administration*. Select *Users and permissions -> Users*. The list of current users is shown.
In the Community edition there is no limit to the number of users. In Enterprise editions (cloud and on-premises) the user limit is based on your subscription. The number of users for your subscription is thus not bound to names. For example, if you block a user you can add a new one without upgrading.
@ -37,13 +37,12 @@ Column headers can be clicked to toggle sort direction. Arrows indicate sort ord
## Filter users
At the top of the user list is a filter box. Filter by status. group or name, then click the blue **Apply** button to filter the list. Click the **Clear** button to reset the filter fields and refresh the list.
At the top of the user list is a filter box. Filter by status or name, then click the blue **Apply** button to filter the list. Click the **Clear** button to reset the filter fields and refresh the list.
* **Status** - select from Active, All or Locked Temporarily. Each selection shows the number of users.
* **Group** - select from the list of existing groups.
* **Name** - enter any text; this can contain a "%" wild card for 0 or more characters. The filter applies to user name, first name, last name and email address.
![Filter users in OpenProject](openproject_systemguide_filter_users.png)
![Filter users in OpenProject](image-20200115155456033.png)
## Lock and unlock users
@ -55,7 +54,7 @@ If you are using [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-g
![Lock users in OpenProject](open_project_system_admin_lock_user_permanently.png)
If a user has repeated failed logins the user will be locked temporarily and a **Reset failed logins** link will be shown in the user list. Click the link to unlock it right away, or wait and it will be unlocked automatically. Have a look at the section [Other authentication settings](../../authentication/authentication-settings/#other-authentication-settings) for failed attempts and time blocked.
If a user has repeated failed logins the user will be locked temporarily and a **Reset failed logins" link will be shown in the user list. Click the link to unlock it right away, or wait and it will be unlocked automatically. Have a look at the section [Other authentication settings](../../authentication/authentication-settings/#other-authentication-settings) for failed attempts and time blocked.
## Create users
@ -72,23 +71,17 @@ Enter the email address, first name, and last name of the new user. Tick the box
Note: the email field must be a valid format and be unique or it will be rejected on clicking the button.
Click the **Create** button to add the user and show that user's details page. Click the **Create and continue** button to add the user and stay on the new user form to add another user. Either way, the new user will be invited via email.
When adding the last of multiple users you can click on **Create** or click the **Users** link in the menu on the left. The **Users list** will be shown. Click on the name of each user to [edit their details](#set-initial-details).
When adding the last of multiple users you can click on **Create** or click the **Users** link in the menu on the left. The Users list is shown. Click each user in turn to [edit their details](#set-initial-details).
### Create user (via self-registration)
To allow users to create their own user accounts enable self-registration in the [authentication settings](../../authentication/authentication-settings). A person can then create their own user from the home page by clicking on the **Sign in** button (top right), then on the **Create a new account** link in the sign in box.
To allow users to create their own user accounts allow self-registration in the [authentication settings](../../authentication/authentication-settings). A person can then create their own user from the home page by clicking on the **Sign in** button (top right), then on the **Create a new account** link in the sign in box.
Enter values in all fields (they cannot be left blank). The email field must be a valid email address that is not used in this system. Click the **Create** button. Depending on the [settings](../../authentication/authentication-settings) the account is created but it could be that it still needs to be activated by an administrator.
#### Activate users
Open the user list. If a user has created their own account (and it has not been activated automatically) it is shown in the user list with an **Activate** link on the right. Click this link and continue to add details to this user as below.
![Activate a user](system_guide_activate_user_list.png)
There is also an **Activate** button at the top of the user's details page.
![Activate user in profile](system_guide_activate_user_profile.png)
Open the user list. If a user has created their own account (and it has not been activated automatically) it is shown in the user list with an **Activate** link on the right. Click this link and continue to add details to this user as below. There is also an **Activate** button at the top of the user's details page.
### Set initial details
@ -108,35 +101,35 @@ In the top right, click the **Send invitation** button in order to send the emai
### Delete user invitations
To invalidate or revoke a user's invitation click on the user name and then on **Delete** in the upper right corner. This will prevent the invited user from logging in.
Please note: this only works for users who haven't logged in yet. If the user is already active this will delete his/her whole profile and account. Deleting users can't be revoked.
Please note: This only works for users who haven't logged in yet. If the user is already active this will delete his/her whole profile and account. Deleting users can't be easily revoked.
## Manage user settings
You can manage individual user details if you click on the user name in the list. These settings will overwrite the individual user's settings set in their **My Account** settings.
You can manage individual user details if you click on the user name in the list. These settings will overwrite the individual user's settings set in their My Account settings.
### General settings
![administration-user-settings-manage-user](openproject_system_guide_general_tab.png)
On the **General** tab the following fields are shown:
On the General tab the following fields are shown:
1. User's master date
- **Status** - this is set by the system.
- **Username** - this defaults to the email address for a new user (unless the user used the self registration). It can be changed on this page. Users cannot change their own user name.
- **First name**, **Last name**, **Email** - these fields are filled from the **New user** page. Users can change them under their **Profile** page; they are mandatory.
- **Language** - this defaults from the [user settings](../settings/#default-preferences). Users can change this on their **Profile** page.
- **First name**, **Last name**, **Email** - these fields are filled from the New user page. Users can change them on their Profile page; they are mandatory.
- **Language** - this defaults from the [user settings](../settings/#default-preferences). Users can change this on their Profile page.
- **Administrator** - activate or deactivate this global role. Users cannot change this.
- **Custom Fields** - if these have been created they are shown here. Use it for e.g. department or phone number. If not, this is how [custom fields](../../custom-fields/) can be created.
- **User consent** - if this has been [configured](../settings/#user-consent) (i.e. if the box next to "Consent required" is ticked) the consent status is shown here.
- **Custom Fields** - if these have been created they are shown here. Use it for e.g. department or phone number.
2. **User consent** - if this has been [configured](../settings/#user-consent) (i.e. if the box next to "Consent required" is ticked) the consent status is shown here.
3. **Authentication** - the content of this section depends on the type of [authentication method](#authentication) being used (e.g. password, OpenID, Kerberos, etc.)
4. **Preferences** - users can change these on their **Profile** page. Time zone defaults from chosen language. **Auto-hide success notifications** means that notifications will automatically be removed after some seconds, not that there are no success notifications at all.
4. **Preferences** - users can change these on their Profile page. Time zone defaults from chosen language. "Auto-hide success notifications" means that notifications will automatically be removed after some seconds, not that there are no success notifications at all.
5. Do not forget to **Save** your changes.
![administration-user-settings-manage-user](image-20210302092958881.png)
#### Reset a user's password
To create a new password for a user (e.g. if he/she lost it) navigate to the **Authentication** section of the **General** tab. You can either **Assign a random password** (check the box on top) or set a new password manually and send it to them (preferably through secured communication). Consider checking the box next to **Enforce password change on next login**.
To create a new password for a user (e.g. if he/she lost it) navigate to the *Authentication* section of the *General* tab. You can either assign a random password (check the box on top) or set a new password manually and send it to them (preferably through secured communication). Consider checking the box next to "Enforce password change ...".
![reset-user-password](Authentication.png)
![reset-user-password](image-20210429114602604.png)
### Add users to a project
@ -144,47 +137,33 @@ In order to see and work in a project, a user has to be a member of a project an
On the **Projects** tab, select the new project from the drop-down list, choose the [**roles**](../roles-permissions) for this project and click the blue **Add** button.
![Sys-admin-add-project](Sys-admin-add-project1.gif)
![Sys-admin-add-project](Sys-admin-add-project.gif)
### Add users to groups
On the **Groups** tab you can see the groups the user belongs to. If a group is shown, click the group name link.
![open-projet-user-groups](system_guide_user_groups.png)
On the **Groups** tab you can see the groups the user belongs to. If a group is shown, click the group name link. If no groups are shown (i.e. the user does not belong to any group, yet), click the **Manage groups** link to [edit groups](../groups).
If no groups are shown (i.e. the user does not belong to any group, yet), click the **Manage groups** link to [edit groups](../groups).
![add-users-to-a-group](image-20210215185753826.png)
![manage-groups](system_guide_manage_groups.png)
**Please note**: The **Groups** tab is only shown if at least one user group exists in OpenProject.
**Please note**: The Groups tab is only shown if at least one user group exists in OpenProject.
### Global roles
In order to add a global role to a user, at least one global role needs to be [created](../roles-permissions) in the system (a role with the **Global role** field ticked).
In order to add a global role to a user, at least one global role needs to be [created](../roles-permissions) in the system (a role with the "Global role" field ticked).
On the **Global roles** tab, select or de-select the global role(s) for this user. Click the **Add** button.
![Openproject-user-add-global-roles](openproject_system_guide_add_global_roles.png)
### Notification settings
Under **Notification settings** tab you can edit the [notification settings](../../../user-guide/notifications/notification-settings/) for the user. Each user can adjust these settings under [My account](../../../getting-started/my-account) on their own.
### Email reminders
Under **Email reminders** tab you can edit the [email reminders settings](../../../getting-started/my-account/#email-reminders). Each user can adjust these settings under [My account](../../../getting-started/my-account) on their own.
### Rate history
The rate history tab shows the hourly rates that have been defined for the user. The **Default rate** is applied to projects with no rate defined. All projects that the user is a member of are listed with the user's rates.
The rate history tab shows the hourly rates that have been defined for the user. The "Default rate" is applied to projects with no rate defined. All projects that the user is a member of are listed with the user's rates.
The **Valid from** date will effect the rate used when creating a [budget](../../../user-guide/budgets/) and when [logging time](../../../user-guide/time-and-costs/time-tracking/).
The "Valid from" date will effect the rate used when creating a [budget](../../../user-guide/budgets/) and when [logging time](../../../user-guide/time-and-costs/time-tracking/).
If you want to set a different hourly rate for the user on different projects, you can overwrite the default rate with a different rate below in the respective projects.
To enter a new hourly rate, click on the **Update** icon next to the rate history. You can either set a **default hourly rate** or define a rate for a certain project.
![set-hourly-rate-administration](system_guide_rate_history.png)
![set-hourly-rate-administration](image-20210413112220100.png)
1. Enter a date from which the rate is **Valid from**.
2. Enter the (hourly) **Rate**. The currency can only be changed in the [respective settings](../../time-and-costs).
@ -192,7 +171,7 @@ To enter a new hourly rate, click on the **Update** icon next to the rate histor
4. You can **add a rate** for a different time period.
5. **Save** your changes.
![Rate-history-change](system_guide_adjust_rate_history.png)
![Rate-history-change](Rate-history-change.png)
### Avatar
@ -204,7 +183,7 @@ This tab shows whether a user has activated a device for two-factor authenticati
## Authentication
The available authentication methods affect the content of the **Authentication** section in the **General** tab of the user details.
The available authentication methods affect the content of the Authentication section in the General tab of the user details.
Use the **self-registration** field to give the following controls over a new user's access.
@ -212,9 +191,9 @@ Use the **self-registration** field to give the following controls over a new us
The user details Authentication section has fields **Assign random password**, **Password**, **Confirmation** and **Enforce password change**.
* If you are near the new user, you can enter a password and confirmation then tell the user what it is. They can then sign in. It is recommended that you also tick the enforce password change checkbox, so that the user is prompted to change their password after they sign in.
* You can phone the new user or send them an email, not using OpenProject, to give them the password. In this case it is more important to tick the enforce password change checkbox.
* Tick the Assign random password, and probably the enforce password change checkbox. When the details are saved OpenProject will send an email to the new user with their password.
* If you are near the new user, you can enter a password and confirmation then tell the user what it is. They can then sign in. It is recommended that you also tick the enforce password change tickbox, so that the user is prompted to change their password after they sign in.
* You can phone the new user or send them an email, not using OpenProject, to give them the password. In this case it is more important to tick the enforce password change tickbox.
* Tick the Assign random password, and probably the enforce password change tickbox. When the details are saved OpenProject will send an email to the new user with their password.
### Account activation by email
@ -223,15 +202,15 @@ Leave all fields blank. When the details are saved OpenProject will send an emai
## Delete users
Two [settings](../settings/#user-deletion/) allow users to be deleted from the system:
* **User accounts deletable by admins** - if ticked, a **Delete** button is shown on the user details page.
* **Users allowed to delete their accounts** - if ticked, a **Delete account** menu entry is shown in the **My Account** page.
* **User accounts deletable by admins** - if ticked, a "Delete" button is shown on the user details page.
* **Users allowed to delete their accounts** - if ticked, a "Delete account" menu entry is shown in the "My Account" page.
To delete another user's account open the [user list](#user-list). Click on the **user name** of the user which you want to delete. Click the **Delete** button at the top right.
![Sys-admin-delete-user](openproject_system_guide_delete_user.png)
![Sys-admin-delete-user](Sys-admin-delete-user.png)
You will then be asked to type in the username in order to delete the user permanently from the system, then confirm this with your password.
![delete user](delete-user-confirmation.png)
![delete user](image-20200115162533470.png)
> **Note**: Deleting a user account is a permanent action and cannot be reversed. The previous activities from this user will still be displayed in the system but reassigned to **Deleted user**. This is also true for the Time and cost and the Budget modules. Spent time will be still be visible for **Deleted user** inside a Work package. Time and cost reports will contain the entries with reference to **Deleted user**. Labor budgets that have been setup for the user are displayed under **Deleted user**, too. If you would like to keep track of the user's name in connection with the mentioned activities, the spent time and the budget, you are able to keep the user's name in the historical data by simply [locking the user](#lock-and-unlock-users).
> **Note**: Deleting a user account is an irreversible action and cannot be reversed. The previous activities from this user will still be displayed in the system but reassigned to "Deleted user". This is also true for the Time and cost and the Budget modules. Spent time will be still be visible for "Deleted user" inside a Work package. Time and cost reports will contain the entries with reference to "Deleted user". Labor budgets that have been setup for the user are displayed under "Deleted user", too. If you would like to keep track of the user's name in connection with the mentioned activities, the spent time and the budget, you are able to keep the user's name in the historical data by simply [locking the user](#lock-and-unlock-users).

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@ -8,8 +8,8 @@ keywords: use-cases
# OpenProject Use Cases
| Use Case | Description |
| -------------------------------------------- | ------------------------------------------------------------ |
| Use Case | Description |
|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Portfolio Management](portfolio-management) | This guide provides detailed step-by-step instruction on how to set up an overview of your project portfolio and create custom reports using the Project Overview, Wiki and the Rich text (WYSIWYG) editor in OpenProject. |
| [Resource Management](resource-management) | OpenProject does not have the automated functionality to provide detailed resource management or employee work capacity calculations. This guide with detailed step-by-step instructions introduces a workaround that can provide an avenue to accomplish this manually and visually beyond the functionality the Team Planner Module provides. |
| [Portfolio Management](portfolio-management) | This guide provides detailed step-by-step instruction on how to set up an overview of your project portfolio and create custom reports using the Project Overview, Wiki and the Rich text (WYSIWYG) editor in OpenProject. |

@ -6,7 +6,7 @@ description: Step-by-step instruction about portfolio management and custom repo
keywords: use-case, portfolio management
---
# Use Case: Portfolio management and custom reporting options
# Use Case: Portfolio Management and Custom Reporting Options
If you have a lot of projects running at the same time it can be helpful and even necessary to have a meta level overview of your projects, keep track of the project status and due dates. With OpenProject you can do just that.
@ -14,11 +14,11 @@ If you have a lot of projects running at the same time it can be helpful and eve
## Creating projects overview
Step 1: To view all projects, first select the **Select a project** dropdown menu, then click on the **Projects list** button.
**Step 1:** To view all projects, first select the **Select a project** dropdown menu, then click on the **Projects list** button.
![open project list](openproject_select_projects_list.png)
Step 2: You will get a list of all the projects that exist in your organization. You can filter the list by various project attributes, such as **project owner** or **creation date**. You can also use project custom fields as filters (please keep in mind that this is an enterprise add-on). If you have not added any custom fields yet, please see [here](../../system-admin-guide/custom-fields/) how to do it.
**Step 2:** You will get a list of all the projects that exist in your organization. You can filter the list by various project attributes, such as **project owner or creation date**. You can also use project custom fields as filters (please keep in mind that this is an enterprise add-on). If you have not added any custom fields yet, please see [here](../../system-admin-guide/custom-fields/) how to do it.
![OpenProject filter projects view](openproject_filter_projects.png)
@ -32,7 +32,7 @@ You can add a visual component to the overview by clicking on the **Open as Gant
![OpenProject projects in Gantt view](gantt_view.png)
Step 3: You can also configure this view using the button with the three dots at the upper right corner and select **Configure**.
**Step 3:** You can also configure this view using the button with the three dots at the upper right corner and select **Configure**.
![OpenProject configure projects overview](openrpoject_configure_projects_overview.png)
@ -42,10 +42,12 @@ You will then be led to the **System settings** of the global Administration. If
If you click on **Edit query** you can adjust the project overview when using the Gantt chart option.
## Creating custom reports
## Creating Custom Reports
### Exporting reports
For creating custom project reports you can use the export function in the work packages view.
For creating custom project reports you can use the export function.
![Openproject reports export](openproject_export.png)
@ -55,13 +57,15 @@ You can export the work packages in one of the following formats.
![Openproject export options](export_options.png)
To export or print a Gantt chart use the print function (**CTRL+P**) and then save it as PDF. Only information displayed in the main screen area is included. None of the designs or side or top menus are in it. Please see here [how to print a Gantt chart in OpenProject](../../user-guide/gantt-chart/#how-to-print-a-gantt-chart).
Another option would be to use the print function (**CTRL+P**) and then saving as PDF. The print function in OpenProject is optimized for reporting purposes. Only information displayed in the main screen area is included. None of the designs or side or top menus are in it. Please see here [how to print a Gantt chart](../../user-guide/gantt-chart/#how-to-print-a-gantt-chart).
### Project status reporting
You can [display and configure the individual project status](../../user-guide/projects/project-status/) on the project overview page.
For more advanced project reporting requirements, using the Wiki module is another powerful tool. The Wiki allows you to build complete custom reports using embedded work package tables, macros and even embedded calculations.
For more advanced project reporting requirements, using the Wiki module is another powerful tool. For more information about how to use the Wiki function, please consult the [Wiki user guide](../../user-guide/wiki/).
The Wiki function allows you to build complete custom reports using embedded work package tables, macros and even embedded calculations.
Here is an example of how a project report wiki could look:
@ -73,6 +77,4 @@ And how the dynamic data, such as calculations, filters, macros and reference la
For more information about the syntax and how the attributes work please look [here](../../user-guide/wysiwyg/).
If you want to work with multiple Wiki-based reports, you can create a parent Wiki page as a table of contents, for example, on which all the other reports are listed.
See more info on Wiki and the use of Macros [here](../../user-guide/wiki/).
If you like to work with multiple Wiki-based reports, you can create an umbrella Wiki page as a table of content, for example, on which all the other reports are listed. See more info on Wiki and the use of Macros [here](../../user-guide/wiki/).

@ -6,12 +6,10 @@ description: Step-by-step instruction about resource management
keywords: use-case, resource management
---
# Use Case: Resource management
# Use Case: Resource Management
**Note:** OpenProject does not have the automated functionality to provide detailed resource management or employee work capacity calculations. However, there is a workaround that you can use to configure a visual estimate of task distribution and plan accordingly.
## Work packages view
These are the steps you can follow to adjust a work package overview to suit your goals.
![resource management](configure_wp_view.png)
@ -22,9 +20,9 @@ Alternatively, you can also chose the **Global work package overview** by select
![OpenProject global work packages overview](openproject_global_wp_view.png)
Step 2: You can add existing fields, such as **Estimated time**, **Spent time** and **Remaining hours** to your work packages list. Also, you can [create additional custom fields](../../system-admin-guide/custom-fields/), e.g. **Scope (h)**, to get an overview of the team capacity.
Step 2: Either use existing fields, for example **Estimated time** and **Spent time**, or [create custom fields](../../system-admin-guide/custom-fields/) (i.e. **Est. Scope (h)** and **Time spent (h)**) to adjust the work packages overview.
Step 3: You can add these fields via the **Insert columns** option via the drop-down menu.
Step 3: You can either insert the standard or existing fields to the view, or insert the custom fields if created in Step 2.
Step 4: You can add any filters necessary and sort or group the work packages by assignee.
@ -36,9 +34,15 @@ This view will be saved and shown under your private work package filters (you c
![OpenProjec work package private filter](work_package_private_filter.png)
## Adding sums to the work packages view
You could also add the Gantt view to add an additional dimension to your overview.
![OpenProject work packages Gantt view](openproject_wp_gantt_view.png)
This will provide a rough overview of the various tasks assigned to a specific person or team. Adding the Gantt view provides a supplementary overview of when these tasks are scheduled. It is a visual way of looking at approximately how many tasks are assigned to an individual. This view gives you an estimate about the timeline, allowing for adjustments in assignments and timing to be made to balance your resources.
These functions can help focus in on showing relevant results only. Using filters and the (+) zoom function will help to focus the Gantt view to only the tasks that are scheduled for example for the next 30 days.
You can also use the sum function. Select **[⋮]** -> ***Configure view*** -> ***Display settings*** -> and check the ***Display Sums*** box:
You can also use the sum function. Select **[⋮]** -> ***Configure view*** -> ***Display settings*** -> and check ***Display Sums*** box:
![OpenProject work package configure view](openproject_configure_view.png)
@ -48,12 +52,4 @@ You will see the estimated, spent and remaining hours summed up by user, as well
![OpenProject work packages sums](openproject_work_packages_sum.png)
## Gantt chart view
You could also add the Gantt view to add an additional dimension to your overview.
![OpenProject work packages Gantt view](openproject_wp_gantt_view.png)
This will provide a rough overview of the various tasks assigned to a specific person or team. Adding the Gantt view provides a supplementary overview of when these tasks are scheduled. It is a visual way of looking at approximately how many tasks are assigned to an individual. This view gives you an estimate about the timeline, allowing for adjustments in assignments and timing to be made to balance your resources.
To get a more in-depth overview about who does which tasks and when, you can also switch to the [team planner view](../../user-guide/team-planner/).
**Limitations:** While this workaround provides a visual estimate of who works on what and when, it does not replace a dedicated capacity management tool.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

@ -1,67 +0,0 @@
---
sidebar_navigation:
title: TimeCamp integration
priority: 797
description: Time tracking with TimeCamp
keywords: time tracking, timecamp integration
---
# Time tracking with TimeCamp
Please note that the TimeCamp integration is not officially supported by OpenProject and consequently is not actively maintained.
TimeCamp allows you to track your time spent on OpenProject work packages with a start/stop button. The times will then be recorded in your [TimeCamp account](https://app.timecamp.com/auth/login).
## Installation
You can install a browser add-in to track time via TimeCamp in OpenProject. This way, you can record time spent directly in a work package in OpenProject via a start/stop button. You need to register an account in TimeCamp in order to use this feature.
This integration can be added for Google Chrome as [TimeCamp extension](https://chrome.google.com/webstore/detail/time-tracker-by-timecamp/ohbkdjmhoegleofcohdjagmcnkimfdaa).
## Configuration
1. Download the [TimeCamp Google Chrome plugin](https://chrome.google.com/webstore/detail/time-tracker-by-timecamp/ohbkdjmhoegleofcohdjagmcnkimfdaa).
![TimeCamp extension in Google Chrome shop](download-timecamp-extension.png)
2. Add the extension.
![pop up to allow to add extension](add_extension.png)
3. Pin TimeCamp to your browser.
![TimeCamp instructions how to pin the extension to the browser](pin-to-browser-full.png)
## Using TimeCamp in OpenProject
1. Create a [TimeCamp account](https://app.timecamp.com/auth/login) if you do not have one yet.
2. In TimeCamp, add a new project and tasks to it if you have not got anything set up yet.
![TimeCamp account with a new project which shows 2 tasks](project-with-2-tasks.png)
The time tracked in Openproject will later on appear in TimeCamp on the task that you select.
3. [Log in to OpenProject](https://www.openproject.org/signin/), open a project and go to a work package.
If you are already logged in, please make sure to log out and back in again so that the TimeCamp projects and tasks will appear in OpenProject.
![OpenProject work package detail view with green start button to start timer](work-package-start-timer.png)
Only in the work package form you will see the green **TimeCamp Start timer** button.
4. Click on **Start timer** and select a task from your TimeCamp projects that you would want to use for tracking your time.
![OpenProject work package detail view with drop down from start timer to select TimeCamp project and task](Start-time-in-OP.png)
5. The timer button turns red, indicating that time is being recorded.
![OpenProject work package detail view with red timer button recording the time](stop-time-in-OP.png)
6. Stop the timer by clicking on the red button indicating the time that has passed.
## Time report
Go to you TimeCamp account, to the Timesheet and your tracked time appears there.
![TimeCamp Timesheet](Time-appears-in-TC.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save