From b82e3bbcbf7ca2db52e53dba576889d6331360f2 Mon Sep 17 00:00:00 2001
From: adam-op
Date: Mon, 1 Aug 2022 11:47:14 +0200
Subject: [PATCH 01/12] [#41132] Add guide on how to setup OpenProject BIM on
Docker
[#41132] Add guide on how to setup OpenProject BIM on Docker
https://community.openproject.org/work_packages/41132
---
.../installation/docker/README.md | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md
index b7d6604366..c3f728fda8 100644
--- a/docs/installation-and-operations/installation/docker/README.md
+++ b/docs/installation-and-operations/installation/docker/README.md
@@ -70,6 +70,37 @@ your `docker-compose.yml` file is stored (`compose` in this case).
If you want to start from scratch and remove the exsiting data you will have to remove these volumes via
`docker volume rm compose_opdata compose_pgdata`.
+### Configuration
+
+In the compose folder you will find the file `docker-compose.yml` which can be edited. Please be aware that only those variables shall be edited which are documented as not everything is meant to be configured or bend.
+
+##### OpenProject BIM Edition
+
+If you would like to use OpenProject BIM Edition inside your docker-compose containers, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
+
+```yml
+ OPENPROJECT_EDITION: "bim"
+```
+
+This could look like this after you edited the file:
+
+```yml
+x-op-app: &app
+ <<: *image
+ <<: *restart_policy
+ environment:
+ RAILS_CACHE_STORE: "memcache"
+ OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211"
+ OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}"
+ OPENPROJECT_EDITION: "bim"
+ DATABASE_URL: "postgres://postgres:p4ssw0rd@db/openproject"
+ USE_PUMA: "true"
+ # set to true to enable the email receiving feature. See ./docker/cron for more options
+ IMAP_ENABLED: "${IMAP_ENABLED:-false}"
+```
+
+
+
## All-in-one container
### Quick Start
From ebd3211bc63448e06a53b8aacc80ee4cb5e31537 Mon Sep 17 00:00:00 2001
From: adam-op
Date: Mon, 1 Aug 2022 11:48:22 +0200
Subject: [PATCH 02/12] Update README.md
---
docs/installation-and-operations/installation/docker/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md
index c3f728fda8..c691185ea6 100644
--- a/docs/installation-and-operations/installation/docker/README.md
+++ b/docs/installation-and-operations/installation/docker/README.md
@@ -99,7 +99,7 @@ x-op-app: &app
IMAP_ENABLED: "${IMAP_ENABLED:-false}"
```
-
+Note: If your current Docker installation does not yet hold important information I recommend you to simply create all docker containers from scratch as the seeded data such as themes, types, and demo projects are different in the BIM edition. The seed data gets seeded only the very first time you call.
## All-in-one container
From 75849372822fba689d71e6cf8d659e2ec832843d Mon Sep 17 00:00:00 2001
From: adam-op
Date: Mon, 1 Aug 2022 12:10:22 +0200
Subject: [PATCH 03/12] reorganization of the location for these BIM docker
docs
[#41132] Add guide on how to setup OpenProject BIM on Docker
https://community.openproject.org/work_packages/41132
---
.../changing-to-bim-edition/README.md | 30 +++++++++++++++++++
.../installation/docker/README.md | 25 ++--------------
2 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/docs/installation-and-operations/changing-to-bim-edition/README.md b/docs/installation-and-operations/changing-to-bim-edition/README.md
index 80b6ba1069..2b89bc0dce 100644
--- a/docs/installation-and-operations/changing-to-bim-edition/README.md
+++ b/docs/installation-and-operations/changing-to-bim-edition/README.md
@@ -77,3 +77,33 @@ OpenProject installations with a valid Enterprise Edition token can switch to th
theme.
Go to _-> Administration -> Design_ and from the _Themes_ drop down menu choose _OpenProject BIM_.
+
+### Docker
+
+##### OpenProject BIM Edition
+
+If you would like to use OpenProject BIM Edition inside your docker-compose containers, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
+
+```yml
+ OPENPROJECT_EDITION: "bim"
+```
+
+This could look like this after you edited the file:
+
+```yml
+x-op-app: &app
+ <<: *image
+ <<: *restart_policy
+ environment:
+ RAILS_CACHE_STORE: "memcache"
+ OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211"
+ OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}"
+ OPENPROJECT_EDITION: "bim"
+ DATABASE_URL: "postgres://postgres:p4ssw0rd@db/openproject"
+ USE_PUMA: "true"
+ # set to true to enable the email receiving feature. See ./docker/cron for more options
+ IMAP_ENABLED: "${IMAP_ENABLED:-false}"
+```
+
+Note: If your current Docker installation does not yet hold important information I recommend you to simply create all docker containers from scratch as the seeded data such as themes, types, and demo projects are different in the BIM edition. The seed data gets seeded only the very first time you call.
+
diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md
index c691185ea6..780e8a8911 100644
--- a/docs/installation-and-operations/installation/docker/README.md
+++ b/docs/installation-and-operations/installation/docker/README.md
@@ -74,32 +74,11 @@ If you want to start from scratch and remove the exsiting data you will have to
In the compose folder you will find the file `docker-compose.yml` which can be edited. Please be aware that only those variables shall be edited which are documented as not everything is meant to be configured or bend.
-##### OpenProject BIM Edition
+##### BIM Edition
-If you would like to use OpenProject BIM Edition inside your docker-compose containers, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
+If you would like to install or change to BIM inside a Docker environment, please navigate to the [Docker](../installation-and-operations/changing-to-bim-edition#docker) paragraph at the [Changing to BIM Edition](../installation-and-operations/changing-to-bim-edition) documentation.
-```yml
- OPENPROJECT_EDITION: "bim"
-```
-
-This could look like this after you edited the file:
-
-```yml
-x-op-app: &app
- <<: *image
- <<: *restart_policy
- environment:
- RAILS_CACHE_STORE: "memcache"
- OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211"
- OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}"
- OPENPROJECT_EDITION: "bim"
- DATABASE_URL: "postgres://postgres:p4ssw0rd@db/openproject"
- USE_PUMA: "true"
- # set to true to enable the email receiving feature. See ./docker/cron for more options
- IMAP_ENABLED: "${IMAP_ENABLED:-false}"
-```
-Note: If your current Docker installation does not yet hold important information I recommend you to simply create all docker containers from scratch as the seeded data such as themes, types, and demo projects are different in the BIM edition. The seed data gets seeded only the very first time you call.
## All-in-one container
From 5d7b6e6e19707768bbc8f20b694826d77d213722 Mon Sep 17 00:00:00 2001
From: adam-op
Date: Mon, 1 Aug 2022 12:13:41 +0200
Subject: [PATCH 04/12] [#41132] Add guide on how to setup OpenProject BIM on
Docker
[#41132] Add guide on how to setup OpenProject BIM on Docker
https://community.openproject.org/work_packages/41132
---
.../changing-to-bim-edition/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/installation-and-operations/changing-to-bim-edition/README.md b/docs/installation-and-operations/changing-to-bim-edition/README.md
index 2b89bc0dce..6051bc82d9 100644
--- a/docs/installation-and-operations/changing-to-bim-edition/README.md
+++ b/docs/installation-and-operations/changing-to-bim-edition/README.md
@@ -80,7 +80,7 @@ Go to _-> Administration -> Design_ and from the _Themes_ drop down menu choose
### Docker
-##### OpenProject BIM Edition
+##### OpenProject BIM Edition with Docker Compose
If you would like to use OpenProject BIM Edition inside your docker-compose containers, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
From 43619963c309d7bfa232f4ea811b085c4d868e1d Mon Sep 17 00:00:00 2001
From: adam-op
Date: Tue, 2 Aug 2022 11:28:41 +0200
Subject: [PATCH 05/12] carried out requested changes
[#41132] Add guide on how to setup OpenProject BIM on Docker
https://community.openproject.org/work_packages/41132
---
.../changing-to-bim-edition/README.md | 4 ++--
.../installation-and-operations/installation/docker/README.md | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/installation-and-operations/changing-to-bim-edition/README.md b/docs/installation-and-operations/changing-to-bim-edition/README.md
index 6051bc82d9..3a225d2733 100644
--- a/docs/installation-and-operations/changing-to-bim-edition/README.md
+++ b/docs/installation-and-operations/changing-to-bim-edition/README.md
@@ -80,9 +80,9 @@ Go to _-> Administration -> Design_ and from the _Themes_ drop down menu choose
### Docker
-##### OpenProject BIM Edition with Docker Compose
+#### OpenProject BIM Edition with Docker Compose
-If you would like to use OpenProject BIM Edition inside your docker-compose containers, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
+If you would like to use BIM Edition inside your docker-compose OpenProject installation, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
```yml
OPENPROJECT_EDITION: "bim"
diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md
index 780e8a8911..2280e5a65a 100644
--- a/docs/installation-and-operations/installation/docker/README.md
+++ b/docs/installation-and-operations/installation/docker/README.md
@@ -74,7 +74,7 @@ If you want to start from scratch and remove the exsiting data you will have to
In the compose folder you will find the file `docker-compose.yml` which can be edited. Please be aware that only those variables shall be edited which are documented as not everything is meant to be configured or bend.
-##### BIM Edition
+#### BIM Edition
If you would like to install or change to BIM inside a Docker environment, please navigate to the [Docker](../installation-and-operations/changing-to-bim-edition#docker) paragraph at the [Changing to BIM Edition](../installation-and-operations/changing-to-bim-edition) documentation.
From 769ea446243c8aab84b776fad90f51a29f3ebf85 Mon Sep 17 00:00:00 2001
From: adam-op
Date: Wed, 17 Aug 2022 10:41:51 +0200
Subject: [PATCH 06/12] corrective actions as agreed
corrective actions as agreed
---
.../changing-to-bim-edition/README.md | 6 +++---
.../installation/docker/README.md | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/installation-and-operations/changing-to-bim-edition/README.md b/docs/installation-and-operations/changing-to-bim-edition/README.md
index 3a225d2733..767b72106f 100644
--- a/docs/installation-and-operations/changing-to-bim-edition/README.md
+++ b/docs/installation-and-operations/changing-to-bim-edition/README.md
@@ -82,13 +82,13 @@ Go to _-> Administration -> Design_ and from the _Themes_ drop down menu choose
#### OpenProject BIM Edition with Docker Compose
-If you would like to use BIM Edition inside your docker-compose OpenProject installation, in your `docker-compose.yml` file in `x-op-app` > `environment` add the line
+in order to use BIM Edition inside a docker-compose OpenProject installation, in the `docker-compose.override.yml` file in `x-op-app` > `environment` add one line
```yml
OPENPROJECT_EDITION: "bim"
```
-This could look like this after you edited the file:
+This could look like this after editing file:
```yml
x-op-app: &app
@@ -105,5 +105,5 @@ x-op-app: &app
IMAP_ENABLED: "${IMAP_ENABLED:-false}"
```
-Note: If your current Docker installation does not yet hold important information I recommend you to simply create all docker containers from scratch as the seeded data such as themes, types, and demo projects are different in the BIM edition. The seed data gets seeded only the very first time you call.
+Note: If the current Docker installation does not yet hold important information it is recommended to simply create all docker containers from scratch as the seeded data such as themes, types, and demo projects are different in the BIM edition. The demo data gets seeded only at the very first time run of the container. The Docker volumes are required to be removed e.g. by issuing `docker-compose down --volumes`
diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md
index 2280e5a65a..a31a73bedc 100644
--- a/docs/installation-and-operations/installation/docker/README.md
+++ b/docs/installation-and-operations/installation/docker/README.md
@@ -76,7 +76,7 @@ In the compose folder you will find the file `docker-compose.yml` which can be e
#### BIM Edition
-If you would like to install or change to BIM inside a Docker environment, please navigate to the [Docker](../installation-and-operations/changing-to-bim-edition#docker) paragraph at the [Changing to BIM Edition](../installation-and-operations/changing-to-bim-edition) documentation.
+In order to install or change to BIM inside a Docker environment, please navigate to the [Docker](../installation-and-operations/changing-to-bim-edition#docker) paragraph at the [Changing to BIM Edition](../installation-and-operations/changing-to-bim-edition) documentation.
From 0f783b1f79a0283710ca3bb4b9c204c8f8a4c823 Mon Sep 17 00:00:00 2001
From: OpenProject Actions CI
Date: Sat, 3 Sep 2022 03:50:55 +0000
Subject: [PATCH 07/12] update locales from crowdin [ci skip]
---
config/locales/crowdin/ca.yml | 4 +-
config/locales/crowdin/js-ru.yml | 10 ++--
config/locales/crowdin/js-tr.yml | 14 +++---
.../backlogs/config/locales/crowdin/eo.yml | 48 +++++++++----------
modules/costs/config/locales/crowdin/eo.yml | 2 +-
.../ldap_groups/config/locales/crowdin/eo.yml | 3 +-
6 files changed, 40 insertions(+), 41 deletions(-)
diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml
index 138df1b62d..c1b138d435 100644
--- a/config/locales/crowdin/ca.yml
+++ b/config/locales/crowdin/ca.yml
@@ -2404,7 +2404,7 @@ ca:
setting_brute_force_block_after_failed_logins: "Bloqueja l'usuari després d'aquest nombre d'intents fracassats de connexió"
setting_brute_force_block_minutes: "Temps de bloqueig de l'usuari"
setting_cache_formatted_text: "Text amb format de la caché"
- setting_use_wysiwyg_description: "Select to enable CKEditor5 WYSIWYG editor for all users by default. CKEditor has limited functionality for GFM Markdown."
+ setting_use_wysiwyg_description: "Selecciona per activar l'editor CKEditor5 WYSIWYG per a tots els usuaris per defecte. CKEditor té funcionalitats limitades per a GFM Markdown."
setting_column_options: "Personalitzar l'aparença de les llistes de paquets de treball"
setting_commit_fix_keywords: "Paraules claus per a la correcció"
setting_commit_logs_encoding: "Codificació dels missatges dels commits"
@@ -2504,7 +2504,7 @@ ca:
delay_minutes_explanation: "Email sending can be delayed to allow users with configured in app notification to confirm the notification within the application before a mail is sent out. Users who read a notification within the application will not receive an email for the already read notification."
display:
first_date_of_week_and_year_set: >
- If either options "%{day_of_week_setting_name}" or "%{first_week_setting_name}" are set, the other has to be set as well to avoid inconsistencies in the frontend.
+ Si alguna de les opcions "%{day_of_week_setting_name}" o "%{first_week_setting_name}" estan configurades, l'altre ha d'estar també configurada per evitar inconsistències en l'aplicació.
first_week_of_year_text: >
Select the date of January that is contained in the first week of the year. This value together with first day of the week determines the total number of weeks in a year.
projects:
diff --git a/config/locales/crowdin/js-ru.yml b/config/locales/crowdin/js-ru.yml
index 2f078466e6..7f4d175ee5 100644
--- a/config/locales/crowdin/js-ru.yml
+++ b/config/locales/crowdin/js-ru.yml
@@ -532,11 +532,11 @@ ru:
watched: 'просмотрено'
assigned: 'назначено'
responsible: 'подотчетный'
- created: 'created'
- scheduled: 'scheduled'
- commented: 'commented'
- processed: 'processed'
- prioritized: 'prioritized'
+ created: 'создано'
+ scheduled: 'запланировано'
+ commented: 'прокомментировано'
+ processed: 'обработано'
+ prioritized: 'пририотизировано'
facets:
unread: 'Непрочтено'
all: 'Bсе'
diff --git a/config/locales/crowdin/js-tr.yml b/config/locales/crowdin/js-tr.yml
index 7f80f52330..b5b11ad7a0 100644
--- a/config/locales/crowdin/js-tr.yml
+++ b/config/locales/crowdin/js-tr.yml
@@ -460,8 +460,8 @@ tr:
label_uploaded_by: "Yükleyen"
label_default_queries: "Varsayılan"
label_starred_queries: "Sık Kullanılan"
- label_global_queries: "Public"
- label_custom_queries: "Private"
+ label_global_queries: "Genel"
+ label_custom_queries: "Özel"
label_columns: "Sütunlar"
label_attachments: Ekler
label_drop_files: Dosyaları buraya bırakın
@@ -533,11 +533,11 @@ tr:
watched: 'izlendi'
assigned: 'atanmış'
responsible: 'accountable'
- created: 'created'
- scheduled: 'scheduled'
- commented: 'commented'
- processed: 'processed'
- prioritized: 'prioritized'
+ created: 'oluşturuldu'
+ scheduled: 'zamanlandı'
+ commented: 'yorumlandı'
+ processed: 'işlem uygulandı'
+ prioritized: 'öncelik verildi'
facets:
unread: 'okunmamış'
all: 'Hepsi'
diff --git a/modules/backlogs/config/locales/crowdin/eo.yml b/modules/backlogs/config/locales/crowdin/eo.yml
index 869c415b6b..bfcb41975d 100644
--- a/modules/backlogs/config/locales/crowdin/eo.yml
+++ b/modules/backlogs/config/locales/crowdin/eo.yml
@@ -23,10 +23,10 @@ eo:
activerecord:
attributes:
work_package:
- position: "Position"
- remaining_hours: "Remaining hours"
- remaining_time: "Remaining hours"
- story_points: "Story Points"
+ position: "Posicio"
+ remaining_hours: "Restantaj horoj"
+ remaining_time: "Restantaj horoj"
+ story_points: "Historiaj poentoj"
backlogs_work_package_type: "Backlog type"
errors:
models:
@@ -43,8 +43,8 @@ eo:
sprint:
cannot_end_before_it_starts: "Sprint cannot end before it starts."
backlogs:
- add_new_story: "New Story"
- any: "any"
+ add_new_story: "Nova historio"
+ any: "ajna"
backlog_settings: "Backlogs settings"
burndown_graph: "Burndown Graph"
card_paper_size: "Paper size for card printing"
@@ -60,24 +60,24 @@ eo:
work_package_is_closed: "Work package is done, when"
label_is_done_status: "Status %{status_name} means done"
no_burndown_data: "No burndown data available. It is necessary to have the sprint start- and end dates set."
- points: "Points"
+ points: "Poentoj"
positions_could_not_be_rebuilt: "Positions could not be rebuilt."
positions_rebuilt_successfully: "Positions rebuilt successfully."
properties: "Properties"
rebuild: "Rebuild"
rebuild_positions: "Rebuild positions"
- remaining_hours: "Remaining hours"
- remaining_hours_ideal: "Remaining hours (ideal)"
+ remaining_hours: "Restantaj horoj"
+ remaining_hours_ideal: "Restantaj horoj (ideala)"
show_burndown_chart: "Burndown Chart"
- story: "Story"
- story_points: "Story Points"
- story_points_ideal: "Story Points (ideal)"
+ story: "Historio"
+ story_points: "Historiaj poentoj"
+ story_points_ideal: "Historiaj poentoj (ideala)"
task: "Tasko"
task_color: "Task color"
unassigned: "Unassigned"
- x_more: "%{count} more..."
- backlogs_active: "active"
- backlogs_any: "any"
+ x_more: "%{count} pli..."
+ backlogs_active: "aktiva"
+ backlogs_any: "ajna"
backlogs_card_specification: "Label types for card printing"
backlogs_inactive: "Project shows no activity"
backlogs_points_burn_direction: "Points burn up/down"
@@ -105,7 +105,7 @@ eo:
error_outro: "Please correct the above errors before submitting again."
event_sprint_description: "%{summary}: %{url}\n%{description}"
event_sprint_summary: "%{project}: %{summary}"
- ideal: "ideal"
+ ideal: "ideala"
inclusion: "is not included in the list"
label_back_to_project: "Back to project page"
label_backlog: "Backlog"
@@ -118,11 +118,11 @@ eo:
label_work_package_hierarchy: "Work package Hierarchy"
label_master_backlog: "Master Backlog"
label_not_prioritized: "not prioritized"
- label_points: "points"
- label_points_burn_down: "Down"
- label_points_burn_up: "Up"
+ label_points: "poentoj"
+ label_points_burn_down: "Malsupren"
+ label_points_burn_up: "Supren"
label_product_backlog: "product backlog"
- label_select_all: "Select all"
+ label_select_all: "Elekti ĉiujn"
label_sprint_backlog: "sprint backlog"
label_sprint_cards: "Export cards"
label_sprint_impediments: "Sprint Impediments"
@@ -148,14 +148,14 @@ eo:
rb_label_copy_tasks: "Copy work packages"
rb_label_copy_tasks_all: "Ĉiuj"
rb_label_copy_tasks_none: "None"
- rb_label_copy_tasks_open: "Open"
+ rb_label_copy_tasks_open: "Malfermi"
rb_label_link_to_original: "Include link to original story"
- remaining_hours: "remaining hours"
+ remaining_hours: "restantaj horoj"
required_burn_rate_hours: "required burn rate (hours)"
required_burn_rate_points: "required burn rate (points)"
todo_work_package_description: "%{summary}: %{url}\n%{description}"
todo_work_package_summary: "%{type}: %{summary}"
version_settings_display_label: "Column in backlog"
- version_settings_display_option_left: "left"
+ version_settings_display_option_left: "maldektre"
version_settings_display_option_none: "neniu"
- version_settings_display_option_right: "right"
+ version_settings_display_option_right: "dekstre"
diff --git a/modules/costs/config/locales/crowdin/eo.yml b/modules/costs/config/locales/crowdin/eo.yml
index 741e2cffd0..d6f058b71a 100644
--- a/modules/costs/config/locales/crowdin/eo.yml
+++ b/modules/costs/config/locales/crowdin/eo.yml
@@ -80,7 +80,7 @@ eo:
label_costlog: "Logged unit costs"
label_cost_plural: "Costs"
label_cost_type_plural: "Cost types"
- label_cost_type_specific: "Speco de kosto #%{id}: %{name}"
+ label_cost_type_specific: "Speco de kosto #%{id}: %{name}" #%{id}: %{name}"
label_costs_per_page: "Costs per page"
label_currency: "Currency"
label_currency_format: "Format of currency"
diff --git a/modules/ldap_groups/config/locales/crowdin/eo.yml b/modules/ldap_groups/config/locales/crowdin/eo.yml
index 01282185b0..c41eda25a0 100644
--- a/modules/ldap_groups/config/locales/crowdin/eo.yml
+++ b/modules/ldap_groups/config/locales/crowdin/eo.yml
@@ -42,8 +42,7 @@ eo:
group_name_attribute_text: 'Enter the attribute of the LDAP group used for setting the OpenProject group name.'
filter_string_text: 'Enter the RFC4515 LDAP filter that returns groups in your LDAP to synchronize with OpenProject.'
base_dn_text: >
- Enter the search base DN to use for this filter. It needs to be below the base DN of the selected LDAP connection.
- Leave this option empty to reuse the base DN of the connection
+ Enter the search base DN to use for this filter. It needs to be below the base DN of the selected LDAP connection. Leave this option empty to reuse the base DN of the connection
synchronized_groups:
add_new: 'Add synchronized LDAP group'
destroy:
From 88a665a73a95122c06356e727db321dda722fb27 Mon Sep 17 00:00:00 2001
From: Behrokh Satarnejad <62008897+bsatarnejad@users.noreply.github.com>
Date: Mon, 5 Sep 2022 09:36:55 +0200
Subject: [PATCH 08/12] [43905] Tooltip messages broken in include projects
(#11228)
* show error messages in a list
* increase the min-width of tooltip and show one message at a time
---
config/locales/js-en.yml | 2 +-
.../list/project-include-list.component.html | 11 ++++++++---
.../src/app/spot/styles/sass/components/tooltip.sass | 2 +-
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/config/locales/js-en.yml b/config/locales/js-en.yml
index 946ac0abbb..45a3197b29 100644
--- a/config/locales/js-en.yml
+++ b/config/locales/js-en.yml
@@ -1284,7 +1284,7 @@ en:
search_placeholder: 'Search project...'
include_subprojects: 'Include all sub-projects'
tooltip:
- include_all_selected: 'Include all sub-projects is currently selected.'
+ include_all_selected: 'Project already included since Include all sub-projects is enabled.'
current_project: 'This is the current project you are in.'
does_not_match_search: 'Project does not match the search criteria.'
no_results: 'No project matches your search criteria.'
diff --git a/frontend/src/app/shared/components/project-include/list/project-include-list.component.html b/frontend/src/app/shared/components/project-include/list/project-include-list.component.html
index 284095f243..b03130b396 100644
--- a/frontend/src/app/shared/components/project-include/list/project-include-list.component.html
+++ b/frontend/src/app/shared/components/project-include/list/project-include-list.component.html
@@ -42,9 +42,14 @@
slot="body"
class="spot-body-small"
>
- {{ text.does_not_match_search }}
- {{ text.include_all_selected }}
- {{ text.current_project }}
+ {{ text.current_project }}
+
+
+ {{ text.include_all_selected }}
+
+ {{ text.does_not_match_search }}
+
+
diff --git a/frontend/src/app/spot/styles/sass/components/tooltip.sass b/frontend/src/app/spot/styles/sass/components/tooltip.sass
index b70d29846f..eef0ecd09d 100644
--- a/frontend/src/app/spot/styles/sass/components/tooltip.sass
+++ b/frontend/src/app/spot/styles/sass/components/tooltip.sass
@@ -10,7 +10,7 @@
opacity: 0
position: absolute
- min-width: $spot-spacing-10 + $spot-spacing-2
+ min-width: $spot-spacing-10 + $spot-spacing-10
max-width: 90vw
height: auto
From 24710cd3a464feb692161c36779fa0d3e0c129b8 Mon Sep 17 00:00:00 2001
From: adam-op <94119622+adam-op@users.noreply.github.com>
Date: Mon, 5 Sep 2022 10:25:03 +0200
Subject: [PATCH 09/12] documentation/finetuning-style-guide (#11237)
* documentation/finetuning-style-guide
---
.../documentation-style-guide/README.md | 20 +++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/docs/development/contribution-documentation/documentation-style-guide/README.md b/docs/development/contribution-documentation/documentation-style-guide/README.md
index 1372dcf3e8..fc8f8121d4 100644
--- a/docs/development/contribution-documentation/documentation-style-guide/README.md
+++ b/docs/development/contribution-documentation/documentation-style-guide/README.md
@@ -284,10 +284,22 @@ To keep tables accessible and scannable, tables should not have any empty cells.
To help tables be easier to maintain, consider adding additional spaces to the column widths to make them consistent. For example:
-| **Feature** | **Description** |
-| ---------------------------------------------------------- | ------------------------------------------------------------ |
-| Great feature | Enhances collaboration between marketing and sales |
-| Best feature | Use it to synchronize your example table with OpenProject |
+```markdown
+| **Feature** | **Description** |
+| ------------- | --------------------------------------------------------- |
+| Great feature | Enhances collaboration between marketing and sales |
+| Best feature | Use it to synchronize your example table with OpenProject |
+```
+
+instead of:
+
+```markdown
+| **Feature** | **Description** |
+| ------------- | --------------------------------------------------------- |
+| Great feature | Enhances collaboration between marketing and sales |
+| Best feature | Use it to synchronize your example table with OpenProject |
+```
+
## Headings
From 245e2433adb219b3000c6f7c5a50e4e67d4d6382 Mon Sep 17 00:00:00 2001
From: Parimal Satyal <88370597+psatyal@users.noreply.github.com>
Date: Mon, 5 Sep 2022 10:27:48 +0200
Subject: [PATCH 10/12] Smaller updates to the NC docs (#11227)
* Added details on revoking OAuth token
Added missing documentation on how to revoke OAuth access token provided by Nextcloud, via OpenProject.
* Typos
* Updates
Updates:
- Nextcloud app is called "OpenProject Integration" (capital I)
- Updated title to include the word "setup"
- Updating the text of link to the user guide
* Remove disconnection instructions
Removing the added bit about removing NC access tokens in OpenProject until we have more details on it
---
.../integrations/nextcloud/README.md | 8 ++---
.../nextcloud-integration/README.md | 29 ++++++++++--------
.../my_account_access_tokens.png | Bin 0 -> 243196 bytes
3 files changed, 21 insertions(+), 16 deletions(-)
create mode 100644 docs/user-guide/nextcloud-integration/my_account_access_tokens.png
diff --git a/docs/system-admin-guide/integrations/nextcloud/README.md b/docs/system-admin-guide/integrations/nextcloud/README.md
index b8dc3aca70..ac3b307ea4 100644
--- a/docs/system-admin-guide/integrations/nextcloud/README.md
+++ b/docs/system-admin-guide/integrations/nextcloud/README.md
@@ -1,6 +1,6 @@
---
sidebar_navigation:
- title: Nextcloud integration
+ title: Nextcloud integration setup
priority: 600
description: Set up Nextcloud as a file storage in your OpenProject instance
keywords: Nextcloud file storage integration
@@ -8,7 +8,7 @@ keywords: Nextcloud file storage integration
-# Nextcloud integration
+# Nextcloud integration setup
| Topic | Description |
| ----------------------------------- | :----------------------------------------------------------- |
@@ -41,7 +41,7 @@ Please note these minimum version requirements for the integration to work:
> **Important**: You need to have administrator privileges in both your Nextcloud and OpenProject instances to set up this integration.
-#### 1. Add the "OpenProject integration" app in Nextcloud and point it to your OpenProject instance
+#### 1. Add the "OpenProject Integration" app in Nextcloud and point it to your OpenProject instance
Start by opening your Nextcloud instance as an administrator.
@@ -180,4 +180,4 @@ Deleting a file storage at an instance level deletes the Nextcloud integration c
## Using the integration
-Once the file storage is added and enabled for projects, your users are able to take full advantage of the integration between Nextcloud and OpenProject. For more information on how link Nextcloud files to work packages in OpenProject and access linked work packages in Nextcloud, please refer to the [Nextcloud integration user guide](../../../user-guide/nextcloud-integration/).
+Once the file storage is added and enabled for projects, your users are able to take full advantage of the integration between Nextcloud and OpenProject. For more information on how to link Nextcloud files to work packages in OpenProject and access linked work packages in Nextcloud, please refer to [Using the Nextcloud integration](../../../user-guide/nextcloud-integration/).
diff --git a/docs/user-guide/nextcloud-integration/README.md b/docs/user-guide/nextcloud-integration/README.md
index 33ce0442dd..b5b5ec16cb 100644
--- a/docs/user-guide/nextcloud-integration/README.md
+++ b/docs/user-guide/nextcloud-integration/README.md
@@ -21,14 +21,13 @@ This integration makes it possible for you to:
> Note: The the minimum requirements for this integration are Nextcloud version 22 (or above) and OpenProject version 12.2 (or above). To be able to use Nextcloud as a file storage in your project, the administrator of your instance should first have completed the [Nextcloud integration setup](../../system-admin-guide/integrations/nextcloud).
-
-| Topic | Description |
-|-----------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------|
+| Topic | Description |
+| ------------------------------------------------------------ | :----------------------------------------------------------- |
| [Connecting your OpenProject and Nextcloud accounts](#connecting-your-openproject-and-nextcloud-accounts) | How to connect your Nextcloud and OpenProject accounts to be able to use this integration |
-| [Linking files and folders to work packages](#linking-files-and-folders-to-work-packages) | How to link/unlink files and folders to work packages and view and download linked files |
-| [Permissions and access control](#permissions-and-access-control) | Who has access to linked files and who doesn't |
-| [Next steps for the integration](#next-steps-for-the-integration) | What is planned in future releases |
-| [Possible errors and troubleshooting](#possible-errors-and-troubleshooting) | Common errors and how to troubleshoot them |
+| [Linking files and folders to work packages](#linking-files-and-folders-to-work-packages) | How to link/unlink files and folders to work packages and view and download linked files |
+| [Permissions and access control](#permissions-and-access-control) | Who has access to linked files and who doesn't |
+| [Next steps for the integration](#next-steps-for-the-integration) | What is planned in future releases |
+| [Possible errors and troubleshooting](#possible-errors-and-troubleshooting) | Common errors and how to troubleshoot them |
@@ -52,7 +51,9 @@ To begin using this integration, you will need to first connect your OpenProject
5. The one-time process to connect your two accounts is complete. You will now be directed back to the original work package, where you can view and open any Nextcloud files that are already linked, or start linking new ones.
-> **Note:** To disconnect the link between your OpenProject and Nextcloud accounts, head on over to Nextcloud and navigate to _Settings → Connected accounts_. There, clicking **Disconnect from OpenProject** button. To re-link the two accounts, simply follow the above instructions again.
+
+> **Note**: To disconnect the link between your OpenProject and Nextcloud accounts, head on over to Nextcloud and navigate to _Settings → Connected accounts_. There, click *Disconnect from OpenProject* button. To re-link the two accounts, simply follow [the above instructions](#connecting-your-openproject-and-nextcloud-accounts) again.
+
## Linking files and folders to work packages
@@ -61,7 +62,7 @@ The following video gives you a short overview of how to use this integration:
![OpenProject Nextcloud integration video](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Nextcloud-Integration-2.mp4)
-### In OpenProject:
+### In OpenProject
In addition to listing files attached to a work package, the **Files** tab now also shows you Nextcloud files that are linked to the current work package. Hovering on any linked file with your mouse will give you options to **open or download the file, show the containing folder in Nextcloud or remove the link**.
![Empty_status_files](1_0_00-No_files_linked.png)
@@ -71,7 +72,6 @@ In addition to listing files attached to a work package, the **Files** tab now a
> **Note:** In this version of the integration, you can only link files to work packages on Nextcloud; adding a new link to a Nextcloud file via the OpenProject interface is not yet possible, but will be possible in the near future.
-
### In Nextcloud
On the file or folder that you want to link to a work package, click on the *three dots → **Details**.*
@@ -97,7 +97,6 @@ In addition to actions related to individual files, you can also choose to displ
![added_NC_widget](Nextcloud_dashboard.png)
-
There are three additional features related to the integration that you can enable in Nextcloud. In your personal settings page, under *Connected accounts*, you will find these options:
- **Enable navigation link** displays a link to your OpenProject instance in the Nextcloud header
@@ -110,6 +109,10 @@ There are three additional features related to the integration that you can enab
![NC_extra_search](Unified_search.png)
+
+> **Note:** In this version of the integration, you can only link files to work packages on Nextcloud; adding a new link to a Nextcloud file via the OpenProject interface is not yet possible, but will be possible in the near future.
+
+
## Permissions and access control
When a Nextcloud file or folder is linked to a work package, an OpenProject user who has access to that work package will be able to:
@@ -126,11 +129,13 @@ However, all available actions depend on permissions the OpenProject user (or mo
Further integration efforts are under way. In the near future, you will be able to link and upload files to Nextcloud directly from the OpenProject interface.
+
+
## Possible errors and troubleshooting
#### No permission to see this file
-If you are unable to see the details of a file or are unable to open some of the files linked to a work package, it could be related to your Nextcloud user not having the necessary permissions. In such a case, you will be able to see the name, time of last modification and the name of the modifier but you will not be able to perform any further actions. To open or access these files, please contact your Nextcloud administrator or the creator of the file so that they can grant you the necessary permissions.
+If you are unable to see the details of a file or are unable to open some of the files linked to a work package, it could be related to your Nextcloud account not having the necessary permissions. In such a case, you will be able to see the name, time of last modification and the name of the modifier but you will not be able to perform any further actions. To open or access these files, please contact your Nextcloud administrator or the creator of the file so that they can grant you the necessary permissions.
![OP_no_permissions](1_1_01-Not_all_files_available.png)
diff --git a/docs/user-guide/nextcloud-integration/my_account_access_tokens.png b/docs/user-guide/nextcloud-integration/my_account_access_tokens.png
new file mode 100644
index 0000000000000000000000000000000000000000..0fba38eead8d190e128ff695328d0bb887abe29d
GIT binary patch
literal 243196
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