diff --git a/docs/README.md b/docs/README.md index d2b0789491fb..84d3456a947b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -29,7 +29,6 @@ The guides for [upgrading](./installation-and-operations/operation/upgrading) ar * [Configure incoming mails](./installation-and-operations/configuration/incoming-emails) * [Install custom plugins](./installation-and-operations/configuration/plugins) - ## User Guides Please see our [User Guide pages](./user-guide/) for detailed documentation on the functionality of OpenProject. @@ -38,7 +37,6 @@ Please see our [User Guide pages](./user-guide/) for detailed documentation on t Please see our [Use Cases section](./use-cases/) for detailed how-to guides and step-by-step instruction on how to set up a variety of common cases and views. - ## Development * [Full development environment for developers on Ubuntu](./development/development-environment-ubuntu) and [Mac OS X](./development/development-environment-osx) @@ -48,7 +46,6 @@ Please see our [Use Cases section](./use-cases/) for detailed how-to guides and * [Code review guidelines](./development/code-review-guidelines) * [API documentation](./api) - ## APIv3 documentation sources The documentation for APIv3 is written in the [OpenAPI Format](https://www.openapis.org/) and its sources are being built from the entry point `openapi-spec.yml`. diff --git a/docs/api/README.md b/docs/api/README.md index 47873bbc9609..9bd8876aa1aa 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -20,7 +20,7 @@ We try to keep stable releases of OpenProject with changes to this API backwards The API v3 is a general purpose API supporting multiple use cases. -While by no means complete, a whole lot of different scenarios can be automatized which otherwise would have to be carried out by hand via the UI. +While by no means complete, a whole lot of different scenarios can be automatized which otherwise would have to be carried out by hand via the UI. Examples for this include managing work packages, projects and users. ➔ [Go to OpenProject API](./introduction/) diff --git a/docs/api/apiv3/README.md b/docs/api/apiv3/README.md index 2eb27b506050..1b48072d54d6 100644 --- a/docs/api/apiv3/README.md +++ b/docs/api/apiv3/README.md @@ -9,6 +9,6 @@ retrieve the complete, singular file from any OpenProject server under `/api/v3/ Additionally, there is a script that outputs the specification as a whole as well, either as json or yaml depending on the given format argument: -``` +```shell ./script/api/spec --format yaml > openproject-oas.yml ``` diff --git a/docs/api/apiv3/client-libraries/README.md b/docs/api/apiv3/client-libraries/README.md index 17754793b009..fbcfb5c39046 100644 --- a/docs/api/apiv3/client-libraries/README.md +++ b/docs/api/apiv3/client-libraries/README.md @@ -6,7 +6,6 @@ While we cannot endorse or vet the libraries listed below we encourage their cre If you need help developing a client library you can [contact us](mailto:support@openproject.com). If you want to have a client library listed in the list below you can again [contact us](mailto:support@openproject.com) or simply issue a PR with [changes to the source file](https://github.com/opf/openproject/blob/dev/docs/api/apiv3/client-libraries/README.md). - ## JavaScript / TypeScript * [op-client](https://www.npmjs.com/package/op-client): Client library for OpenProject server. Works both on Node.js and browser. diff --git a/docs/api/apiv3/example/README.md b/docs/api/apiv3/example/README.md index f88046848caa..3c6e740fca48 100644 --- a/docs/api/apiv3/example/README.md +++ b/docs/api/apiv3/example/README.md @@ -188,7 +188,6 @@ The value taken for the `href` in a resource value will always be the `self` lin ![work package create schema self link](./wp-create-form-schema-self-link.png) - *The correct combination of `project` and `type` needs to be chosen. Sometimes a type is not available in every project. In that case, the type either can be added to the project in the UI or a different type needs to be chosen for the project. This is why it sometimes makes sense to first send the project within the form body as this will update the `availableValues` listed for `type`* ### Sending the create request diff --git a/docs/api/bcf/bcf-rest-api.md b/docs/api/bcf/bcf-rest-api.md index 909c93ebee79..33d38b8316d3 100644 --- a/docs/api/bcf/bcf-rest-api.md +++ b/docs/api/bcf/bcf-rest-api.md @@ -1,55 +1,55 @@ # BCF REST API -![](BCFicon128.png) +![BCF REST API Icon](BCFicon128.png) -The following describes the extensions and deviations of the BCF API v2.1 implementation in OpenProject. +The following describes the extensions and deviations of the BCF API v2.1 implementation in OpenProject. -This document should be read as an extension to the [standard specification](https://github.com/buildingSMART/BCF-API/blob/release_2_1/README.md). +This document should be read as an extension to the [standard specification](https://github.com/buildingSMART/BCF-API/blob/release_2_1/README.md). The user should read the standard specification first, and then take a look at this document to be informed about OpenProject specificities. While the intent of the implementation is to follow the specification, the API builds on the existing OpenProject data -schema and by that requires to map between the concepts required in the much broader domain of project management and BCF. +schema and by that requires to map between the concepts required in the much broader domain of project management and BCF. In other parts, the BCF API specification has not been completely implemented. It will be amended where requirements dictate. OpenProject offers a second API (v3) which might be able to fill the gaps the BCF API implementation still has. The document follows the structure of the standard specification to ease comparing the two documents. -# 1. Introduction +## 1. Introduction All end points are nested within the `/api` path. So for a server listening on `https://foo.com/` the API root will be `https://foo.com/api/bcf/2.1`. For a server listening on `https://foo.com/bar` the API root will be `https://foo.com/bar/api/bcf/2.1`. -## 1.1 Paging, Sorting and Filtering +### 1.1 Paging, Sorting and Filtering _Not implemented_ -## 1.2 Caching +### 1.2 Caching _Implemented_ -## 1.3 Updating Resources via HTTP PUT +### 1.3 Updating Resources via HTTP PUT _Implemented_ -## 1.4 Cross Origin Resource Sharing (CORS) +### 1.4 Cross Origin Resource Sharing (CORS) _Not implemented_ -## 1.5 Http Status Codes +### 1.5 Http Status Codes _Implemented_ -## 1.6 Error Response Body Format +### 1.6 Error Response Body Format _Implemented_ -## 1.7 DateTime Format +### 1.7 DateTime Format _Implemented_ -## 1.8 Authorization +### 1.8 Authorization _Implemented_ @@ -58,41 +58,42 @@ data structure with WorkPackages, which enables them to be worked on by the proj a user also needs to have the _view_work_packages_ permission to have _view_linked_issues_. For _manage_bcf_ the permissions _view_work_packages_, _add_work_packages_, _edit_work_packages_ and _delete_work_packages_ are dependently required. -### 1.8.1 Per-Entity Authorization +#### 1.8.1 Per-Entity Authorization _Implemented_ The `authorization` field is always returned, regardless of an `includeAuthorization` query parameter. -### 1.8.2 Determining Authorized Entity Actions +#### 1.8.2 Determining Authorized Entity Actions _Implemented_ -## 1.9 Additional Response and Request Object Properties +### 1.9 Additional Response and Request Object Properties The implementation relies on a client to particularly adhere to this. -## 1.10 Binary File Uploads +### 1.10 Binary File Uploads _Implemented_ -# 2. Topologies +## 2. Topologies _Out of scope_ -# 3. Public Services +## 3. Public Services -## 3.1 Versions Service +### 3.1 Versions Service _Not implemented_ -## 3.2 Authentication Services +### 3.2 Authentication Services -### 3.2.1 Obtaining Authentication Information +#### 3.2.1 Obtaining Authentication Information _Implemented_ The following OAuth2 flows are supported: + * `authorization_code_grant` - [4.1 - Authorization Code Grant](https://tools.ietf.org/html/rfc6749#section-4.1) * `client_credentials` - [4.4 - Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4) @@ -103,77 +104,78 @@ Before a client is able to perform the flows, they need to be [configured in Ope to be checked for the scope. That value also needs to be provided for the scope property in OAuth requests. The OAuth2 flows alternatively proposed by the specification + * `implicit_grant` - [4.2 - Implicit Grant](https://tools.ietf.org/html/rfc6749#section-4.2) * `resource_owner_password_credentials_grant` - [4.3 - Resource Owner Password Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.3) are not implemented. -### 3.2.2 OAuth2 Example +#### 3.2.2 OAuth2 Example _Out of scope_ -### 3.2.3 OAuth2 Protocol Flow - Dynamic Client Registration +#### 3.2.3 OAuth2 Protocol Flow - Dynamic Client Registration _Not implemented_ -## 3.3 User Services +### 3.3 User Services -### 3.3.1 Get current user +#### 3.3.1 Get current user _Implemented_ -# 4. BCF Services +## 4. BCF Services -## 4.1 Project Services +### 4.1 Project Services The `project_id` is an integer value. However, the API also understands requests where the project identifier, e.g. `bcf_project` is used instead of the integer within a url. So the following urls might point to the same project resource: `/api/bcf/2.1/projects/3` and `/api/bcf/2.1/projects/bcf_project`. -### 4.1.1 GET Projects Service +#### 4.1.1 GET Projects Service _Partly implemented_ The end point is implemented but lacks the `authorization` property. However, the [Project Extension Service](#414-get-project-extension-service) is completely implemented and provides the same information. -### 4.1.2 GET Project Service +#### 4.1.2 GET Project Service _Partly implemented_ The end point is implemented but lacks the `authorization` property. However, the [Project Extension Service](#414-get-project-extension-service) is completely implemented and provides the same information. -### 4.1.3 PUT Project Service +#### 4.1.3 PUT Project Service _Implemented_ -### 4.1.4 GET Project Extension Service +#### 4.1.4 GET Project Extension Service _Implemented and extended_ -However, as some end points are not implemented, the actions indicating the ability to call those end points will also not be returned, e.g. `updateDocumentReferences` +However, as some end points are not implemented, the actions indicating the ability to call those end points will also not be returned, e.g. `updateDocumentReferences` -### 4.1.5 Expressing User Authorization Through Project Extensions +#### 4.1.5 Expressing User Authorization Through Project Extensions _Out of scope_ -#### 4.1.5.1 Project +##### 4.1.5.1 Project _Implemented and extended_ * *viewTopic* - The ability to see topics (see [4.2.3 GET Topic Service](#423-get-topic-service)) -#### 4.1.5.2 Topic +##### 4.1.5.2 Topic _Implemented_ -#### 4.1.5.3 Comment +##### 4.1.5.3 Comment _Implemented_ -## 4.2 Topic Services +### 4.2 Topic Services BCF topics are tightly coupled to work packages in OpenProject. This coupling is denoted in the `reference_links` property of a topic which will always have a link to the work package resource in the API v3. e.g.: -``` +```text <-- other properties --> "reference_links": [ "/api/v3/work_packages/92" @@ -181,11 +183,12 @@ of a topic which will always have a link to the work package resource in the API <-- other properties --> ``` -### 4.2.1 GET Topics Service +#### 4.2.1 GET Topics Service _Partly implemented_ The following properties are not supported: + * `labels` (the property exists but cannot be written and is always empty) * `stage` (the property exists but cannot be written and is always null) * `bim_snippet.snippet_type` @@ -195,7 +198,7 @@ The following properties are not supported: OData sort, filtering and pagination is not supported. -### 4.2.2 POST Topic Service +#### 4.2.2 POST Topic Service _Partly implemented_ @@ -204,13 +207,13 @@ See [4.2.3 GET Topic Service](#423-get-topic-service) for details. Either a new work package is created or, if a work package is referenced in the `reference_links` section, a the referenced work package is associated to the newly created topic. A work package can only be associated to one topic and vice versa. -### 4.2.3 GET Topic Service +#### 4.2.3 GET Topic Service _Partly implemented_ See [4.2.3 GET Topic Service](#423-get-topic-service) for details. -### 4.2.4 PUT Topic Service +#### 4.2.4 PUT Topic Service _Partly implemented_ @@ -218,194 +221,194 @@ The reference to the work package cannot be altered. See [4.2.3 GET Topic Service](#423-get-topic-service) for details. -### 4.2.5 DELETE Topic Service +#### 4.2.5 DELETE Topic Service _Implemented_ The associated work package will also be deleted. -### 4.2.6 GET Topic BIM Snippet Service +#### 4.2.6 GET Topic BIM Snippet Service _Not implemented_ -### 4.2.7 PUT Topic BIM Snippet Service +#### 4.2.7 PUT Topic BIM Snippet Service _Not implemented_ -## 4.3 File Services +### 4.3 File Services -### 4.3.1 GET Files (Header) Service +#### 4.3.1 GET Files (Header) Service _Not implemented_ -### 4.3.2 PUT Files (Header) Service +#### 4.3.2 PUT Files (Header) Service _Not implemented_ -## 4.4 Comment Services +### 4.4 Comment Services -### 4.4.1 GET Comments Service +#### 4.4.1 GET Comments Service _Not implemented_ -### 4.4.2 POST Comment Service +#### 4.4.2 POST Comment Service _Not implemented_ -### 4.4.3 GET Comment Service +#### 4.4.3 GET Comment Service _Not implemented_ -### 4.4.4 PUT Comment Service +#### 4.4.4 PUT Comment Service _Not implemented_ -### 4.4.5 DELETE Comment Service +#### 4.4.5 DELETE Comment Service _Not implemented_ -### 4.4.6 Determining allowed Comment modifications +#### 4.4.6 Determining allowed Comment modifications _Not implemented_ -## 4.5 Viewpoint Services +### 4.5 Viewpoint Services -### 4.5.1 GET Viewpoints Service +#### 4.5.1 GET Viewpoints Service _Implemented_ -### 4.5.2 POST Viewpoint Service +#### 4.5.2 POST Viewpoint Service _Implemented_ -#### 4.5.2.1 Point +##### 4.5.2.1 Point _Implemented_ -#### 4.5.2.2 Direction +##### 4.5.2.2 Direction _Implemented_ -#### 4.5.2.3 Orthogonal camera +##### 4.5.2.3 Orthogonal camera _Implemented_ -#### 4.5.2.4 Perspective camera +##### 4.5.2.4 Perspective camera _Implemented_ -#### 4.5.2.5 Line +##### 4.5.2.5 Line _Implemented_ -#### 4.5.2.6 Clipping plane +##### 4.5.2.6 Clipping plane _Implemented_ -#### 4.5.2.7 Bitmap +##### 4.5.2.7 Bitmap _Implemented_ -#### 4.5.2.8 Snapshot +##### 4.5.2.8 Snapshot _Implemented_ -#### 4.5.2.9 Components +##### 4.5.2.9 Components _Implemented_ -#### 4.5.2.10 Component +##### 4.5.2.10 Component _Implemented_ -#### 4.5.2.11 Coloring +##### 4.5.2.11 Coloring _Implemented_ -#### 4.5.2.12 Visibility +##### 4.5.2.12 Visibility _Implemented_ -#### 4.5.2.13 View setup hints +##### 4.5.2.13 View setup hints _Implemented_ -### 4.5.3 GET Viewpoint Service +#### 4.5.3 GET Viewpoint Service _Implemented_ -### 4.5.4 GET Viewpoint Snapshot Service +#### 4.5.4 GET Viewpoint Snapshot Service _Implemented_ -### 4.5.6 GET selected Components Service +#### 4.5.6 GET selected Components Service _Implemented_ -### 4.5.7 GET colored Components Service +#### 4.5.7 GET colored Components Service _Implemented_ -### 4.5.8 GET visibility of Components Service +#### 4.5.8 GET visibility of Components Service _Implemented_ -## 4.6 Related Topics Services +### 4.6 Related Topics Services -### 4.6.1 GET Related Topics Service +#### 4.6.1 GET Related Topics Service _Not implemented_ -### 4.6.2 PUT Related Topics Service +#### 4.6.2 PUT Related Topics Service _Not implemented_ -## 4.7 Document Reference Services +### 4.7 Document Reference Services -### 4.7.1 GET Document References Service +#### 4.7.1 GET Document References Service _Not implemented_ -### 4.7.2 POST Document Reference Service +#### 4.7.2 POST Document Reference Service _Not implemented_ -### 4.7.3 PUT Document Reference Service +#### 4.7.3 PUT Document Reference Service _Not implemented_ -## 4.8 Document Services +### 4.8 Document Services -### 4.8.1 GET Documents Service +#### 4.8.1 GET Documents Service _Not implemented_ -### 4.8.2 POST Document Service +#### 4.8.2 POST Document Service _Not implemented_ -### 4.8.3 GET Document Service +#### 4.8.3 GET Document Service _Not implemented_ -## 4.9 Topics Events Services +### 4.9 Topics Events Services -### 4.9.1 GET Topics Events Service +#### 4.9.1 GET Topics Events Service _Not implemented_ -### 4.9.2 GET Topic Events Service +#### 4.9.2 GET Topic Events Service _Not implemented_ -## 4.10 Comments Events Services +### 4.10 Comments Events Services _Not implemented_ -### 4.10.1 GET Comments Events Service +#### 4.10.1 GET Comments Events Service _Not implemented_ -### 4.10.2 GET Comment Events Service +#### 4.10.2 GET Comment Events Service _Not implemented_ diff --git a/docs/api/faq/README.md b/docs/api/faq/README.md index 46cc49459b97..c5ab0340e0bb 100644 --- a/docs/api/faq/README.md +++ b/docs/api/faq/README.md @@ -15,7 +15,6 @@ That's not possible at the moment. You can only [retrieve](../endpoints/wiki-pag ## (How) can I add work package categories to a project via API? -The API v3 currently does not expose categories via the API. +The API v3 currently does not expose categories via the API. Please note that categories might change in the future as they have a lot of limitations, e.g. when filtering. - diff --git a/docs/bim-guide/README.md b/docs/bim-guide/README.md index 0fa67cffdf99..aa847cfca206 100644 --- a/docs/bim-guide/README.md +++ b/docs/bim-guide/README.md @@ -11,14 +11,10 @@ Welcome to the OpenProject user guide for Building Information Modeling (BIM) wi On top of the general project management functionalities, OpenProject BIM enables construction teams to better plan, communicate and collaborate in their building projects. OpenProject BIM includes a 3D model viewer (IFC viewer), support of the BIM collaboration format (BCF) for BIM issue management, and much more powerful features, e.g. a [Revit integration](revit-add-in). - > **Note**: This guide only covers the specific [BIM features and functionalities of OpenProject](https://www.openproject.org/bim-project-management/). To learn more about the core features for project management of OpenProject (which are included in the BIM edition as well), please visit our [User Guide](../user-guide/). - ![BIM Project Management](demo_project_teaser_bim.jpg) - - ## Overview of all topics regarding the OpenProject BIM edition OpenProject BIM edition provides powerful features particular designed for the needs of construction industry. Please choose the topic you want to learn more about. @@ -29,108 +25,76 @@ Upload your IFC building models and show them directly in the internet browser, Details: [IFC-Viewer](ifc-viewer) - - ## BIM issue management Create tasks directly connected to your building model, import tasks or export tasks from any other BIM application. Details: [BIM Issue Management](bim-issue-management) - - ## Revit add-in Stay always connected to OpenProject in realtime, show and create tasks while you're working in the Revit, using the Revit Add-in. Details: [Revit Add-in](revit-add-in) - - ## How to get a free trial You easily can start a new BIM trial on our [OpenProject BIM website](https://www.openproject.org/bim-project-management/). The have a look at the full description of how to start a new trial installation just follow the Link: [Create trial installation](../enterprise-guide/enterprise-cloud-guide/create-cloud-trial/). - - ## How to enable the BCF module The BCF Module and the included IFC viewer can be enabled for every single project. Here you can find the description how to [enable a module](../user-guide/projects/project-settings/modules/) within your ***project settings***. - - ## Reporting bugs You found a bug? Please [report it](../development/report-a-bug) to our [OpenProject community](https://community.openproject.org/projects/revit-add-in). Thank you! - - ## BIM FAQs - - ### Can OpenProject features be used within the OpenProject BIM edition? Yes, you are able to use all known features. Within our BIM edition you get the full functionality and additionally some features only for the building industry. - - ### Is it possible to switch my existing OpenProject installation to the BIM edition? Yes, an existing OpenProject on-premises (self-hosted) installation can easily be switched to the BIM edition without losing your settings and projects. In our [Installation & Upgrade Guide](../installation-and-operations/bim-edition/) you can find a description how to switch. - - ### Is OpenProject BIM compatible to other BIM software? Yes of course. We are of the opinion that the full potential of the BIM method only works through collaboration and the exchange of information (openBIM). For this reason we support the open BCF XML Standard. You are able to import and export all created BCF and stay interoperable with any other BCF software. - - ### Why do I need a Revit add-in? You don't need it, but it makes your BIM Issue Management much easier. The *OpenProject Revit Add-In* allows you to use the open source project management software *OpenProject BIM* directly within your Autodesk Revit environment. It lets you create, inspect and manage issues right in the moment when you can also solve them - when you have your Revit application fired up and the relevant BIM models open. Issues get stored as BIM Issues centrally and are available to every team member in real time - thanks to our browser based IFC viewer even to those team members without expensive Revit licenses. No BCF XML import/export is needed. However, you still can import and export BCF XML as you like and stay interoperable with any other BCF software. - - ### Are there any system requirements for the Revit add-in? -The OpenProject Revit Add-In does not have any special system requirements. Only a supported [version of Autodesk Revit](./revit-add-in/#system-requirements) must be installed. - - +The OpenProject Revit Add-In does not have any special system requirements. Only a supported [version of Autodesk Revit](./revit-add-in/#system-requirements) must be installed. ### Which versions of Revit are supported? The OpenProject BIM Add-in for Revit supports the following versions: -- REVIT 2019 -- REVIT 2020 +- REVIT 2019 +- REVIT 2020 - REVIT 2021 - - ### Is it possible to use OpenProject BIM without Revit? Yes! The Revit Add-In is just additional to the OpenProject BIM core functionality. It's still possible to import and export BCF XML as you like and stay interoperable with any other Software for BIM Issue Management. - - ### Are integrations with other BIM software planned? Yes, we want to develop some other integrations to stay interoperable with other BIM software and make BIM Issue Management with OpenProject BIM much easier. - - ### How to enable the BCF module -The BCF Module and the included IFC viewer can be enabled or disabled for every single project. Here you can find the description how to [enable a module](../user-guide/projects/project-settings/modules/) within the project settings. +The BCF Module and the included IFC viewer can be enabled or disabled for every single project. Here you can find the description how to [enable a module](../user-guide/projects/project-settings/modules/) within the project settings. *The BCF Module is an OpenProject BIM Enterprise add-on. Please make sure, that you are already using the OpenProject BIM edition ([switch to the BIM edition](../installation-and-operations/bim-edition/))* - - ### Why can't I see a building model? There are many potential reasons why you can't see your building model. Please check out the most common reasons and their solution: @@ -141,9 +105,6 @@ There are many potential reasons why you can't see your building model. Please c - IFC file isn't uploaded yet or is invalid (please check the status of the uploaded file within the [IFC Model management area](ifc-viewer/#import-and-export-ifc-models)). - IFC file does not have any geometry (please check if your IFC file has some geometry) - - ### Where to find the version of my Revit add-in? To see which version of the Revit AddIn you are currently using, navigate to the OpenProject tab in the Revit taskbar and open the settings. Here you can see which version you are currently using. - diff --git a/docs/bim-guide/bim-issue-management/README.md b/docs/bim-guide/bim-issue-management/README.md index 281848d31732..7c99cf423f24 100644 --- a/docs/bim-guide/bim-issue-management/README.md +++ b/docs/bim-guide/bim-issue-management/README.md @@ -8,9 +8,7 @@ keywords: BIM, BCF, IFC, BIM Issue Management, BCF-Management # BIM issue management (BIM feature) -Within the *BCF-Module* you are able to manage *BIM Issues (BCF)*. All BIM Issues get stored as BCFs centrally and are available to every team member in real time. Below you find the most important features how to use the BCF Module to create, inspect and manage issues. - - +Within the *BCF-Module* you are able to manage *BIM Issues (BCF)*. All BIM Issues get stored as BCFs centrally and are available to every team member in real time. Below you find the most important features how to use the BCF Module to create, inspect and manage issues. ## What is a BIM issue? @@ -18,13 +16,11 @@ A BIM Issue is a special kind of work package to communicate directly within the The BIM Issue is not only a description of a problem, the view of the building model is stored within the issue as well. This includes the current selection, view , rotation & zoom of the model. -OpenProject BIM supports the standard of the ***BIM Collaboration Format (BCF)***. All BIM Issues which are created within another *Open BIM* Software can be imported to work with this issue within our project management solution. - - +OpenProject BIM supports the standard of the ***BIM Collaboration Format (BCF)***. All BIM Issues which are created within another *Open BIM* Software can be imported to work with this issue within our project management solution. ## Create a BIM issue -To create a BIM Issue you don't have to configure a new type of work package. Every work package (e.g. Task, Issue, Milestone, … ) can become a BIM Issue only by adding a viewpoint to the work package. +To create a BIM Issue you don't have to configure a new type of work package. Every work package (e.g. Task, Issue, Milestone, … ) can become a BIM Issue only by adding a viewpoint to the work package. There are two ways to create new BIM Issue: @@ -35,36 +31,26 @@ BIM-Issues always belong to a project and a building model. Therefore, you first Then, navigate to the BCF module in the project navigation. - - ![BCF-Module](OpenProject_BCF_Module.png) - - ### Create a new BIM issue -To create new BIM Issues, you have to open the Model - Viewer first and create the view you want to save within the BIM Issue (e.g. zoom, [rotate](../ifc-viewer/#how-to-rotate-the-building-model), [slice](../ifc-viewer/#how-to-slice-the-building-model), [select](../ifc-viewer/#how-to-select-elements), [hide](../ifc-viewer/#show-or-hide-models-or-elements-via-model-tree), … ). +To create new BIM Issues, you have to open the Model - Viewer first and create the view you want to save within the BIM Issue (e.g. zoom, [rotate](../ifc-viewer/#how-to-rotate-the-building-model), [slice](../ifc-viewer/#how-to-slice-the-building-model), [select](../ifc-viewer/#how-to-select-elements), [hide](../ifc-viewer/#show-or-hide-models-or-elements-via-model-tree), … ). -Click on the **+ Create new work package** and select the type of work package you want. +Click on the **+ Create new work package** and select the type of work package you want. ![Create a new BIM Issue](create-a-new-BIM-issue.png) - - Now you can see a detail view of the new Issue. Describe all necessary information to work on that task and add a viewpoint by clicking on the **"+ Viewpoint"**-Button. Now the current Viewpoint of the Building Model is added to the Issue. After saving your new BIM issue is created. *Within the viewpoint the current status of your building model is saved. So please check the view before - is there everything shown within the model viewer?* ![Create a viewpoint](Create-a-viewpoint.png) - - You also have the option of adding multiple viewpoints to a work package. Rotation, selection and visibility can be changed for every viewpoint to get a better model based communication. ![Adding multiple viewpoints](adding-multiple-viewpoints.png) - - ### Add a viewpoint to an existing work package The workflow of adding a viewpoint to an existing work package is similar to creating a new BIM Issue. To switch an existing work package to a BIM Issue just follow the steps: @@ -72,53 +58,32 @@ The workflow of adding a viewpoint to an existing work package is similar to cre Open the **BCF-Module** to see the building model. ![BCF Module](bcf_module.png) - - Make sure the "Model Viewer & Maps" - View or "Model Viewer & Table" - View is selected within the **OpenProject-Toolbar**. ![Model and work package view](model_maps_view.png) - - Now open the **work package Details** by double click on the work package ("my first work-package"). Now you are able to add a viewpoint like it is described above. - - - ## BIM issue handling (details view) The handling of BIM Issues is similar to the handling of work packages (including configuration of the attribute). To jump to a viewpoint of an existing BIM Issue the model viewer has to be activated (visible in the center of your screen) or you have to open the detail view of the work package. - - - ### Jump to a viewpoint with the details view If the Model viewer isn't shown yet, open the Detail - view of the BIM Issue and follow the Cube symbol of the preview. Now the model viewer opens and the viewpoint of the BIM Issue will be displayed. ![Display BIM Issue](display_bim_issue.png) - - - - ### Switch between different viewpoints -After creating multiple BIM Issues you are able to jump between different viewpoints easily. The "Viewer and Cards" - Mode shows all of your BIM Issues. With a single click at the preview of the BIM Issue, the model viewer changes immediately. - - +After creating multiple BIM Issues you are able to jump between different viewpoints easily. The "Viewer and Cards" - Mode shows all of your BIM Issues. With a single click at the preview of the BIM Issue, the model viewer changes immediately. ![Switch_Viewpoints](Switch_Viewpoints.gif) - - ### Configuration of BIM issues To create BIM Issues you don't have to configure additional work package types. Every existing work package can become a BIM Issue by adding a viewpoint. Before you can add a viewpoint to a work package, this work package must be enabled for viewpoints in the system administration. - - - ## View and find BIM issues (cards and list view) ### Overview @@ -127,93 +92,58 @@ You can switch between different View modes within the OpenProject toolbar. Just ![Switch View Mode](Swicht_View_Mode.gif) - - - ### Viewer and cards ![Viewer and Cards](Viewer_and_Cards.png) - - The detail view of every work package can be shown by different user actions. To open the viewpoint and see the description in the details view, just double click at the BIM Issue in the card view. After double click your current viewpoint in the model viewer will be reset and the viewpoint of the BIM Issue including all details will be displayed. To view only the detail view of the BIM issue without resetting the current view of the model, you can click on the work package number ("#…") or the "information icon" on the card. - - ### Cards mode Within the cards view you are not able to jump directly to a viewpoint. First you have to open the details view by using the "information icon" or the work package number ("#…") at the card. There you can find the "Cube" which leads you to the viewpoint within the appearing model viewer. ![Cards Mode](Cards-mode.png) - - - - - ### Viewer and table To open the BIM Issue in this mode just click at the work package in the table. By double click at the BIM Issue the viewpoint will be shown and the details will appear. The details of each work package can be shown without changing the current view of the model by single click at the work package ID. ![Viewer and Table](viewer-and-table.png) - - - - ### Table Within the table view you are not able to jump directly to a viewpoint. First you have to open the details view by using the "information icon" or the work package number ("#…") or double click at the work package. At the details view you can find the "Cube" which leads you to the viewpoint within the appearing model viewer. ![Table](table.png) - - - - - ## Filter BIM issues You are able to filter BIM Issues by using the filter button in the **OpenProject toolbar**. The filter is usable in every view. ![OpenProject Toolbar](OpenProject-toolbar.png) - - ![Filter BIM Issue](Filter-BIM-Issue.png) - - - ## BIM issues in work package module BIM Issues are also listed in the work package module. This supports you to manage your building project in the best way and get an overview of all issues. To separate work packages and BIM Issues we created a new filter which enables you to filter BIM Issues. ![BIM Issues and work packages](bim-issues-and-work-packages.png) - - - - - ## Import and export BCF issues using BCF -Within the BCF module you are able to upload BIM Issues which are created within other software and download already existing files to manage them within other BIM project management solutions. Just Click on the ***"Import"-Button*** or ***"Export"-Button*** within the OpenProject Toolbar. - - +Within the BCF module you are able to upload BIM Issues which are created within other software and download already existing files to manage them within other BIM project management solutions. Just Click on the ***"Import"-Button*** or ***"Export"-Button*** within the OpenProject Toolbar. ### Import of attributes -After importing a BCF Issue (or multiple Issues at the same time) from another software, OpenProject will match existing attributes and types of the work package. +After importing a BCF Issue (or multiple Issues at the same time) from another software, OpenProject will match existing attributes and types of the work package. If attributes of the imported BCF Issue can't be matched automatically (because they are not available within your project configuration), you are able to synchronize the values manually. ![Import BCF](import-bcf.png) - - **Currently the following attributes can be synchronized and matched:** - Title & Description @@ -229,20 +159,14 @@ If attributes of the imported BCF Issue can't be matched automatically (because - Due Date - Comments +After a successful matching of the attributes the topics will be displayed in OpenProject. - -After a successful matching of the attributes the topics will be displayed in OpenProject. - -![Successful BCF Import](successfull-bcf-import.png) - - +![Successful BCF Import](successfull-bcf-import.png) ![Imported BCF Issues](imported-bcf-issues.png) - - ### Outdated BCF issues -If there are more recent changes to the work package in OpenProject than in the imported BCF ("ModifiedDate"), the import will be rejected. +If there are more recent changes to the work package in OpenProject than in the imported BCF ("ModifiedDate"), the import will be rejected. ![Outdated BCF Issues](outdated-bcf-issues.png) diff --git a/docs/bim-guide/ifc-viewer/README.md b/docs/bim-guide/ifc-viewer/README.md index 7df28aac67fb..a71bae4e8617 100644 --- a/docs/bim-guide/ifc-viewer/README.md +++ b/docs/bim-guide/ifc-viewer/README.md @@ -10,7 +10,7 @@ keywords: BIM, BCF, IFC, Viewer OpenProject BIM includes a very powerful IFC viewer to show and interact with building models in 2D & 3D. -IFC-Files can be uploaded and shown directly within your Web-Browser without installing any additional software on your computer. +IFC-Files can be uploaded and shown directly within your Web-Browser without installing any additional software on your computer. ## Basics @@ -18,69 +18,44 @@ The BCF Module has included a very powerful IFC viewer. Here is a short overview ![IFC Viewer Overview](ifc-viewer-overview.png) - - 1. **IFC Model Viewer** to have a look at the building model directly within OpenProject BIM. 2. **IFC Model Tree** to see the IFC Model Structure and show / hide elements. -3. The **OpenProject toolbar** shows the most important user actions like creating new (BIM) issues, Import & Export BCF files, Change OpenProject View and upload & download IFC-Models +3. The **OpenProject toolbar** shows the most important user actions like creating new (BIM) issues, Import & Export BCF files, Change OpenProject View and upload & download IFC-Models 4. The **View Cube** to rotate the building model. 5. The **IFC-Viewer toolbar** to interact with the building model (e.g. change perspective, hide/ show elements, select elements & slice the building model) - - ## Import and export IFC models -Within the BCF module you are able to manage your IFC files. You are able to upload new building models and download already existing files. Just Click on the ***"IFC-Models"-Button*** within the OpenProject Toolbar. - - +Within the BCF module you are able to manage your IFC files. You are able to upload new building models and download already existing files. Just Click on the ***"IFC-Models"-Button*** within the OpenProject Toolbar. ![Import and Export IFC Models](import-and-export-ifc-models.png) - - To upload your first IFC model click on the green "+ IFC Model" - Button. A new explorer Window will be opened. Just navigate to the folder where your latest building model is saved. ![Import IFC Model](import-ifc-model.png) - - Select the file you want and confirm your upload. You also the choice to set the new model as "Default model". All default models (multiple models can be set as default) are initially shown if you reload the BCF module. You are able to change this setting later as well. ![Set Model as Default](set-model-as-default.png) - - After uploading a building model you get an overview of all models within the "model management". There you are able to see their current upload status, rename the model, delete or download the existing models. ![BIM Model Management](bim-model-management.png) - - If there already exist a model in project, you don't have to open the "model manager" to upload other models. You are able to add more models by clicking the "Add-Button" in the IFC Model Tree. ![Add a new IFC Model](add-a-new-ifc-model.png) - - **Remember:** If there are multiple models you are able to hide the whole model or single elements by using the checkbox within model tree. ![Hide_Model](Hide_Model.gif) - - - - - ## How to rotate the building model To rotate the IFC model you either left-click on the building viewer and ***rotate the building model by panning*** your cursor **or** use the ***View Cube*** in the right bottom corner for navigation. ![Model_Rotation](Model_Rotation.gif) - - - - ## IFC-viewer toolbar The IFC-Viewer toolbar has many functions which are described below. The user actions all relate to the viewer and can be started by clicking on the button. @@ -89,12 +64,10 @@ The IFC-Viewer toolbar has many functions which are described below. The user ac ![Reset View](reset-view.png) -If your building model (or objects within the model) is rotated, zoomed or cut and you want to reset your current view this function will help you. All you have to do is press the button once and your your view will be reset to the default. +If your building model (or objects within the model) is rotated, zoomed or cut and you want to reset your current view this function will help you. All you have to do is press the button once and your your view will be reset to the default. ![Reset_view_button](Reset_view_button.gif) - - ### 2D / 3D view ![2D View](2-d-view.png) @@ -103,13 +76,11 @@ If your building model can easily be shown in 2D or 3D. This function is very po ![2D_3D](2D_3D.gif) - - ### Orthographic view ![Orthographic Button](orthographic-button.png) -The default behavior of the OpenProject BIM Model Viewer is a perspective view. The perspective camera gives you more information about depth. Distant objects are smaller than nearby ones. This function changes from perspective view to orthographic view. The orthographic view is widely used in engineering. All objects appear at the same scale and parallel lines remain parallel. Also a unit length appears the same length anywhere on the screen. This makes it easier to assess the relative sizes. +The default behavior of the OpenProject BIM Model Viewer is a perspective view. The perspective camera gives you more information about depth. Distant objects are smaller than nearby ones. This function changes from perspective view to orthographic view. The orthographic view is widely used in engineering. All objects appear at the same scale and parallel lines remain parallel. Also a unit length appears the same length anywhere on the screen. This makes it easier to assess the relative sizes. ![Orthographic View](orthographic-view.png) @@ -121,8 +92,6 @@ This function allows you to reset the current zoom level and the position of the ![Fit View](fit-view.gif) - - ### First person perspective ![First Person Button](first-person-button.png) @@ -131,75 +100,49 @@ The first person perspective changes the way you interact with the building mode ![First_Person_Perspective](First_Person_Perspective.gif) - - - - ## How to slice the building model ![Slice Building Model](slice-building-model.png) -To have a deeper look within the building model you are able to slice the whole building. To start slicing click on the "***scissors symbol***" within the ***IFC-Viewer toolbar*** and left-click on an element which has the same angle you want to slice (you can edit this angle later as well). Now there are shown some arrows. Grab one and slice the model by dragging the arrow to the location you want. +To have a deeper look within the building model you are able to slice the whole building. To start slicing click on the "***scissors symbol***" within the ***IFC-Viewer toolbar*** and left-click on an element which has the same angle you want to slice (you can edit this angle later as well). Now there are shown some arrows. Grab one and slice the model by dragging the arrow to the location you want. ![Slice building model](Slice_building.gif) - - ## How to clear slices You are able to clear all slices by using the ***dropdown*** menu next to the "***scissors symbol***" within the ***IFC-Viewer-Toolbar***. ![slice-building-model](slice-building-model.png) - - ![Clear slices](clear_slices.png) - - - - ## How to select elements To select elements within the building model, you have to activate the selection mode by clicking on the highlighted toggle button placed in the ***IFC-Viewer toolbar***. After activating the selection mode you are able to select a single or multiple elements within the viewer by left click. Your individual selection won't be reset after leaving the selection mode. You are able to reset your current selection with the context menu (right click). ![Select Elements Button](select-elements-button.png) - - ![Select Elements](Select_elements.png) - - ## Show properties -You are able to see the basic properties of each element (e.g. the UUID) within OpenProject BIM. After using the "information" button a new tab named "Properties" will appear. +You are able to see the basic properties of each element (e.g. the UUID) within OpenProject BIM. After using the "information" button a new tab named "Properties" will appear. ![Show Properties Button](show-properties-button.png) ![Show Properties](show-properties.png) - - In order to inspect the information for individual objects, you have to use the context menu and simply select the "Inspect Properties" Menu item. All properties of the object will appear in the new tab. ![Inspect Properties](inspect-properties.png) - - -**But be careful!** The properties of the element you just clicked on are displayed. So make sure that there are no unwanted objects (e.g. window panes) in front of your desired object. - - +**But be careful!** The properties of the element you just clicked on are displayed. So make sure that there are no unwanted objects (e.g. window panes) in front of your desired object. ![Element Properties](element-properties.png) - - - - ## Show or hide elements via viewer -There are two options to hide elements via viewer. The **first possibility** is to use the ***IFC-viewer toolbar***. Within the toolbar you will find the **"hide-button"** +There are two options to hide elements via viewer. The **first possibility** is to use the ***IFC-viewer toolbar***. Within the toolbar you will find the **"hide-button"** ![Hide Elements Button](hide-elements-button.png) @@ -207,53 +150,34 @@ After the "Hide-Mode" has been activated, each element you click (left click) on ![Hide_elements_Viewer_rubber](Hide_elements_Viewer_rubber.gif) - - - - The **second possibility** to hide single elements via viewer is to use the context menu. Here you can find the function to hide single elements. ![Hide Elements Context Menu](hide-elements-context-menu.png) +You are always able to show hidden elements by using the **"Reset-View" Button** in the Viewer toolbar or use the **"Show All"** **Button** in the IFC Model tree. - -You are always able to show hidden elements by using the **"Reset-View" Button** in the Viewer toolbar or use the **"Show All"** **Button** in the IFC Model tree. - -Sometimes it is helpful to see elements in context to other elements but a good view can be disturbed by individual elements. For this case our viewer is able to show your building model in an "X-Ray"-Mode. The mode can be activated via the context menu and enables disturbing elements to be displayed in the context of other elements without covering them. +Sometimes it is helpful to see elements in context to other elements but a good view can be disturbed by individual elements. For this case our viewer is able to show your building model in an "X-Ray"-Mode. The mode can be activated via the context menu and enables disturbing elements to be displayed in the context of other elements without covering them. ![XRay](XRay.gif) - - ## Show elements in model tree To be sure if you hide or select the element you want you are able to jump to this element in the IFC Model tree. All you have to do is open the context menu on the desired element and select the "Show in Explorer" function. Now the Model tree folds out to the desired element. - - ![Show in Explorer](show-in-explorer.png) - - ## Show or hide models or elements via model tree If you have uploaded several IFC models of one building (e.g. one for each discipline - Architecture, Structural & MEP) and want to have a look at a single model or just want to hide specific elements, you are able to hide them by changing the status of the ***checkbox within the model tree.*** -The model tree can represent the structure of the building model in different ways. This means that entire models, storeys or even similar components can be hidden with a single click. - - +The model tree can represent the structure of the building model in different ways. This means that entire models, storeys or even similar components can be hidden with a single click. ![Hide_Model](Hide_Model.gif) - - ![Hide_building_storey](Hide_building_storey.gif) - - After switching to the "Classes" tab in the model tree, you can see the grouping of all elements by IFC classification. Whole groups can be hidden as well. In the example, all elements of the type "IFCWall" will be hidden. ![Hide_IFC_classes](Hide_IFC_classes.gif) - diff --git a/docs/bim-guide/revit-add-in/README.md b/docs/bim-guide/revit-add-in/README.md index 435b81ebd668..22ce61813e77 100644 --- a/docs/bim-guide/revit-add-in/README.md +++ b/docs/bim-guide/revit-add-in/README.md @@ -12,11 +12,8 @@ The *OpenProject Revit Add-In* allows you to use the open source project managem To download the latest version (v2.2.3) of our OpenProject Revit AddIn click here: [DOWNLOAD](https://github.com/opf/openproject-revit-add-in/releases/download/v2.3.3/OpenProject.Revit.exe) - - > **Note**: OpenProject BIM Issue Management is an Enterprise add-on and can only be used with [Enterprise cloud](../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easily possible. - ## Before usage Please check the following steps before using the OpenProject BIM edition. @@ -27,12 +24,8 @@ Please check the following steps before using the OpenProject BIM edition. If you can answer all questions with "yes" you are ready to start using our Revit Add-in. - - ## How to install - - ### System requirements The **OpenProject Revit AddIn** does not have any special system requirements. Autodesk Revit must be installed. The following versions of Revit are supported: @@ -42,151 +35,97 @@ The **OpenProject Revit AddIn** does not have any special system requirements. A - 2021 - 2022 - - ### Download the installer To download the setup application for the **OpenProject Revit AddIn**, click here: [DOWNLOAD](https://github.com/opf/openproject-revit-add-in/releases/download/v2.3.3/OpenProject.Revit.exe) You can find the latest version of our AddIn on [Github](https://github.com/opf/openproject-revit-add-in/releases/latest) as well. - - -### Installation +### Installation After you have downloaded the file, please run it to start the installation process. 1. **Start Installation process** - In the first screen, click *Next* to continue: + In the first screen, click *Next* to continue: ![Installation Step 1](installation-step-01.png) - - 2. **Select Revit Version** Next, select the Revit version you have installed locally and click *Next* to continue. You can select multiple versions: ![Installation Step 02](installation-step-02.png) - - 3. **Start Installation** Verify the installation steps are correct in the next screen and click on *Install* to install the **OpenProject Revit AddIn**: ![Installation Step 03](installation-step-03.png) - - 4. **Ready to use** Please wait a few moments for the installation to complete and then click *Finish* to finish the installation. - - ## How to update from an earlier version If you already have an earlier version installed, simply follow the same steps as for a new installation ([How to install](#how-to-install)). The existing **OpenProject Revit AddIn** will be updated. - - - - ## How to login After Installing the OpenProject BIM AddIn you can find a new tab within the Revit taskbar named "OpenProject". To login you have to open the **settings** first. ![Revit AddIn Settings](RevitAddIn_Settings.png) - - The settings will appear in a new tab. Within this tab you have to insert your own ***OpenProject BIM URL*** and confirm with "Go". Your OpenProject account is now linked to your Revit application and you can close the tab. ![OpenProject BIM Login](OpenProject_BIM_Login.png) - - - - - - ## How to select a project -After connecting your OpenProject BIM instance you are able to start working with your BCF Tasks within Revit. Firstly you have to open the **OpenProject Tab** in the taskbar and start the application. +After connecting your OpenProject BIM instance you are able to start working with your BCF Tasks within Revit. Firstly you have to open the **OpenProject Tab** in the taskbar and start the application. ![Start OpenProject BIM Add-in](OpenProject_BIM_Start.png) - - After starting the application a new tab will be created and you are able to select the Project you want to work in. ![OpenProject BIM - Select a Project](OpenProject_BIM_Projects.png) - - ## Working with BIM issues -To work with BIM Issues, please open our AddIn and navigate to our BCF Module. +To work with BIM Issues, please open our AddIn and navigate to our BCF Module. ![OpenProject BIM - BCF Module](OpenProject_BIM_BCF_Module.png) - - Within this module all existing work packages are displayed. Within this demo project no work package exist yet. To create a new one, click on the "add new work package"-Button. ![OpenProject BIM - Create BCF](OpenProject_BIM_Create_BCF.png) - - -An empty form for new work packages is now displayed. After adding a title and detailed information describing your issue, you have to add a viewpoint. This viewpoint saves your current view & selection of the building model (so check the rotation, selection and zoom of the model before). +An empty form for new work packages is now displayed. After adding a title and detailed information describing your issue, you have to add a viewpoint. This viewpoint saves your current view & selection of the building model (so check the rotation, selection and zoom of the model before). And the most important thing: **don't forget to save** the work package. ![OpenProject BIM - Add Viewpoint](OpenProject_BIM_Add_Viewpoint.png) - - - - To open a BIM Issue and restore the viewpoint you have to navigate to the BCF Module and just click on the BIM Issue you want to open. The behavior of working with the issues is almost the same like in OpenProject. ![OpenProject BIM - Issues](OpenProject_BIM_Issues.png) - - The handling of BIM Issues within Revit is similar to OpenProject BIM. There are only a few changes to the browser based version: - **Model Viewer**: To show a BIM Issue OpenProject BIM will use your Revit Model instead of the OpenProject BIM Model Viewer. - **Reduced View**: OpenProject BIM is now used in a smaller window. That's why you are currently using a reduced view. -- **Missing Browser Toolbar**: The Browser Toolbar is missing, so you might miss some common user actions (e.g. jump to previous page) - - - - +- **Missing Browser Toolbar**: The Browser Toolbar is missing, so you might miss some common user actions (e.g. jump to previous page) ## Synchronize tasks between Revit and OpenProject OpenProject BIM and Revit automatically synchronize all BIM work packages. You don't have to pay attention to anything else and you can manage your entire project directly in OpenProject. Whatever you do, users of OpenProject BIM edition will see any changes in the browser as well. - - ![OpenProject BIM - Synchronization](OpenProject_BIM_Synchronization.png) - - - - - - - - ## How to uninstall the OpenProject Revit add-in To remove the **OpenProject Revit AddIn** remove the AddIn like any other AddIn from Revit. First close any running instance of Revit. Then you'll have to enter the directory `C:\ProgramData\Autodesk\Revit\Addins\`. There you must delete the file `OpenProject.Revit.addin` and the folder `OpenProject.Revit`. After a restart of Revit, the **OpenProject Revit AddIn** is no longer available. - - ## Troubleshooting ### 'Your computer was protected by Windows' Error Message @@ -195,22 +134,16 @@ This is an internal Windows defense mechanism called *Windows SmartScreen*. When ![Installer Windows SmartScreen 1](installer-smart-screen-01.png) - - This can happen when a new release was not yet installed by many users, so internal Microsoft services do not yet know about the trustworthiness of the **OpenProject Revit AddIn** version. To continue, please click on the highlighted part labeled *Additional Information*, then you should see a screen like the following: ![Installer Windows SmartScreen 2](installer-smart-screen-02.png) - - Ensure that publisher says *OpenProject GmbH*. That means the installer was correctly signed by OpenProject and is safe to use. To proceed with the installation, click on *Run Anyway* and the installation will start. - - ## Reporting bugs You found a bug? Please [report it](../../development/report-a-bug) to our [OpenProject community](https://community.openproject.org/projects/revit-add-in). Thank you! diff --git a/docs/development/README.md b/docs/development/README.md index ef2bafb5b77f..aee88f742be9 100644 --- a/docs/development/README.md +++ b/docs/development/README.md @@ -12,8 +12,6 @@ We are pleased that you are thinking about contributing to OpenProject! This gui Please get in touch with us using our [development forum](https://community.openproject.org/projects/openproject/forums/7) or send us an email to info@openproject.org. - - ## Issue tracking and coordination We eat our own ice cream so we use OpenProject for roadmap planning and team collaboration. Please have a look at the following pages: @@ -28,34 +26,24 @@ We eat our own ice cream so we use OpenProject for roadmap planning and team col - [Submit a feature idea](submit-feature-idea) - - ## Development Environment Take a look at the bottom under Additional resources to see how to setup your development environment. - - ## Highlighting Development Environment To make it easier to distinguish a development instance, it is using a tinted website icon and modified app header. This behavior can be disabled by setting an environment variable `OPENPROJECT_DEVELOPMENT_HIGHLIGHT_ENABLED=false` (see also [documentation on configuration](../installation-and-operations/configuration/)). - - ## Branching model and development flow Please see this separate guide for the [git branching model and core development](git-workflow/). - - ## Development concepts We prepared a set of documentation concepts for an introduction into various backend and frontend related topics of OpenProject. Please see the [concepts main page](concepts/) for more. - - ## Translations If you want to contribute to the localization of OpenProject and its plugins you can do so on the [Crowdin OpenProject page](https://crowdin.com/project/openproject). Once a day we fetch those locales and automatically upload them to GitHub. Contributing there will ensure your language will be up to date for the next release! @@ -100,16 +88,13 @@ Instances of abusive, harassing, or otherwise unacceptable behavior may be repor This code of conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.0.0, available at [contributor-covenant.org/version/1/0/0/](https://www.contributor-covenant.org/version/1/0/0/) - - ## OpenProject Contributor License Agreement (CLA) If you want to contribute to OpenProject, please make sure to accept our Contributor License Agreement first. The contributor license agreement documents the rights granted by contributors to OpenProject. [Read and accept the Contributor License Agreement here.](https://www.openproject.org/legal/contributor-license-agreement/) -# Additional resources - +## Additional resources * [Development environment for Ubuntu 18.04](development-environment-ubuntu) * [Development environment for Mac OS X](development-environment-osx) diff --git a/docs/development/accessibility-checklist/README.md b/docs/development/accessibility-checklist/README.md index d2aed2e1ed49..fec45596f77b 100644 --- a/docs/development/accessibility-checklist/README.md +++ b/docs/development/accessibility-checklist/README.md @@ -9,6 +9,7 @@ To help development teams prioritize accessibility implementation and remediatio ## 1. Perceivable - Using senses for web content (sight, hearing and/or touch) ### 1.1. Graphics + * All images, form image buttons, and image map hot spots have appropriate, equivalent alternative text. * Every image must have an alt attribute. * Images that do not convey content, are decorative, or contain content that is already conveyed in text are given null alt text (alt="") or implemented as CSS backgrounds. All linked images have descriptive alternative text. @@ -19,6 +20,7 @@ To help development teams prioritize accessibility implementation and remediatio * When video information is used, an audio description / alternative text is supplied ### 1.2. Relations / Context + * The reading and navigation order (determined by code order) is logical and intuitive. * Instructions do not rely upon shape, size, or visual location (e.g., "Click the square icon to continue" or "Instructions are in the right-hand column"). * Color is not used as the sole method of conveying content or distinguishing visual elements. @@ -31,17 +33,20 @@ To help development teams prioritize accessibility implementation and remediatio ## 2. Operable - Interface forms, controls, and navigation are operable ### 2.1. Keyboard usability + * All page functionality is available using the keyboard, unless the functionality cannot be accomplished in any known way using a keyboard (e.g., free hand drawing). * Page-specified shortcut keys and access keys (access key should typically be avoided) do not conflict with existing browser and screen reader shortcuts. * Keyboard focus is never locked or trapped at one particular page element. The user can navigate to and from all navigable page elements using only a keyboard. * All page functionality is available using the keyboard. ### 2.2. Enough time + * If a page or application has a time limit, the user is given options to turn off, adjust, or extend that time limit. * The content and functionality has no time limits or constraints. * If an authentication session expires, the user can re-authenticate and continue the activity without losing any data from the current page. ### 2.3. Navigation + * The web page has a descriptive and informative page title. * The navigation order of links, form elements, etc. is logical and intuitive. * Page headings and labels for form and interactive controls are informative. @@ -54,17 +59,21 @@ To help development teams prioritize accessibility implementation and remediatio ## 3. Understandable - Content and interface are understandable ### 3.1. Texts + * The language of the page is identified using the HTML lang attribute (``, for example). * Words that may be ambiguous, unknown, or used in a very specific way are defined through adjacent text, a definition list, a glossary, or other suitable method. ### 3.2. Predictable + * When a page element receives focus, it does not result in a substantial change to the page, the spawning of a pop-up window, an additional change of keyboard focus, or any other change that could confuse or disorient the user. * Navigation links that are repeated on web pages do not change order when navigating through the site. ### 3.3. Errors and help + * Required form elements or form elements that require a specific format, value, or length provide this information within the element's label. * Required fields are clearly marked. * Help and documents are available. ## 4. Robust - Content can be used reliably by a wide variety of user agents, including assistive technologies + * Markup is used in a way that facilitates accessibility. This includes following the HTML/XHTML specifications and using forms, form labels, frame titles, etc. appropriately. diff --git a/docs/development/application-architecture/README.md b/docs/development/application-architecture/README.md index e85cb725700d..15a23acfae9a 100644 --- a/docs/development/application-architecture/README.md +++ b/docs/development/application-architecture/README.md @@ -30,30 +30,28 @@ flowchart TD gih["GitHub (gih)"] gil["GitLab (gil)"] cal["Calendar (cal)"] - O["API integrations (api)"] + O["API integrations (api)"] W["Outgoing webhooks"] -end + end subgraph services[Internal Services] direction TB - M[Memcached] - P[PostgreSQL] - S[Object storage or NFS] - email["Email gateways (eml)"] + M[Memcached] + P[PostgreSQL] + S[Object storage or NFS] + email["Email gateways (eml)"] end - openproject <-->|"TCP requests"| services openproject -->|"HTTPS requests"| integrations loadbalancer <-->|"HTTPS requsts"| integrations subgraph localclients[Local Client / User device] direction TB - browser - A1 - A2 - -end + browser + A1 + A2 + end ``` ## Involved services @@ -79,14 +77,14 @@ end | API integrations | Structural access to OpenProject through API endpoints. Optional access to users and third party organizations depending on authorized scopes | HTTPS | (Optional) R
(Optional) W
| [API configuration](../../system-admin-guide/api-and-webhooks/) | | Outgoing Webhooks | Outgoing requests for changes within the application | HTTPS | R (Outgoing webhook data) | [Webhook configuration an administration](../../system-admin-guide/api-and-webhooks/#webhooks) | -# Software +## Software OpenProject is developed as a GPLv3 licensed, open-source software. The software core is developed and maintained using [GitHub](https://github.com/opf/openproject/). OpenProject is available as several versions: - [Community Edition](https://www.openproject.org/community-edition/) - [Enterprise on-premises and Enterprise cloud](https://www.openproject.org/enterprise-edition/) -# Environments +## Environments OpenProject is continuously tested, developed, and distributed using the following environments @@ -100,23 +98,23 @@ OpenProject is continuously tested, developed, and distributed using the followi | Production
(Helm chart) | [Official public OpenProject Helm charts](../../installation-and-operations/installation/helm-chart/)
Stable releases | Stable releases (configurable through container tags) | Updates to Helm chart are manual, underlying deployment uses OpenProject docker images | | PullPreview | Temporary instances for development of features scope to a pull request. | Feature branches | Automatically deployed when developers/QA request a pull preview instance by labelling pull requests with the `PullPreview` tag. | -# Patch and change management +## Patch and change management OpenProject uses the Community instance [https://community.openproject.org](https://community.openproject.org) for managing the application lifecycle. For a full overview on the process of developing changes to the application, please see our [product development guide](../product-development-handbook/). This section summarizes all relevant information about the process for providing releases. -## Current release +### Current release The [release notes](../../release-notes) provide a list of all the releases including the current stable one. Administrators can identify their currently deployed version of OpenProject in the [Administration information page of their installation](../../system-admin-guide/information). -## Upcoming releases +### Upcoming releases See the [Roadmap](https://community.openproject.org/projects/openproject/roadmap) for the overview of the upcoming stable releases. -## Versioning +### Versioning OpenProject follows [Semantic Versioning](https://semver.org/). Therefore, the version is a composition of three digits in the format of e.g. 0.1.1 and can be summarized as followed: @@ -140,7 +138,7 @@ This list is not conclusive but rather serves to highlight the difference to the
-## Version tracing in containers and packages +### Version tracing in containers and packages OpenProject embeds some release information into the packages and containers to ensure they are traceable. For all containers, the following files exist under `/app`. For packages, these files reside under `/opt/openproject/` and `/opt/openproject/config`, depending on the used version. @@ -149,43 +147,43 @@ OpenProject embeds some release information into the packages and containers to - **PRODUCT_VERSION** Commit of the flavour/product version. In case of the [openDesk container](https://hub.docker.com/r/openproject/open_desk), contains a reference to the openDesk repository https://github.com/opf/openproject-open_desk - **BUILDER_VERSION** Internal reference of the building CI repository that we use to create and publish the images. -## Support of releases +### Support of releases For the community edition, only the current stable release is maintained. The [Enterprise on-premises](https://www.openproject.org/enterprise-edition) provides extended maintenance. We recommended to update to a new stable release as soon as possible to have a supported version installed. To that end, OpenProject will show an information banner to administrators in case a new stable release is available. -## Change history +### Change history All changes made to the OpenProject software are documented via work packages bundled by the version. The [Roadmap view](https://community.openproject.org/projects/openproject/roadmap) gives a corresponding overview. A release is also summarized in the [release notes](../../release-notes). -## Distribution +### Distribution OpenProject is distributed in [various formats](../../installation-and-operations/installation). Manual installation based on the code in GitHub is possible but not supported. -## Versions in the codebase +### Versions in the codebase The version is represented as [tags](../git-workflow/#tagging) and [branches](../git-workflow/#branching-model) in the repository. The version is also manifested in the [version.rb](https://github.com/opf/openproject/blob/dev/lib/open_project/version.rb). -# Components +## Components A typical installation of OpenProject uses a web server such as NGINX or Apache to proxy requests to and from the internal [Puma](https://puma.io/) application server. All web requests are handled internally by it. A background job queue is used to execute longer running data requests or asynchronous communications. -## Puma application server +### Puma application server OpenProject uses a Puma application server to run and handle requests for the Rails stack. All HTTP(S) requests to OpenProject are handled by it. Puma is a configurable multi-process, multithreading server. The exact number of servers being operated depends on your deployment method of OpenProject. See the [process control and scaling documentation](../../installation-and-operations/operation/control/) for more information. -## External load balancer or proxying server +### External load balancer or proxying server A web server is expected to handle requests between the end-user and the internal Puma application server. It is responsible for e.g., terminating TLS and managing user-facing HTTP connections, but depending on the deployment, also for serving static assets and certain caching related functionality. This server performs a proxy-reverse proxy pattern with the internal application server. No external connections are allowed directly to the Puma server. -## Rails application +### Rails application The core application, built on the Ruby on Rails framework, handling business logic, database operations, and user interactions. Utilizes the Model-View-Controller (MVC) design pattern. Follows [secure coding guidelines](../concepts/secure-coding/) for authentication, session management, user input validation, and error logging. The application aims to return to the MVC pattern using Rails, Hotwire, and ViewComponents for UI element composition. This strategy aims for higher usability and efficient development. -## Angular frontend +### Angular frontend Some of the responses of the application include a frontend application approach using Angular. These pages communicate with a REST API to receive data and perform updates. An example of this is the work packages module. Requests within the module are handled completely in the frontend, while boundary requests are forwarded to the Rails stack, returning to a classical request/response pattern. @@ -193,7 +191,7 @@ All requests to the application are still handled by Rails. In some of the respo In the following, we'll take a look at the different components at use in the application stack of OpenProject as well as concrete examples on how these components interact. -### Exemplary frontend view request +#### Exemplary frontend view request Let's take a look at how the request to `/projects/identifier/work_packages` would be handled by Rails and Angular (excluding any external actual HTTP requests to the web server) @@ -209,7 +207,7 @@ This will result in a page on which the majority of the content has been rendere This approach has the significant disadvantage to go through the entire Rails stack first to output a response that is mostly irrelevant for the Angular application, and both systems (Rails and Angular) need a somewhat duplicated routing information. The long-term goal is to move to a single-page application and avoid the first two steps. -### Exemplary Rails view request augmented by Angular +#### Exemplary Rails view request augmented by Angular A response that is fully controlled by Rails but extended by some Angular components in the frontend might look as follows. Let's take a look at the request to [edit a type's form configuration](../../system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on) `/types/1/edit/form_configuration`: @@ -225,7 +223,7 @@ A response that is fully controlled by Rails but extended by some Angular compon ![Exemplary form configuration](form-configuration.png) -# Evolution of the application +## Evolution of the application Historically, OpenProject has been forked from [Redmine](https://www.redmine.org/) and modified from a primarily software-development focused flow into a general project management application suite. A Ruby on Rails monolith was used to serve the entire application, frontend and API. Javascript was used to extend some of the functionality with Prototype.js and jQuery on existing, Rails-rendered pages. diff --git a/docs/development/code-review-guidelines/README.md b/docs/development/code-review-guidelines/README.md index e56e67d0d2cb..21b6ef5b7f54 100644 --- a/docs/development/code-review-guidelines/README.md +++ b/docs/development/code-review-guidelines/README.md @@ -2,8 +2,6 @@ This guide serves as a foundation on how to prepare your work for and perform code reviews for OpenProject. - - ## Preparing your pull request ### Coding style @@ -20,8 +18,6 @@ The same is true for eslint. Your editor will likely have support for eslint che For automatically linting your files on committing them, please have a look at [Lefthook](https://github.com/evilmartians/lefthook). You can install these rules by using `bundle exec lefthook install`. - - ### Structure of commit messages - First line: less than 72 characters, this is when GitHub shows ‘…’ @@ -30,16 +26,12 @@ For automatically linting your files on committing them, please have a look at [ See the [Git Book](https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines). - - ### Pull Request description - Provide a clear title, optionally linking to a work package - Add steps necessary to review / reproduce / set up development data for testing - Reference the change in the OpenProject community, if ticket exists. If no ticket exists, double check if one is really optional. - - ### Testing - All GitHub workflow actions must be green on continuous integration @@ -50,8 +42,6 @@ See the [Git Book](https://git-scm.com/book/en/v2/Distributed-Git-Contributing-t - Translations: Never use a specific translation string in a test. We might want to change them in the future and do not want to fix tests when we do. - We are aware that there are some flickering specs in our codebase, that might fail randomly. We are actively trying to fix those. If you encounter test failures in code that you have not touched, try re-running the specs. - - ### Security considerations Every developer and reviewer should read the Rails Security Guide as well as the OWASP top ten. @@ -60,17 +50,13 @@ Every developer and reviewer should read the Rails Security Guide as well as the [OWASP Top 10](https://owasp.org/www-project-top-ten/) - - ### Changelog - All changes made to the OpenProject software are managed and documented via work packages in the [OpenProject project](https://community.openproject.org/projects/openproject/). - The [Roadmap view](https://community.openproject.org/projects/openproject/roadmap) gives a corresponding overview. -- For any nontrivial or pure maintenance changes (Gem bumps etc.), please ensure you have a corresponding ticket you link to in the form of `OP## `or `https://community.openproject.org/work_packages/ID` in your pull request. +- For any nontrivial or pure maintenance changes (Gem bumps etc.), please ensure you have a corresponding ticket you link to in the form of `OP##` or `https://community.openproject.org/work_packages/ID` in your pull request. - To prevent inconsistencies and avoid redundant work there is no additional change log in the source code. Releases will contain a changelog of the publicly visible tickets in the GitHub releases pages, as well as [on our release notes](../../release-notes/). - - ### Marking your code as reviewable Before requesting a review, double check your own changes: @@ -86,22 +72,16 @@ Wait for a reviewer to start. If you get feedback or requested changes, do not t Try to respond to every feedback and resolve feedback that you addressed already. Re-request a review from the same person if you addressed all remarks. - - ## Reviewing You've found a pull request you want to review. Here is how to do it: - - ### Timeliness Reviewing code from your colleagues has higher priority than picking up more work. When you start your day, or in between working on other topics, please check the above link if there is any review requested. If a review is left untouched, feel free to request a review from a group or link the pull request in question in the developers element channel. - - ### Taking a review If you're ready to perform a review for a pull request, do these things: @@ -110,16 +90,12 @@ If you're ready to perform a review for a pull request, do these things: - If there is a linked ticket that has an appropriate status workflow, set it to `in review` and assign yourself - Optionally, request yourself as a reviewer - - ### Correctness As a reviewer, your job is not to make sure that the code is what you would have written – *because it will not be*. Your job as a reviewer of a piece of code is to make sure that the code as written by its author is correct. Try to think of edge cases when testing or evaluating the code, double check the test coverage. But do not frown if you merged the pull request and something broke after all. This is the learning path to avoiding this mistake on the next attempt. Not doing a review in the first place will not move you forward either. - - ### Language Keep in mind that we're all trying to do the correct thing. Be kind and honest to one another, especially since our reviews are public for everyone to see. @@ -127,8 +103,6 @@ Keep in mind that we're all trying to do the correct thing. Be kind and honest t - Prefer questions instead of demands - When in doubt, ask for a meeting to clarify things before assuming someone made a mistake. - - ### Testing Verify that the appropriate tests have been added as documented above. @@ -141,7 +115,6 @@ If possible, add smaller documentation changes right away. If there are breaking changes (e.g., to permissions, code relevant for developers), add them to the release notes draft for the release or create a new draft if none exists yet. - ## Other - For external contributions: Check whether the author has signed a [Contributor License Agreement](../#openproject-contributor-license-agreement-cla) and kindly ask for it if not. @@ -150,8 +123,6 @@ If there are breaking changes (e.g., to permissions, code relevant for developer - Adding Gems: When adding gems, make sure not only the Gemfile is updated, but also the Gemfile.lock. - - ## Readability The reviewer should understand the code without explanations outside the code. @@ -160,8 +131,6 @@ The reviewer should understand the code without explanations outside the code. *You should not rush through a code review – but also, you need to do it promptly. Your coworkers are waiting for you.* - - ## Completing the review Once you've completed the review, you might have left feedback for the developer. In that case: @@ -169,24 +138,18 @@ Once you've completed the review, you might have left feedback for the developer - Publish the review - If any, assign the linked work package back to the developer and set to `in development` - - If there are no change requests, perform these steps: - approve the pull request - merge it using the `Merge pull request` button. - If there is a linked ticket, set it to merged (or closed for an Implementation ticket) and unassign yourself or the developer. - - **Why merge, not squashing?** We do not use squashing to retain any commit information of the original developer, which might contain valuable information. If there are a lot of bogus commits, we squash them on the PR first and then merge them. Having all information about a change is deemed more important than a strictly linear history. The only exception to this rule are single commit pull requests, which can be applied to dev using `Rebase and merge` instead. - - ## Citations [Things everyone should do: code review](https://blog.csdn.net/zhangmike/article/details/30198411) diff --git a/docs/development/concepts/README.md b/docs/development/concepts/README.md index fa6ec0ec7352..e41d5fc66eda 100644 --- a/docs/development/concepts/README.md +++ b/docs/development/concepts/README.md @@ -23,6 +23,3 @@ Please choose an area that you would like to read about: | [Resource changesets](resource-changesets) | How is change tracked to resources in the frontend? How to save the changes. | | [Inline editing](inline-editing) | How does inline editing and the edit field functionality work in OpenProject? | | [Queries and QuerySpace](queries) | What is the Query API concept and how is it used in the frontend? | - - - diff --git a/docs/development/concepts/dynamic-forms/README.md b/docs/development/concepts/dynamic-forms/README.md index 5d6c0dfd71da..f385c5fab80c 100644 --- a/docs/development/concepts/dynamic-forms/README.md +++ b/docs/development/concepts/dynamic-forms/README.md @@ -5,14 +5,10 @@ description: An introduction on how to generate forms from an API form object keywords: concept, forms, dynamic forms, schemas --- - - # Dynamically generated forms Starting in OpenProject 11.3.0, the frontend application received a new mechanism to dynamically generate HTML forms from an APIv3 form response. The form response contains the model being changed/created and [a schema resource](../resource-schemas/) to describe the attributes of the resource. - - ## Key takeaways Dynamic forms are wrappers around the APIv3 form and schema objects to render a full HTML form based on the attribute definitions returned by the API. @@ -21,10 +17,7 @@ Dynamic forms are wrappers around the APIv3 form and schema objects to render a The following guides are related: -- [Schema resources](../resource-schemas/) - - - +- [Schema resources](../resource-schemas/) ## API overview @@ -32,8 +25,6 @@ Let us take a look at the new projects form API response to get an overview of h With an [access token or other means of API authentication](../../../api/introduction/#authentication), send a `POST` to `/api/v3/projects/form`. This will return a HAL form response that looks something like this: - - ```json5 { "_type": "Form", @@ -77,8 +68,6 @@ With an [access token or other means of API authentication](../../../api/introdu } ``` - - The form has four important segments: - **_embedded.payload**: This is the project being created. When you POST to the form, any payload you post will be applied to that project. It is not yet saved, but will transparently show you what the project _would_ look like if you saved it. @@ -86,9 +75,7 @@ The form has four important segments: - **_embedded.validationErrors**: This object contains any references to attributes in the payload that are currently erroneous, and a human-readable message. In the example above, the required _name_ of the project is missing. - **_links**: The links section contains HAL links and actions on the form resource itself. For example, it has a `validate` link to validate any pending changes made by the user. If the form has no validation errors, it will show a `commit` link to save the changes to the database. As the example form is invalid, this link is not present. - - -# Frontend usage +## Frontend usage Using the dynamic form is incredibly easy once you have a backend that provides a form resource with an embedded schema. @@ -98,13 +85,10 @@ The dynamic form component will request the form for you, render the form, and h In case of the projects component, there is a `fieldsSettingsPipe` that allows you to override parts of the rendering. For projects, [it is used](https://github.com/opf/openproject/blob/dev/frontend/src/app/features/projects/components/projects/projects.component.ts#L34-L44) hiding the `identifier` field of the project which is handled by the backend. - - -## Basic use case +### Basic use case For the most basic use case, simply place the `DynamicFormsModule` into your module imports and use the component as follows: ```html ``` - diff --git a/docs/development/concepts/hal-resources/README.md b/docs/development/concepts/hal-resources/README.md index 6e3b33a15f19..9519c460b82f 100644 --- a/docs/development/concepts/hal-resources/README.md +++ b/docs/development/concepts/hal-resources/README.md @@ -22,8 +22,6 @@ HAL resources are the frontend counterpart to the `HAL+JSON` API of OpenProject. HAL resources on the frontend have no explicit prerequisite on our frontend. You will likely want to take a look at the [API documentation and the section on HAL+JSON](../../../api/introduction). - - ## Primer on HAL JSON The JSON response in HAL standard can contain these things: @@ -32,22 +30,18 @@ The JSON response in HAL standard can contain these things: - Related HAL resources under `_links` that can be individually requested from the API (e.g., the link to a project the resource is contained in). Links often have a `title` attribute that is sufficient to render what the value of the link is. - Embedded HAL resources under `_embedded`. These are link properties themselves, but whose HAL JSON has been embedded into the parent JSON. You can think of this as calling the API and integrating the JSON response into the parent. This saves an additional request for resources that are often needed. - - -The following is an example HAL JSON for a work package as it is retrieved by the API. This response is abbreviated, you can see the full response of [#34250 on our community](https://community.openproject.org/api/v3/work_packages/34250). You will see the three sections: +The following is an example HAL JSON for a work package as it is retrieved by the API. This response is abbreviated, you can see the full response of [#34250 on our community](https://community.openproject.org/api/v3/work_packages/34250). You will see the three sections: 1. Immediate properties within the JSON such as `_type`, `id`, `lockVersion`, `description`. There are more properties like this, they are scalar values of the work package that are not linked to other resources 2. The `_links` section. It contains two sorts of links. For other resources such as `_links.project` and `_links.status`. Each resource link contains an `href` and most often a `title` attribute to provide a human readable name of the linked resource. - The other type of links are the action links such as `update` or `updateImmediately` which are annotated with the HTTP method to use for these actions. + The other type of links are the action links such as `update` or `updateImmediately` which are annotated with the HTTP method to use for these actions. 3. The `_embedded` section. It contains `_links` that were embedded, i.e., have their own full JSON response included into the resource. This prevents additional requests, but increases the JSON payload and rendering complexity. The frontend cannot decide which resources to embed, this is controlled by the backend and depends on the endpoint used. For example, resource collection endpoints will usually not embed links. - - ```json5 { "_type": "WorkPackage", @@ -131,14 +125,8 @@ The following is an example HAL JSON for a work package as it is retrieved by th } ``` - - In this linked example, only the `status` and `project` links and embedded resources were kept, as well as some work package properties removed. - - - - ## HalResourceService On to loading the JSON resources from the API and turning them into usable class instances. This is the job of the the [`HALResourceService`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/services/hal-resource.service.ts). It has two responsibilities: @@ -146,20 +134,14 @@ On to loading the JSON resources from the API and turning them into usable class 1. It uses the Angular `HTTPModule` for performing API requests to the APIv3 2. It turns the responses of these requests (or HAL JSON generated in the frontend) into a HAL resource class - - ### Performing requests against HAL API endpoints The service has HTTP `get`, `post`, `put`, etc. methods as well as a generic `request` method that accept an URL and params/payload, and respond with an observable to the JSON transformed into a HAL resource. - - ### Error Handling For errors returned by the HAL API (specific error `_type` response in the JSON) or when erroneous HTTP statuses are being returned, the `HALResourceService` will wrap these into `ErrorResources` for identifying the cause and potentially, additional details to present to the frontend. This is used for example when saving work packages and validation errors occur. The validations are being output in details for individual attributes. - - ## Linked HAL resources The `_links` entries of a HAL resource can have a `url`, `method`, and `title` property. They can also be `templated` if the link needs to be filled out by the frontend (e.g., to set a related ID to pass into it). @@ -209,8 +191,6 @@ Instead of explicitly loading embedded resources, the frontend now usually uses However, there are still use cases where `.$load()` is used and the resource is mutated. - - ## HAL resource builder In order to turn the JSON properties from `_embedded` and `_links` into writable properties on the HAL resource, there is a set of functions called the [`HAL resource builder`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/helpers/hal-resource-builder.ts). It will take care of: @@ -225,16 +205,14 @@ In order to turn the JSON properties from `_embedded` and `_links` into writable The frontend doesn't really use this anymore due to it boiling down to a large mutable object. Instead, we use `ResourceChangesets` to modify resources and save them. [Click here to see the separate concept on them](../resource-changesets). - - ## 🔗 Code references - [`HALResourceService`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/services/hal-resource.service.ts) for loading and turning JSON responses into HAL resource classes - [`halResource.config.ts`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/services/hal-resource.config.ts) for identifying what types in the JSON response and its members/links are being turned into which classes. - [`HalResource`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/resources/hal-resource.ts) the base HAL resource class -- [`HAL resource builder`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/helpers/hal-resource-builder.ts) used for wiring up the links and embedded JSON properties into members of the HAL resource classes +- [`HAL resource builder`](https://github.com/opf/openproject/tree/dev/frontend/src/app/features/hal/helpers/hal-resource-builder.ts) used for wiring up the links and embedded JSON properties into members of the HAL resource classes ## Discussions - Due to the dynamic properties of the HAL resource, it traditionally has an index map to `any` which is the source of many typing issues and in turn, quite a number of bugs: [hal-resource.ts](https://github.com/opf/openproject/blob/dev/frontend/src/app/features/hal/resources/hal-resource.ts#L63) -- The way HAL resources work by embedding and allowing to load +- The way HAL resources work by embedding and allowing to load diff --git a/docs/development/concepts/infrastructure/README.md b/docs/development/concepts/infrastructure/README.md index 2c97dc1f3588..9198b0a5272a 100644 --- a/docs/development/concepts/infrastructure/README.md +++ b/docs/development/concepts/infrastructure/README.md @@ -12,6 +12,4 @@ OpenProject is an open-source core and available for users and customers as thre - the on-premises [Community edition](https://www.openproject.org/download-and-installation/) and [Enterprise on-premises edition with Enterprise support](https://www.openproject.org/enterprise-edition/) which runs on your own hardware - the [Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options) hosted distribution which is hosted and maintained by OpenProject - ## Infrastructure architecture - diff --git a/docs/development/concepts/inline-editing/README.md b/docs/development/concepts/inline-editing/README.md index 1334f93543e8..3bf93fa68e88 100644 --- a/docs/development/concepts/inline-editing/README.md +++ b/docs/development/concepts/inline-editing/README.md @@ -21,8 +21,6 @@ Inline editing is a core functionality of work packages and other attributes. - can be used for work packages and other HAL resources that have a schema - `DisplayField` and `EditField` are two separate sets of classes to render attributes based on their schema type - - ## Prerequisites In order to understand Inline Editing, you will need the following concepts: @@ -33,14 +31,10 @@ In order to understand Inline Editing, you will need the following concepts: - [Changesets](../resource-changesets) - - ## Components overview In order to understand the different modes of the inline edition functionality, we will first look at the components and code that handle displaying of resource attributes, the display fields. - - ### Display fields The display fields handle showing read-only representation of a resource's attribute. For example, the work package table may contain very different kinds of attributes: A progress bar, bare text fields, formatted date fields and the like. @@ -77,8 +71,6 @@ In the frontend, multiple display field classes exist and the [`DisplayFieldServ With a resource and its schema present, there are multiple ways to render a display field for a given attribute. - - #### Rendering in plain JavaScript: `DisplayFieldRenderer` Since parts of the application are rendered in plain JavaScript (such as the work package table), most display fields are actually rendered explicitly to a DOM element through the [`DisplayFieldRenderer#render`](https://github.com/opf/openproject/blob/dev/frontend/src/app/shared/components/fields/display/display-field-renderer.ts) method. You will only need the resource with its schema loaded and the attribute name. @@ -103,18 +95,15 @@ export class ExampleComponent implements OnInit { .work_packages .id(this.workPackageId) .get() - .subscribe(workPackage => { - - const fieldRenderer = new DisplayFieldRenderer(injector, 'table'); - const displayElement = fieldRenderer.render(workPackage, 'status', null); - this.elementRef.nativeElement.appendChild(displayElement); + .subscribe(workPackage => { + const fieldRenderer = new DisplayFieldRenderer(injector, 'table'); + const displayElement = fieldRenderer.render(workPackage, 'status', null); + this.elementRef.nativeElement.appendChild(displayElement); }); } } ``` - - The third parameter of the `render` method is to provide a changeset. This allows to render the value not from the pristine work package, but from a temporary changeset of the work package: ```typescript @@ -122,8 +111,6 @@ The third parameter of the `render` method is to provide a changeset. This allow const changeset = new WorkPackageChangeset(workPackage); ``` - - #### Rendering as angular component: `DisplayFieldComponent` To render an attribute of a HAL resource explicitly, a display field can be used through the [`DisplayFieldComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/shared/components/fields/display/display-field-renderer.ts). In most cases, you will not render the display field alone as it would expect to inline editable. This is why when it's used, it often explicitly disables the writable CSS styles with `writable: false` set. @@ -143,21 +130,17 @@ This will result in the work package status field being rendered including its s The `DisplayFieldComponent` will internally use the `DisplayFieldService` to find the matching field for the `Status` type and manually render the field to an inner HTML element. - - ### Edit fields The editable counterpart to a display field that renders the actual HTML form elements (A text or number input field, a boolean checkbox, or a WYSIWYG editor area). Edit fields are also working on a single attribute of a resource. The schema property `Type` will again determine the component type to render. - - #### `EditFieldComponent` The main component that handles rendering of the actual `` fields of the edit fields is the `EditFieldComponent`. It is subclassed for every type of edit fields, such as the `TextEditFieldComponent` or `FloatEditFieldComponent`, and so on. You can find all edit field types in the [Angular fields module](https://github.com/opf/openproject/tree/dev/frontend/src/app/shared/components/fields/edit/field-types). -##### The `EditFieldComponents` operates on a changeset of the resource that's being edited. All changes are being written into this changeset, so they can be aggregated and saved, or reset on an individual level. +The `EditFieldComponents` operates on a changeset of the resource that's being edited. All changes are being written into this changeset, so they can be aggregated and saved, or reset on an individual level. It is never directly used from within a template, but through a service that passes in the appropriate inputs. We will take a deeper look at this service later and the reasoning behind it. @@ -167,8 +150,6 @@ Inline-editing is usually connected to not only a single, but multiple fields of The `EditForm` logically groups together multiple field elements very similar to how a `
` tag encapsulates a set of inputs. It is tied to a (HAL) `resource` input. - - It has multiple responsibilities: - receives registration of fields within the form @@ -176,18 +157,12 @@ The `EditForm` logically groups together multiple field elements very similar to - handles submission of changes to the resource - activates erroneous fields after unsuccessfully trying to saving. - - #### EditableAttributeField The `EditableAttributeField` contains the logic to toggle between the *display* and *edit* states of a single attribute for the resource. The field will try to register to a parent form by injecting it through its constructor. Only fields within an `EditForm` parent are editable. - - The EditableAttributeField basically contains only two HTML elements that it wraps. These are used for the `display` and `edit` modes. Each is handled by their own `DisplayField` and `EditField` classes and components, as we will detail in the following. - - #### Editing portals OpenProject often renders Angular components in manually rendered DOM, prominently so in the work package table for improved rendering time. This is from the time the project was still using AngularJS and large scale rendering components was quite slow. @@ -216,7 +191,7 @@ export class ExampleComponent implements OnInit { .work_packages .id(this.workPackageId) .get() - .subscribe(workPackage => { + .subscribe(workPackage => { return this.editingPortalService.create( @@ -232,8 +207,6 @@ export class ExampleComponent implements OnInit { } ``` - - #### Edit field handler There is one more class involved in this stack, the `EditFieldHandler`. It implements an adapter pattern to break the connection between the input-only characteristics of the `EditFieldComponent` and the handling of events towards an outer wrapper such as the `EditForm`. They are regular classes that handle events from the `EditFieldComponent` to make them reusable in cases where, for example, an `EditForm` does not exist. @@ -242,8 +215,6 @@ Any user event that should trigger saving or resetting of the field is being han An example where this comes into play is the [`CustomText`](https://github.com/opf/openproject/tree/dev/frontend/src/app/shared/components/grids/widgets/custom-text/custom-text.component.ts) widget of the dashboards and my page, which use the `` manually and pass in a handler that handles saving of these widgets without access to an edit form. - - ### 🔗 Code references - [`EditForm`](https://github.com/opf/openproject/blob/dev/frontend/src/app/shared/components/fields/edit/edit-form/edit-form.ts) base class @@ -257,16 +228,10 @@ An example where this comes into play is the [`CustomText`](https://github.com/o - [`WorkPackageFullViewComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.html) Work package full view template that uses the `edit-form` attribute to create a form for the work package full view (as seen in the Gif above) - [`ProjectDetailsComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/shared/components/grids/widgets/project-details/project-details.component.html) Exemplary widget template that uses the form for project attributes - - - - ## Minimal example The [`ProjectDetailsComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/shared/components/grids/widgets/project-details/project-details.component.html) is a very isolated example showing how to use the edit-form together with `EditableAttributeField` component to show the actual inline-editable field. - - On the example of a work package, this following code snippet would create an edit form for a given work package resource and an attribute for the `subject` attribute of that work package. ```html @@ -277,24 +242,16 @@ On the example of a work package, this following code snippet would create an ed ``` - - While this doesn't take care of any labels or styling, it will already provide error handling for the given field and allow proper saving of the changes to the resource. - - ![Minimal example of the edit form](basic-example.gif) - - ## Work package single view The work package single view is the boss fight of inline editing. It combines all the previous concepts with the flexibility of work package attributes and type configuration. The following screenshot is [bug report #34250](https://community.openproject.org/wp/34250), which is a work package of Type `Bug`. The Bug type has a [specific form configuration](../../../system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on) defined. This configuration is as follows: - - ![bug-form-configuration](bug-form-configuration.png) The Bug has three attribute groups defined with a set of attributes in it. These attributes correspond to the attribute groups in the `single view`. @@ -311,8 +268,6 @@ The type defines which type of group is being rendered. The attribute group is t The [`WorkPackageSingleViewComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/features/work-packages/components/wp-single-view/wp-single-view.component.ts) turns this definition into a template through its method `rebuildGroupedFields`. The template iterates over these and outputs the appropriate attribute or query group. - - ![Work package single view](single-view.png) In the end, each of the attributes in the two groups above are a `EditableAttributeField`, and the entire page wraps these attributes in an `EditFormComponent`. diff --git a/docs/development/concepts/permissions/README.md b/docs/development/concepts/permissions/README.md index 5d4dde478400..17f6b1016966 100644 --- a/docs/development/concepts/permissions/README.md +++ b/docs/development/concepts/permissions/README.md @@ -60,6 +60,7 @@ The way a developer can check for permissions obviously depends on whether the b ### Desired layer While not the case throughout the application, permissions: + * should be checked in the Contracts whenever wanting to change a record. This also includes the values that are assignable (e.g. which users are available to become assignee of a work package) * should be applied to scopes whenever fetching a set of records. Even when only fetching an individual record it is best to apply a scope checking the visibility before the `find` instead of fetching the record first and then check for the visibility. * needs unfortunately to be checked in the view/representers whenever an attribute is visible for one group of users but not for another. diff --git a/docs/development/concepts/queries/README.md b/docs/development/concepts/queries/README.md index eefc9df0eb75..9dabadfb54b2 100644 --- a/docs/development/concepts/queries/README.md +++ b/docs/development/concepts/queries/README.md @@ -17,10 +17,6 @@ For the work packages table, the query object holds the way the table displays ( A query can be persisted by a user or created dynamically through a set of parameters. It can be published and shared with other users of the project or application. - - - - ## Key takeaways *Queries ...* @@ -30,8 +26,6 @@ A query can be persisted by a user or created dynamically through a set of param - can be created on the fly through URL / body parameters - can be requested through the APIv3 to get the resulting resources collection of the query in a paginated way - - ## Prerequisites The following guides are related: @@ -40,8 +34,6 @@ The following guides are related: - Backend API overview - - ## Query definition A query is an object that revolves about two types of information: @@ -51,9 +43,6 @@ A query is an object that revolves about two types of information: Currently, the Queries endpoint and object is highly specific to work packages, but this is bound to change with more resources becoming queryable. For some other resources such as projects, queries already exists in the backend, but not yet in the frontend application. - - - ## API Backend Queries are regular APIv3 grape endpoints that can be accessed through the `/api/v3/queries` namespace. In general, they can be maintained in two ways: @@ -67,8 +56,6 @@ A number of parameters can be passed to the Query through parameters as elaborat Clients can define a query once, save it and use it later on to load the same set of filters, columns, and so on. When retrieved from the database (a query id is passed), the query has been previously stored. Saved properties may be overridden through URL parameters, which override the existing saved query. - - ### Query collections responses Since queries can be saved and should be listed to the user such as in the work package sidebar, they can also be requested as a collection of resources through `/api/v3/queries`. This endpoint can also be filtered. For more details on that, see the [respective APIv3 Queries filtering section](../../../api/endpoints/queries/#query-filter-instance). @@ -103,12 +90,8 @@ A major, but complex functionality of the query is the `filters` object to deter ![Work package query filters](filters.png) - - These filters are also saved within the queries. Read the [APIv3 filters documentation guide](../../../api/filters/) to know more about how filters and their syntax work. - - ### Exemplary query response Due to the public nature of the OpenProject community, you can check out the following exemplary query response in HAL+JSON: [community.openproject.org/api/v3/queries/2453](https://community.openproject.org/api/v3/queries/2453) @@ -117,16 +100,12 @@ It returns a saved query for the OpenProject 11.0 release, with a type filter `t The resulting work packages will differ based on the visibility of the work packages and your permissions in the projects. For more information, check out [the concept on permissions](../permissions). - - ## Frontend usage As the singular Query JSON object encompasses a large amount of different concerns, the frontend splits this resource up into quite a substantial amount of services for isolating the individual behaviors. This guide will not go into too much detail on the actual components using these services, as they will be subject to change and detailed in another guide. - - ### Isolating query spaces in the frontend The work packages module can load multiple queries on a single page. If for example, you open a query and a work package with an embedded table showing (such as showing related or child work packages), the application will request and render two queries and work package tables. diff --git a/docs/development/concepts/resource-changesets/README.md b/docs/development/concepts/resource-changesets/README.md index 0b14ab41cebf..3e8094265829 100644 --- a/docs/development/concepts/resource-changesets/README.md +++ b/docs/development/concepts/resource-changesets/README.md @@ -18,8 +18,6 @@ Resource changesets allow to edit resources in a transparent way, tracking its c - provide a `Proxy` javascript object `projectedResource` to the resource with the changes applied - encapsulates a temporary schema and form resource for accessing newly added fields and errors - - ## Prerequisites In order to understand Inline Editing, you will need the following concepts: @@ -28,14 +26,10 @@ In order to understand Inline Editing, you will need the following concepts: - [Schemas](../resource-schemas) - - ## Classes overview Let's go over the classes and services used to provide access to changesets. - - ### ResourceChangeset The `ResourceChangeset` class is a temporarily created class whose lifetime is determined by the editing duration of a user to a resource such as work package. It gets created automatically when rendering inline-editable fields and is reset/destroyed/reinstantiated when a change has been submitted to the backend, or when the changes are cancelled. @@ -46,21 +40,16 @@ The changeset maintains references to * The actual `Changeset` object of changes (basically a map of `attribute -> values` of changes) * The `FormResource` for the resource (due to temporary changes such as switching types or projects in work packages) - The changeset provides a high level access to getting and writing changes as well as caching resources around editing to avoid reloading them too often. It also provides access to a `projectedResource`, which is a proxy class on the HAL resource with all overridden values returned from the changeset. It behaves as if the modified resource was saved and returned. The ResourceChangeset is possibly subclassed for specific HAL resource types. For example, by the `WorkPackageChangeset`, a resource changeset specifically for work packages to correctly handle cases like switching types or projects - which will require in a reloading of the `FormResource` and its embedded schema for identifying and showing new attributes. - - ### HalResourceEditingService In order to *create*, *remove* or *saving* changesets for a specific resource, the `HalResourceEditingService` is provided at various hierarchies of the application. The service maintains a store of available resource changesets, whose states and changes can be observed with an RXJS observable. The main entry point for editing changesets is `HalResourceEditingService#changeFor`, which will either continue editing an existing changeset, or create a new one for the given class. - - #### Minimal example on using the changeset ```typescript @@ -96,18 +85,12 @@ console.log(changeset.isEmpty()); // true console.log(changeset2.isEmpty()); // true ``` - - #### Saving the changeset In order to save a changeset, you would simply pass it to `HalResourceEditingService#save`. This will save the changes to the APIv3 and update the resource. It returns a `ResourceChangesetCommit` which is a reference to the changes and resulting resource. - - You will often see other components pushing into the changeset, such as the `EditFieldComponent`. To find out more about the inline editing functionality, see [this guide](../inline-editing). - - #### Temporary editing resources Some components such as the `WorkPackageSingleView` needs to update the view upon changes to a resource under edit. A prominent, but complex example is the work package gaining or losing attribute fields due to the `Type` or `Project` being changed. This is due to custom fields being configurable on a per-project level. @@ -118,11 +101,6 @@ Assume you start creating a new work package of type `Task`, and then switch to For this to work, the `WorkPackageSingleView` needs to have access to the work package *as if it was saved* after the type was changed. But the work package is a new resource and not yet actually saved. That's why `HalResourceEditingService#temporaryEditingResource` returns an observable state that returns either the pristine work package, or the proxied work package by the changeset to transparently access the modified-yet-unsaved work package resource. - - ## Additional resources Changesets are used in several components throughout the application. Notable examples are the [inline editing `EditForm`](../inline-editing). - - - diff --git a/docs/development/concepts/resource-schemas/README.md b/docs/development/concepts/resource-schemas/README.md index 5a808c30b035..1064689db7dd 100644 --- a/docs/development/concepts/resource-schemas/README.md +++ b/docs/development/concepts/resource-schemas/README.md @@ -11,8 +11,6 @@ keywords: concept, schemas, resource schemas In OpenProject, editable resources such as work packages or projects can be highly customized by the user. A resource can have an arbitrary number of additional custom fields. In the frontend, the associated schema to a resource needs to be loaded in many cases when rendering attributes of that resource, such as in an [inline-editable field](../inline-editing). - - ## Key takeaways Schema objects are the dictionary for the frontend application to identify the available properties of a resource. @@ -21,11 +19,9 @@ Schema objects are the dictionary for the frontend application to identify the a - a (possibly) localized name - The value type of the defined attributes -- Constraints for the authenticated user, i.e., whether the attribute is currently writable +- Constraints for the authenticated user, i.e., whether the attribute is currently writable - (optional) additional option definitions for the attribute. - - ## Prerequisites The following guides are related: @@ -34,21 +30,16 @@ The following guides are related: - Backend API overview - - - ## API Backend Schemas in the backend are regular Grape endpoints. For example, the schema of all projects is rendered through the [`::API::V3::Projects::Schemas::ProjectsSchemaAPI`](https://github.com/opf/openproject/blob/dev/lib/api/v3/projects/schemas/project_schema_api.rb). This in turn renders the associated [`::API::V3::Projects::Schemas::ProjectsSchemaRepresenter`](https://github.com/opf/openproject/blob/dev/lib/api/v3/projects/schemas/project_schema_representer.rb), which contains the set of schema properties to be rendered. The work packages' schemas are significantly more complex. Each work package type will define its own schema due to the dynamics of the [form configuration](../../../system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on). With it, the order and grouping of work package attributes can be defined per type, resulting in different attributes to be displayed. In addition, custom fields can be individually enable per project for even more flexibility. -This results in not a single schema for all work packages, but one schema for each project - type combination. +This results in not a single schema for all work packages, but one schema for each project - type combination. The resulting schema JSON is an object with properties that look like the following: - - ```json5 { "property": { @@ -65,20 +56,14 @@ The resulting schema JSON is an object with properties that look like the follow } ``` - - ### Schema examples This section describes some of the existing schemas. - - **Projects** For projects, there is a single APIv3 endpoint for their schemas: `/api/v3/projects/schema`. This schema is identical for all projects. You can simply request the OpenProject Community schema for projects [here](https://community.openproject.org/api/v3/projects/schema). It contains a set of static properties (name, identifier, status, etc.), as well as all project-level custom fields. - - **Work packages** The work package schema is more complicated, as work package types can be customized to define what attributes the type should show as part of the [form configuration](../../../system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on). Additionally, the visibility of custom fields can be controlled on a per-project level. @@ -89,8 +74,6 @@ An exemplary schema response on the Community for the OpenProject project (`ID=1 The work package schema also contains the reference to the attribute groups from the form configuration in the `_attributeGroups` property. - - ## Frontend usage The OpenProject frontend usually ensure that whenever you get access to a HAL resource, its associated schema (if there is any) is also loaded. This is done through the [`SchemaCacheService`](https://github.com/opf/openproject/blob/dev/frontend/src/app/core/schemas/schema-cache.service.ts). It will request the associated schema unless it has already been cached in the global states object to avoid loading a schema multiple times. @@ -134,8 +117,6 @@ export interface IFieldSchema { } ``` - - ### Form schemas When you try to update a resource such as a work package, you will commonly request a `Form` resource for this work package, which is a temporary resource that will have your changes applied to them, including error handling. In these forms, an embedded schema is output that represents the schema with permissions applied for the current user. @@ -143,4 +124,3 @@ When you try to update a resource such as a work package, you will commonly requ For example, if you try to update a work package type from let's say `Bug` to `Feature`, you would POST to the form with its type link updated, and are returned with a form object. The embedded schema of this form now points to the `Feature` type, and may contain additional attributes to render due to the differing form configuration. These embedded schemas are never globally cached in the frontend, as they are highly dependent on the changes pushed to the form resource. They are always contained within a `ResourceChangeset`. Please see [the separate guide on changesets](../resource-changesets/) for more information. - diff --git a/docs/development/concepts/secure-coding/README.md b/docs/development/concepts/secure-coding/README.md index 75ab7d7824a8..81ea089ac266 100644 --- a/docs/development/concepts/secure-coding/README.md +++ b/docs/development/concepts/secure-coding/README.md @@ -126,7 +126,7 @@ At its core, permissions in OpenProject are the central key to determine who can - Implement controls and authorization checks with a *Deny by default* or *Fallback deny* rule, preventing authorization flows to miss certain steps and allowing user requests to fall through the authorization checks. - Validate the permissions of a user on every request, regardless of the origin of it. - Enforce proper authorization controls to ensure that users only access their own data. -- Provide extensive tests for permission checks, making assertions of all available cases and using visibility testing for asserting that certain actors _cannot_ access data or perform actions. +- Provide extensive tests for permission checks, making assertions of all available cases and using visibility testing for asserting that certain actors _cannot_ access data or perform actions. - Regularly review and update access controls to reflect changes in application functionality and roles. **References** @@ -171,7 +171,7 @@ As OpenProject may handle and distribute sensitive user data, attack vectors suc **Risks and impacts** -- *Viruses and malware uploads*: Whenever users are able to upload files to a system, potentially malicious files could be provided and distributed through OpenProject by users with the appropriate upload permission. +- *Viruses and malware uploads*: Whenever users are able to upload files to a system, potentially malicious files could be provided and distributed through OpenProject by users with the appropriate upload permission. - *Malware in software*: OpenProject carefully selects and updates third-party dependencies. Please see the following section on [external dependencies](#external-dependencies) for more information on the best practices of external dependencies. **Guidelines** @@ -182,7 +182,7 @@ As OpenProject may handle and distribute sensitive user data, attack vectors suc - OpenProject currently does not provide a built-in virus scanner. However, using [webhooks](../../../system-admin-guide/api-and-webhooks/#webhooks) and the [attachments API](../../../api/endpoints/attachments/), users can plug existing virus scanning tools and scrub any uploaded files. - *Malware in software*: - OpenProject uses statical code analysis on every change provided to the application as well as code scanners on the artifacts generated from the source code (such as Snyk vulnerability scanner for Docker images). - - We recommend users to perform their own + - We recommend users to perform their own ## Logging and Error Handling @@ -234,7 +234,7 @@ OpenProject includes a number of external dependencies both in Ruby as well as i **Guidelines** - *Automate Updates*: Use and maintain automated tools such as Dependabot and workflows that check for dependency updates regularly, and run tests when updates are available. Before updating the dependencies, review its changelog or release notes to understand changes and potential impacts on your application. -- *Manual update checking:* For pinned versions, use `npm outdated`, `bundle outdated` or `npm-check-updates `to ensure you stay on top of new versions and see if breaking changes occurred. +- *Manual update checking:* For pinned versions, use `npm outdated`, `bundle outdated` or `npm-check-updates` to ensure you stay on top of new versions and see if breaking changes occurred. - *Lockfile integrity*: Use `package-lock.json` and `Gemfile.lock` to pin exact version for a released version of OpenProject, ensuring that all environments use the same versions. - *Stay Informed*: Subscribe to mailing lists, newsletters, or vulnerability databases to receive timely information on crucial updates or security patches so that updates can be performed as fast as possible. - *Vet new dependencies*: Before adding a new gem or package, research its maintenance history, last update, known vulnerabilities, and community reviews. Check if it's actively maintained, and evaluate all the alternatives. @@ -250,7 +250,7 @@ Packaging and containerization are critical artifacts in the delivery pipeline o Properly managed packaging and containerization pipelines ensure smooth installations, upgrades, and scaling, enhancing the deployment process and - as a result - the overall user experience. This section highlights risks connected to improper containerization or packaging as well as our main objectives and best practices to provide a secure, efficient, and reliable software delivery process. -OpenProject provides several installation mechanisms: +OpenProject provides several installation mechanisms: - [Packaged installations](../../../installation-and-operations/installation/packaged/) using the distribution's package manager for dependency control diff --git a/docs/development/concepts/state-management/README.md b/docs/development/concepts/state-management/README.md index 4c0d374c4999..b1739945efb1 100644 --- a/docs/development/concepts/state-management/README.md +++ b/docs/development/concepts/state-management/README.md @@ -9,8 +9,6 @@ keywords: state management, stores, input states State management in complex frontend applications is a topic that has been heavily evolving over the past years. Redux and stores, one-way data flow are all the rage nowadays. OpenProject is an old application, so its frontend exists way before these concepts were introduced and became popular. - - ## Key takeaways *State management in OpenProject frontend...* @@ -19,8 +17,6 @@ State management in complex frontend applications is a topic that has been heavi - `State` and `InputState` are mostly syntactic sugar over RxJS `Subject` and `BehaviorSubject` - States are used to hold and cache values with their values and non-values being observable - - ## InputState An `InputState` object is a wrapper around RxJS [`BehaviorSubject`](https://rxjs.dev/api/index/class/BehaviorSubject). It provides some syntactic sugar over it to inspect values and provide helpers to observe streams and fill in the underlying `Subject`. @@ -36,8 +32,6 @@ console.log(state.hasValue()); // false console.log(state.value); // undefined ``` - - An InputState will hold exactly one value, that you can fill explicitly: ```typescript @@ -48,16 +42,12 @@ console.log(state.hasValue()); // true console.log(state.value); // 'my value' ``` - - You can find out if a value is older than a specific amount of ms: ```typescript state.isValueOlderThan(60000); // Value is older than 60 seconds? ``` - - The value can be explicitly cleared with `state.clear()`. You can also fill the InputState with the result of a promise request. With `putFromPromiseIfPristine`, the promise will only be requested if the state is empty. This is useful for performing API requests that should not be re-executed while the value is cached. @@ -66,16 +56,12 @@ You can also fill the InputState with the result of a promise request. With `put state.putFromPromiseIfPristine(() => Promise.resolve('my new value')); ``` - - To find out if there is an active promise request, use `state.hasActivePromiseRequest()`. You can also explicitly clear and put from promise in one step: ```typescript state.clearAndPutFromPromise(Promise.resolve('overridden value')); ``` - - You can get an RxJS `Observable` to the value stream with `state.values$()`: ```typescript @@ -92,14 +78,10 @@ state .subscribe(val => console.log("Observed " + (val ? "String value" : "Undefined")); ``` - - ## MultiInputState The `MultiInputState` is basically a map with a string key and an `InputState` as its value. It is used for most of the cache stores in OpenProject. - - To create a `MultiInputState`, use the helper method `multiInput()` . To get an `InputState` member of this map, use the following: ```typescript @@ -131,10 +113,6 @@ multi // CHANGE for my identifier: new ``` - - - - ## StatesGroup The `StatesGroup` aggregates multiple States or MultiInputStates into one class. The only benefit to this is debugging capabilities of the reactivestates library. You can call the following method in development mode to see all changes to states in a StateGroup logged to console: @@ -145,19 +123,16 @@ window.enableReactiveStatesLogging(); This might then look like the following, with green color for added objects, and red color for removed values: -``` +```text [RS] Changesets.changesets[/api/v3/projects/1] {o=4} "[object Object]" ``` - - ## 🔗 Code references - [`StatesService`](https://github.com/opf/openproject/blob/dev/frontend/src/app/core/states/states.service.ts) Global `States` cache of MultiInputStates - [`IsolatedQuerySpace`](https://github.com/opf/openproject/blob/dev/frontend/src/app/features/work-packages/directives/query-space/isolated-query-space.ts) Query space `StatesGroup`. Is instantiated multiple times whenever a work package query is loaded. See [the separate concept guide](../queries) for more information. - [ReactiveStates](https://github.com/ReactiveStates/reactivestates) library we use for the StatesGroup. This was developed by Roman primarily for us during AngularJS times. - ## Discussions - In contrast to a `Store` concept of redux, the States and state groups do not have any concept of data immutability. As a caller you will need to ensure that. In OpenProject, many of the states are in fact mutable due to historic reasons and the fact that complex class instances are passed around that cannot be easily shallow copied. This will need to be refactored in the future. diff --git a/docs/development/concepts/stimulus/README.md b/docs/development/concepts/stimulus/README.md index 8f735eaf45f0..af7199d220ff 100644 --- a/docs/development/concepts/stimulus/README.md +++ b/docs/development/concepts/stimulus/README.md @@ -13,16 +13,12 @@ In a decision to move OpenProject towards the [Hotwire approach](https://hotwire This guide will outline how to add controllers and the conventions around it. This is _not_ a documentation of stimulus itself. Use their documentation instead: https://stimulus.hotwired.dev - - ## Adding controllers All controllers live under `frontend/src/stimulus/controllers/`. The naming convention is `.controller.ts`, meaning to dasherize the name of the controller. This makes it easier to generate names and classes using common IDEs. If you want to add a common pattern, manually register the controller under `frontend/src/stimulus/setup.ts`. Often you'll want to have a dynamically loaded controller instead though. - - ### Dynamically loaded controllers To dynamically load a controller, it needs to live under `frontend/src/stimulus/controllers/dynamic/.controller.ts`. @@ -33,8 +29,6 @@ In DOM, you'll tell the application the controller is dynamically loaded using t
``` - - #### Namespacing dynamic controllers If you want to organize your dynamic controllers in a subfolder, use the [double dash convention](https://stimulus.hotwired.dev/handbook/installing#controller-filenames-map-to-identifiers) of stimulus. For example, adding a new admin controller `settings`, you'd do the following: @@ -46,12 +40,8 @@ If you want to organize your dynamic controllers in a subfolder, use the [double
``` - - You need to take care to prefix all actions, values etc. with the exact same pattern, e.g., `data-admin--settings-target="foobar"`. - - ### Requiring a page controller If you have a single controller used in a partial, we have added a helper to use in a partial in order to append a controller to the `#content`tag. This is useful if your template doesn't have a single DOM root. For example, to load the dynamic `project-storage-form` controller and provide a custom value to it: @@ -61,4 +51,3 @@ If you have a single controller used in a partial, we have added a helper to use dynamic: true, 'project-storage-form-folder-mode-value': @project_storage.project_folder_mode %> ``` - diff --git a/docs/development/concepts/translations/README.md b/docs/development/concepts/translations/README.md index d4237061e9b9..c78edd4f9add 100644 --- a/docs/development/concepts/translations/README.md +++ b/docs/development/concepts/translations/README.md @@ -13,8 +13,6 @@ Not all translations are fully translated, and they will fallback to english str ![Overview of translation and their progress](translations-overview.png) - - ## Key takeaways *Translations in OpenProject...* @@ -22,8 +20,6 @@ Not all translations are fully translated, and they will fallback to english str - depend on the [I18n yaml-based Rails standard](https://guides.rubyonrails.org/i18n.html) for translation files - are split into backend and frontend strings - - ## I18n definitions The OpenProject localizable strings are stored in the [Rails-standard I18n YAML files](https://guides.rubyonrails.org/i18n.html). The core only manages english source strings in `en.yml` and `js-en.yml` files. The can be found at `config/locales/en.yml` and `config/locales/js-en.yml`, respectively. @@ -32,22 +28,16 @@ Additionally, modules can define their own translations, such as `modules/budget The `js-en.yml` are not special on their own, but are simply prefixed with the `js:` key at the beginning of the file. This means all translations within are prefixed with the `js.` key. This is picked up by [`I18n.js`](https://github.com/fnando/i18n-js), a Ruby gem and frontend library that helps outputting javascript objects for the frontend. Only strings that are prefixed with `js.` and some internals will end up in the frontend due to the config we applied in [`config/i18n.yml`](https://github.com/opf/openproject/blob/dev/config/i18n.yml). The translations are output by the rake task `./bin/rails assets:export_locales` to `frontend/src/locales/{language}.js`. - - ## Using I18n in your Rails code You are likely familiar already with the `I18n.t` helper provided by Rails. We simply use this helper to localize strings. Translations are simply loaded by Rails and available everywhere in the application. - - Let's say want to add a specific label to a work package page and use that in a HTML ruby file, you should go through this way: You have to add the below rows to the appropriate `en.yml` file. If you're editing a module, add the string to the module's `config/locales/en.yml` file. You should prefix your string unless its something very generic: - - ```yaml # ... work_packages: @@ -55,34 +45,24 @@ work_packages: my_button: "My localized button label" ``` - - You can then use the `t()` helper method in the Rails erb view to translate the string: ```erb <%= styled_button_tag t('work_packages.my_specific_page.my_button') %> ``` - - Outside of the views and controllers, you need to use the module function `I18n.t` to be used, for example in Ruby tests: ```ruby expect(page).to have_selector('button', text: I18n.t('work_packages.my_specific_page.my_button')) ``` - - The Rails guide on translations will give advanced examples on variable interpolation and the like: [guides.rubyonrails.org/i18n](https://guides.rubyonrails.org/i18n.html) - - ## Using I18n in your frontend code The frontend receives all translations prefixed with `js-` (see above) through compiled javascript files from `frontend/src/locales/{language}.js` folder generated by I18n.js. These locales are loaded early on in the application in [frontend/src/main.ts](https://github.com/opf/openproject/blob/dev/frontend/src/main.ts) to ensure they are present when the page loads. The import happens dynamically so only the language the user has selected is going to be loaded by webpack. - - If you want to create an angular component named ‘news’ and translate the text of a "save news" button and author of the news, you should go through this way: You have to add the below (exemplary) entry to the `js-en.yml` file @@ -95,11 +75,7 @@ js: label_added_by: "Added by %{author}" ``` - - -You will then need to access the Angular [ `I18nService`](https://github.com/opf/openproject/blob/dev/frontend/src/app/core/i18n/i18n.service.ts) that provides access to the `I18n.js` helper. Right now, there is also a window global `I18n` that works, but it is not recommended to use that wherever you can inject the service instead. - - +You will then need to access the Angular [`I18nService`](https://github.com/opf/openproject/blob/dev/frontend/src/app/core/i18n/i18n.service.ts) that provides access to the `I18n.js` helper. Right now, there is also a window global `I18n` that works, but it is not recommended to use that wherever you can inject the service instead. In the `news.component.ts`, you should import the `I18nService`. Then you have to define a property named ‘text’ used for all text in your component, like below: @@ -110,8 +86,6 @@ public text = { }; ``` - - Then you can use them as below in your template: ```html @@ -124,6 +98,4 @@ Then you can use them as below in your template: ``` - - For more information on formatting and other helpers of the `I18n.js` library, see [github.com/fnando/i18n-js](https://github.com/fnando/i18n-js) diff --git a/docs/development/concepts/wysiwyg-editor/README.md b/docs/development/concepts/wysiwyg-editor/README.md index c3d5e3e35931..056c5b9e7ba1 100644 --- a/docs/development/concepts/wysiwyg-editor/README.md +++ b/docs/development/concepts/wysiwyg-editor/README.md @@ -25,12 +25,14 @@ Is the HTML input data once loaded into the editor. ckEditor has a Model "DOM" w ### Views CkEditor has two types of views: + * **Data View:** the editor's input/output, the data imported to the editor and exported from the editor (HTML). * **Editing View:** the UI, the elements that the user interacts with in the editor's UI. ### Controller Layer in charge of transforming the elements from the two Views to the Model and the other way around. This means to transform: + * The Data View (input HTML elements) into Model elements and the other way around. * The Editing View (UI elements) into Model elements and the other way around. @@ -88,7 +90,6 @@ CkEditor comes with a debugger inspector that will make the development process In order to activate it, just import it (```import CKEditorInspector from '@ckeditor/ckeditor5-inspector';```) at the beginning of the ```op-config-customizer.js``` file and then attach it inside the editorClass.create method: - ```javascript return editorClass.create(wrapper, configuration).then(editor => { CKEditorInspector.attach(editor); @@ -103,13 +104,13 @@ As an example, let's take a look at our mention feature that allows mentioning c In order to get it working, we did the following steps: -#### 1 - Markdown to HTML +### 1 - Markdown to HTML Define how the markdown elements are going to be translated to HTML elements. In this case, the backend is going to send the mention elements as tags (<mention ...>...</mention>) right inside the markdown data, so we don't need to make any conversion in order to turn it into the valid HTML that the CkEditor needs. \ \ In case it would be needed, it would be defined in the CommonMarkDataProcessor class (```commonmarkdataprocessor.js```), in its "toView" method. -#### 2 - Upcast +### 2 - Upcast Define how the mention elements of the HTML input data are going to be represented in the ckEditor's Model: @@ -145,12 +146,10 @@ Here we basically say that when the ckEditor finds a 'mention' element with the This is defined in the CkEditor plugin (```mentions-caster.js```). - -#### 3 - Editing downcast +### 3 - Editing downcast Define how the mention attribute is going to be represented in the ckEditor's UI (Editing View): - ```javascript editor.conversion .for('editingDowncast') @@ -182,7 +181,7 @@ Here we say that we want to place the mention attributes of the ckEditor's model \ This is defined in the CkEditor plugin (```mentions-caster.js```). -#### 4 - Data downcast +### 4 - Data downcast Define how the mention attribute is going to be represented in the ckEditor's output (Data View): @@ -219,7 +218,7 @@ This is defined in the CkEditor plugin (```mentions-caster.js```). The model update of the mentions when the user adds or removes a mention is handled by the editor features/plugins (a third party mention plugin in this case). -#### 5 - HTML to Markdown +### 5 - HTML to Markdown Define how the HTML mention tags are going to be represented in the markdown. They should be placed as strings, so we need to turn any mention element into its string representation: diff --git a/docs/development/contribution-documentation/README.md b/docs/development/contribution-documentation/README.md index 4d8868227004..39055ad8e01f 100644 --- a/docs/development/contribution-documentation/README.md +++ b/docs/development/contribution-documentation/README.md @@ -20,23 +20,17 @@ Current and future users of the application find instructions for the set up and This documentation evolves continuously with new features and improvements to achieve clarity, accuracy, and completeness. - - ## Where to find the OpenProject documentation? -The documentation for OpenProject is published [here](https://www.openproject.org/docs/). You can also access the documentation from your OpenProject application under user guides and API documentation below the question mark at the top right in the header menu. - - +The documentation for OpenProject is published [here](https://www.openproject.org/docs/). You can also access the documentation from your OpenProject application under user guides and API documentation below the question mark at the top right in the header menu. ## Who can contribute to the documentation? -Being proudly open source, we invite anyone in our community to contribute to our software as well as the documentation to improve it even further. - - +Being proudly open source, we invite anyone in our community to contribute to our software as well as the documentation to improve it even further. ## What can you contribute to the documentation? -Documentation improvements and changes apply to the documentation described in the section above. Documentation changes are **not** changes or additions to the code of the OpenProject application. For contributions to the code, see our [product development guide](../product-development-handbook/). +Documentation improvements and changes apply to the documentation described in the section above. Documentation changes are **not** changes or additions to the code of the OpenProject application. For contributions to the code, see our [product development guide](../product-development-handbook/). We are looking forward to receiving the following contributions from you: @@ -52,8 +46,6 @@ We are looking forward to receiving the following contributions from you: - Translations into your mother tongue (coming soon). - - ## Overview | Topic | Content | @@ -62,6 +54,4 @@ We are looking forward to receiving the following contributions from you: | [Documentation style guide](documentation-style-guide) | What are the styles and other requirements to follow when contributing to the documentation? | | [Contribution support](contribution-support) | What to do if you need help regarding your contribution to the documentation? | - - -With this guide for contributing to the OpenProject documentation we followed and took inspiration from the [Contribute to GitLab guide](https://about.gitlab.com/community/contribute/). +With this guide for contributing to the OpenProject documentation we followed and took inspiration from the [Contribute to GitLab guide](https://about.gitlab.com/community/contribute/). diff --git a/docs/development/contribution-documentation/contribution-support/README.md b/docs/development/contribution-documentation/contribution-support/README.md index ac8d94e48b30..d72ae9bfd253 100644 --- a/docs/development/contribution-documentation/contribution-support/README.md +++ b/docs/development/contribution-documentation/contribution-support/README.md @@ -20,4 +20,4 @@ If you have any questions on the contribution process or encounter problems with 5. Attach a screen-shot or log-file (optional). -6. Press **Save**. \ No newline at end of file +6. Press **Save**. diff --git a/docs/development/contribution-documentation/documentation-process-internal-contributor/README.md b/docs/development/contribution-documentation/documentation-process-internal-contributor/README.md index 918a9e1f3844..f3d2f091716c 100644 --- a/docs/development/contribution-documentation/documentation-process-internal-contributor/README.md +++ b/docs/development/contribution-documentation/documentation-process-internal-contributor/README.md @@ -10,7 +10,6 @@ keywords: contribution, documentation, documentation process This guide describes how internal team members with write permissions can contribute to the OpenProject documentation. - ## Prerequisites 1. [The contributor has a user account on GitHub.com](../../../development/contribution-documentation/documentation-process/#step-1-create-user-account-on-githubcom) @@ -30,7 +29,6 @@ In the modal window select the repository ""*opf/openproject*"". Also select a f ## Step 2: Update local repository (fetch origin) - > **Important**: Before you make changes always update your local repository. 1. Select the branch you want to work on, e.g. `release/13.0` in the main toolbar. @@ -40,7 +38,7 @@ In the modal window select the repository ""*opf/openproject*"". Also select a f ## Step 3: Create a new Git branch for your change -1. Select the latest release branch e.g. `release/13.0` as the current branch. +1. Select the latest release branch e.g. `release/13.0` as the current branch. ![create new branch - step 1](create-new-branch-step-1.png) 2. In the same drop down click on **New branch**. @@ -75,9 +73,7 @@ At the moment your change is only available in your local repository. To make it A pull request is a workflow to ask for a review from the OpenProject team. With a pull request you basically ask a team member to check your changes and to merge it to the branch you want your change to merged to, e.g. `release/13.0` . After you pushed your local changes to your own repository click the button **Create Pull Request**. -![](create-pull-request-github-desktop.png) - - +![Create a pull request](create-pull-request-github-desktop.png) In the first dropdown select the base branch you want your work to be merged in e.g. `release/13.0`. In the second dropdown select the branch you created in step 3 which contains your changes. @@ -87,11 +83,11 @@ In the description field of the pull request enter a summary for the changes you ## Step 9: Request review -Select the label "*documentation*". +Select the label "*documentation*". -![add documentation label for pull request](add-documentation-label-pull-requests.png) +![add documentation label for pull request](add-documentation-label-pull-requests.png) -In the field "*Reviewers*" select "*opf/doc-writers".* +In the field "*Reviewers*" select "*opf/doc-writers".* ![select reviewer for documentation](select-reviewer-for-documentation.png) diff --git a/docs/development/contribution-documentation/documentation-process/README.md b/docs/development/contribution-documentation/documentation-process/README.md index 1962c6a0c252..93b6fc86ab35 100644 --- a/docs/development/contribution-documentation/documentation-process/README.md +++ b/docs/development/contribution-documentation/documentation-process/README.md @@ -10,7 +10,6 @@ keywords: contribution, documentation, documentation process, tool setup This guide describes how to contribute to the OpenProject documentation, including the tool setup. - ## Setup the tools to easily contribute to the OpenProject documentation This guide aims to help users that are new to Git and Markdown to contribute to the OpenProject documentation. There are a two very helpful tools that makes it extremely easy to contribute to OpenProject: @@ -26,7 +25,7 @@ You need an account on GitHub.com to contribute to the OpenProject documentation ## Step 2: Install Typora -You can download the installer from the [Typora website](https://typora.io). Follow the prompts to complete the installation. In case you need more information there are very detailed [help](https://support.typora.io/) for each supported operating systems [Linux](https://support.typora.io/Typora-on-Linux/), [macOS](https://support.typora.io/Typora-on-macOS/) and [Windows](https://support.typora.io/Typora-on-Windows/). +You can download the installer from the [Typora website](https://typora.io). Follow the prompts to complete the installation. In case you need more information there are very detailed [help](https://support.typora.io/) for each supported operating systems [Linux](https://support.typora.io/Typora-on-Linux/), [macOS](https://support.typora.io/Typora-on-macOS/) and [Windows](https://support.typora.io/Typora-on-Windows/). ## Step 3: Install GitHub Desktop @@ -40,8 +39,6 @@ To exchange data between your local repository and remote repositories you need In the next screen click on "Continue with browser". - - ![continue sign in in browser](continue-sign-in-in-browser.png) This opens your browser. To authenticate to type your GitHub.com credentials and click **Sign in**. If you have configured two-factor authentication (2FA) for GitHub enter your 2FA code in the prompt on GitHub and click **Verify**. @@ -50,7 +47,7 @@ Alternatively, if you were already signed in to GitHub, follow the prompts to re After authenticating your account, you are ready to manage and contribute to projects with GitHub Desktop. -## Step 5: Fork the OpenProject repository +## Step 5: Fork the OpenProject repository If you are an external contributor you don't have write permissions on the repository [https://github.com/opf/openproject](https://github.com/opf/openproject). In this case you first need to fork the repository by clicking the button [Fork](https://github.com/opf/openproject/fork). This basically means that you have your own copy of the repository on GitHub.com. Since it is your own repository you have write privileges here. @@ -92,8 +89,6 @@ Before you can make changes you need to create a local clone of the OpenProject ![clone repository](clone-repository.png) - - In the modal window select the repository you forked in step *Fork the OpenProject repository*. Also select a folder on your computer for the cloned repository. Click **Clone**. ![select repository to be cloned](select-repository-to-be-cloned.png) @@ -104,7 +99,7 @@ In the next screen select **To contribute to the parent project**. ## Step 10: Create a new Git branch for your change -Select the latest release branch e.g. `release/12.3` as the current branch. +Select the latest release branch e.g. `release/12.3` as the current branch. ![create new branch - step 1](create-new-branch-step-1.png) @@ -116,8 +111,6 @@ After that Publish your branch to the forked remote repository on github.com. ![create new branch - step 3](create-new-branch-step-3.png) - - ## Step 11: Open the files you want to change in Typora In Typora open the files you want to change (File -> Open). In the file picker navigate to the local folder you selected in the step *Clone the forked OpenProject repository in GitHub Desktop*. @@ -144,9 +137,7 @@ At the moment your change is only available in your local repository. To make it A pull request is a workflow to ask for a review from the OpenProject team. With a pull request you basically ask to check your changes and to copy it over to the OpenProject repository (opf/openproject). After you pushed your local changes to your own repository click the button **Create Pull Request**. -![](create-pull-request-github-desktop.png) - - +![Create a pull request](create-pull-request-github-desktop.png) Your Draft Pull Request will be created in the browser **on github.com** (the "draft" status of the pull request signals that you are still working on it and it is not yet ready for a review.) Here select the latest release branch e.g. `release/12.4` in the **"base:"** dropdown on the left side. In the **"compare:"** dropdown select the branch you have changed. @@ -154,7 +145,7 @@ Your Draft Pull Request will be created in the browser **on github.com** (the "d In the description field of the pull request enter a summary for the changes you made. If there is already a work package on https://community.openproject.org you can also add this to the description with its complete URL. This adds a relation between your pull request and the work package. -Once you have made all the changed and are certain that these are final, you can request a review. +Once you have made all the changed and are certain that these are final, you can request a review. ## Step 16: Request review @@ -166,7 +157,7 @@ In the field "Reviewers" select "opf/doc-writers". ![select reviewer for documentation](select-reviewer-for-documentation.png) -Now you can press "Ready for review" button. +Now you can press "Ready for review" button. ![ready for review](Ready-for-review.png) @@ -174,69 +165,60 @@ Now you can press "Ready for review" button. ... and hopefully it is all LGTM which means "Looks good to me(rge). Congrats to your first contribution to the OpenProject documentation. We appreciate your effort :-) - - ## Appendix A: How to import a new release branch into your fork *(e.g. Release changes from `release/12.2` to `release 12.3`)* If a new release branch is generated on the upstream opf/openproject repository, the fork will NOT automatically fetch and merge and generate this release branch. With the following 'workaround' we get the new branch from the upstream (opf) repository and push it to our new origin (forked repository). -#### A) Change Remote Repository to UPSTREAM +### A) Change Remote Repository to UPSTREAM In GitHub Desktop choose menu "Repository -> Repository settings". This will open a new window (screenshot below). Enter the URL of the upstream/original OpenProject repository (e.g. https://github.com/opf/openproject.git). Confirm with **Save** ![rebase-your-fork-step-1](rebase-your-fork-step-1.png) -#### B) Fetch origin (in this case repository 'opf') +### B) Fetch origin (in this case repository 'opf') -In GitHub Desktop **at Current branch the old branch is visible [1]** . After you press **Fetch origin [2]** you will be able to **select the new branch at Current branch** (e.g. `origin/release/12.3` +In GitHub Desktop **at Current branch the old branch is visible [1]** . After you press **Fetch origin [2]** you will be able to **select the new branch at Current branch** (e.g. `origin/release/12.3` ![rebase-your-fork-step-2](rebase-your-fork-step-2.png) -#### C) Change remote repository back to the forked repository (ORIGIN) +### C) Change remote repository back to the forked repository (ORIGIN) In Github Desktop choose menu "Repository -> Repository settings". This will open a new window (screenshot below). Enter the URL of your forked OpenProject repository (e.g. https://github.com/adam-op/openproject.git). Confirm with **Save** ![rebase-your-fork-step-3](rebase-your-fork-step-3.png) -#### D) PUSH to the forked repository (ORIGIN) +### D) PUSH to the forked repository (ORIGIN) In GitHub Desktop choose menu "Repository -> Push". ![rebase-your-fork-step-4](rebase-your-fork-step-4.png) - - - - ## Appendix B: How to change the Branch of an open Pull Request If a new release branch is generated on the upstream opf/openproject repository, **and the steps in Appendix A were done** to get the new branch to the fork. We still might have open Pull Requests on the old, now outdated, release branch. The following steps show how to re-base your open Pull Requests to the new release branch. It is important, because otherwise your changes will not be synchronized with the online documentation on the webpage -#### A) Open the Pull Request in the forked repository +### A) Open the Pull Request in the forked repository ![open-pr-in-forked-repository](./open-pr-in-forked-repository.png) -#### B) Edit the Pull Request +### B) Edit the Pull Request Click on the Edit button on the right side of the Pull Request subject ![edit-the-pull-request](./edit-the-pull-request.png) -#### C) Open the Branches drop down list +### C) Open the Branches drop down list ![branches-drop-down-list](./branches-drop-down-list.png) -#### D) Select the new release branch +### D) Select the new release branch ![select-the-new-release-branch](./select-the-new-release-branch.png) -#### E) Resolving Conflicts +### E) Resolving Conflicts It is possible that conflicts will be shown after you change the release branch, depending on how much time passed between the new release branch being created and the Pull Request being rebased. If you change the branches, you need to do a rebase to the updated target branch and remove any commits that should not be in there. It's hard to document this as what you need to remove depends on the target branches. You can read up on how this works in general by searching for "rebasing" or "interactive rebase" for the git client of your choice. Reach out to us by mentioning or assigning an OpenProject developer to your PR in github if you still need help in rebasing your branch. Over time you'll learn what is necessary. - - - diff --git a/docs/development/contribution-documentation/documentation-style-guide/README.md b/docs/development/contribution-documentation/documentation-style-guide/README.md index a8d79473e6ea..3f804689d083 100644 --- a/docs/development/contribution-documentation/documentation-style-guide/README.md +++ b/docs/development/contribution-documentation/documentation-style-guide/README.md @@ -78,7 +78,7 @@ Do not include the same information in multiple places. Instead, link through to ## References across the documentation -- When mentioning other OpenProject modules or features, link to their respective documentation, at least on first mention. +- When mentioning other OpenProject modules or features, link to their respective documentation, at least on first mention. - Please see in [links](#links) how to use links within the documentation. @@ -86,7 +86,7 @@ Do not include the same information in multiple places. Instead, link through to ## Structure in documents -- Structure content in tables or lists etc. in alphabetical order unless there is a reason to use any other order of importance. +- Structure content in tables or lists etc. in alphabetical order unless there is a reason to use any other order of importance. ## Documentation language @@ -96,7 +96,7 @@ The OpenProject documentation should be as clear and easy to understand as possi - Write in US English with US grammar. -We aim to use fair language on our language and documentation and choose gender-neutral terms whenever possible. If this is not possible due to the language, e.g. German, we use : to be as inclusive as possible. Please refer to the [fair language guide](../../translate-openproject/fair-language/) for more specific instructions. +We aim to use fair language on our language and documentation and choose gender-neutral terms whenever possible. If this is not possible due to the language, e.g. German, we use : to be as inclusive as possible. Please refer to the [fair language guide](../../translate-openproject/fair-language/) for more specific instructions. ## Capitalization @@ -131,7 +131,7 @@ Capitalize names of: Follow the capitalization style by the third party which may use non-standard case styles. For example: OpenProject, GitHub. -## Placeholders +## Placeholders ### User information @@ -205,7 +205,7 @@ Follow these steps: 3. And then finish off with something else. -Example for an unordered list: +Example for an unordered list: - Feature 1 @@ -256,7 +256,7 @@ instead of: - Start with an H2 (##) and respect the order H2 > H3. Never skip the hierarchy level, such as H3 > H2. Do not go lower in the hierarchy than H3 (###). -- Do not use symbols and special characters in headings. +- Do not use symbols and special characters in headings. - When possible, avoid including words that might change in the future. Changing a heading changes its anchor URL, which affects other pages that link to this headline. @@ -290,7 +290,7 @@ Links are important in the documentation. Use links instead of duplicating conte ### Links to internal documentation -Internal links are links within the OpenProject website which includes the OpenProject documentation. In these cases, use relative links. I.e. do not use the full URL of the linked page but instead show the current URL's relation to the linked page's URL. +Internal links are links within the OpenProject website which includes the OpenProject documentation. In these cases, use relative links. I.e. do not use the full URL of the linked page but instead show the current URL's relation to the linked page's URL. To link to internal documentation: @@ -383,4 +383,3 @@ Use alert boxes to call attention to information. The alert boxes in the OpenPro ```markdown > **Note**: If you do not have an OpenProject installation yet, please visit our site on [how to create an OpenProject trial installation](../../enterprise-guide/enterprise-cloud-guide/#create-a-new-account). ``` - diff --git a/docs/development/create-omniauth-plugin/README.md b/docs/development/create-omniauth-plugin/README.md index 866a1a5a7dc2..761788897537 100644 --- a/docs/development/create-omniauth-plugin/README.md +++ b/docs/development/create-omniauth-plugin/README.md @@ -119,4 +119,3 @@ The first line in the snippet shown above is only necessary because the `openpro ### Profit That’s it. Now users can authenticate using your own provider. - diff --git a/docs/development/create-openproject-plugin/README.md b/docs/development/create-openproject-plugin/README.md index 4a76477dd8bb..4300f774b669 100644 --- a/docs/development/create-openproject-plugin/README.md +++ b/docs/development/create-openproject-plugin/README.md @@ -53,6 +53,7 @@ Feel free to ask for help in our [Development Forum](https://community.openproje The following steps are necessary to release a new plugin: ### Code Review + A code review should check the whole code and remove glitches like: - Inappropriate comments @@ -64,6 +65,7 @@ A code review should check the whole code and remove glitches like: 1. Check the license and the copyright of the plugin to be released Usually, this should be GPLv3 and we are the copyright owner. However, some plugins might have additional authors or might originate from code with a different license. These issues have to be resolved first. Also check the years in the copyright. If you need to find all contributors of a repository including their contribution period use the following rake task: + ```shell rake copyright:authors:show['../Path/to/repository/'] ``` @@ -137,8 +139,7 @@ It is probably best to use READMEs of already released plugins as a template. 4. Twitter with a link to the news article. 5. If the plugin is referenced in our feature tour, add a download link to the plugin in the feature tour - -# Frontend plugins [WIP] +## Frontend plugins [WIP] Plugins that extend the frontend application may be packaged as **npm modules**. These plugins must contain a `package.json` in the root directory of the plugin. diff --git a/docs/development/development-environment-docker-macos/README.md b/docs/development/development-environment-docker-macos/README.md index b20f3065fedd..4457931890fc 100644 --- a/docs/development/development-environment-docker-macos/README.md +++ b/docs/development/development-environment-docker-macos/README.md @@ -21,7 +21,7 @@ As Docker runs in a virtual machine, a shared filesystem is needed and applicati The following is a benchmark performed on a _MacBook Pro, 2019 16 GB 2667 MHz DDR4 2.3 GHz 8-Core Intel Core i9_ ```shell -$ time docker compose exec backend-test bundle exec rspec spec/models/work_package_spec.rb +time docker compose exec backend-test bundle exec rspec spec/models/work_package_spec.rb ``` | Runtime | Run1 | Run2| @@ -36,7 +36,7 @@ $ time docker compose exec backend-test bundle exec rspec spec/models/work_packa _Ref Quick Start Guide [here](https://docs.orbstack.dev/quick-start)_ ```shell -$ brew install orbstack +brew install orbstack ``` **Note:** You can use Docker contexts to run OrbStack and Docker Desktop side-by-side. Switching contexts affects all Docker commands you run from that point on. [Ref: Side-by-side](https://docs.orbstack.dev/install#reverting) @@ -51,5 +51,5 @@ docker context use desktop-linux To view the list of docker contexts run: ```shell -$ docker context ls +docker context ls ``` diff --git a/docs/development/development-environment-docker/README.md b/docs/development/development-environment-docker/README.md index dbfe1b08f6cb..5c509b74e3cd 100644 --- a/docs/development/development-environment-docker/README.md +++ b/docs/development/development-environment-docker/README.md @@ -47,7 +47,6 @@ docker compose run --rm backend-test bundle exec rspec spec/features/work_packag More details and options follow in the next section. - > **Note**: docker compose needs access to at least 4GB of RAM. E.g. for Mac, this requires > to [increase the default limit of the virtualized host](https://docs.docker.com/docker-for-mac/). > Signs of lacking memory include an "Exit status 137" in the frontend container. @@ -456,7 +455,7 @@ When a dependency of the image or the base image itself is changed you may need Ruby version is updated you may run into an error like the following when running `docker compose run --rm backend setup`: -``` +```text Your Ruby version is 2.7.6, but your Gemfile specified ~> 3.2.3 ``` diff --git a/docs/development/development-environment-osx/README.md b/docs/development/development-environment-osx/README.md index 7fc10b642a7f..c128ea8f7c73 100644 --- a/docs/development/development-environment-osx/README.md +++ b/docs/development/development-environment-osx/README.md @@ -17,19 +17,19 @@ OpenProject will be installed with a PostgreSQL database. If you find any bugs or you have any recommendations for improving this tutorial, please, feel free to send a pull request or comment in the [OpenProject forums](https://community.openproject.org/projects/openproject/boards). -# Prepare your environment +## Prepare your environment We'll use [homebrew](https://brew.sh/) to install most of our requirements. Please install that first using the guide on their homepage. -## Install Ruby +### Install Ruby Use [rbenv](https://github.com/rbenv/rbenv) and [ruby-build](https://github.com/rbenv/ruby-build#readme) to install Ruby. We always require the latest ruby versions, and you can check which version is required by [checking the Gemfile](https://github.com/opf/openproject/blob/dev/Gemfile#L31) for the `ruby "~> X.Y"` statement. At the time of writing, this version is "3.3.1" -### Install rbenv and ruby-build +#### Install rbenv and ruby-build rbenv is a ruby version manager that lets you quickly switch between ruby versions. ruby-build is an addon to rbenv that installs ruby versions. @@ -41,7 +41,7 @@ $ brew install rbenv ruby-build $ rbenv init ``` -### Installing ruby +#### Installing ruby With both installed, we can now install the actual ruby version. You can check available ruby versions with `rbenv install --list`. @@ -69,7 +69,7 @@ You also need to install [bundler](https://github.com/bundler/bundler/), the rub gem install bundler ``` -## Setup PostgreSQL database +### Setup PostgreSQL database Next, install a PostgreSQL database. If you wish to use a MySQL database instead and have installed one, skip these steps. @@ -85,7 +85,7 @@ $ postgres -D /usr/local/var/postgres Then, create the OpenProject database user and accompanied database. ```shell -$ createuser -d -P openproject +createuser -d -P openproject ``` You will be prompted for a password, for the remainder of these instructions, we assume its `openproject-dev-password`. @@ -93,25 +93,25 @@ You will be prompted for a password, for the remainder of these instructions, we Now, create the database `openproject_dev` and `openproject_test` owned by the previously created user. ```shell -$ createdb -O openproject openproject_dev -$ createdb -O openproject openproject_test +createdb -O openproject openproject_dev +createdb -O openproject openproject_test ``` -## Install Node.js +### Install Node.js We will install the latest LTS version of Node.js via [nodenv](https://github.com/nodenv/nodenv). This is basically the same steps as for rbenv: -### Install nodenv and node-build +#### Install nodenv and node-build ```shell # Install -$ brew install nodenv node-build +brew install nodenv node-build # Initialize nodenv -$ nodenv init +nodenv init ``` -### Install latest LTS node version +#### Install latest LTS node version You can find the latest LTS version here: [nodejs.org/en/download](https://nodejs.org/en/download/) @@ -122,13 +122,13 @@ nodenv install 20.9.0 nodenv global 20.9.0 ``` -### Update NPM to the latest version +#### Update NPM to the latest version ```shell npm install npm@latest -g ``` -## Verify your installation +### Verify your installation You should now have an active ruby and node installation. Verify that it works with these commands. @@ -146,7 +146,7 @@ npm --version 10.5.0 ``` -# Install OpenProject +## Install OpenProject ```shell # Download the repository @@ -158,7 +158,7 @@ Note that we have checked out the `dev` branch of the OpenProject repository. De the `dev` branch (there is no `master` branch). So, if you want to develop a feature, create a feature branch from a current `dev` branch. -## Configure OpenProject +### Configure OpenProject Create and configure the database configuration file in `config/database.yml` (relative to the openproject-directory. @@ -190,7 +190,7 @@ To configure the environment variables such as the number of web server threads the `.env.example` to `.env` and add the environment variables you want to configure. The variables will be automatically loaded to the application's environment. -## Finish the Installation of OpenProject +### Finish the Installation of OpenProject Install code dependencies, link plugin modules and export translation files. @@ -211,7 +211,7 @@ RAILS_ENV=development bin/rails db:seed 1 -## Run OpenProject through overmind +### Run OpenProject through overmind You can run all required workers of OpenProject through `overmind`, which combines them in a single tab. Optionally, you may also @@ -243,14 +243,16 @@ documentation [usage section](https://github.com/DarthSim/overmind/tree/v2.4.0#u You can access the application with the admin-account having the following credentials: - Username: admin - Password: admin +```text +Username: admin +Password: admin +``` -## Run OpenProject manually +### Run OpenProject manually To run OpenProject manually, you need to run the rails server and the webpack frontend bundler to: -### Rails web server +#### Rails web server ```shell RAILS_ENV=development bin/rails server @@ -258,7 +260,7 @@ RAILS_ENV=development bin/rails server This will start the development server on port `3000` by default. -### Angular frontend +#### Angular frontend To run the frontend server, please run @@ -273,7 +275,7 @@ should you be working on the TypeScript / Angular frontend part. You can then access the application either through `localhost:3000` (Rails server) or through the frontend proxied `http://localhost:4200`, which will provide hot reloading for changed frontend code. -### Delayed Job background worker +#### Delayed Job background worker ```shell RAILS_ENV=development bundle exec good_job start @@ -281,12 +283,12 @@ RAILS_ENV=development bundle exec good_job start This will start a Delayed::Job worker to perform asynchronous jobs like sending emails. -## Additional test dependencies +### Additional test dependencies The test suite requires a few additional dependencies to be installed. These are not required for running OpenProject in development mode, but only for running the entire test suite. -### Java 7 or later +#### Java 7 or later To test the integration with LDAP servers, we rely on [ladle](https://github.com/NUBIC/ladle) to spin up an LDAP server when running tests. As this runs [ApacheDS](https://directory.apache.org/apacheds/) internally, it requires Java 7 or @@ -301,7 +303,7 @@ brew install openjdk sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk ``` -### Subversion +#### Subversion To test the integration with Subversion repositories, we rely on the `svnadmin` command to be available. If subversion is not installed, the tests *will be skipped*. To run the tests, install subversion with @@ -310,7 +312,7 @@ is not installed, the tests *will be skipped*. To run the tests, install subvers brew install subversion ``` -### Git +#### Git To test the integration with Git repositories, we rely on the `git` command to be available. Git is either installed via the Xcode Command Line Tools, with [Xcode](https://apps.apple.com/us/app/xcode/id497799835?mt=12) or via homebrew. @@ -323,9 +325,9 @@ xcode-select --install brew install git ``` -## Known issues +### Known issues -### Spawning a lot of browser tabs +#### Spawning a lot of browser tabs If you haven't run this command for a while, chances are that a lot of background jobs have queued up and might cause a significant amount of open tabs (due to the way we deliver mails with the letter_opener gem). To get rid of the jobs @@ -336,7 +338,7 @@ in a production setting.** RAILS_ENV=development bin/rails runner "Delayed::Job.delete_all" ``` -## Start Coding +### Start Coding Please have a look at [our development guidelines](../code-review-guidelines) for tips and guides on how to start coding. We have advice on how to get your changes back into the OpenProject core as smooth as possible. @@ -344,13 +346,13 @@ Also, take a look at the `doc` directory in our sources, especially the [how to run tests](https://github.com/opf/openproject/blob/dev/docs/development/running-tests) documentation (we like to have automated tests for every new developed feature). -## Troubleshooting +### Troubleshooting The OpenProject logfile can be found in `log/development.log`. If an error occurs, it should be logged there (as well as in the output to STDOUT/STDERR of the rails server process). -## Questions, Comments, and Feedback +### Questions, Comments, and Feedback If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate community.openproject.org [forum](https://community.openproject.org/projects/openproject/boards/9). diff --git a/docs/development/development-environment-ubuntu/README.md b/docs/development/development-environment-ubuntu/README.md index b6fe2f074994..cfec8ee00c4f 100644 --- a/docs/development/development-environment-ubuntu/README.md +++ b/docs/development/development-environment-ubuntu/README.md @@ -23,7 +23,7 @@ Remark: *At the time of writing* in this page refers to 12/10/2021 If you find any bugs or you have any recommendations for improving this tutorial, please, feel free to send a pull request or comment in the [OpenProject forums](https://community.openproject.org/projects/openproject/boards). -# Prepare your environment +## Prepare your environment We need an active Ruby and Node JS environment to run OpenProject. To this end, we need some packages installed on the system.o @@ -36,14 +36,14 @@ sudo apt-get update sudo apt-get install git curl build-essential zlib1g-dev libyaml-dev libssl-dev libpq-dev libreadline-dev ``` -## Install Ruby +### Install Ruby Use [rbenv](https://github.com/rbenv/rbenv) and [ruby-build](https://github.com/rbenv/ruby-build#readme) to install Ruby. We always require the latest ruby versions, and you can check which version is required by [checking the Gemfile](https://github.com/opf/openproject/blob/dev/Gemfile#L31) for the `ruby "~> X.Y"` statement. At the time of writing, this version is "3.3.1" -### Install rbenv and ruby-build +#### Install rbenv and ruby-build rbenv is a ruby version manager that lets you quickly switch between ruby versions. ruby-build is an addon to rbenv that installs ruby versions. @@ -64,7 +64,7 @@ echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc source ~/.bashrc ``` -### Installing ruby-build +#### Installing ruby-build ruby-build is an addon to rbenv that installs ruby versions @@ -72,7 +72,7 @@ ruby-build is an addon to rbenv that installs ruby versions git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build ``` -### Installing ruby +#### Installing ruby With both installed, we can now install ruby. You can check available ruby versions with `rbenv install --list`. At the time of this writing, the latest stable version is `3.3.1` which we also require. @@ -100,7 +100,7 @@ an error, first try with a fresh reboot). If you get `Command 'gem' not found...` here, ensure you followed the instructions `rbenv init` command to ensure it is loaded in your shell. -## Setup PostgreSQL database +### Setup PostgreSQL database Next, install a PostgreSQL database. @@ -127,12 +127,12 @@ Now, create the database `openproject_dev` and `openproject_test` owned by the p [postgres@ubuntu]# exit ``` -## Install Node.js +### Install Node.js We will install the latest LTS version of Node.js via [nodenv](https://github.com/nodenv/nodenv). This is basically the same steps as for rbenv: -### Install nodenv +#### Install nodenv ```shell # Install nodenv @@ -150,13 +150,13 @@ echo 'eval "$(nodenv init -)"' >> ~/.bashrc source ~/.bashrc ``` -### Install node-build +#### Install node-build ```shell git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build ``` -### Install latest LTS node version +#### Install latest LTS node version You can find the latest LTS version here: [nodejs.org/en/download/](https://nodejs.org/en/download/) @@ -168,13 +168,13 @@ nodenv global 20.9.0 nodenv rehash ``` -### Update NPM to the latest version +#### Update NPM to the latest version ```shell npm install npm@latest -g ``` -## Verify your installation +### Verify your installation You should now have an active ruby and node installation. Verify that it works with these commands. @@ -192,7 +192,7 @@ npm --version 10.5.0 ``` -# Install OpenProject Sources +## Install OpenProject Sources In order to create a pull request to the core OpenProject repository, you will want to fork it to your own GitHub account. @@ -214,7 +214,7 @@ Note that we have checked out the `dev` branch of the OpenProject repository. De the `dev` branch (there is no `master` branch). So, if you want to develop a feature, create a feature branch from a current `dev` branch. -## Configure OpenProject +### Configure OpenProject Create and configure the database configuration file in `config/database.yml` (relative to the openproject-directory. @@ -246,7 +246,7 @@ To configure the environment variables such as the number of web server threads the `.env.example` to `.env` and add the environment variables you want to configure. The variables will be automatically loaded to the application's environment. -## Finish the Installation of OpenProject +### Finish the Installation of OpenProject Install code dependencies, link plugin modules and export translation files. @@ -265,7 +265,7 @@ Now, run the following tasks to seed the dev database, and prepare the test setu RAILS_ENV=development bin/rails db:seed ``` -## Run OpenProject through overmind +### Run OpenProject through overmind You can run all required workers of OpenProject through `overmind`, which combines them in a single tab. Optionally, you may also @@ -297,14 +297,16 @@ documentation [usage section](https://github.com/DarthSim/overmind/tree/v2.4.0#u You can access the application with the admin-account having the following credentials: - Username: admin - Password: admin +```text +Username: admin +Password: admin +``` -## Run OpenProject manually +### Run OpenProject manually To run OpenProject manually, you need to run the rails server and the webpack frontend bundler to: -### Rails web server +#### Rails web server ```shell RAILS_ENV=development bin/rails server @@ -312,7 +314,7 @@ RAILS_ENV=development bin/rails server This will start the development server on port `3000` by default. -### Angular frontend +#### Angular frontend To run the frontend server, please run @@ -327,7 +329,7 @@ should you be working on the TypeScript / Angular frontend part. You can then access the application either through `localhost:3000` (Rails server) or through the frontend proxied `http://localhost:4200`, which will provide hot reloading for changed frontend code. -### Background job worker +#### Background job worker ```shell RAILS_ENV=development bundle exec good_job start @@ -335,9 +337,9 @@ RAILS_ENV=development bundle exec good_job start This will start a Delayed::Job worker to perform asynchronous jobs like sending emails. -## Known issues +### Known issues -### Spawning a lot of browser tabs +#### Spawning a lot of browser tabs If you haven't run this command for a while, chances are that a lot of background jobs have queued up and might cause a significant amount of open tabs (due to the way we deliver mails with the letter_opener gem). To get rid of the jobs @@ -348,7 +350,7 @@ in a production setting.** RAILS_ENV=development bin/rails runner "Delayed::Job.delete_all" ``` -## Start Coding +### Start Coding Please have a look at [our development guidelines](../code-review-guidelines/) for tips and guides on how to start coding. We have advice on how to get your changes back into the OpenProject core as smooth as possible. @@ -356,13 +358,13 @@ Also, take a look at the `doc` directory in our sources, especially the [how to run tests](https://github.com/opf/openproject/tree/dev/docs/development/running-tests) documentation (we like to have automated tests for every new developed feature). -## Troubleshooting +### Troubleshooting The OpenProject logfile can be found in `log/development.log`. If an error occurs, it should be logged there (as well as in the output to STDOUT/STDERR of the rails server process). -## Questions, Comments, and Feedback +### Questions, Comments, and Feedback If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate community.openproject.org [forum](https://community.openproject.org/projects/openproject/boards/9). diff --git a/docs/development/first-look/README.md b/docs/development/first-look/README.md index c987f400a888..22a25755e2c0 100644 --- a/docs/development/first-look/README.md +++ b/docs/development/first-look/README.md @@ -9,7 +9,7 @@ keywords: first look, beta testing ## Join OpenProject beta testing -Your feedback is what makes our product stand out. We are happy if you feel like helping to optimize OpenProject. +Your feedback is what makes our product stand out. We are happy if you feel like helping to optimize OpenProject. ![OpenProject first look beta testing](openproject-first-look-beta-testing.jpg) diff --git a/docs/development/git-workflow/README.md b/docs/development/git-workflow/README.md index 5c4d679a8937..80426489aef7 100644 --- a/docs/development/git-workflow/README.md +++ b/docs/development/git-workflow/README.md @@ -5,35 +5,29 @@ description: How new features and bug fixes are developed at OpenProject keywords: development workflow, gitflow, git flow --- +# Development workflow - -# Development at GitHub +## Development at GitHub This guide will introduce you to how we at OpenProject develop OpenProject with Git, and how to contribute code. For other ways on how to contribute to OpenProject, [please see the contribution guide](../#contributor-code-of-conduct). The OpenProject core is developed fully at our [GitHub repository](https://github.com/opf/openproject). In the course of this guide, we assume that you are familiar with Git. If you need a refresher on certain topics, we recommend the [free Pro Git online book](https://git-scm.com/book/en/v2) as a resource for all topics on Git. - - -# Branching model +## Branching model OpenProject works with a git branching model similar to Git Flow to organize development and stable branches. The important branches are: - - - **`dev`**: Contains the current development version of OpenProject. Almost all development is made against this branch, with the exception of [bugfixes and minor changes](#bugs-and-hotfixes) - **`release/X.Y`**: Multiple of these branches may exist, they are maintenance branches or maintained or stale older releases of OpenProject. These branches will include bugfixes and changes for the next patch release of OpenProject. - **`stable/X`**: Multiple of these branches exist containing the latest stable `X.y.z` release of OpenProject. These branches are used for building docker images and packages from and are usually never pushed to directly except during an automated release process. - **`feature/X`**: These are temporary branches used by developers to develop features or other changes that are targeting the dev branch. They are opened as a pull request for reviewing and testing. When they are ready to merge, they will be merged into the `dev` branch. - **`(bug)fix/X`**: These are temporary branches used by developers to provide bug fixes and regression tests. They can be created against `dev` on a new major or minor release during stabilization, but most often, you will want to create a bugfix against a current production release. In this case, open the pull request against the most recent `release/X.Y` branch so that the bugfix will be available in the immediate next patch release. Ensure that the version of the corresponding OpenProject bug ticket matches the release branch version. - - The following is an overview of the processes that happen during the release of a new major release and the bug fixing phase afterwards leading to patch releases being made. ![Overview of the branches](branching-diagram.png) -# Contribution flow +## Contribution flow The basic overview of how to contribute code to OpenProject is as follows. @@ -42,9 +36,7 @@ The basic overview of how to contribute code to OpenProject is as follows. 3. [Create a pull request](#create-a-pull-request) on our repository. Please see and review [code style and review](../code-review-guidelines) for guidelines on how to submit a pull request and requirements for getting your changes merged. 4. We will evaluate your pull review and changes. - - -## Fork OpenProject +### Fork OpenProject For contributing source code, please follow the git workflow below: @@ -85,9 +77,7 @@ Make your changes, then push the branch into your **own** repository: git push origin ``` - - -## Create a Pull Request +### Create a Pull Request Create a pull request against a branch of of the `opf/openproject` repository, containing a **clear description** of what the pull request attempts to change and/or fix. @@ -95,21 +85,16 @@ If your pull request **does not contain a description** for what it does and wha The core contributor team will then review your pull request according to our [code review guideline](../code-review-guidelines/). Please note that you can add commits after the pull request has been created by pushing to the branch in your fork. - - -### Features +#### Features New features are always added to the current `dev` branch, which is the development version of the next major or minor OpenProject version. - - -### Bugs and hotfixes +#### Bugs and hotfixes Bugfixes for one of the actively supported versions of OpenProject should be issued against the respective branch. For that, we maintain at least one `release/X.Y` branch for OpenProject releases X.Y.Z. For example, the OpenProject release branch for 11.0 would be `release/11.0` and contains all releases between `11.0.0` until `11.0.X` . A fix for the current version (called "Hotfix" and the branch ideally being named `fix/XYZ`) should target `release/*` and a fix for the former version (called "Backport" and the branch ideally being named `backport/XYZ`) should target `backport/*`. We will try to merge hotfixes into dev branch but if that is no trivial task, we might ask you to create another PR for that. - -### Tagging +#### Tagging The stable/X branch with the highest number is the currently supported stable release. Its commits are tagged (e.g. v12.5.8) to pinpoint individual releases. diff --git a/docs/development/kerberos/README.md b/docs/development/kerberos/README.md index 6ba63a4c4a9b..c1e5e9370829 100644 --- a/docs/development/kerberos/README.md +++ b/docs/development/kerberos/README.md @@ -9,20 +9,14 @@ robots: index, follow **Note:** This guide is targeted only at development with OpenProject. For the Kerberos configuration guide, please see this guide: [Kerberos authentication guide](../../system-admin-guide/authentication/kerberos/) - - To test Kerberos, you'll need to setup a local kerberos admin and kdc server. This guide shows you how to do this for debian/ubuntu systems. YMMV on other distributions. - - ## Prerequisites - A debian / ubuntu VM or local machine - A local packaged installation installed using the hostname `openproject.local` - - ## Installing kerberos server First, install kdc and admin server: @@ -33,12 +27,8 @@ apt install krb5-kdc krb5-admin-server krb5-config -y During that installation, you'll be asked to enter the default realm. We'll use `TEST.LOCAL` in the course of this guide. - - ![Defining the default realm](realm.png) - - Next, you'll have to enter the hostnames used for your server. We'll assume this setup: - The development server is running under `openproject.local` @@ -56,24 +46,16 @@ For the administrative server, also enter `kerberos.local` The next dialog, you can simply continue with OK. The configuration will continue, and the krb5-kdc service will fail with a missing database. This is normal. - - ### Adding the realm Next, add the realm with the command `krb5_newrealm`. You'll be prompted for a password. Double-check that it prints this line or similar: `Initializing database '/var/lib/krb5kdc/principal' for realm 'TEST.LOCAL',` - - Enter a password and continue with enter. The realm is now setup. - - Next, you'll restart the kdc server with `systemctl restart krb5-kdc` and confirm it's running with `systemctl status krb5-kdc` - - ### Adding your principal You can now run `kadmin.local` to access the admin CLI for adding principals to kerberos. In that prompt, enter a new user for testing: @@ -84,7 +66,7 @@ This will prompt for a password for user1, which you have to confirm afterwards. To check that the user was created successfully, run this command `get_principal`: -``` +```text > kadmin.local: get_principal user1 Principal: user1@TEST.LOCAL Expiration date: [never] @@ -104,8 +86,6 @@ Attributes: REQUIRES_PRE_AUTH Policy: [none] ``` - - ### Create a service principal and output as keytab The OpenProject Apache module for kerberos will call the kerberos with its own service principal. That we will have to create and add a keytab for, so that the password can be access by Apache. @@ -125,13 +105,12 @@ ktadd -k /etc/apache2/openproject.keytab HTTP/openproject.local ``` Exit the `kadmin.local` console. Make sure the file is readable by apache2: + ```shell chown www-data:www-data /etc/apache2/openproject.keytab chmod 400 /etc/apache2/openproject.keytab ``` - - ## Set up Apache2 kerberos config First, install the GSSAPI apache module with: @@ -140,8 +119,6 @@ First, install the GSSAPI apache module with: apt install libapache2-mod-auth-gssapi ``` - - Add the customization dir `mkdir -p /etc/openproject/addons/apache2/custom/vhost` and create this file: `vim /etc/openproject/addons/apache2/custom/vhost/kerberos.conf` Add the following contents: @@ -175,16 +152,10 @@ Add the following contents: ``` - - -Save the file and check the config with `apache2ctl configtest`. If this works fine, restart apache with `systemctl restart apache2`. - - +Save the file and check the config with `apache2ctl configtest`. If this works fine, restart apache with `systemctl restart apache2`. If your OpenProject installation isn't yet running under `openproject.local`, run `openproject reconfigure` to change the hostname. - - ## Configure OpenProject The rest is the same as the production config. You need to tell OpenProject to use header based SSO: @@ -194,22 +165,14 @@ openproject config:set OPENPROJECT_AUTH__SOURCE__SSO_HEADER="X-Authenticated-Use openproject config:set OPENPROJECT_AUTH__SOURCE__SSO_SECRET="MyPassword" ``` - - Afterwards, restart the OpenProject server with `systemctl restart openproject` - - ## Use the integration If you access OpenProject now, you'll see that the SSO login is tried but fails: - - ![image-20220622164045060](image-20220622164045060.png) - - This is expected, as there is no `user1` login with an auth source connected. To fix that, open a console with `openproject run console` and run: ```ruby @@ -218,6 +181,4 @@ auth_source = LdapAuthSource.create! name: 'test', host: 'localhost', attr_login user = User.create! login: 'user1', firstname: 'user', lastname: 'one', mail: 'user1@example.org', admin: true, ldap_auth_source: auth_source ``` - - Now reload the page and you'll be logged in immediately. diff --git a/docs/development/ldap/README.md b/docs/development/ldap/README.md index 2f3a9dfb3fcd..ae87ae53ae07 100644 --- a/docs/development/ldap/README.md +++ b/docs/development/ldap/README.md @@ -8,7 +8,6 @@ sidebar_navigation: **Note:** This guide is targeted only at development with OpenProject. For the LDAP configuration guide, please see this [here](../../system-admin-guide/authentication/ldap-authentication/) - OpenProject comes with a built-in LDAP server for development purposes. This server uses [ladle gem](https://github.com/NUBIC/ladle) to run an underlying apacheDS server. @@ -23,7 +22,7 @@ This guide will show you how to set it up in your development instance. You only need to run this rake task to start the server: -```bash +```shell ./bin/rails ldap_groups:development:ldap_server ``` diff --git a/docs/development/localhost-ssl/README.md b/docs/development/localhost-ssl/README.md index 86f6c8edc139..3af70041e542 100644 --- a/docs/development/localhost-ssl/README.md +++ b/docs/development/localhost-ssl/README.md @@ -118,19 +118,21 @@ setup a reverse proxy in docker, like [traefik](https://traefik.io/). Then follo - create a `docker-compose.override.yml` - make your openproject services visible with specific host names, i.e. with `traefik` this means adding labels to the services defined host routers + ```yaml labels: - "traefik.http.routers.op-backend.rule=Host(`op-backend.local`)" ``` + - add the extra hosts to your `/etc/hosts` to redirect to `localhost` - add the extra hosts to your `backend` service with + ```yaml OPENPROJECT_DEV_EXTRA_HOSTS: 'op-backend.local,op-backend.local' ``` -#### Reminder - -This setup is still experimental and under further development. Use it only, when you know what you are doing. +> **Reminder**: + This setup is still experimental and under further development. Use it only, when you know what you are doing. ## Questions, Comments, and Feedback diff --git a/docs/development/packaging/README.md b/docs/development/packaging/README.md index 5ea7b5ddae64..98d61fbe0d5d 100644 --- a/docs/development/packaging/README.md +++ b/docs/development/packaging/README.md @@ -21,8 +21,6 @@ The packager.io website observes changes in the repository through webhooks and To see the status of a build, simply follow one of the links and choose a distribution whose logs you want to look at. - - ## Debugging an installed packager integration In some cases, you have an existing packaged installation and would like to debug or change parts of an addon to see if it breaks or works the way you expect it to. diff --git a/docs/development/product-development-handbook/README.md b/docs/development/product-development-handbook/README.md index a838a20e66e8..e6c60f96e640 100644 --- a/docs/development/product-development-handbook/README.md +++ b/docs/development/product-development-handbook/README.md @@ -8,8 +8,6 @@ keywords: product development, requirement process, RICE score # OpenProject product development - - ## 1. Overview & objectives OpenProject aims to connect distributed teams and organizations and make project management intuitive and fun. The application is continuously developed and maintained by an active international community to provide a powerful feature set and yet intuitive user interface. The overall purpose is to create customer benefit. To achieve this, OpenProject follows a requirements and product development process that empathizes identifying and building the functionality which most aligns with OpenProject’s product vision and delivers customer value. @@ -19,6 +17,7 @@ This guide is an evolving description of the steps taken from collecting require ## 2. Process overview The product development process involves various roles during the different phases: + * Product Manager (PM) * Designer * QA/Tester @@ -103,14 +102,12 @@ Product Managers and UX prepare the work together at least one version (~ 2 mont The specification phase may not be necessary for bug fixes, minor design changes, minor improvements of smaller code maintenance topics. - ### 3.1.1 Evaluation phase 1: Collection | Involved | Output | |----------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------| | - Entire team (incl. PMs, UX researcher, developers, etc.)
- Customers
- Community
- Other stakeholders | - Feature request in Wish List
- Bugs in Bug backlog | - The [OpenProject Wish List](https://community.openproject.org/projects/openproject/work_packages?query_id=180) is used to collect a backlog of potential validation opportunities. Requirements may come from customers, internal usage, support messages, community forums or through other communication channels. Requirements should be captured as a **Feature** or **Epic** (for larger features which we can be broken down into smaller features) and focus on describing the customer’s problem rather than jumping ahead to a solution. @@ -150,14 +147,13 @@ Those features judged positively by the PM: For internal or customer requirements requirements may directly be created, evaluated based on the [RICE framework](#42-rice-score) and assigned to the product backlog. - ### 3.1.4 Evaluation phase 4: Requirement specification | Involved | Output | |----------------------------------------------------------------------------|:---------------------------------------------------------------------| | - Product Manager
- UX Researcher
- Developer
- Designer | Specified feature (status “Specified”) in Product Backlog or version | -Based on the Product Managers judgement (taking among other things the RICE score and customer backing into account) validated and prioritized features (status: “In specification”) are specified in more detail: +Based on the Product Managers judgement (taking among other things the RICE score and customer backing into account) validated and prioritized features (status: “In specification”) are specified in more detail: 1. PM specifies the solution and creates mockups (e.g. PowerPoint, Google Docs, …). @@ -198,6 +194,7 @@ During the building phase we develop, improve and test the validated solutions. | - Developer
- QA
- Product Manager
- Designer | Technical work packages ("Implementation") ready for implementation
Test cases for quality assurance | The preparations the development team conducts consists of two parts: + * Preparing for the implementation * Preparing for the quality assurance @@ -209,7 +206,7 @@ For the implementation, prior to working on a new feature, the development team For the quality assurance, prior to testing the feature, QA analyzes the feature from a testing viewpoint: -1. A tester responsible for the quality assurance of the feature is selected. +1. A tester responsible for the quality assurance of the feature is selected. 2. The tester generates test cases out of the specification. Open topics (i.e. unclear specification and omissions in the specification) are clarified together with the PM/Designer. Ideally the preparation of both QA and development happen at the same time so that the specification can be adjusted as early as possible. At the same time, there isn't an explicit need for it to be synchronized. @@ -247,7 +244,7 @@ Changes to the technical documentation, e.g API documentation, are done in paral 1. Tester adapts test plan if acceptance criteria was altered since the original creation of the test plan. 2. Tester performs and verifies additional tests according to the [Writing and Running Tests guide](../../development/running-tests/) to ensure the application has been tested according to specifications and requirements. -3. Tester tests feature (based on test plan) +3. Tester tests feature (based on test plan) 1. Tester adjusts status when no errors in feature (status: “tested”). 2. Tester adjusts status when errors occur (status: “test failed”) and notifies developer (move back to phase 2 - Implementation) @@ -272,7 +269,7 @@ If required changes are identified or predefined acceptance criteria is not met, |------------------------------------|:-------------------| | - Product manager
- Designer | Documented feature | -1. PM/Designer writes the user documentation for the developed feature. +1. PM/Designer writes the user documentation for the developed feature. ### 3.3.5 Building phase 5: Stabilization @@ -287,8 +284,10 @@ Developed features are bundled into a version that is released to the public via 3. QA identifies important bugs to be fixed in the release. 4. Developer fixes bugs from regression testing as well as bugs from former versions. 5. Tester retests bugs + * Tester adjusts status on errors (status: “test failed"). * Tester adjusts status when no errors are found (status: “closed"). + 6. Developer fixes bugs that were not fixed successfully. 7. DevOps deploys release candidate on community.openproject.org. 8. DevOps monitors for failures. @@ -361,15 +360,11 @@ A helpful guideline with further information on the RICE framework is provided b The RICE scoring model aims to objectively evaluate requirements (new products, features, add-ons, …) based on four different criteria to determine the RICE Score: - - > RICE Score = **R**each x **I**mpact x **C**onfidence / **E**ffort - The RICE framework is used especially in the early phases of evaluating requirements and provides an easy and fast way to prioritize feature requests. For complex requirements with a low level of confidence (80% or lower) and / or high effort (more than 1 week), an opportunity canvas should be used in addition to the RICE score. - **Reach** The first factor when determining the RICE score is the number of users reached by the feature. @@ -379,8 +374,6 @@ The reach ranges from 0.5 for minimal reach (less than 5% of users) to 10.0 for Data sources to estimate this may include queries and user data of an associated feature (e.g. number of users using the “Work packages” module on community.openproject.org to determine the value for a new work package requirement), qualitative customer interviews, customer requests, comments on work packages, surveys, etc.. - - **Impact** The second numerator is Impact which refers to the benefits for users and customers. Impact can refer to quantitative measures, such as conversion improvements, increased revenue, decreased risk or decreased cost or to qualitative measures, such as increasing customer delight. @@ -390,8 +383,6 @@ Impact ranges from “Minimal” (0.25) to “Massive” (3.0). The higher the impact, the higher the RICE score. - - **Confidence** Especially for more complex requirements it may be unclear what the reach, impact or effort is. The team may rely more on intuition for a factor. To account for this uncertainty, the confidence component is used. @@ -402,8 +393,6 @@ The confidence score ranges from 50% for low confidence to 100% for high confide If you arrive at a confidence level below 50%, consider this requirement a “Moonshot” and focus your energy on other requirements. - - **Effort** The three aforementioned factors (Reach, Impact, Confidence) represent the numerators of the RICE score. The effort score refers to the estimated resources (product, design, engineering, quality assurance, etc.) in person-months needed to implement a feature. @@ -412,56 +401,38 @@ The effort estimate is an approximate measure which uses shirt sizing. The effort score ranges from 0.03 (XS = less than a day of effort) to 20 (XXXL = more than 12 months of effort). - - ### 4.3 Opportunity Canvas One of the main artifacts used in the evaluation phase is the Opportunity Canvas. The Opportunity Canvas - [slightly adapted from GitLab](https://about.gitlab.com/handbook/product-development-flow) - provides a quick overview of a requirement and includes four main sections as well as two supplemental sections: - - **Main sections:** - - **1. Problem** States the problem that the feature request is addressing. This includes the **Customer** information (the affected persona or persona segment that experiences the problem most acutely), a **Problem** description and a description of the customer **Pain**. - - **2. Business Case** The business case is closely aligned with the RICE score. The business case section includes information on the **Reach** (number of affected customers), **Impact** (how much value do customers get from the feature) and **Confidence** (what are the top risk factors that could prevent the delivery of the solution). Additionally, the **Urgency and Priority** section provides information about the relative importance of the requirement compared to other opportunities, deadlines and other time-related information. - - **3. Solution** The solution to the problem can be laid out in this section. Define the **Minimal Viable Change** in a first version, what is **Out of scope** and the **Differentiation** from the current experience and competing solutions. As an outlook, also provide some information on the **Next iteration**. - - **4. Launch and Growth** To get a complete picture of the requirement and its impact, it is essential to consider its marketing message early on.Define how you **Measure** if you solved the problem by specifying important metrics. Additionally, you can formulate a marketing **message** to identify the value proposition as early as possible. Last but not least, briefly outline the **Go to Market** strategy. - - **Supplemental sections:** - - **1. Learnings** The Opportunity Canvas is an iterative work document. As such it is often helpful to collect some assumptions early on and validate them when conducting customer interviews and learning more about the problem and solution. The Learning section provides space to collect assumptions and validate them over time. - - **2. Learning Goals** The Learning Goals space is closely related to the Learning section. It includes assumptions and ways to validate or invalidate assumptions. @@ -470,9 +441,6 @@ The Opportunity Canvas is intended to quickly validate or invalidate ideas and t An Opportunity Canvas may not always be required - especially when a problem is well understood or small in scope. - - **References:** - [Opportunity Canvas Template](https://docs.google.com/document/d/1sgNrEx_PRCwewI9-46mN0qnyzz2AWq_SwFc6gLOcrbI/edit) - diff --git a/docs/development/profiling/README.md b/docs/development/profiling/README.md index 980c39d5ee4b..9ee193abb75d 100644 --- a/docs/development/profiling/README.md +++ b/docs/development/profiling/README.md @@ -33,10 +33,12 @@ CUSTOM_PLUGIN_GEMFILE=gemfile.profiling OPENPROJECT_RACK_PROFILER_ENABLED=true t This will start the application in development mode, which oftentimes is sufficient, but will lead to slightly distorted results since reloading and reloading checks, especially the ones for I18n, will take place. To avoid this, the application can be started in production mode but before this can happen, the code needs to be adapted slightly: + * Search for the places where `OPENPROJECT_RACK_PROFILER_ENABLED` is referenced within the code and remove the references to `Rails.env.development?` from the conditions. At the time of writing, this needs to be done at: * `config/initializers/rack_profiler.rb` * `config/initializers/secure_headers.rb` * Read the profiling gems to your `Gemfile`/`Gemfile.local`/`Gemfile.profiling` since they would otherwise only be available in the development environment: + ```ruby gem 'flamegraph' gem 'rack-mini-profiler' @@ -45,6 +47,7 @@ gem 'stackprof' ``` Start thin via: + ```shell SECRET_KEY_BASE='abcd' RAILS_ENV=production CUSTOM_PLUGIN_GEMFILE=gemfile.profiling OPENPROJECT_RACK_PROFILER_ENABLED=true thin start ``` diff --git a/docs/development/report-a-bug/README.md b/docs/development/report-a-bug/README.md index 29cf2c940d86..7b65e3b9bc73 100644 --- a/docs/development/report-a-bug/README.md +++ b/docs/development/report-a-bug/README.md @@ -17,12 +17,12 @@ If you find a bug please create a bug report. 6. Attach a screen-shot or log-file file (optional). 7. Press **Create**. +## Information you should add to the bug description -# Information you should add to the bug description - -## Preconditions to reproduce the bug +### Preconditions to reproduce the bug Prior to detailing which steps to take to reproduce the error, the necessary preconditions which have to be met should be stated. + * Which browser did you use when you experienced the error? * Do you receive any error messages in the browser console when the error occurs? Please include the error message if applicable. * Please also include the contents of the browser's developer tool's network tab where applicable. @@ -30,49 +30,49 @@ Prior to detailing which steps to take to reproduce the error, the necessary pre Example: -``` +```markdown * Forum exists * Forum messages exist with many replies ``` -## Steps to reproduce the bug +### Steps to reproduce the bug * The detailed steps that led to the bug should be listed in the description in order to replicate the bug and determine the underlying problem. Example: -``` +```markdown 1. Go to forum 2. Scroll to bottom of messages ``` -## Actual behavior +### Actual behavior * The actual, erroneous behavior should be stated briefly and concisely. Example: -``` +```markdown * Not possible to switch to next entry in pagination ``` -## Expected behavior +### Expected behavior * If known, the expected behavior of the application should be described concisely. Example: -``` +```markdown * Possible to switch to next pagination page ``` -## Screenshots +### Screenshots * If applicable, a screenshot should be added to the bug report in order to explain the bug visually. * The unintended behavior should be marked in the screenshot (e.g. by using red color). * The screenshot can be attached as a file and can be integrated in the description with the following syntax: "!Name_of_screenshot.png!" (without quotation marks) (Notice: *Name_of_screenshot* should be replaced with the respective name of the file. The file ending (here: *.png*) has to be adjusted to the appropriate file type of the screenshot.) -## Example of bug reporting +### Example of bug reporting ![bug_report_example](bug_report_example-1706822.png) diff --git a/docs/development/running-tests/README.md b/docs/development/running-tests/README.md index 0eebfa67defc..3f482e5797eb 100644 --- a/docs/development/running-tests/README.md +++ b/docs/development/running-tests/README.md @@ -2,9 +2,9 @@ OpenProject uses automated tests throughout the stack. Tests that are executed in the browser (angular frontend, rspec system tests) require to have Chrome installed. To ensure we deliver high quality code to our customers, it's essential to conduct various types of tests. +## Testing - -## Involved Roles +### Involved Roles Testing OpenProject is distributed between different roles and members, depending on the testing task. @@ -14,9 +14,7 @@ Testing OpenProject is distributed between different roles and members, dependin - **Usability testing**: UX Designer, Customers, Community members - **Accessibility testing**: Product team, Developer, External accessibility experts - - -## Functional testing +### Functional testing Functional testing ensures that the application works against the set of requirements or specifications. Tests should therefore make sure all the acceptance criteria are met. @@ -31,14 +29,10 @@ The following types of functional tests are used at OpenProject. | [Sanity and regression tests](#sanity-and-regression-tests) | Manual testing of affected or relevant components made after changes or bug fixes to the application. Performed by QA. | e.g., testing the critical path of creating work packages after a bug fix has been made in that data model
Manual execution of test plan defined by QA | | [Acceptance tests](#acceptance-tests) | Final phase of manual testing where the system is evaluated against predefined requirements to ensure it meets user and stakeholder expectations before deployment. | Manual interactions with customers and stakeholders to identify whether we're building the correct part | - - -### Unit tests +#### Unit tests Unit testing concerns testing of isolating individual components of the application, such as individual methods within a model, service, or library, in order to verify that they perform as expected under various conditions. OpenProject uses RSpec for writing unit tests / specs. - - **Key objectives and effects** 1. **Isolated validation of individual components**: Unit tests isolate the smallest testable parts of an application, often single methods or functions, to validate that they function as intended. @@ -46,8 +40,6 @@ Unit testing concerns testing of isolating individual components of the applicat 3. **Code quality**: Unit tests shape the development of a component, ensuring that it is testable by reducing coupling between components and by that, improves code quality. Unit tests, when well written, serve as a form of documentation. 4. **Ease of maintenance**: Unit tests in an interpreted language like Ruby make it easier and safer to refactor code, add new features, or integrate new changes with confidence, knowing that existing functionality is well-tested and which functionality breaks when moving code. - - **Best practices** - Follow the Arrange-Act-Assert (AAA) Pattern @@ -63,24 +55,18 @@ Unit testing concerns testing of isolating individual components of the applicat - Use `FactoryBot` to set up test data in a structured, but randomized way to prevent brittle tests - Mock external components and services, and ensure you test the boundaries of the associated components - - **References** - https://www.browserstack.com/guide/integration-testing - https://www.codewithjason.com/difference-integration-tests-controller-tests-rails/ - https://guides.rubyonrails.org/testing.html - - -### Integration tests +#### Integration tests Integration tests focus on the interactions between different components of OpenProject to ensure they work together to deliver a specific functionality. OpenProject uses RSpec to perform integration tests to simulate real-world user behavior. In contrast to system tests, integration tests still leave out some assumptions or characteristics of the application (e.g., not running tests in an instrumented browser instance). In Rails, the difference between integration tests and feature tests can be blurry. At OpenProject, we assume every test that involves an instrumented browser instance is a *feature spec*. Integration tests can be request or controller specs, or specs in other folders explicitly marked as integration, meaning it will not use mocking to separate the involved components. - - **Key objectives and effects** 1. **Verifying interaction of components**: The primary objective of integration testing is to verify that different components or modules of the application work together as intended. @@ -97,14 +83,10 @@ In Rails, the difference between integration tests and feature tests can be blur - Be wary of long-running and brittle tests and how to avoid them. Due to the nature of integration tests, execution of tests may be prone to more flickering results when compared to unit tests. - Know the difference between integration (i.e., requests, controller) tests and system/feature tests and when to use them. - - -### Feature tests +#### Feature tests Feature tests at OpenProject drive a browser instance to act as if a user was operating the application. This includes logging in, setting session cookies, and navigating/manipulating the browser to interact as the user. - - **Key objectives and effects** 1. **End-to-end testing**: Validate the interaction between the entire stack of the application, including the frontend and backend, to ensure they work as expected. @@ -115,8 +97,6 @@ Feature tests at OpenProject drive a browser instance to act as if a user was op 4. **Responsiveness and compatibility**: Verify that the application's user interface behaves consistently across various browsers, languages, and screen sizes. - - **Best practices** - Happy paths and main errors or permission checks should always be tested with a system test. Avoid testing all edge cases or boundaries using the entire stack, as this will result in slowdown of our CI infrastructure. @@ -126,58 +106,42 @@ Feature tests at OpenProject drive a browser instance to act as if a user was op - While frowned upon in unit tests, test the entire use-case in as few examples as possible to avoid additional overhead (starting the browser, loading factories into database etc.). When using multiple examples, use `let_it_be` / `shared_let` and other improvements from the [test-prof gem](https://github.com/test-prof/test-prof) - Add automated regression tests for bug fixes that are non-trivial - - -### Smoke tests +#### Smoke tests Smoke tests are automated and manual tests to ensure the main application features and happy paths are working as expected. At OpenProject, all installation methods are automatically tested using smoke tests. Packaging processes test all distributions for successful installation of OpenProject. We run the released docker image for setting up and accessing OpenProject. - - **Key objectives and effects** 1. **Verify basic functionality**: Perform a quick check to ensure that the most critical functionalities of the application are working as expected. 2. **Find showstoppers**: Identify critical bugs early in the development process before the stabilization phase. 3. **Early feedback**: Provide quick feedback to the development team. - - **Best practices** - Automate smoke testing on top of manual testing when possible - Run after deployments to the appropriate [environments](../environments), e.g., the edge environment for features of the next release and staging environment for bug fixes to a stable release - Keep smoke tests updated so that they can evolve together with the application - - **References** - https://www.browserstack.com/guide/smoke-testing - - -### Sanity and regression tests +#### Sanity and regression tests Sanity and regression tests are manually performed tests by QA for relevant components on a stabilized version, e.g., the developed new features or components of an OpenProject release. A sanity test is a subset of a regression test, which evaluates the entire application prior to a release or production deployment. - - **Key objectives and effects** 1. **Proper scoping of the test**: For regression test, QA will evaluate the entire application, executing common use-cases of OpenProject. Sanity tests will instead test a subset of the application, e.g., a specific feature in the process of stabilization. 2. **Change impact**: Identify the impact of new code changes, updates, or bug fixes on the relevant functionality or module of OpenProject. 3. **Confidence**: Increases confidence among stakeholders that new or changed functionalities work as expected. - - **Best practices** - Document test plans for regression tests so that they can be executed easily and new QA employees can be onboarded easily - Be very selective about what you test for sanity testing. Focus only on the areas that were affected by recent changes - Stay updated to major code changes so that the regression test plan can be adapted appropriately - - **Usage at OpenProject** For writing and executing manual sanity and regression testing, especially focusing on functional requirements, one of the tools in use at OpenProject is TestLink (https://testlink.org/) to achieve the following goals: @@ -187,24 +151,18 @@ For writing and executing manual sanity and regression testing, especially focus - Test cases are updated with every change of the specifications. - Test cases have precise execution steps and expected results. - - **References** - https://www.browserstack.com/guide/sanity-testing - https://www.browserstack.com/guide/regression-testing - https://medium.com/@Jia_Le_Yeoh/difference-between-regression-sanity-and-smoke-testing-ed2129bf049 - - -### Acceptance tests +#### Acceptance tests Acceptance testing is the final phase of testing where the extension to the OpenProject application is evaluated against predefined requirements to ensure it meets user and stakeholder expectations before deployment. Acceptance tests evaluate both functional and non-functional requirements. - - **Key objectives and effects** 1. **Validation of requirements**: Ensure that the defined feature / change meets all specified requirements, as outlined by the stakeholders and defined by the product team. @@ -213,17 +171,13 @@ Acceptance tests evaluate both functional and non-functional requirements. 4. **System behavior**: Confirm that all features and functionalities behave as expected in real-world scenarios. 5. **Data integrity and workflow**: Verify the end-to-end processes, and ensure data consistency and integrity throughout the system. - - **Best practices** 1. Ensure customer provided user stories and acceptance criteria is well defined before development phase is entered, or be clear and open about the scope of what is to be built. 2. Perform acceptance test in an environment that mimics the production environment as closely as possible. This could be an isolated edge environment, or a separately deployed instance at the customer's request. 3. Maintain clear and detailed documentation of test cases, outcomes, and any *discrepancies* between expected and actual implementation and results. - - -## Non-functional testing +### Non-functional testing Non-functional testing goes beyond the functionality of the product and is aimed at end-user experience. Test cases should hence make sure to define what is expected in terms of security, performance, compatibility, accessibility etc. @@ -237,22 +191,16 @@ Examples for non-functional test cases: software should be compatible with most | [Usability tests](#usability-testing) | Evaluating the UX of the application as defined and in comparison to the requirements. Involves QA, Product, Customer. | e.g., verifying common use-cases as defined in the requirements in an early development stage (such as a PullPreview deployment), or on a pre-released version of the application. | | [Accessibility tests](#accessibility-tests) | Evaluating the accessibility of the application according to [WCAG AA](https://www.w3.org/WAI/WCAG2AA-Conformance) and similar standards | Performing automated keyboard navigation tests.
Manually executing screen readers to ensure application can be used. | - - -### Performance tests +#### Performance tests Identify and prevent common causes of bottlenecks in the application. As OpenProject is a software where a lot of information might come together and presented in a very flexible manner, performance is an ever-present concern and consideration for the developers. - - **Key objectives and effects** 1. **Reliability**: Improve the reliability of the application by identifying bottlenecks and performance issues. 2. **Stress testing**: Identify the limits and the breaking points of the application. 3. **User satisfaction**: Ensure that users have a good experience for common use-cases. - - **Best practices** - Include performance tests, automated or manual, in the development of every feature that involves moving a lot of user data @@ -260,14 +208,10 @@ Identify and prevent common causes of bottlenecks in the application. As OpenPro - Establish a performance baseline so that you can compare how code changes impact performance over time. - OpenProject implements monitoring tools for SaaS applications to monitor performance and identify bottlenecks. - - -### Security tests +#### Security tests Automated or manual security tests for OpenProject are evaluating common weaknesses of web applications and follow the best practices of the [secure coding guidelines](../concepts/secure-coding/). - - **Key objectives and effects** 1. **Vulnerability assessment**: Identify and prevent common security vulnerabilities in the application, such as SQL injection, CSRF, and XSS vulnerabilities. @@ -275,8 +219,6 @@ Automated or manual security tests for OpenProject are evaluating common weaknes 3. **Risk mitigation**: Early identification of security vulnerabilities helps mitigate risks associated with data breaches and unauthorized access. 4. **Audit and compliance**: Ensure that the application complies with internal security guidelines, as well as any industry-specific security standards. - - **Best practices** - Use statical and dynamical code analysis for automated vulnerability testing. OpenProject uses CodeQL and Brakeman as part of the CI pipeline to give early feedback to common vulnerabilities. @@ -285,16 +227,12 @@ Automated or manual security tests for OpenProject are evaluating common weaknes - If possible, automate security tests for common vulnerabilities for input in your development. - Train on recent vulnerabilities and checklists such as [OWASP Top Ten](https://owasp.org/www-project-top-ten/) or [OWASP cheat sheets](https://cheatsheetseries.owasp.org) to stay up-to-date on security testing and extend our security test suite with new information. - - -### Installation and upgrade tests +#### Installation and upgrade tests OpenProject employs a number of automated tests for installation testing. Packaged installation build tests for various distributions, Docker installation smoke tests for verifying correct startup and basic operation of the container. Upgrade tests are manually performed for major code changes and data migrations on pre-release candidates to ensure migrations are working as expected. The [OpenProject Community](https://community.openproject.org) instance also serves as an early release candidate to allow early testing and feedback. - - **Key objectives and effects** 1. **Verify seamless installation**: Ensure that OpenProject can be installed as documented. @@ -304,8 +242,6 @@ Upgrade tests are manually performed for major code changes and data migrations 5. **Technical support**: Reduce the number of support tickets related to installation and upgrade issues. 6. **Operational efficiency**: Minimize downtime and service interruptions during the upgrade process. - - **Best practices** - Use automated testing scripts to simulate various installation and upgrade scenarios. @@ -313,14 +249,10 @@ Upgrade tests are manually performed for major code changes and data migrations - Keep up-to-date documentation for the installation and upgrade procedures, including a list of known issues and workarounds. - Example of test cases would be ensuring that software works in a satisfying manner on major browsers and operating systems which are defined in [system-requirements](../../installation-and-operations/system-requirements/) - - -### Usability testing +#### Usability testing When new features or changes to the application are available on our [Edge or Community environments](../environments), product team members, customers, and community users can provide usability feedback on how the change is perceived. - - **Key objectives and effects** 1. **User-friendliness**: Evaluate how easily end-users can navigate and perform tasks within the application, focusing on intuitiveness and accessibility. @@ -333,8 +265,6 @@ When new features or changes to the application are available on our [Edge or Co 5. **Reduced support costs**: Intuitive and user-friendly designs decrease the volume of help desk or support questions. - - **Best practices** - Involve actual users in requirements and usability feedback to collect genuine user insights. @@ -342,14 +272,10 @@ When new features or changes to the application are available on our [Edge or Co - **Real-world scenarios**: Test the application by simulating real-world tasks and scenarios that a typical user would encounter. - **Quantitative and qualitative metrics**: Use a mix of metrics like task completion rates, error rates, and user satisfaction surveys to comprehensively assess usability. - - -### Accessibility tests +#### Accessibility tests OpenProject strives to be accessible for all users while also retaining a high usability. In web applications, these two requirements can sometimes be a seemingly contradictory requirement, especially when animations or *modern* functionalities of browsers are used. - - **Key objectives and effects** 1. **Compliance with WCAG**: Standards exists to ensure and implement means of accessible interactions for all users. @@ -358,8 +284,6 @@ OpenProject strives to be accessible for all users while also retaining a high u 4. **Navigational ease**: Application can be effectively navigated using only a keyboard, without requiring a mouse. 5. **Contrast and readability**: Test text contrast, size, and spacing to ensure readability for users with visual impairments. - - **Best practices** 1. Make accessibility testing an integral part of the development lifecycle, starting with the requirements. @@ -369,8 +293,6 @@ OpenProject strives to be accessible for all users while also retaining a high u 5. Use [capybara-accessible-selectors](https://github.com/citizensadvice/capybara_accessible_selectors) in [feature tests](#feature-tests) to find UI elements using screen-reader compatible selectors. This ensures the page elements used by feature tests are accessible to assistive technologies. 6. Consult with accessibility experts to conduct audits and provide recommendations for improvements. Alternatively, consult the development colleagues with experience in accessibility testing to evaluate requirements and implementation proposals. - - **References** - https://www.deque.com/axe/browser-extensions/ @@ -379,9 +301,7 @@ OpenProject strives to be accessible for all users while also retaining a high u - https://github.com/dequelabs/axe-core-gems/blob/develop/packages/axe-core-rspec/README.md - https://github.com/citizensadvice/capybara_accessible_selectors - - -# Continuous testing workflow +## Continuous testing workflow As part of the [development flow at OpenProject](../../development/#branching-model-and-development-flow), proposed changes to the core application will be made through a GitHub pull request and the entire test suite is automatically evaluated on GitHub Actions. You will see the results as a status on your pull request. @@ -389,15 +309,12 @@ You will likely start working with the OpenProject test suite through our contin Successful test suite runs are one requirement to see your changes merged. - -## List failures +### List failures A failing status will look like the following on your pull request. You may need to click *Show all checks* to expand all checks to see the details link. ![Exemplary failing github actions test suite](github-broken-tests-pr.png) - - Here you'll see that the *GitHub Actions* check has reported an error, which likely means that your pull request contains errors. It might also result from a [temporary error running the test suite](#tests-failing-on-github-actions-ci-and-passing-locally), or from a test that was broken in the `dev` branch. The test suite is [run in parallel](#parallel-testing) to save time. The overall run time of the test suite is around *15 minutes* on GitHub. @@ -408,11 +325,10 @@ Click on the Details link to see the individual *jobs* that GitHub executes. ![Exemplary failed status details](github-broken-tests-pr-details1.png) - - Click on each job and each step to show the [log output for this job](https://github.com/opf/openproject/pull/9355/checks?check_run_id=2730782867). It will contain more information about how many tests failed and will also temporarily provide a screenshot of the browser during the occurrence of the test failure (only if a browser was involved in testing). In our example, multiple tests are reported as failing: + ```shell rspec ./spec/features/work_packages/pagination_spec.rb[1:1:1:1] # Work package pagination with project scope behaves like paginated work package list is expected not to have text "WorkPackage No. 23" rspec ./spec/features/work_packages/pagination_spec.rb[1:2:1:1] # Work package pagination globally behaves like paginated work package list is expected not to have text "WorkPackage No. 29" @@ -423,21 +339,16 @@ rspec ./spec/features/work_packages/timeline/timeline_navigation_spec.rb:317 # W ![GitHub job log showing failing test](github-broken-tests.png) - - -## Diagnose failures +### Diagnose failures Once you know which tests are failing, run them locally to try and reproduce the failures. Having reproducible failures locally is the first step to diagnose and fix them. How to do this depends on the kind of job that failed. - **Errors in the npm group** An error in the *npm* group means you likely have broken an existing Angular component spec or added an invalid new one. Please see the [Frontend tests](#frontend-tests) section on how to run them. - - **Errors in the units group** An error in the *units* group means there is a failing ruby unit test. Please see the [Unit tests](#unit-tests) section on how to run these. @@ -446,8 +357,6 @@ An error in the *units* group means there is a failing ruby unit test. Please se You will be able to run failing tests locally in a similar fashion for all errors reported in the `units` and `features` jobs. Please see the [System tests](#system-tests) section for more information. - - **Helper to extract all failing tests** There is a small ruby script that will parse the logs of a GitHub Actions run and output all `rspec` tests that failed for you to run in one command. @@ -462,8 +371,7 @@ If you want to run the tests directly to rspec, you can use this command: ./script/github_pr_errors | xargs bundle exec rspec ``` - -## Tests failing on GitHub Actions CI and passing locally +### Tests failing on GitHub Actions CI and passing locally Some tests can fail on GitHub actions CI, and pass locally which makes them harder to reproduce, diagnose, and fix. @@ -499,35 +407,25 @@ Possible reasons are: * Roll the migration back: `rails db:migrate:down VERSION=` * Switch back to where you left: `git switch -` - - -## Skip test execution on GitHub Actions CI +### Skip test execution on GitHub Actions CI Sometimes, you know you're pushing changes to a pull request that you now are work in progress or are known to break existing or new tests. To avoid additional test executions, you can include `[skip ci]` in your commit message to ensure GitHub Actions are not being triggered and skips your build. Please note that a successful merge of your pull request will require a green CI build. - - -# Running tests locally +## Running tests locally As there are multiple ways employed to test OpenProject, you may want to run a specific test or test group. - - -## Prerequisites +### Prerequisites In order to be able to run tests locally, you need to have set up a local development stack. - - -### Verifying your dependencies +#### Verifying your dependencies To ensure your local installation is up to date and prepared for development or running tests, there is a helper script `./bin/setup_dev` that installs backend and frontend dependencies. When switching branches or working on a new topic, it is recommended to run this script again. - - -### Setting up a test database +#### Setting up a test database As part of the development environment guides, you will have created a development and test database and specified it under `config/database.yml`: @@ -548,25 +446,17 @@ test: database: openproject_test ``` - - The configuration above determines that a database called `openproject_test` is used for the backend unit and system tests. The entire contents of this database is being removed during every test suite run. - - Before you can start testing, you will often need to run the database migrations first on the development and the test database. You can use the following rails command for this: ```shell RAILS_ENV=development rails db:migrate db:test:prepare ``` - - This migrates the _development_ database, outputting its schema to `db/schema.rb` and will copy this schema to the test database. This ensures your test database matches your current expected schema. - - -## Frontend tests +### Frontend tests To run JavaScript frontend tests, first ensure you have all necessary dependencies installed via npm (i.e. `npm install`). @@ -582,9 +472,7 @@ Alternatively, when in the `frontend/` folder, you can also use the watch mode o ./node_modules/.bin/ng test --watch ``` - - -## Unit tests +### Unit tests After following the prerequisites, use the following command to run individual specs: @@ -598,9 +486,7 @@ Run multiple specs by separating them with spaces: RAILS_ENV=test bundle exec rspec spec/models/work_package_spec.rb spec/models/project_spec.rb ``` - - -## System tests +### System tests System tests are also called *rspec feature specs* and use [Capybara](https://rubydoc.info/github/teamcapybara/capybara/master) and [Selenium](https://www.selenium.dev/documentation/webdriver/) to run. They are automatically executed with an actual browser when `js: true` is set. @@ -610,17 +496,13 @@ System tests are located in `spec/features`. Use the following command to run in RAILS_ENV=test bundle exec rspec spec/features/auth/login_spec.rb ``` - - -### Dependencies +#### Dependencies For the javascript dependent integration tests, you have to install Chrome and Firefox, to run them locally. Capybara uses Selenium to drive the browser and perform the actions we describe in each spec. We have tests that mostly depend on Chrome and Chromedriver, but some also require specific behavior that works better in automated Firefox browsers. - - -### Running system tests +#### Running system tests Almost all system tests depend on the browser for testing, you will need to have the Angular CLI running to serve frontend assets. @@ -632,15 +514,13 @@ RAILS_ENV=test bundle exec rspec ./modules/documents/spec/features/attachment_up The tests will generally run a lot slower due to the whole application being run end-to-end, but these system tests will provide the most elaborate tests possible. - - You can also run *all* feature specs locally with this command. This is not recommended due to the required execution time. Instead, prefer to select individual tests that you would like to test and let GitHub Actions CI test the entire suite. ```shell RAILS_ENV=test bundle exec rake parallel:features -- --group-number 1 --only-group 1 ``` -#### WSL2 +##### WSL2 In case you are on Windows using WSL2 rather than Linux directly, running tests this way will not work. You will see an error like "Failed to find Chrome binary.". The solution here is to use Selenium Grid. @@ -700,15 +580,13 @@ bundle exec rspec ./modules/documents/spec/features/attachment_upload_spec.rb[1: There is no need to prefix this with the `RAILS_ENV` here since we've exported it already before. -### Headless testing +#### Headless testing Firefox tests through Selenium are run with Chrome as `--headless` by default. This means that you do not see the browser that is being tested. Sometimes you will want to see what the test is doing to debug. To override this behavior and watch the Chrome or Firefox instance set the ENV variable `OPENPROJECT_TESTING_NO_HEADLESS=1`. +#### Troubleshooting - -### Troubleshooting - -``` +```text Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}" ActionController::RoutingError: @@ -718,9 +596,7 @@ Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['R If you get an error like this when running feature specs it means your assets have not been built. You can fix this either by accessing a page locally (if the rails server is running) once or by ensuring the `bin/setup_dev` script has been run. - - -## Entire local RSpec suite +### Entire local RSpec suite You can run the specs with the following commands: @@ -728,8 +604,7 @@ You can run the specs with the following commands: * `SPEC_OPTS="--seed 12935" bundle exec rake spec` Run the core specs with the seed 12935. Use this to control in what order the tests are run to identify order-dependent failures. You will find the seed that GitHub Actions CI used in their log output. - -## Parallel testing +### Parallel testing Running tests in parallel makes usage of all available cores of the machine. Functionality is being provided by [parallel_tests](https://github.com/grosser/parallel_tests) gem. @@ -743,8 +618,6 @@ By default, `parallel_test` will use CPU count to parallelize. This might be a b export PARALLEL_TEST_PROCESSORS=4 ``` - - Adjust `database.yml` to use different databases: ```yaml @@ -773,7 +646,7 @@ If you want to run specific tests (e.g., only those from the team planner module RAILS_ENV=test bundle exec parallel_rspec -- modules/team_planner/spec ``` -## Automatically run tests when files are modified +### Automatically run tests when files are modified To run tests automatically when a file is modified, you can use [watchexec](https://github.com/watchexec/watchexec) like this: @@ -795,18 +668,17 @@ wrspec spec/some/path/to/a_particular_spec.rb To easily change the RSpec examples being run without relaunching `watchexec` every time, you can focus a particular example or example group with `focus: true`, `fit`, `fdescribe`, and `fcontext`. More details available on [RSpec documentation](https://rspec.info/features/3-12/rspec-core/filtering/filter-run-when-matching/). - -## Manual acceptance tests +### Manual acceptance tests * Sometimes you want to test things manually. Always remember: If you test something more than once, write an automated test for it. * Assuming you do not have a version of Edge already installed on your computer, you can grab a VM with preinstalled IE's directly from [Microsoft](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/) -## Accessing a local OpenProject instance from a VM or mobile phone +### Accessing a local OpenProject instance from a VM or mobile phone If you want to access the development server of OpenProject from a VM or your mobile phone, you need to work around the CSP `localhost` restrictions. -### Old way, fixed compilation +#### Old way, fixed compilation One way is to disable the Angular CLI that serves some of the assets when developing. To do that, run @@ -820,7 +692,7 @@ OPENPROJECT_CLI_PROXY='' ./bin/rails s -b 0.0.0.0 -p 3000 Now assuming networking is set up in your VM, you can access your app server on `:3000` from it. -### New way, with ng serve +#### New way, with ng serve **The better way** when you want to develop against your local setup is to set up your server to allow the CSP to the remote host. @@ -839,7 +711,7 @@ OPENPROJECT_CLI_PROXY='http://:4200' ./bin/rails s -b 0.0.0.0 -p You might have to also update your host name setting `bundle exec rake setting:set[host_name=yourip]`. -## Legacy LDAP tests +### Legacy LDAP tests OpenProject supports using LDAP for user authentications. To test LDAP with OpenProject, load the LDAP export from `test/fixtures/ldap/test-ldap.ldif` @@ -850,12 +722,12 @@ Setting up the test ldap server is beyond the scope of this documentation. The Apache DS project provides a simple LDAP implementation that should work good as a test server. -## Running tests locally in Docker +### Running tests locally in Docker Most of the above applies to running tests locally, with some docker specific setup changes that are discussed [in the docker development documentation](../development-environment-docker). -## Generators +### Generators In order to support developer productivity and testing confidence, we've extracted out common setup and boilerplate for good tests as RSpec generators and are encouraged to use them when adding a new spec file in OpenProject. diff --git a/docs/development/saml/README.md b/docs/development/saml/README.md index 969f62fec089..0d8d040f9c1e 100644 --- a/docs/development/saml/README.md +++ b/docs/development/saml/README.md @@ -8,37 +8,25 @@ sidebar_navigation: **Note:** This guide is targeted only at development with OpenProject. For the SAML configuration guide, please see this [here](../../system-admin-guide/authentication/saml/) - - To test the SAML integration in your development setup, you can use the following repository: [docker-test-saml-idp](https://github.com/kristophjunge/docker-test-saml-idp) - - The following guide will provide insights how to set it up in your OpenProject development instance. - - ## Prerequisites - A working docker installation - A development setup of OpenProject (or any other configurable installation) - - ## Running the SAML idP We need to run the SimpleSAMLphp idP contained in the docker container. We only extend it slightly by giving the user configuration file more attributes so that OpenProject can pick it up. The default users configuration is lacking some of the default attributes OpenProject expects. - - Create a new folder `saml-idp` and switch to it ```shell mkdir saml-idp && cd saml-idp ``` - - Create a file `users.php` with the following content ```shell @@ -70,9 +58,7 @@ $config = array( ); ``` - - -You can now run the docker container and the updated configuration with this command. +You can now run the docker container and the updated configuration with this command. ```shell docker run \ @@ -86,8 +72,6 @@ docker run \ kristophjunge/test-saml-idp ``` - - If you're not using a development installation of OpenProject, you'll need to change the ENV variables slightly: ```shell @@ -102,18 +86,12 @@ docker run \ kristophjunge/test-saml-idp ``` - - ## Configure OpenProject for SAML On the OpenProject side, you'll have to configure SAML to connect to the just started idP service: - - Here's a minimal configuration that you can put into `config/configuration.yml` - - ```yaml default: saml: @@ -134,12 +112,8 @@ default: last_name: ['sn'] ``` - - Here, again you will have to change the hostname `localhost:3000` with the hostname of your OpenProject installation, and the iDP host name if you're not running both locally. I'd recommend to run both locally though for simplicity. - - Restart OpenProject and you'll see a login button "simplesaml-docker". You will redirected to the simplesaml-php docker container and can login with either: - *login*: user1, *password*: user1pass diff --git a/docs/development/style-guide/frontend/README.md b/docs/development/style-guide/frontend/README.md index 1bb4c9fbb0d0..1b2728608c9d 100644 --- a/docs/development/style-guide/frontend/README.md +++ b/docs/development/style-guide/frontend/README.md @@ -1,23 +1,29 @@ # OpenProject development style guide - frontend ## Code format + OpenProject follows the [AirBnB's style guide](https://github.com/airbnb/javascript) regarding to the code format. ## Development patterns + ### Angularized -OpenProject follows the [Angular's style guide](https://angular.io/guide/styleguide) patterns. + +OpenProject follows the [Angular's style guide](https://angular.io/guide/styleguide) patterns. ### Declarative + Declarative Programming is a paradigm where the code describes **what to do** by encapsulating the **how to do it** (implementation details) under abstractions. The ultimate result of declarative programming is the creation of a new Domain Specific Language (DSL). #### What -* Encapsulate logic in methods with meaningful names. - * Domain/Business logic: \ + +* Encapsulate logic in methods with meaningful names. + * Domain/Business logic: \ Encapsulate the implementation details in the subdomain service (e.g., login should be placed in the AuthService and encapsulate all the login functionality). - * Presentation or interaction logic: \ -Encapsulate the implementation details in a component’s method or in a Presenter (service scoped/provided in the component). + * Presentation or interaction logic: \ +Encapsulate the implementation details in a component’s method or in a Presenter (service scoped/provided in the component). #### Example + ```javascript // Imperative programming const bestProducts = []; @@ -38,26 +44,26 @@ const bestProducts = products.filter(function(product) { const bestProducts = getBestProducts(); ``` - An example in OpenProject would be the APIV3Service that encapsulates all the logic to deal with the OpenProject API. - #### Why -* Code is easier to understand and reason about. -* Favours reusability. -* Simplifies refactoring. -* The state management becomes predictable, easy to trace, and under control. -* Aligns with unidirectional data flow (Stores) and the Components Architecture. -* Increases coding pleasure and productivity. +* Code is easier to understand and reason about. +* Favours reusability. +* Simplifies refactoring. +* The state management becomes predictable, easy to trace, and under control. +* Aligns with unidirectional data flow (Stores) and the Components Architecture. +* Increases coding pleasure and productivity. ### Immutable -Not capable of or susceptible to change. An immutable value can’t be changed, when edited a new copy is returned. +Not capable of or susceptible to change. An immutable value can’t be changed, when edited a new copy is returned. #### What + Do not mutate objects, spread the word. -* Do not edit object’s, use the immutable alternatives: + +* Do not edit object’s, use the immutable alternatives: ```javascript const copy = {...originalObject}; @@ -65,7 +71,7 @@ const add = {...originalObject, propertyToChange: 'new value'}; const remove = {propertyToDelete, ...newObjectWithoutThePropertyToDelete}; ``` -* Avoid Array mutation methods (push, pop, shift, unshift, sort, reverse, splice, delete), use their immutable alternatives: +* Avoid Array mutation methods (push, pop, shift, unshift, sort, reverse, splice, delete), use their immutable alternatives: ```javascript clone = x => [...x]; @@ -79,18 +85,19 @@ splice = (s, c, ...y) => x => [...x.slice(0, s), ...y, ...x.slice(s + c)]; ``` #### Why -* In Javascript, Objects can be [edited by reference](https://javascript.info/object-copy), opening the door to unpredictable mutations that can have unintended effects on other parts of the app. -* Makes code easier to understand because data changes become explicit and obvious. -* Avoids a set of [hard to detect bugs](https://2ality.com/2019/10/shared-mutable-state.html). -* Enables unidirectional data flow. -* Enables performance improvements through ChangeDetectionStrategy.OnPush +* In Javascript, Objects can be [edited by reference](https://javascript.info/object-copy), opening the door to unpredictable mutations that can have unintended effects on other parts of the app. +* Makes code easier to understand because data changes become explicit and obvious. +* Avoids a set of [hard to detect bugs](https://2ality.com/2019/10/shared-mutable-state.html). +* Enables unidirectional data flow. +* Enables performance improvements through ChangeDetectionStrategy.OnPush ### Unidirectional data flow -The app has a single way to read and to write the state, and both are separated ([Command Query Segregation](https://khalilstemmler.com/articles/oop-design-principles/command-query-segregation/)). +The app has a single way to read and to write the state, and both are separated ([Command Query Segregation](https://khalilstemmler.com/articles/oop-design-principles/command-query-segregation/)). #### State definition + We can differentiate two types of states in our application: * Local: belongs to a single component. Includes mainly UI state. @@ -128,132 +135,150 @@ To reduce server requests, side effects **should be** be calculated in the front **Note:** The proper solution to this problem would be a backend that can push updates for collections and entities that we are requiring. However, implementing and relying on websockets comes with its own challenges. - -#### Flow +#### Flow ![data-flow](./data-flow-diagram.png) -* Component/Service requests an update to the Store (directly or through an Action) -* Store changes the state and emits an updated copy of the state -* Component receives the update and renders the new state - +* Component/Service requests an update to the Store (directly or through an Action) +* Store changes the state and emits an updated copy of the state +* Component receives the update and renders the new state #### Unidirectional data flow in the view / component’s tree + Angular also follows the unidirectional data flow pattern in the view to improve the performance and simplify the state distribution: -* When the state could have been updated (an async operation happens), Angular performs [Change Detection](https://indepth.dev/posts/1058/a-gentle-introduction-into-change-detection-in-angular) in one way, from top to bottom, from the root component all the tree down checking every child component for changes. -* Every component that receives state updates (@Input, Services, UI...), updates itself, renders its view and then triggers Change Detection for its child components. -* If the children would trigger state changes up to the parent (bidirectional data flow (two way data binding)), the parent should update itself and then trigger Change Detection for the children, which could trigger changes up to the parent… causing a loop. -* This is why unidirectional data flow is enforced in development mode (ExpressionChangedAfterItHasBeenCheckedError) and encouraged in the Components Architecture. +* When the state could have been updated (an async operation happens), Angular performs [Change Detection](https://indepth.dev/posts/1058/a-gentle-introduction-into-change-detection-in-angular) in one way, from top to bottom, from the root component all the tree down checking every child component for changes. +* Every component that receives state updates (@Input, Services, UI...), updates itself, renders its view and then triggers Change Detection for its child components. +* If the children would trigger state changes up to the parent (bidirectional data flow (two way data binding)), the parent should update itself and then trigger Change Detection for the children, which could trigger changes up to the parent… causing a loop. +* This is why unidirectional data flow is enforced in development mode (ExpressionChangedAfterItHasBeenCheckedError) and encouraged in the Components Architecture. #### What -* Do use the chosen state management library by default. + +* Do use the chosen state management library by default. #### Why -* Stores concentrate the state management, allowing the different parts of the application to remain highly decoupled. -* Container components concentrate the state distribution through @Input and @Outputs, so the state flow is clear just by taking a look at the template. -* The state management becomes predictable, easy to trace, and under control. -* Reduces side effects and facilitates debugging. -* Encourages data normalization and avoids duplications. -* Code is easier to understand and reason about. -* Increases coding pleasure and productivity. +* Stores concentrate the state management, allowing the different parts of the application to remain highly decoupled. +* Container components concentrate the state distribution through @Input and @Outputs, so the state flow is clear just by taking a look at the template. +* The state management becomes predictable, easy to trace, and under control. +* Reduces side effects and facilitates debugging. +* Encourages data normalization and avoids duplications. +* Code is easier to understand and reason about. +* Increases coding pleasure and productivity. ### Components architecture + Mental mindset to build clearer apps based on the differentiation between Container Components (CC), Presentational Components (PC) and Services. #### Services + Are state and logic containers. ##### What -* Encapsulate logic in services: - * State (Store) + Domain logic (state CRUD) - * Complex UI logic (Presenters) -* Provide a meaningful API to access the state and logic. -* Follow the unidirectional data flow pattern + +* Encapsulate logic in services: + * State (Store) + Domain logic (state CRUD) + * Complex UI logic (Presenters) +* Provide a meaningful API to access the state and logic. +* Follow the unidirectional data flow pattern ##### Why -* Decouples state management from components. -* Allows to keep the components lean. -* Scoped Shareability: allow to share the state and logic scoped to components, modules or globally. -* Testability -* Encourages Declarative Programming -* Testability: easier to test because there are no side effects (pure). + +* Decouples state management from components. +* Allows to keep the components lean. +* Scoped Shareability: allow to share the state and logic scoped to components, modules or globally. +* Testability +* Encourages Declarative Programming +* Testability: easier to test because there are no side effects (pure). #### Container components (CC) + Represent a feature that interacts with the state. This could be a page (routed component) but also standalone components (e.g. sign-in button (tied to the AuthService)). ##### Responsibilities -* Inject the State Services (Stores). -* Contain Presentational Components (PC), usually. -* Bridge State Services (Stores) and PCs: - * Pass down state updates (from Stores) through PCs’ @Outputs - * React to PCs’ @Outputs -* Notes: - * Could contain other CCs. - * Could contain presentational logic (show/hide PCs, calculations..), in those cases are named something like Mixed Components. + +* Inject the State Services (Stores). +* Contain Presentational Components (PC), usually. +* Bridge State Services (Stores) and PCs: + * Pass down state updates (from Stores) through PCs’ @Outputs + * React to PCs’ @Outputs +* Notes: + * Could contain other CCs. + * Could contain presentational logic (show/hide PCs, calculations..), in those cases are named something like Mixed Components. ##### Example + Pages, components that are routed, are usually container components since the need to fetch state to display it. ##### What -* Concentrate the interaction with the state (Stores) in Container Components. + +* Concentrate the interaction with the state (Stores) in Container Components. ##### Why -* Separation of concerns; separates state interaction from UI (presentation and interaction). -* Concentrates state interaction; the state management becomes more predictable, easy to trace, and under control. -* Simplifies the state flow: the state distribution through @Input and @Outputs makes the state flow clear just by taking a look at the template. -* Reduces side effects and facilitates debugging. -* Code is easier to understand and reason about. -* Increases coding pleasure and productivity. + +* Separation of concerns; separates state interaction from UI (presentation and interaction). +* Concentrates state interaction; the state management becomes more predictable, easy to trace, and under control. +* Simplifies the state flow: the state distribution through @Input and @Outputs makes the state flow clear just by taking a look at the template. +* Reduces side effects and facilitates debugging. +* Code is easier to understand and reason about. +* Increases coding pleasure and productivity. #### Presentational components + Are the building blocks of the UI. ##### Responsibilities -* Present/display state that is passed via @Inputs. -* Handle user interaction: - * Implement the interaction logic - * Emit @Outputs -* Notes: - * Could contain: - * Other Presentational Components and Container Components. - * Presenter Services that encapsulate complex UI logic (computed styles, UI calculations...)). + +* Present/display state that is passed via @Inputs. +* Handle user interaction: + * Implement the interaction logic + * Emit @Outputs +* Notes: + * Could contain: + * Other Presentational Components and Container Components. + * Presenter Services that encapsulate complex UI logic (computed styles, UI calculations...)). ##### Example -Components from UI libraries are usually Presentational Components (e.g., [material button](https://github.com/angular/components/blob/master/src/material/button/button.ts)). + +Components from UI libraries are usually Presentational Components (e.g., [material button](https://github.com/angular/components/blob/master/src/material/button/button.ts)). ##### What -* Create presentational components to encapsulate UI logic (presentation or interaction). +* Create presentational components to encapsulate UI logic (presentation or interaction). ##### Why -* Reusability: \ + +* Reusability: \ Presentational components are more reusable because: - * Are not tied to a concrete business logic. - * Usually perform a generic interaction/presentation (button, tab, list, layout) -* Increase - * Productivity - * Standardization -* Align with Design Systems -* Improved testability because there are no side effects (pure). -* Are easier to replace. + * Are not tied to a concrete business logic. + * Usually perform a generic interaction/presentation (button, tab, list, layout) +* Increase + * Productivity + * Standardization +* Align with Design Systems +* Improved testability because there are no side effects (pure). +* Are easier to replace. ### Clean + Clean code is easily readable, understandable, changeable, extensible, scalable and maintainable. #### What -* Do follow clean [patterns and rules](https://github.com/labs42io/clean-code-typescript) - * [Summary of the Clean Code principles](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) + +* Do follow clean [patterns and rules](https://github.com/labs42io/clean-code-typescript) + * [Summary of the Clean Code principles](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) #### Why -* Standardizes the code. -* Increases debuggability. -* Code is easier to understand and to reason about. -* Increases coding pleasure and productivity. + +* Standardizes the code. +* Increases debuggability. +* Code is easier to understand and to reason about. +* Increases coding pleasure and productivity. ### BEM CSS + #### What -* Do follow BEM directives: - * [https://en.bem.info/methodology/css/](https://en.bem.info/methodology/css/) - * [https://en.bem.info/methodology/html/](https://en.bem.info/methodology/html/) + +* Do follow BEM directives: + * [https://en.bem.info/methodology/css/](https://en.bem.info/methodology/css/) + * [https://en.bem.info/methodology/html/](https://en.bem.info/methodology/html/) diff --git a/docs/development/translate-openproject/README.md b/docs/development/translate-openproject/README.md index 4ba689aaae00..f41c4c8913e9 100644 --- a/docs/development/translate-openproject/README.md +++ b/docs/development/translate-openproject/README.md @@ -24,7 +24,7 @@ To help us translate OpenProject, please follow the links above and follow the i ## How the translation process works -When a new OpenProject version is developed it typically contains new English text (strings). +When a new OpenProject version is developed it typically contains new English text (strings). CrowdIn facilitates the translation of those strings to different languages. Here is how the translation process works in detail: @@ -35,21 +35,19 @@ Here is how the translation process works in detail: 3. When the new OpenProject version is released users can use the translations in their own instances with the next OpenProject version. ## How to translate OpenProject via CrowdIn + You can easily help translate OpenProject by creating a (free) CrowdIn account and by joining the [OpenProject CrowdIn project](https://crowdin.com/projects/opf). Once you joined the project, you can provide translations by following these steps: Select the language for which you want to contribute (or vote for) a translation (below the language you can see the progress of the translation). ![Language overview in OpenProject CrowdIn project](crowdin-overview.png "Language overview in OpenProject CrowdIn project") +You will be shown an overview of translatable files in the `dev` and `release` channel. In the below example, the norwegian project is about 33% translated. Simply click the "Translate All" button to show an editor with all untranslated strings. - -You will be shown an overview of translatable files in the `dev` and `release ` channel. In the below example, the norwegian project is about 33% translated. Simply click the "Translate All" button to show an editor with all untranslated strings. ![Select OpenProject version to translate in CrowdIn](crowdin-language-overview.png "Language overview of translatable files") ![crowdin-editor](crowdin-editor.png "The crowdin editor view") - - On the left hand side (1), strings ordered by translation status will be shown on the left. You can search for specific strings above that list, and also change the filters. The red square next to an English string shows that a string has not been translated yet. To provide a translation, select a string on the left side, provide a translation in the target language (2) in the text box in the right side and press the save button. Some strings might have pluralization rules, in which case there is a tab that you can enter each value. @@ -60,8 +58,6 @@ As soon as a translation has been provided by another user (green square next to Once a translation has been provided, a proof reader can approve the translation and mark it for use in OpenProject. - - ## Becoming a proof reader If you are interested in becoming a proof reader, please contact one of the project managers in the OpenProject CrowdIn project or send us an email at support@openproject.org. diff --git a/docs/enterprise-guide/README.md b/docs/enterprise-guide/README.md index 4f127280401a..b366b9a1de25 100644 --- a/docs/enterprise-guide/README.md +++ b/docs/enterprise-guide/README.md @@ -10,7 +10,7 @@ keywords: manage subscription, enterprise edition, cloud edition Welcome to the OpenProject **Enterprise guide**. -> **Note**: This guide only describes the management and administration of your Enterprise cloud and Enterprise on-premises subscription. +> **Note**: This guide only describes the management and administration of your Enterprise cloud and Enterprise on-premises subscription. > The Enterprise add-on descriptions are included in the respective parts of the OpenProject [user guide](../user-guide) and [System admin guide](../system-admin-guide). The OpenProject Enterprise editions (cloud and on-premises) contain all OpenProject Community features plus the additional OpenProject [Enterprise add-ons](https://www.openproject.org/enterprise-edition/#enterprise-add-ons), as well as professional [support](https://www.openproject.org/pricing/#support). @@ -21,13 +21,12 @@ Find out more about our different [support options](./support/). ## Enterprise add-ons -This video (english only) provides an overview of the [Enterprise add-ons](https://www.openproject.org/enterprise-edition/#enterprise-add-ons). +This video (english only) provides an overview of the [Enterprise add-ons](https://www.openproject.org/enterprise-edition/#enterprise-add-ons). ![OpenProject Enterprise add-ons](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Enterprise-add-ons.mp4) Find a detailed feature comparison [here](https://www.openproject.org/pricing/#features). - ## Enterprise cloud | Topic | Content | @@ -41,8 +40,6 @@ Find a detailed feature comparison [here](https://www.openproject.org/pricing/#f | [Backups](./enterprise-cloud-guide/backups) | How do backups work in the cloud. | | [GDPR](./enterprise-cloud-guide/gdpr-compliance) | Review and sign a Data Processing Agreement (DPA). | - - ## Enterprise on-premises | Topic | Content | diff --git a/docs/enterprise-guide/enterprise-cloud-guide/README.md b/docs/enterprise-guide/enterprise-cloud-guide/README.md index 591de1db57fa..2bf1e550bc92 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/README.md @@ -13,7 +13,6 @@ Welcome to the OpenProject **Enterprise cloud guide**. > **Note**: This guide only describes the management of your Enterprise cloud. The feature descriptions are included in the respective parts of the OpenProject [user guide](../../user-guide). - ## Overview | Topic | Content | diff --git a/docs/enterprise-guide/enterprise-cloud-guide/backups/README.md b/docs/enterprise-guide/enterprise-cloud-guide/backups/README.md index 8de0c1cc19e1..04cf322793ed 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/backups/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/backups/README.md @@ -12,7 +12,7 @@ keywords: backups Your Enterprise cloud data is backed up continuously and retained for 30 days. Within those 30 days we can restore your data to any point in time with a precision of 5 minutes, in case you need us to. (currently this is valid only for cloud instances located in the openproject.com cloud environment) -*Note: At the moment it is only possible to restore the complete instance into a former state. All future edits after the former state will be not available in the restored instance. In order to offer you the possibility of recreating the restored information to your productive instance, the restored version is temporarily available on a separate URL. You will have all the time you need to clone the lost information from the temporary instance to the production one. This could be done by using e.g. API calls or manual interaction.* +*Note: At the moment it is only possible to restore the complete instance into a former state. All future edits after the former state will be not available in the restored instance. In order to offer you the possibility of recreating the restored information to your productive instance, the restored version is temporarily available on a separate URL. You will have all the time you need to clone the lost information from the temporary instance to the production one. This could be done by using e.g. API calls or manual interaction.* ## Resource limitations for attachments @@ -22,8 +22,6 @@ In this case you cannot check the **Include attachments** check-box like on the ![backup-enterprise-cloud](backup-enterprise-cloud.png) - - ## Backup via GUI For detailed usage of the Backup via GUI, please navigate to the [System admin guide Backup page](../../../system-admin-guide/backup/) diff --git a/docs/enterprise-guide/enterprise-cloud-guide/book-cloud/README.md b/docs/enterprise-guide/enterprise-cloud-guide/book-cloud/README.md index d609280bba00..4187d529b2c0 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/book-cloud/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/book-cloud/README.md @@ -13,8 +13,6 @@ Please refer to our website for the Enterprise cloud edition [pricing](https://w You can subscribe to a monthly or yearly plan. The subscription can be **paid via Credit Card or Bank transfer** (only for yearly subscriptions for customers in the EU, Switzerland and the United States). - - To upgrade your trial to the full version, **click on the BUY NOW teaser**, e.g. in the application header or project menu. ![Enterprise cloud edition](Cloud-edition-buy-now-teaser.png) @@ -51,7 +49,7 @@ Click the blue **Next** button. ![payment-details](payment-details.png) -You will once again get an overview about your subscription. +You will once again get an overview about your subscription. Here, you can edit the account or billing information if needed. Subscribe to our regular newsletter in order to keep up to date with latest product developments. diff --git a/docs/enterprise-guide/enterprise-cloud-guide/create-cloud-trial/README.md b/docs/enterprise-guide/enterprise-cloud-guide/create-cloud-trial/README.md index 692b9fdfd07b..ca5a0fd164c4 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/create-cloud-trial/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/create-cloud-trial/README.md @@ -26,7 +26,7 @@ Click the Start Free Trial button. You will then be asked to [create an OpenProject account](../../../getting-started/sign-in-registration/#create-a-new-account). -1. Enter your first and last **name**. +1. Enter your first and last **name**. 2. Enter your **e-mail address**. 3. Choose a **password** and confirm the password. The password must at least be 10 characters long and needs to contain at least two of the following classes, uppercase letters, lowercase letters, special characters, numbers. 4. Please confirm the OpenProject [privacy policy](https://www.openproject.org/legal/privacy/) and the [terms of service](https://www.openproject.org/legal/terms-of-service/). diff --git a/docs/enterprise-guide/enterprise-cloud-guide/create-quote-cloud/README.md b/docs/enterprise-guide/enterprise-cloud-guide/create-quote-cloud/README.md index ae939cbe7070..590ddff86259 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/create-quote-cloud/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/create-quote-cloud/README.md @@ -28,8 +28,6 @@ You will be directed to -> *Administration* -> *Billing*. ![request-a-quote-cloud](request-a-quote-cloud.png) - - You will then be asked to provide your address details. After populating the respective fields please click on **Request a quote**. After that you will receive an **email with the quote**. The email includes a link to accept the quote. Your subscription will be updated once you accept the quote. diff --git a/docs/enterprise-guide/enterprise-cloud-guide/enterprise-cloud-faq/README.md b/docs/enterprise-guide/enterprise-cloud-guide/enterprise-cloud-faq/README.md index 4d83eb33f983..c51cdf7742ed 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/enterprise-cloud-faq/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/enterprise-cloud-faq/README.md @@ -20,7 +20,6 @@ You can do this in your OpenProject instance in the administration. The number o Please have a look at [this instruction](../manage-cloud-subscription/) for the Enterprise cloud edition to change your payment details. - ## Does OpenProject comply with GDPR? Yes. The protection of personal data is for OpenProject more than just a legal requirement. We are highly committed to data security and privacy. We are a company based in Berlin, the European Union, and the awareness and importance for data security and privacy actions have always been a major topic for us. OpenProject complies with GDPR and we handle our customer’s data with care. Get more detailed information [here](https://www.openproject.org/security-and-privacy/). @@ -41,7 +40,7 @@ A list of all sub-processors used in the OpenProject Enterprise cloud can be fou Please note: For the OpenProject Enterprise cloud we currently have two SaaS infrastructures: -**OpenProject.com** +**OpenProject.com** This infrastructure is hosted at AWS in Dublin. For sending transactional emails we use the service Postmark which is based in the US. diff --git a/docs/enterprise-guide/enterprise-cloud-guide/gdpr-compliance/README.md b/docs/enterprise-guide/enterprise-cloud-guide/gdpr-compliance/README.md index 9cbd17f7aad7..586ebb668c5e 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/gdpr-compliance/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/gdpr-compliance/README.md @@ -34,7 +34,7 @@ All OpenProject GmbH employees employ industry standard data security measuremen ## Data Management and Portability -The GDPR includes grants to every data subject the right to access, modify, receive, and delete their own data. +The GDPR includes grants to every data subject the right to access, modify, receive, and delete their own data. OpenProject customers with admin accounts on their instance act as data controllers for their team members and have elaborate means to perform these request on behalf of the data subjects they are responsible for. @@ -71,6 +71,4 @@ Please navigate to -> Administration -> GDPR and you can now online review and s ![OpenProject DPA](DPA.png) - - Find out more about [OpenProject's security features](../../../security-and-privacy/statement-on-security/#openproject-security-features). diff --git a/docs/enterprise-guide/enterprise-cloud-guide/invoices-and-billing-history/README.md b/docs/enterprise-guide/enterprise-cloud-guide/invoices-and-billing-history/README.md index 064edd4368ba..d723d985c9f7 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/invoices-and-billing-history/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/invoices-and-billing-history/README.md @@ -12,8 +12,8 @@ You will **receive an invoice for your OpenProject Enterprise cloud edition via The invoice lists the subscription (billing) period as well as the next billing date. -You will also see the payment status. -For invoices via bank transfer, the money needs to be paid via bank transfer to the bank account listed at the bottom of the invoice. +You will also see the payment status. +For invoices via bank transfer, the money needs to be paid via bank transfer to the bank account listed at the bottom of the invoice. > **Note**: For the correct assignment of payments, please enter the invoice number on your bank transfer. @@ -31,7 +31,7 @@ In the overlay window, click on the link **Billing History**. ![cloud-billing-history](cloud-billing-history-0584990.png) -Here, you will get an overview about all your past payments for the Enterprise cloud edition. +Here, you will get an overview about all your past payments for the Enterprise cloud edition. With the **Download link** you can download the invoices. @@ -48,8 +48,8 @@ To do this, you can sign into your OpenProject environment and select the "Buy n ### When does my OpenProject contract end? -The user may terminate the contract at any time, which will apply by the end of the subscription period (including last day). In case of credit card payment the subscription period is one month or one year; in case of payment via invoice the subscription period is one year. The [agreed subscription period](https://www.openproject.org/legal/terms-of-service/) will be extended automatically if the contract was not terminated on time. +The user may terminate the contract at any time, which will apply by the end of the subscription period (including last day). In case of credit card payment the subscription period is one month or one year; in case of payment via invoice the subscription period is one year. The [agreed subscription period](https://www.openproject.org/legal/terms-of-service/) will be extended automatically if the contract was not terminated on time. ### What shall I do when I run into payment issues with OpenProject? -In case you use the bank transfer payment method please indicate the invoice number. You can find this information in the corresponding invoice (OP…). Otherwise the automatic banking system is not able to detect your payment. Please do not hesitate to contact accounting@openproject.com if you have any further questions. +In case you use the bank transfer payment method please indicate the invoice number. You can find this information in the corresponding invoice (OP…). Otherwise the automatic banking system is not able to detect your payment. Please do not hesitate to contact accounting@openproject.com if you have any further questions. diff --git a/docs/enterprise-guide/enterprise-cloud-guide/sign-in/README.md b/docs/enterprise-guide/enterprise-cloud-guide/sign-in/README.md index 266a43f9827f..152a1c2f9d99 100644 --- a/docs/enterprise-guide/enterprise-cloud-guide/sign-in/README.md +++ b/docs/enterprise-guide/enterprise-cloud-guide/sign-in/README.md @@ -24,8 +24,6 @@ Click the green **Sign in button** and you will be logged into your OpenProject ![Sign-in-enter-organization](Sign-in-enter-organization.png) - - ## Forgot organization name of OpenProject Enterprise cloud If you forgot the URL or the organization name of your OpenProject Enterprise cloud edition and need to find your organization, you can click the **Find your organization** link on the Sign in page of the website. @@ -40,8 +38,6 @@ Click the Submit button to get an email with further information. You will receive an email from OpenProject with the installations you are currently member of. - - ![E-Mail-Instances](E-Mail-Instances.png) Click the link in the email to get directed to your installation. If you are member of several OpenProject installations, they will all be listed in this email. diff --git a/docs/enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/README.md b/docs/enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/README.md index b333e46341bb..b8bcbb996899 100644 --- a/docs/enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/README.md +++ b/docs/enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/README.md @@ -11,7 +11,7 @@ The OpenProject Enterprise on-premises edition builds on top of the Community ed In order to upgrade your OpenProject Community edition to the Enterprise on-premises edition, sign into your OpenProject environment with an administrator account. -**Click on your user avatar in the upper right corner** (1) and select **Administration** from the dropdown menu (2). +**Click on your user avatar in the upper right corner** (1) and select **Administration** from the dropdown menu (2). ![Enterprise-Admin](Enterprise-Admin.png) @@ -19,8 +19,6 @@ Next, select **Enterprise edition** from the menu items (3). ![enterprise-select-menu](image-20210120113056133.png) - - Do you already have an Enterprise on-premises token? Yes: Then you can proceed entering your token as described below. @@ -39,9 +37,6 @@ If you want to **order the Enterprise on-premises edition** click on the **+ Ord ![Order-Enterprise-on-premises](Upgrade-to-Enterprise-on-premises.png) - - Once you purchased an Enterprise on-premises edition token or received a trial token you can [activate it by pasting the token in the designated area of the Enterprise edition section](#activate-the-enterprise-on-premises-edition). You can find pricing options and FAQ regarding pricing, booking and billing on our [pricing website](https://www.openproject.org/pricing/#faq). - diff --git a/docs/enterprise-guide/enterprise-on-premises-guide/enterprise-on-premises-faq/README.md b/docs/enterprise-guide/enterprise-on-premises-guide/enterprise-on-premises-faq/README.md index 07ee8417e182..4dc525f3ed5b 100644 --- a/docs/enterprise-guide/enterprise-on-premises-guide/enterprise-on-premises-faq/README.md +++ b/docs/enterprise-guide/enterprise-on-premises-guide/enterprise-on-premises-faq/README.md @@ -21,7 +21,7 @@ The Enterprise on-premises edition is an upgrade of the self-hosted Community ed 1. Navigate to [www.openproject.org/enterprise-edition/](https://www.openproject.org/enterprise-edition/). 2. Click on the "Book now" button. -3. Follow the steps to purchase the Enterprise on-premises edition license. You will then receive an Enterprise on-premises edition license key by email which you can use to upgrade your Community edition to the Enterprise on-premises edition. +3. Follow the steps to purchase the Enterprise on-premises edition license. You will then receive an Enterprise on-premises edition license key by email which you can use to upgrade your Community edition to the Enterprise on-premises edition. If you prefer to test the Enterprise on-premises edition before purchasing, you can request a 14 day trial license from within your system (*Administration -> Enterprise edition*). Simply click on the green **Start free trial** button to receive a 14 day trial license. If you want to continue, you can navigate to our [pricing page](https://www.openproject.org/pricing/) and choose a plan. Otherwise, you will automatically be downgraded to the Community edition. There is no need to cancel the trial. @@ -29,7 +29,7 @@ Find more information [here](https://www.openproject.org/blog/enterprise-edition ## How can I book additional users? -Please use the link "Manage subscription" in the email you received confirming your subscription or contact sales@openproject.com. +Please use the link "Manage subscription" in the email you received confirming your subscription or contact sales@openproject.com. ## Is it possible to only upgrade *some* users to the Enterprise edition? @@ -72,12 +72,12 @@ sudo openproject run console # if user the docker all-in-one container: docker exec -it openproject bundle exec rails console # if using docker-compose: docker-compose run --rm web bundle exec rails console ``` + Once in the console update the token like this: `EnterpriseToken.first.update encoded_token: "..."` Where `...` is the token you have copied earlier. After that you can quit the console by entering `exit`. - ## Do you have a reseller program for OpenProject? We provide a [reseller program](https://www.openproject.org/reseller-program/) exclusively for OpenProject Enterprise on-premises (currently not for the Enterprise cloud) and offer a 25% discount on the regular prices as a part of this. Once you purchased the first Enterprise on-premises license for a client, you receive an Enterprise on-premises license for 25 users free of charge for your internal use. Please refer to the link above for more information and the conditions regarding this offer. diff --git a/docs/enterprise-guide/support/README.md b/docs/enterprise-guide/support/README.md index 5e70d2719b10..7e989c7ab411 100644 --- a/docs/enterprise-guide/support/README.md +++ b/docs/enterprise-guide/support/README.md @@ -66,16 +66,16 @@ The Corporate support covers everything from the Basic, Professional and Premium Please write us an email to [support@openproject.com](mailto:support@openproject.com) to get help with your OpenProject Enterprise edition. Include a detailed description as well as screenshots, where necessary. Depending on your support level, you will receive a separate support email address with your order. -You can reach us via telephone, depending on your support service hours: +You can reach us via telephone, depending on your support service hours: - EU time zone: +49 30 288 777 07 - US time zone: +1 470 231 0041 -## Installation support for Enterprise on-premises +## Installation support for Enterprise on-premises -Our Premium and Corporate Enterprise on-premises support plans include installation support. We will contact you to get the necessary information to set up your environment. +Our Premium and Corporate Enterprise on-premises support plans include installation support. We will contact you to get the necessary information to set up your environment. -### Support Data Collector +### Support Data Collector Please run [our script](./script/op-support-data.sh) and send us the complete terminal output prior to the on-premise installation. @@ -86,6 +86,7 @@ The script should run once on the OpenProject on-premises host with or without O Also please do not forget to log your complete terminal output. Please attach the log file of the terminal output to an email reply in your ticket at [support@openproject.com](mailto:support@openproject.com) -`sudo chmod +x op-support-data.sh` - -` sudo ./op-support-data.sh` +```shell +sudo chmod +x op-support-data.sh +sudo ./op-support-data.sh +``` diff --git a/docs/faq/README.md b/docs/faq/README.md index caffc0eab575..875f51ede4e4 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -19,7 +19,6 @@ Welcome to the central overview of frequently asked questions for OpenProject. | [Other](#other) | Additional questions, e.g. about contribution, training, support | | [Topic-specific FAQ](#topic-specific-faq) | Links to other FAQ sections | - ## Learn more about OpenProject ### How do I get access to the OpenProject Enterprise add-ons? @@ -33,6 +32,7 @@ If you want to run OpenProject on your own server, the OpenProject Enterprise on Have you already installed the [OpenProject Community edition](https://www.openproject.org/download-and-installation/)? If yes, you can request a trial license for the OpenProject Enterprise on-premises edition by clicking on the button "Free trial license" [here](https://www.openproject.org/de/enterprise-edition/) and test the Enterprise on-premises edition for 14 days for free. ### Can I have some users with Enterprise add-ons and some without? + As the Enterprise Enterprise add-ons affect the whole instance (e.g. with Agile Boards and project custom fields) it's not possible to upgrade only some users. ### What are the system requirements? @@ -195,7 +195,6 @@ For portfolio management or custom reporting, you can use either the project lis For more information on portfolio management options in OpenProject please refer to this [Use Case](../use-cases/portfolio-management). - ### Is there an organizational chart in OpenProject? There's no such feature. However, you can use the wiki to add information regarding your departments and employees. Furthermore, you can upload existing org charts as image or e.g. PDF to the wiki or the documents module. @@ -248,7 +247,6 @@ Yes. Take a photo with your camera and save it on your phone. Then open the corr Yes, of course. Within the BCF module you can upload multiple IFC models and create and manage BCF issues. - ## Migration ### How can I migrate from Bitnami to OpenProject? diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md index 9e99d963eded..2322ed4a1c7f 100644 --- a/docs/getting-started/README.md +++ b/docs/getting-started/README.md @@ -44,4 +44,3 @@ Watch a short 3-minute introduction video to get started with OpenProject in 6 e Watch a **comprehensive OpenProject product introduction** video to learn how to work with OpenProject using traditional and agile project management. - diff --git a/docs/getting-started/boards-introduction/README.md b/docs/getting-started/boards-introduction/README.md index 7fc2bf61c3cf..22f62261bbb4 100644 --- a/docs/getting-started/boards-introduction/README.md +++ b/docs/getting-started/boards-introduction/README.md @@ -12,8 +12,6 @@ This document provides an initial introduction to the boards in OpenProject, i.e > **Note**: The basic agile boards are included in the OpenProject Community edition. OpenProject advanced Action boards are an Enterprise add-on and can only be used with [Enterprise cloud](../../enterprise-guide/enterprise-cloud-guide) or [Enterprise on-premises](../../enterprise-guide/enterprise-on-premises-guide). An upgrade from the free Community edition is easily possible. - -
**Boards** in OpenProject enable agile project management, i.e. Kanban. Boards consist of lists (columns) with cards (work packages) on it. They help to visualize work, limit work-in-progress, and maximize efficiency (or flow).
@@ -22,7 +20,6 @@ To find out more about the detailed functionalities of Boards, please visit our Agile boards is only one of OpenProject's features. Find a comprehensive comparison between OpenProject and Trello [here](https://www.openproject.org/project-management-software-alternatives/best-trello-alternative/). - | Topic | Content | |-------------------------------------------------------------|--------------------------------------------| | [What is a Board?](#what-is-a-board) | Find out what a Board in OpenProject is. | @@ -46,6 +43,4 @@ To manage your work in an agile board, open the boards module in the project men 4. You can edit the details of a card by **double click**ing on the card. 5. Finally the arrow brings you back to the boards view. - - ![edit-boards](edit-boards.gif) diff --git a/docs/getting-started/gantt-chart-introduction/README.md b/docs/getting-started/gantt-chart-introduction/README.md index 80b49fc9de9c..9aecb6f5ff47 100644 --- a/docs/getting-started/gantt-chart-introduction/README.md +++ b/docs/getting-started/gantt-chart-introduction/README.md @@ -39,9 +39,9 @@ Within your project menu, navigate to the **Gantt charts** module. ![Select the Gantt charts module in OpenProject](openproject-user-guide-select-gantt-charts-module.png) -The Gantt chart then displays all work package types, e.g. phases and milestones, tasks or bugs, in a timeline view. It shows dependencies between different work packages as well as additional information, e.g. subject, start or finish dates. +The Gantt chart then displays all work package types, e.g. phases and milestones, tasks or bugs, in a timeline view. It shows dependencies between different work packages as well as additional information, e.g. subject, start or finish dates. -You can also select the cross-project Gantt charts view through the [global modules](../../user-guide/home/global-modules/) menu, which will include the information, which project the work packages are part of. +You can also select the cross-project Gantt charts view through the [global modules](../../user-guide/home/global-modules/) menu, which will include the information, which project the work packages are part of. ## Create a project plan @@ -49,7 +49,7 @@ To create a project plan in OpenProject, select the [**Gantt charts** module](.. You can create new work packages directly in the table by clicking on the **create new work package** link at the bottom of the table. You can change the work package type or other attributes directly in the table view. -Click in the at the level of the line of the work package you want to map in the Gantt chart to add an element in the project plan. +Click in the at the level of the line of the work package you want to map in the Gantt chart to add an element in the project plan. You can change the duration or move the element in the project plan via drag and drop. @@ -63,4 +63,3 @@ To change the start and end date or the duration of a work package, click direct All changes will also be tracked in the work packages [Activity](../../user-guide/activity). ![edit the project plan](openproject-user-guide-edit-project-plan.gif) - diff --git a/docs/getting-started/invite-members/README.md b/docs/getting-started/invite-members/README.md index 1c3f860dcc5a..82462e165805 100644 --- a/docs/getting-started/invite-members/README.md +++ b/docs/getting-started/invite-members/README.md @@ -16,7 +16,6 @@ In order to see a project and work in it, you have to be a member of a project. > **Note**: If you are not a member of a project, you do not see the project in the Project selection nor in the project list. - | Topic | Content | | ------------------------------------------------------------ | ------------------------------------------------------------ | | [View members](#view-members) | View the list of members in your project. | @@ -31,7 +30,7 @@ In order to see a project and work in it, you have to be a member of a project. To view the list of **all project members and their roles** in the project, select Members in the project menu on the left side. It will open a list of all the project members, including groups and external users, that work packages have been shared with. -You can use both filters in the left hand menu, as well as the filter options next to the **+ Member** button. +You can use both filters in the left hand menu, as well as the filter options next to the **+ Member** button. Please also refer to [Members module guide](../../user-guide/members). @@ -85,8 +84,6 @@ You can now collaborate with your team in OpenProject. Newly invited users will > Please note that removing a member who has not accepted the invite from a project yet will lead to the deletion of this user, which can't be reversed. - - ## Behavior of groups as project members Groups have the following impact on a project members list and behave slightly different than individual users: @@ -99,11 +96,9 @@ Groups have the following impact on a project members list and behave slightly d Find out more about the management of groups [here](../../system-admin-guide/users-permissions/groups/). - - ## Behavior of placeholder users as project members Placeholder will look slightly different from regular users in a project member list: - will be shown without email address -- can't be part of a group, i.e. they will be shown without group affiliation \ No newline at end of file +- can't be part of a group, i.e. they will be shown without group affiliation diff --git a/docs/getting-started/my-account/README.md b/docs/getting-started/my-account/README.md index 59d704e31575..597acd4227fd 100644 --- a/docs/getting-started/my-account/README.md +++ b/docs/getting-started/my-account/README.md @@ -33,13 +33,13 @@ Choose **My account**. ![my account profile information](openproject_open_my_account_page.png) ## Edit your user information + To change your email address or your name, navigate to **Profile** on the left side menu of **My account** page. Here you can update the information and **save** your changes. If you're changing the email address of your account, you will be requested to confirm your account password before you can continue. (Note: This applies only to internal accounts where OpenProject can verify the password). ![openproject_my_account_profile](openproject_my_account_profile.png) - ## Profile settings Within the **Settings** on **My Account** page you can change the language of OpenProject, adapt the time zone, select which display mode you would like activate and change the order in which comments are displayed in the **Activity list** for work packages. @@ -70,9 +70,9 @@ Pressing the blue **Save** button will save your changes. ### Select the high contrast color mode -In the dropdown menu **Mode** you can pick the color mode. The default setting is the **Light mode**. You can also select the **Light high contrast mode**, which will significantly increase the contrast and override the color theme of the OpenProject instance for you. +In the dropdown menu **Mode** you can pick the color mode. The default setting is the **Light mode**. You can also select the **Light high contrast mode**, which will significantly increase the contrast and override the color theme of the OpenProject instance for you. -This mode is recommended for users with visuals impairment. +This mode is recommended for users with visuals impairment. ![High contrast mode in OpenProject](openproject_my_account_high_contrast_mode.png) @@ -104,7 +104,7 @@ Press the blue **Save** button in order to confirm the password changes. ## Two-factor authentication -In order to activate the two-factor authentication for your OpenProject installation, navigate to your **My account** and choose the **Two-factor authentication** in the menu. If you have not added any device yet, this list will be empty. +In order to activate the two-factor authentication for your OpenProject installation, navigate to your **My account** and choose the **Two-factor authentication** in the menu. If you have not added any device yet, this list will be empty. ![OpenProject my account two_factor authentication](openproject_my_account_two_factor_authentication.png) @@ -112,13 +112,13 @@ If you have already registered one or multiple 2FA devices, you will see the lis ![List of all registered 2FA devices in OpenProject](openproject_my_account_2fa_overview.png) -In order to register a new device for two-factor authentication, click the green button to add a **new 2FA device**. You will see the screen, where you will be able to see one or multiple of the following options, depending on what your system administrator has [activated for your instance](../../system-admin-guide/authentication/two-factor-authentication/): +In order to register a new device for two-factor authentication, click the green button to add a **new 2FA device**. You will see the screen, where you will be able to see one or multiple of the following options, depending on what your system administrator has [activated for your instance](../../system-admin-guide/authentication/two-factor-authentication/): - Mobile phone - App-based authenticator - WebAuthn -![](openproject_my_account_authentication_options.png) +![OpenProject My Account Authentication Options](openproject_my_account_authentication_options.png) To receive the second factor, you can use an authentication app on your mobile phone, such as Google Authenticator or Authy. You have to enter the code that is displayed in the authentication app to your login. @@ -126,11 +126,10 @@ You can remove or approve 2FA applications by confirming your password. Note tha ### Use your mobile phone -You can use your mobile phone as a 2FA device. The field *Identifier* will be pre-filled out, you will need to add your phone number and click the green **Continue** button. +You can use your mobile phone as a 2FA device. The field *Identifier* will be pre-filled out, you will need to add your phone number and click the green **Continue** button. ![Add a new mobile phone as a 2FA device in OpenProject](openproject_my_account_two_factor_authentication_mobile.png) - ### Use your app-based authenticator Register an application authenticator for use with OpenProject using the time-based one-time password authentication standard. Common examples are Google Authenticator or Authy. @@ -143,11 +142,11 @@ Click the green **Continue** button to finish the registration. ### Use the WebAuth authentication -Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. After you have chosen a name, you can click the green **Continue** button. +Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. After you have chosen a name, you can click the green **Continue** button. -![](openproject_my_account_authenticator_webauth.png) +![OpenProject WebAuth authentication](openproject_my_account_authenticator_webauth.png) -Your browser will prompt you to present your WebAuthn device (depending on your operational system and your browser, your options may vary). When you have done so, you are done registering the device. +Your browser will prompt you to present your WebAuthn device (depending on your operational system and your browser, your options may vary). When you have done so, you are done registering the device. ### Backup codes @@ -156,18 +155,22 @@ If you are unable to access your two-factor devices, you can use a backup code t If you have created backup codes before, they will be invalidated and will no longer work. ## Access tokens -To view and manage your OpenProject access tokens navigate to **My account** and choose **Access tokens** from the menu. -Access tokens allow you to grant external applications access to resources in OpenProject. + +To view and manage your OpenProject access tokens navigate to **My account** and choose **Access tokens** from the menu. +Access tokens allow you to grant external applications access to resources in OpenProject. ![openproject_my_account_access_tokens](openproject_my_account_access_tokens.png) ### API + API tokens allow third-party applications to communicate with this OpenProject instance via REST APIs. If you have not yet created an API token, this list will be empty. You may need admin privileges to be able to create an API. You can enable an API token under [*Administration -> API and webhooks*](../../system-admin-guide/api-and-webhooks/). Please note that you can only create a single API token. + ### iCalendar -iCalendar tokens allow users to subscribe to OpenProject calendars and view up-to-date work package information from external clients. -This list will be empty if you have no calendar subscriptions yet. Once you [subscribe to a calendar](../../user-guide/calendar/#subscribe-to-a-calendar), a list of all the calendars that you have subscribed to will appear here. The name of the calendar is clickable and will lead you directly to the respective calendar in OpenProject. + +iCalendar tokens allow users to subscribe to OpenProject calendars and view up-to-date work package information from external clients. +This list will be empty if you have no calendar subscriptions yet. Once you [subscribe to a calendar](../../user-guide/calendar/#subscribe-to-a-calendar), a list of all the calendars that you have subscribed to will appear here. The name of the calendar is clickable and will lead you directly to the respective calendar in OpenProject. ![OpenProject calendar list under my account](openproject_my_account_access_tokens_calendar_list.png) @@ -181,38 +184,36 @@ You will then see a message informing you that the the token und the iCal URL ar ### OAUTH -OAuth tokens allow third-party applications to connect with this OpenProject instance, for example Nextcloud (see [here](../../user-guide/file-management/nextcloud-integration/) how to set up Nextcloud integration). OAuth tokens can be created under [*Administration-> Authentication*](../../system-admin-guide/authentication/). +OAuth tokens allow third-party applications to connect with this OpenProject instance, for example Nextcloud (see [here](../../user-guide/file-management/nextcloud-integration/) how to set up Nextcloud integration). OAuth tokens can be created under [*Administration-> Authentication*](../../system-admin-guide/authentication/). -If no third-party application integration has been activated yet, this list will be empty. Please contact your administrator to help you set it up. Once an integration has been set up, you will see the details here and will be able to delete any OAuth tokens by clicking on the **Delete** icon. +If no third-party application integration has been activated yet, this list will be empty. Please contact your administrator to help you set it up. Once an integration has been set up, you will see the details here and will be able to delete any OAuth tokens by clicking on the **Delete** icon. ![OpenProject OAuth tokens under My Account](openproject_my_account_access_tokens_oauth.png) - - ### RSS -RSS tokens allow users to keep up with the latest changes in this OpenProject instance via an external RSS reader. You can only have one active RSS token. +RSS tokens allow users to keep up with the latest changes in this OpenProject instance via an external RSS reader. You can only have one active RSS token. -Create a new token by clicking the **+RSS token** button. This will create your token and trigger a message showing you the access token. +Create a new token by clicking the **+RSS token** button. This will create your token and trigger a message showing you the access token. -> **Note**: You will only be able to see the RSS access token once, directly after you create it. Make sure to copy it. +> **Note**: You will only be able to see the RSS access token once, directly after you create it. Make sure to copy it. ![OpenProject RSS token](openproject_my_account_access_tokens_rss.png) ## Sessions management -To view and manage your OpenProject sessions navigate to **My account** and choose **Sessions management** from the menu. +To view and manage your OpenProject sessions navigate to **My account** and choose **Sessions management** from the menu. ![openproject_my_account_sessions_management](openproject_my_account_sessions_management.png) -- **Current sessions**: here you can see all of your sessions. If for example you are logged into OpenProject from different browsers or devices, all will be shown in the list. Current session is the one you are currently using. You can terminate the sessions that are no longer in use. Inactive sessions will be removed from the list after 7 days (depending on the authentication settings they may become invalid earlier). +- **Current sessions**: here you can see all of your sessions. If for example you are logged into OpenProject from different browsers or devices, all will be shown in the list. Current session is the one you are currently using. You can terminate the sessions that are no longer in use. Inactive sessions will be removed from the list after 7 days (depending on the authentication settings they may become invalid earlier). - **Remembered devices**: here you can see a list of all devices that you are logged into using the "Stay logged in" option. You will have selected that option when [logging in](../sign-in-registration/). Whether or not that option is available and the duration of time for which you can stay logged in depends on the authentication settings of your instance. -> **Note**: Closing a browser does not necessarily terminate the session. It might still be displayed in the list and will be reactivated if you open the browser. This depends on both your browser's and the OpenProject instance's settings. +> **Note**: Closing a browser does not necessarily terminate the session. It might still be displayed in the list and will be reactivated if you open the browser. This depends on both your browser's and the OpenProject instance's settings. ## Notifications settings -To configure the notification settings which you receive from the system, navigate to **My account** and choose **Notifications settings** in the menu. +To configure the notification settings which you receive from the system, navigate to **My account** and choose **Notifications settings** in the menu. ![openproject_my_account_notifications](openproject_my_account_notifications.png) @@ -226,7 +227,7 @@ To configure the email reminders which you receive from the system, navigate to ![openproject_my_account_email_reminders](openproject_my_account_email_reminders.png) -You can choose between several email reminders. +You can choose between several email reminders. Default: Enable daily email reminders: 2am, Monday - Friday. @@ -255,7 +256,7 @@ Also, you can upload a **Custom Avatar** by choosing a Avatar to be uploaded fro > **Note**: The optimum size to upload a new profile picture is 128 by 128 pixel. Larger files will be cropped. -# Delete account +## Delete account You can delete your own account in **My account**. diff --git a/docs/getting-started/my-activity/README.md b/docs/getting-started/my-activity/README.md index 6492bd596ea4..ef8f00942778 100644 --- a/docs/getting-started/my-activity/README.md +++ b/docs/getting-started/my-activity/README.md @@ -8,21 +8,18 @@ keywords: my activity, personal changes, dashboard # My Activity -**My Activity** gives you an overview of all your latest actions and projects you are involved in. +**My Activity** gives you an overview of all your latest actions and projects you are involved in. You can open your **My Activity** page by clicking on your user avatar in the upper right corner and then selecting **My Activity** from the dropdown menu. ![Navigate to My Activity Page](openproject_select_my_actvity.png) -You will see two lists by default. +You will see two lists by default. -**Projects** will show all projects you are a member of. +**Projects** will show all projects you are a member of. -**Activity** will show all of your activities that are being recorded in OpenProject. +**Activity** will show all of your activities that are being recorded in OpenProject. >Please note that only activities from projects that have the **Activity** module enabled will be shown. ![My activity page](openproject_my_activity_overview.png) - - - diff --git a/docs/getting-started/my-page/README.md b/docs/getting-started/my-page/README.md index be7a0989773d..7ab186cc5187 100644 --- a/docs/getting-started/my-page/README.md +++ b/docs/getting-started/my-page/README.md @@ -28,8 +28,6 @@ As a default, you will see two lists of all **work packages assigned to you** an ![My-page-default-view](My-page-default-view.png) - - ## Configure the My Page ### Add widgets @@ -48,7 +46,6 @@ Once you have chosen the place where to add the new widget on My Page, you can c For a **detailed explanation of the widgets**, visit the section in the [project overview](../../user-guide/project-overview/#available-project-overview-widgets). - ### Change position of the widgets You can change the position of a widget on the dashboard with drag and drop. @@ -61,8 +58,6 @@ Click the dots next to the title and drag it to the new place. If you click the dots on the lower right hand corner in a widget you can change the size of a widget by pulling the widget left and right, up and down with the mouse. - - ### Configure the view of a widget (for work package tables) You can configure the view of a work package widget to have the information included that you need. @@ -70,11 +65,11 @@ You can configure the view of a work package widget to have the information incl
**Work package** is a subset of a project that can be assigned to users for execution, such as Tasks, Bugs, User Stories, Milestones, and more. Work packages have a type, an ID and a subject and may have additional attributes, such as assignee, responsible, story points or target version. Work packages are displayed in a project timeline (unless they are filtered out in the timeline configuration) - either as a milestone or as a phase. In order to use the work packages, the work package module has to be activated in the project settings.
-![change the size of a widget](change-size-of-widget.gif) +![change the size of a widget](change-size-of-widget.gif) On a work package widget, click on the button with the three dots and select **Configure view...** -You can configure the work package table (e.g. filter, group, highlight, sort) according to the [filter, sorting and grouping criteria for work packages](../../user-guide/work-packages/work-package-table-configuration/). +You can configure the work package table (e.g. filter, group, highlight, sort) according to the [filter, sorting and grouping criteria for work packages](../../user-guide/work-packages/work-package-table-configuration/). ![configure-view-widget](configure-view-widget.gif) diff --git a/docs/getting-started/openproject-introduction/README.md b/docs/getting-started/openproject-introduction/README.md index bebd132be088..5663fb4ec5bd 100644 --- a/docs/getting-started/openproject-introduction/README.md +++ b/docs/getting-started/openproject-introduction/README.md @@ -110,7 +110,7 @@ Document project achievements, lessons learned, best practices and easily summar ## OpenProject products -### What is the difference between the Community, Enterprise cloud and Enterprise on-premises edition? +### What is the difference between the Community, Enterprise cloud and Enterprise on-premises edition? OpenProject can be used in three different editions, either on-premises or as software-as-a-service. diff --git a/docs/getting-started/projects/README.md b/docs/getting-started/projects/README.md index 259fa1ffaaa8..758013ffecd0 100644 --- a/docs/getting-started/projects/README.md +++ b/docs/getting-started/projects/README.md @@ -16,7 +16,6 @@ A project in OpenProject can be understood as a project as defined above. Also, > **Note**: In order to see a project and work in it, you have to be a [member of the project](../invite-members). - | Topic | Content | | ------------------------------------------------------- | ------------------------------------------------------------ | | [Open a project](#open-an-existing-project) | Select and open an existing project. | @@ -34,8 +33,6 @@ You can also start typing in a project name to filter by the project's title. ![filter_for_project_in_header_menu](filter_project_header_menu.png) - - Projects and subprojects are displayed according to their hierarchy in the drop-down menu.
@@ -43,14 +40,12 @@ Projects and subprojects are displayed according to their hierarchy in the drop-
![project_hierarchy](project_hierarchy-8178054.png) -Alternatively, you can open the list of all existing projects using the [**Global modules**](../../user-guide/home/global-modules/#projects) menu. +Alternatively, you can open the list of all existing projects using the [**Global modules**](../../user-guide/home/global-modules/#projects) menu. Also, you will see your newest projects on the application landing page in the **Projects** section. Here you can simply click on one of the newest visible projects to open it. ![openproject landing page](openproject-landing-page.png) - - ## Create a new project To create a new project, click the green button **+ Project** directly on the system's home screen in the **Project** section. @@ -70,7 +65,7 @@ Alternatively, you can use the green **+ button** in the header menu to create a By default, creating a new project will set you as project admin, regardless of whether you copied a project, used a template or created a project from scratch. Now, you can get started working on your project. -To configure further project information, see the documentation for [project settings](../../user-guide/projects/project-settings/project-information/). +To configure further project information, see the documentation for [project settings](../../user-guide/projects/project-settings/project-information/). ### View all projects @@ -82,11 +77,10 @@ Alternatively you can use the [**Global modules menu**](../../user-guide/home/gl ![Open a list of all existing projects in OpenProject](view_all_projects_options.png) -You will see a list with all your projects and their details. +You will see a list with all your projects and their details. ![project overview list](project-overview-list.png) ## Advanced Project Settings In our detailed user guide you can find out how to configure further [advanced project settings](../../user-guide/projects/) for your projects, e.g. description, project hierarchy or setting it to public. - diff --git a/docs/getting-started/sign-in-registration/README.md b/docs/getting-started/sign-in-registration/README.md index 587a2de2b90c..2096961f7a20 100644 --- a/docs/getting-started/sign-in-registration/README.md +++ b/docs/getting-started/sign-in-registration/README.md @@ -12,7 +12,6 @@ This page will give you an overview of how to register or sign in to an existing > **Note**: If you do not have an OpenProject installation yet, please visit our site on [how to create an OpenProject trial installation](../../enterprise-guide/enterprise-cloud-guide/create-cloud-trial/). - | Topic | Content | |-------------------------------------------------------------------------------|--------------------------------------------------------------------| | [Sign in with an existing account](#sign-in-with-an-existing-account) | Sign in with an existing account to an OpenProject installation. | @@ -97,7 +96,7 @@ If you forgot your password, you can reset your password by clicking the blue ** ![Forgot-password](1566205596114.png) -You are then asked to enter your email address with which you registered to OpenProject. +You are then asked to enter your email address with which you registered to OpenProject. ![enter-email-address](1566205903097.png) diff --git a/docs/getting-started/work-packages-introduction/README.md b/docs/getting-started/work-packages-introduction/README.md index 4eb6966526b4..34f7cce06e08 100644 --- a/docs/getting-started/work-packages-introduction/README.md +++ b/docs/getting-started/work-packages-introduction/README.md @@ -51,7 +51,7 @@ Another option to create a work package is to do it from the header menu. The [w ![create-work-package-header](create-work-package-header.png) -Once you click on the work package type that you want to create, the work package detail view opens and you have to **select the project** that you want to create the work package for. +Once you click on the work package type that you want to create, the work package detail view opens and you have to **select the project** that you want to create the work package for. ![create and name work package](create-work-package.png) @@ -75,7 +75,7 @@ To **update the status**, click on the highlighted displayed status on top of th ## Activity of work packages -To keep informed about all changes to a work package, open the **ACTIVITY** tab in the details view. +To keep informed about all changes to a work package, open the **ACTIVITY** tab in the details view. Here you will see all changes which have been made to this work package. @@ -86,4 +86,3 @@ You can also insert a comment at the end of the Activity list. To notify other people about changes in your work packages activities, you can comment and type an @" in front of the username you want to inform and when you publish your message the person you have tagged will get a notification in OpenProject. The aggregation of changes in the Activity list can be configured in the [system administration](../../system-admin-guide/calendars-and-dates/#date-format). To find out more about the work package functionalities, please visit our detailed [user guide for work packages](../../user-guide/work-packages). - diff --git a/docs/glossary/README.md b/docs/glossary/README.md index 94adc46c733e..1910cc404198 100644 --- a/docs/glossary/README.md +++ b/docs/glossary/README.md @@ -119,6 +119,7 @@ In OpenProject, a custom field is defined as an additional field which can be ad ![Custom fields in OpenProject](glossary-openproject-custom-field.png) **More information on custom fields in OpenProject** + - [Read how to enable custom fields in projects to use them in work packages](../user-guide/projects/project-settings/custom-fields/) - [Read how to create custom fields as a system admin in OpenProject](../system-admin-guide/custom-fields/) @@ -134,7 +135,7 @@ A dashboard is defined as an overview page in a software. In OpenProject, you ha 1. You have the [My Page](#my-page), which shows your personal customized [widgets](#widget) on one page, for example a calendar or work package reports. -2. You have the [project overview](#project-overview) dashboard, which gives you an overview of your project. Please note that only project admins can add and remove widgets to the project overview. +2. You have the [project overview](#project-overview) dashboard, which gives you an overview of your project. Please note that only project admins can add and remove widgets to the project overview. In addition to those overview dashboard options, you can create a [custom query](#custom-query) to save a filtered work package view, which might serve you as kind of a dashboard as well. @@ -164,7 +165,7 @@ File storages can be configured in the System Administration and then be selecte ### Filters -Filters are essential for task and project management in OpenProject. You have several filtering options applicable to a [work package table](#work-package-table). Filter options can be saved via [custom queries](#custom-query). A filtered work packages table view (e.g. only open work packages) can be saved and therefore work as a [dashboard](#dashboard). +Filters are essential for task and project management in OpenProject. You have several filtering options applicable to a [work package table](#work-package-table). Filter options can be saved via [custom queries](#custom-query). A filtered work packages table view (e.g. only open work packages) can be saved and therefore work as a [dashboard](#dashboard). ### Forum @@ -251,6 +252,7 @@ OpenProject offers a OneDrive/SharePoint [integration](#integration) as an [Ente OpenProject on-premises is a self-hosted version of OpenProject. As opposed to the Cloud version, you install, run and maintain the hardware locally and manage the software application there. The on-premises [Community Edition](#community-edition) is free of charge. **More information on OpenProject on-premises** + - [See our pricing side about your options for OpenProject](https://www.openproject.org/pricing/) - [Read a blog article comparing on-premises and cloud](https://www.openproject.org/blog/why-self-hosting-software/) - [Read how to activate the Enterprise on-premises edition](../enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/) @@ -266,9 +268,10 @@ A phase in OpenProject is defined as a [work package type](#work-package-types), In OpenProject, you can choose from several plugins or [integrations](#integration), or add your own plugins to the Community. In contrast to an integration, a plugin is installed on top of / as part of the OpenProject installation. As an open source software, OpenProject is open to Community-created plugins. Please note that we do not guarantee error-free and seamless use of those plugins. -Your activated plugins are listed together with your [modules](#module) in your instance under --> Administration --> Plugins. +Your activated plugins are listed together with your [modules](#module) in your instance under --> Administration --> Plugins. **More information on plugins in OpenProject** + - [See all available plugins and integrations for OpenProject](../system-admin-guide/integrations/) - [Read how to create an OpenProject plugin](../development/create-openproject-plugin/) @@ -376,7 +379,7 @@ In OpenProject, a user is defined as a person who uses OpenProject, described by ### User guide -The OpenProject [user guide](../user-guide/) is an in-depth guide of all features in OpenProject. It offers users detailed information about how to use OpenProject's features, [modules](#module), [integrations](#integration) and more. For more technical information on how to configure your OpenProject instance, see our [system admin guide](../system-admin-guide/). +The OpenProject [user guide](../user-guide/) is an in-depth guide of all features in OpenProject. It offers users detailed information about how to use OpenProject's features, [modules](#module), [integrations](#integration) and more. For more technical information on how to configure your OpenProject instance, see our [system admin guide](../system-admin-guide/). ## V @@ -413,6 +416,7 @@ In OpenProject, a [work package](../user-guide/work-packages/#overview) is defin ![A work package in OpenProject](glossary-openproject-work-package.png) **More information on work packages in OpenProject** + - [Read our user guide on work packages](../user-guide/work-packages/) - [Read a blog article on how to work with work packages](https://www.openproject.org/blog/how-to-work-with-work-packages/) diff --git a/docs/installation-and-operations/README.md b/docs/installation-and-operations/README.md index 1478aa20bc98..061a361c7411 100644 --- a/docs/installation-and-operations/README.md +++ b/docs/installation-and-operations/README.md @@ -8,12 +8,12 @@ sidebar_navigation: This page summarizes the options for getting OpenProject, some hosted and some on-premise. With this information you should be able to decide what option is best for you. Find a full feature comparison [here](https://www.openproject.org/pricing/#features). -### On-premises +## On-premises * **Community edition** - The free, no license, edition of OpenProject that you install on-premise. The additional add-ons of the Enterprise edition are not included. See the "Installation" row of the table below. * **Enterprise on-premise edition** - Builds on top of the Community edition: Enterprise add-ons, professional support, hosted on-premises with optional installation support. See more [on the website](https://www.openproject.org/enterprise-edition/), where you can apply for a free trial, or in the [documentation](../enterprise-guide/enterprise-on-premises-guide/). The Community edition can easily be upgraded to the Enterprise on-premises edition. -### Hosted +## Hosted * **Enterprise Enterprise cloud edition** - Hosted by OpenProject in an EU Data Center, with Enterprise add-ons and professional support . See more on the [website](https://www.openproject.org/enterprise-edition/#hosting-options), where you can apply for a free trial, or in the [documentation](../enterprise-guide/enterprise-cloud-guide/). @@ -21,7 +21,7 @@ This page summarizes the options for getting OpenProject, some hosted and some o All editions can be enhanced by adding [the BIM module](../bim-guide/), including features for construction project management, i.e. 3D model viewer, BCF management. See how to [switch to that edition](bim-edition/) in the documentation or how to start a [BIM Enterprise cloud edition](https://start.openproject.com/trial/bim). -Compare the features of these versions [on the website](https://www.openproject.org/pricing/#features). +Compare the features of these versions [on the website](https://www.openproject.org/pricing/#features). > **Note**: there are some minor options given in the "Other" row of the table below. These are not recommended but you may wish to try them. @@ -39,4 +39,3 @@ Compare the features of these versions [on the website](https://www.openproject. For production environments and when using a [supported distribution](system-requirements), we recommend using the [packaged installation](installation/packaged/). This will install OpenProject as a system dependency using your distribution's package manager, and provide updates in the same fashion that all other system packages do. An OUTDATED and OLD [manual installation](installation/manual) option exists, but due to the large number of components involved and the rapid evolution of OpenProject, we cannot ensure that the procedure is either up-to-date or that it will correctly work on your machine. This means that manual installation is NOT recommended NOR supported. - diff --git a/docs/installation-and-operations/configuration/README.md b/docs/installation-and-operations/configuration/README.md index 286fb3085f20..b77b0637d13b 100644 --- a/docs/installation-and-operations/configuration/README.md +++ b/docs/installation-and-operations/configuration/README.md @@ -6,17 +6,13 @@ sidebar_navigation: # OpenProject advanced configuration - - OpenProject can be configured via environment variables. These are often helpful for automatically deploying production systems. > **NOTE:** This documentation is for OpenProject on-premises Installations only, if you would like to setup similar in your OpenProject cloud instance, please contact us at support@openproject.com > **NOTE:** Using the configuration file `config/configuration.yml` is deprecated and is **NOT** recommended anymore - - -# Packaged installation +## Packaged installation The file `/opt/openproject/.env.example` contains some information to learn more. Files stored within `/etc/openproject/conf.d/` are used for parsing the variables and your custom values to your configuration. Whenever you call `openproject config:set VARIABLE=value`, it will end up in this folder. @@ -36,9 +32,9 @@ After the file `/etc/openproject/conf.d/other` is changed the command `sudo ope Configuring OpenProject through environment variables is described in detail [in the environment variables guide](environment/). -# Docker +## Docker -## one container per process installation +### one container per process installation Add your custom configuration to `docker-compose.override.yml`. @@ -83,8 +79,6 @@ x-op-app: &app # Please use the file at https://github.com/opf/openproject-deploy/blob/stable/14/compose/docker-compose.yml ``` - - Alternatively, you can also use an env file for docker-compose like so: First, add a `.env` file with some variable: @@ -120,15 +114,13 @@ x-op-app: &app # Please use the file at https://github.com/opf/openproject-deploy/blob/stable/14/compose/docker-compose.yml ``` - - Let's say you have a `.env.prod` file with some production-specific configuration. Then, start the services with that special env file specified. ```shell docker-compose --env-file .env.prod up ``` -### Disabling services in the docker-compose file +#### Disabling services in the docker-compose file If you have a `docker-compose.override.yml` file created, it is also easy to disable certain services, such as the database container if you have an external one running anyway. @@ -143,9 +135,7 @@ services: Configuring OpenProject through environment variables is described in detail [in the environment variables guide](environment/). - - -## Docker all-in-one container installation +### Docker all-in-one container installation Environment variables can be either passed directly on the command-line to the Docker Engine, or via an environment file: @@ -158,9 +148,7 @@ docker run -d --env-file path/to/file ... Configuring OpenProject through environment variables is described in detail [in the environment variables guide](environment/). - - -# Seeding through environment +## Seeding through environment OpenProject allows some resources to be seeded/created initially through configuration variables. @@ -169,9 +157,7 @@ OpenProject allows some resources to be seeded/created initially through configu | [Initial admin user creation](#initial-admin-user-creation) | Changing attributes or passwords of the initially created administrator | | [Seeding LDAP connections](#seeding-ldap-connections) | How to create an LDAP connection through configuration | - - -## Initial admin user creation +### Initial admin user creation **Note:** These variables are only applicable during the first initial setup of your OpenProject setup. Changing or setting them later will have no effect, as the admin user will already have been created. @@ -179,8 +165,6 @@ By default, an admin user will be created with the login and password set to `ad In case of automated deployments, you might find it useful to seed an admin user with password and attributes of your choosing. For that, you can use the following set of variables: - - ```shell OPENPROJECT_SEED_ADMIN_USER_PASSWORD="admin" # Password to set for the admin user OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET="true" # Whether to force a password reset on first login (true/false) @@ -188,9 +172,7 @@ OPENPROJECT_SEED_ADMIN_USER_NAME="OpenProject Admin" # Name to assign to that us OPENPROJECT_SEED_ADMIN_USER_MAIL="admin@example.net" # Email attribute to assign to that user. Note that in packaged installations, a wizard step will assign this variable as well. ``` - - -## Seeding LDAP connections +### Seeding LDAP connections OpenProject allows you to create and maintain an LDAP connection with optional synchronized group filters. This is relevant for e.g., automated deployments, where you want to trigger the synchronization right at the start. @@ -256,9 +238,7 @@ OPENPROJECT_SEED_LDAP_EXAMPLE_GROUPFILTER_EXAMPLEFILTER_GROUP__ATTRIBUTE="cn" When a filter is defined, synchronization happens directly during seeding for enterprise editions. Be aware of that when you create the connection that e.g., the LDAP connection needs to be reachable. - - -# Examples for common use cases +## Examples for common use cases * `attachments_storage_path` * `autologin_cookie_name` (default: 'autologin'), @@ -288,9 +268,7 @@ When a filter is defined, synchronization happens directly during seeding for en * [`web`](#web-worker-configuration) (nested configuration) * [`statsd`](#statsd) (nested configuration) - - -## Allowing public access +### Allowing public access By default, any request to the OpenProject application needs to be authenticated. If you want to enable public unauthenticated access like we do for https://community.openproject.org, you can set the `login_required` to `false`. If not provided through environment variables, this setting is also accessible in the administrative UI. Please see the [authentication settings guide](../../system-admin-guide/authentication/authentication-settings/#general-authentication-settings) for more details. @@ -302,9 +280,7 @@ To disable, set the configuration option: OPENPROJECT_LOGIN__REQUIRED="false" ``` - - -## Setting session options +### Setting session options **Delete old sessions for the same user when logging in** @@ -326,13 +302,13 @@ To disable, set the configuration option: OPENPROJECT_DROP__OLD__SESSIONS__ON__LOGOUT="false" ``` -## Attachments storage +### Attachments storage You can modify the folder where attachments are stored locally. Use the `attachments_storage_path` configuration variable for that. But ensure that you move the existing paths. To find out the current path on a packaged installation, use `openproject config:get OPENPROJECT_ATTACHMENTS__STORAGE__PATH`. To update the path, use `openproject config:set OPENPROJECT_ATTACHMENTS__STORAGE__PATH="/path/to/new/folder"`. Ensure that this is writable by the `openproject` user. Afterwards issue a restart by `sudo openproject configure` -### attachment storage type +#### attachment storage type Attachments can be stored using e.g. Amazon S3, In order to set these values through ENV variables, add to the file : @@ -347,9 +323,7 @@ OPENPROJECT_FOG_CREDENTIALS_REGION="eu-west-1" OPENPROJECT_FOG_DIRECTORY="uploads" ``` - - -## Auth source sso +### Auth source sso Can be used to automatically login a user defined through a custom header sent by a load balancer or reverse proxy in front of OpenProject, for instance in a Kerberos Single Sign-On (SSO) setup via apache. The header with the given name has to be passed to OpenProject containing the logged in user and the defined global secret as in `$login:$secret`. @@ -373,11 +347,9 @@ auth_source_sso: # optional: true ``` +### Backups - -## Backups - -### Enable backups +#### Enable backups If enabled, admins (or users with the necessary permission) can download backups of the OpenProject installation via OpenProject's web interface or via the API. @@ -388,7 +360,7 @@ via OpenProject's web interface or via the API. OPENPROJECT_BACKUP__ENABLED="false" ``` -### Backup attachment size max sum mb +#### Backup attachment size max sum mb Per default the maximum overall size of all attachments must not exceed 1GB for them to be included in the backup. If they are larger only the database dump will be included. @@ -398,7 +370,7 @@ Per default the maximum overall size of all attachments must not exceed 1GB for OPENPROJECT_BACKUP__ATTACHMENT__SIZE__MAX__SUM__MB="8192" ``` -### Additional configurations for backup +#### Additional configurations for backup ```yaml OPENPROJECT_BACKUP__DAILY__LIMIT="3" @@ -406,9 +378,7 @@ OPENPROJECT_BACKUP__INCLUDE__ATTACHMENTS="true" OPENPROJECT_BACKUP__INITIAL__WAITING__PERIOD="86400" ``` - - -## BCrypt configuration +### BCrypt configuration OpenProject uses BCrypt to derive and store user passwords securely. BCrypt uses a so-called Cost Factor to derive the computational effort required to derive a password from input. @@ -416,17 +386,15 @@ For more information, see the [Cost Factor guide of the bcrypt-ruby gem](https:/ *default: 12* -```bash +```shell OPENPROJECT_OVERRIDE__BCRYPT__COST__FACTOR="16" ``` - - -## Database configuration and SSL +### Database configuration and SSL Please see [this separate guide](./database/) on how to set a custom database connection string and optionally, require SSL/TTLS verification. -## disable password login +### disable password login If you enable this option you have to configure at least one omniauth authentication provider to take care of authentication instead of the password login. @@ -440,9 +408,7 @@ presented to the users. OPENPROJECT_DISABLE__PASSWORD__LOGIN="true" ``` - - -## omniauth direct login provider +### omniauth direct login provider Per default the user may choose the usual password login as well as several omniauth providers on the login page and in the login drop down menu. With this configuration option you can set a specific omniauth provider to be used for direct login. Meaning that the login provider selection is skipped and the configured provider is used directly (non-interactive) instead. @@ -459,7 +425,7 @@ This route is only available when the direct login provider is set. OPENPROJECT_OMNIAUTH__DIRECT__LOGIN__PROVIDER="google" ``` -## prevent omniauth remapping of existing users +### prevent omniauth remapping of existing users Per default external authentication providers through OmniAuth (such as SAML or OpenID connect providers) are allowed to take over existing accounts if the mapped login is already taken. This is usually desirable, if you have e.g., accounts created through LDAP and want these @@ -474,7 +440,7 @@ to create a new account. OPENPROJECT_OAUTH__ALLOW__REMAPPING__OF__EXISTING__USERS="false" ``` -## Gravatar images +### Gravatar images OpenProject uses gravatar images with a `404` fallback by default to render an internal, initials-based avatar. You can override this behavior by setting `gravatar_fallback_image` to a different value to always render Gravatars @@ -503,7 +469,7 @@ rake attachments:copy_to[file] > **NOTE:** that you have to configure the respective storage (i.e. fog) beforehand as described in the previous section. In the case of fog you only have to configure everything under `fog`, however. Don't change `attachments_storage` to `fog` just yet. Instead leave it as `file`. This is because the current attachments storage is used as the source for the migration. -## direct uploads +### direct uploads > **NOTE**: This only works for AWS S3 or S3-compatible storages\*. When using fog with another provider this configuration will be `false`. The same goes for when no fog storage is configured, or when the `use_iam_profile` option is used in the fog credentials when using S3. @@ -526,7 +492,7 @@ OPENPROJECT_REMOTE__STORAGE__UPLOAD__HOST=mybucket.s3.amazonaws.com OPENPROJECT_REMOTE__STORAGE__DOWNLOAD__HOST=mybucket.s3.eu-west.amazonaws.com" ``` -### fog download url expires in +#### fog download url expires in When using remote storage for attachments via fog - usually S3 (see [`attachments_storage`](#attachments-storage) option) - each attachment download will generate a temporary URL. This option determines how long these links will be valid. @@ -538,7 +504,7 @@ The default is 21600 seconds, that is 6 hours, which is the maximum expiry time OPENPROJECT_FOG__DOWNLOAD__URL__EXPIRES__IN="60" ``` -## Force help link +### Force help link You can override the default help menu of OpenProject by specifying a `force_help_link` option to the configuration. This value is used for the href of the help link, and the default dropdown is removed. @@ -549,7 +515,7 @@ the configuration. This value is used for the href of the help link, and the def OPENPROJECT_FORCE__HELP__LINK="https://it-support.example.com" ``` -## Impressum link +### Impressum link You can set a impressum link (legal notice) for your OpenProject instance by setting `impressum_link` to an absolute URL. @@ -559,7 +525,7 @@ You can set a impressum link (legal notice) for your OpenProject instance by set OPENPROJECT_IMPRESSUM__LINK="https://impressum.example.com" ``` -## Hidden menu items admin menu +### Hidden menu items admin menu You can disable specific menu items in the menu sidebar for each main menu (such as Administration and Projects). The configuration can be done through environment variables. You have to define one variable for each menu that shall be hidden. @@ -577,11 +543,9 @@ The following example disables all menu items except 'Users', 'Groups' and 'Cust OPENPROJECT_HIDDEN__MENU__ITEMS_ADMIN__MENU="roles types statuses workflows enumerations settings ldap_authentication colors project_types plugins info" ``` +### Rate limiting and blocklisting - -## Rate limiting and blocklisting - -### Rate limiting +#### Rate limiting OpenProject provides some rate limiting protections. The default configuration protects against repeated access to authentication credential resets (e.g., lost password functionality). @@ -591,7 +555,7 @@ You can optionally enable additional rules on API rate limiting as follows: Additional application-level rate limiting rules will be added in the future. Additionally to these application level rules, use your load balancer / proxying web server to apply individual rate limiting rules using modules such as `ngx_http_limit_req_module` or `mod_security`. -### Blacklisted routes +#### Blacklisted routes You can blacklist specific routes @@ -603,7 +567,7 @@ The following example forbid all routes for the second example at the 'hidden me OPENPROJECT_BLACKLISTED__ROUTES="admin/info admin/plugins project_types colors settings admin/enumerations workflows/* statuses types admin/roles" ``` -## disabled modules +### disabled modules Modules may be disabled through the configuration. Just give a list of the module names either as an array or as a string with values separated by spaces. @@ -614,7 +578,7 @@ Just give a list of the module names either as an array or as a string with valu OPENPROJECT_DISABLED__MODULES="backlogs meetings" ``` -## local checkout path +### local checkout path *default: "repositories"* @@ -624,7 +588,7 @@ Remote git repositories will be checked out here. note: to be verified, maybe option was removed, not in environement variables list ``` -## APIv3 enable basic auth +### APIv3 enable basic auth You can control basic auth access to the APIv3 with the following configuration option: @@ -634,7 +598,7 @@ You can control basic auth access to the APIv3 with the following configuration OPENPROJECT_APIV3__ENABLE__BASIC__AUTH="false" ``` -## global basic auth +### global basic auth *default: none* @@ -654,7 +618,7 @@ default: password: adminpw ``` -## Security Upgrade Badge +### Security Upgrade Badge OpenProject provides a release indicator (security badge) that will inform administrators of an OpenProject installation on whether new releases or security updates are available for your platform. If enabled, this option will display a badge with your installation status at Administration > Information right next to the release version, and on the home screen. It is only displayed to administrators. @@ -668,7 +632,7 @@ To disable rendering the badge, uncheck the setting at Administration > Syste OPENPROJECT_SECURITY__BADGE__DISPLAYED="false" ``` -## Cache configuration options +### Cache configuration options * `rails_cache_store`: `memcache` for [memcached](https://www.memcached.org/), `redis` for [Redis cache](https://redis.io/), or `memory_store` (default: `file_store`) * When using `memcached`, the following configuration option is relevant: @@ -680,17 +644,17 @@ OPENPROJECT_SECURITY__BADGE__DISPLAYED="false" * `cache_expires_in`: Expiration time for memcache entries (default: `nil`, no expiry) * `cache_namespace`: Namespace for cache keys, useful when multiple applications use a single memcache server (default: `nil`) -## rails asset host +### rails asset host `rails_asset_host`: A custom host to use to serve static assets such as javascript, CSS, images, etc. (default: `nil`) -## onboarding video url +### onboarding video url `onboarding_video_url`: An URL for the video displayed on the onboarding modal. This is only shown when the user logs in for the first time. *default="[https://player.vimeo.com/video/163426858?autoplay=1](https://player.vimeo.com/video/163426858?autoplay=1)"* -## enterprise fail fast +### enterprise fail fast If using an Enterprise token there are certain limits that apply. You can configure how these limits are enforced. @@ -717,7 +681,7 @@ enterprise: fail_fast: true ``` -## Show or hide community links +### Show or hide community links If you would like to hide the homescreen links to the OpenProject community, you can do this with the following configuration: @@ -727,7 +691,7 @@ If you would like to hide the homescreen links to the OpenProject community, you OPENPROJECT_SHOW__COMMUNITY__LINKS=false ``` -## Web worker configuration +### Web worker configuration Configuration of the main ruby web server (currently puma). Sensible *defaults* are provided. @@ -741,9 +705,9 @@ OPENPROJECT_WEB_MAX__THREADS="16" > **NOTE:** Timeouts only are supported when using at least 2 workers. -## Two-factor authentication +### Two-factor authentication -### 2fa enforced +#### 2fa enforced You can set the available 2FA strategies and/or enforce or disable 2FA system-wide. @@ -783,7 +747,7 @@ OPENPROJECT_2FA_DISABLED="true" OPENPROJECT_2FA_ACTIVE__STRATEGIES="[]" ``` -### statsd +#### statsd *default: { host: nil, port: 8125 }* @@ -796,7 +760,7 @@ OPENPROJECT_STATSD_HOST="127.0.0.1" OPENPRJOECT_STATSD_PORT="8125" ``` -## Other configuration topics +### Other configuration topics | Topic | Content | | ------------------------------------------------------------ | :----------------------------------------------------------- | diff --git a/docs/installation-and-operations/configuration/database/README.md b/docs/installation-and-operations/configuration/database/README.md index 343478f5144c..1b71e2102f99 100644 --- a/docs/installation-and-operations/configuration/database/README.md +++ b/docs/installation-and-operations/configuration/database/README.md @@ -10,22 +10,16 @@ sidebar_navigation: Simply run `sudo openproject reconfigure`, and when the database wizard is displayed, select the **Use an existing PostgreSQL database** option and fill in the required details ([cf the initial configuration section](../../installation/packaged/#step-2-postgresql-database-configuration)). - - ### Setting a custom database URL In some cases, you need flexibility in how you define the URL (e.g., specifying more options specific to PostgreSQL or using SSL certificates). In that case, you can pass the database URL as an environment variable instead: -```bash +```shell openproject config:set DATABASE_URL=postgres://user:pass@host:port/dbname ``` - - Then, you need to run `openproject reconfigure` and select "Skip" for the database wizard. Otherwise the wizard will override your DATABASE_URL environment variable again. - - ## Docker-based installation If you run the all-in-one container, you can simply pass a custom `DATABASE_URL` environment variable on the docker command-line, which could @@ -46,11 +40,9 @@ docker-compose up -d In both cases the seeder will be run when you (re)launch OpenProject to make sure that the database gets the migrations and demo data as well. - - ## Setting DATABASE_URL and options separately -OpenProject will merge the settings from `DATABASE_URL` with manually specified environment options. Here are the supported options: +OpenProject will merge the settings from `DATABASE_URL` with manually specified environment options. Here are the supported options: | Environment variable | Default | Description | Documentation | |------------------------------------|-------------|-----------------------------------------------------------------------|------------------------------------------------------------------------------------------| @@ -62,15 +54,13 @@ OpenProject will merge the settings from `DATABASE_URL` with manually specified | OPENPROJECT_DB_APPLICATION_NAME | openproject | PostgreSQL application name option | https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-CONNECT-APPLICATION-NAME | | OPENPROJECT_DB_STATEMENT_TIMEOUT | 90s | Default statement timeout before connection statements are terminated | https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-STATEMENT-TIMEOUT | - - ## Using SSL/TLS with a PostgreSQL database By default, the packaged installation installs a local database and does not use SSL encryption. If you provide a custom PostgreSQL database that supports SSL/TLS connections for servers and/or clients, you can pass the options as part of the DATABASE_URL. See the above guides on how to set this environment variable for Docker or packaged installations. The most import option is the `sslmode` parameter. Set this to the appropriate mode as defined in the [PostgreSQL documentation](https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-PARAMKEYWORDS). For example, to require a SSL connection with full verification of the server certificate, you can add it to the database URL: -```bash +```shell DATABASE_URL=postgres://user:pass@host:port/dbname?sslmode=require-full&sslcert=/path/to/postgresql.cert ``` @@ -86,9 +76,7 @@ Alternatively, for better readability, you can set these parameters with separat | OPENPROJECT_DB_SSLROOTCERT | ~/.postgresql/root.crt | Path to CA | [sslrootcert](https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT) | | OPENPROJECT_DB_SSLCRL | ~/.postgresql/root.crl | Path to revocation list | [sslcrl](https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-CONNECT-SSLCRL) | - - -``` +```text ="prefer" # disable, allow, prefer, require, verify-ca, verify-full ="0" # 0 or 1 ="~/.postgresql/postgresql.crt" # Path to the certificate @@ -98,8 +86,4 @@ Alternatively, for better readability, you can set these parameters with separat ="~/.postgresql/root.crl" # Path to revocation list ``` - - - - PostgreSQL supports a wide variety of options in its connection string. This is not specific to OpenProject or Rails. See the following guide for more information: https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-PARAMKEYWORDS diff --git a/docs/installation-and-operations/configuration/environment/README.md b/docs/installation-and-operations/configuration/environment/README.md index f2a3b5ab000e..dd51cec0cfbb 100644 --- a/docs/installation-and-operations/configuration/environment/README.md +++ b/docs/installation-and-operations/configuration/environment/README.md @@ -4,8 +4,6 @@ sidebar_navigation: priority: 10 --- - - # Environment variables > **NOTE:** This documentation is for OpenProject on-premises Installations only, if you would like to setup similar in your OpenProject cloud instance, please contact us at support@openproject.com @@ -27,7 +25,7 @@ In case you want to use environment variables, but you have no easy way to set t Please be aware that **only those variables shall be edited which are documented** as not everything is meant to be configured or bend. -### Nested values +## Nested values You can override nested configuration values as well by joining the respective hash keys with underscores. Underscores within keys have to be escaped by doubling them. @@ -51,16 +49,12 @@ storage config above like this: OPENPROJECT_STORAGE_TYPE=nfs ``` - - ## Seed variables Some of the provided variables are only applicable during the seeding of a new installation (i.e., during the first start or run of the `db:seeds` setup task). These variables are prefixed with `OPENPROJECT_SEED_*` to identify them. Changing these variables to a new value in a running system of OpenProject will likely have no effect unless explicitly marked in the configuration guides. - - ## Passing data structures to the app The configuration uses YAML to parse overrides from ENV. Using YAML inline syntax, you can: @@ -93,7 +87,7 @@ enterprise: fail_fast: true ``` -# Supported environment variables +## Supported environment variables A list of all configuration variables that can be overridden by defining them in the environment from bash could be generated by executing the following rake task: @@ -347,10 +341,10 @@ OPENPROJECT_WORKING__DAYS (default=[1, 2, 3, 4, 5]) Set working days of the week OPENPROJECT_YOUTUBE__CHANNEL (default="https://www.youtube.com/c/OpenProjectCommunity") Link to YouTube channel in help menu ``` -# Environment-specific configuration variables +### Environment-specific configuration variables -## Docker +#### Docker -### PostgreSQL statement_timeout +##### PostgreSQL statement_timeout In docker installations, there is a default `statement_timeout` of 90s set for the docker image. To override this value in case you're getting statement timeout errors such as "ERROR: canceling statement due to statement timeout", use the environment variable `POSTGRES_STATEMENT_TIMEOUT` diff --git a/docs/installation-and-operations/configuration/incoming-emails/README.md b/docs/installation-and-operations/configuration/incoming-emails/README.md index b96dcb11c68c..2af38b4a39cf 100644 --- a/docs/installation-and-operations/configuration/incoming-emails/README.md +++ b/docs/installation-and-operations/configuration/incoming-emails/README.md @@ -75,6 +75,7 @@ Available arguments that change how the work packages are handled: **Gmail API** In order to use the more secure Gmail API method, some extra initial setup in google cloud is required. + 1. Go to https://console.cloud.google.com/ 2. Create new project 3. Navigate to Enable APIs and Services @@ -120,7 +121,7 @@ and it will be added as a comment to the work package. You can also update attri For instance with the following reply. -``` +```text status: closed The issue is sorted then. Closing this. @@ -140,7 +141,7 @@ there. For example if you write an email with the subject "Fixing problems" and the following body: -``` +```text project: demo-project type: Task status: In Progress @@ -168,8 +169,6 @@ to create work packages, set the option `no_permission_check=1` and specify with If you're used to using mail accounts with suffix support such as Google Mail, where you can specify `account+suffix@googlemail.com`, you will receive mails to that account but respond with your regular account `account@googlemail.com` . To mitigate this, OpenProject by default will expand searching for mail addresses `account@domain` to accounts `account+suffix@domain` through regex searching the mail column. If you do not wish that behavior or want to customize the prefix, alter the setting `mail_suffix_separators` by running `bundle exec rails runner "Setting.mail_suffix_separators = ''"` - - #### Attributes The Attributes you can use in your email are the same whether you create or update a work package. @@ -212,8 +211,6 @@ If you create a work package via email and sent it to another email (to or bcc) In the administrator's setting you can specify lines after which an email will not be parsed anymore. That is useful if you want to reply to an email automatically sent to you from OpenProject. E.g. you could set it to `--Truncate here--` and insert this line into your email below the updates you want to perform. - - ## Error handling In case of receiving errors, the application will try to send an email to the user with some error details. This mail will only be sent if: @@ -224,8 +221,6 @@ In case of receiving errors, the application will try to send an email to the us - The configuration setting `report_incoming_email_errors` is true (which it is by default) - - By returning an email with error details, you can theoretically be leaking information through the error messages. As from addresses can be spoofed, please be aware of this issue and try to reduce the impact by setting up the integration appropriately. If you'd like to disable the reporting of errors to the sender, please set `report_incoming_email_errors=false`: diff --git a/docs/installation-and-operations/configuration/outbound-emails/README.md b/docs/installation-and-operations/configuration/outbound-emails/README.md index 295f506db3ac..dfff551b9bac 100644 --- a/docs/installation-and-operations/configuration/outbound-emails/README.md +++ b/docs/installation-and-operations/configuration/outbound-emails/README.md @@ -24,8 +24,6 @@ You can adjust those settings for other SMTP providers, such as Gmail, Mandrill, etc. Please refer to the documentation of the corresponding provider to see what values should be used. - - ## Configuration through the Admin UI OpenProject allows you to configure your SMTP settings through the administration UI. Using the default admin account created when you first installed OpenProject, go to Administration > Emails and notifications. @@ -50,8 +48,6 @@ These are the options that are available. Please see the [Configuration guide](. | Automatically use STARTTLS | smtp_enable_starttls_auto | `OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO` | You can enable or disable STARTTLS here in case it doesn't work. Make sure you don't login to a SMTP server over a public network when using this. Recommended to leave this on if your server supports it. Possible values: true / false | | OpenSSL verify mode | smtp_openssl_verify_mode | `OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE` | Define how the SMTP server certificate is validated. Make sure you don't just disable verification here unless both, OpenProject and SMTP servers are on a private network. Possible values: `none`, `peer`, `client_once` or `fail_if_no_peer_cert`.
Note: This setting can only be set through ENV/settings | - - ## Package-based installation (DEB/RPM) If you installed OpenProject with the package-based installation, you can configure the above settings using the config:set helper. Please note that this will disable the settings in the administration UI. @@ -67,8 +63,6 @@ openproject config:set OPENPROJECT_SMTP__USER_NAME="apikey" openproject config:set OPENPROJECT_SMTP__PASSWORD="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" ``` - - ## Docker installation If you installed OpenProject with Docker, here is how you would enable outbound emails through the use of the SMTP environment variables (with SendGrid, the `SMTP_USER_NAME` is always `apikey`. Just replace `SMTP_PASSWORD` with the API key you've generated and you should be good to diff --git a/docs/installation-and-operations/configuration/plugins/README.md b/docs/installation-and-operations/configuration/plugins/README.md index 99faac1d6a5d..09548588f596 100644 --- a/docs/installation-and-operations/configuration/plugins/README.md +++ b/docs/installation-and-operations/configuration/plugins/README.md @@ -12,7 +12,7 @@ A number of plugins exist for use with OpenProject. Most plugins that are mainta Previously, using them in a packaged installation was not possible without losing your changes on every upgrade. With the following steps, you can now use third party plugins. -> **Note**: We cannot guarantee upgrade compatibility for third party plugins nor do we provide support for them. Please carefully check whether the plugins you use are available in newer versions before upgrading your installation. +> **Note**: We cannot guarantee upgrade compatibility for third party plugins nor do we provide support for them. Please carefully check whether the plugins you use are available in newer versions before upgrading your installation. ## Add a custom Gemfile @@ -47,7 +47,6 @@ openproject config:set RECOMPILE_ANGULAR_ASSETS="true" > **Note**: Re-enabling Angular asset compilation has two implications: It will install all npm packages required for the compilation and in turn cause a higher disk and especially inode consumption. The Angular CLI production build itself then consumes a sometimes absurd amount of RAM with at least 4GB being required to compile successfully. > If you experience any issues with OpenProject not starting after setting this flag, double check that you are not running out of inodes or RAM when calling `openproject configure`. - ## Re-run the installer To re-bundle the application including the new plugins, as well as running migrations and precompiling their assets, simply re-run the installer while using the same configuration as before. @@ -57,4 +56,3 @@ sudo openproject configure ``` Using configure will take your previous decisions in the installer and simply re-apply them, which is an idempotent operation. It will detect the Gemfile config option being set and re-bundle the application with the additional plugins. - diff --git a/docs/installation-and-operations/configuration/repositories/README.md b/docs/installation-and-operations/configuration/repositories/README.md index da3869dabd40..580901ac6548 100644 --- a/docs/installation-and-operations/configuration/repositories/README.md +++ b/docs/installation-and-operations/configuration/repositories/README.md @@ -1,7 +1,12 @@ -> #### **NOTE:** This documentation is most likely outdated and needs to be used carefully +--- +sidebar_navigation: + title: Repository Integration +--- # Repository Integration in OpenProject +> **NOTE:** This documentation is most likely outdated and needs to be used carefully + OpenProject can (by default) browse Subversion and Git repositories, but it does not serve them to git/svn clients. We support integration with the Apache webserver to create and serve repositories on the fly along with contributions to the fine-grained project authorization system of OpenProject. @@ -21,47 +26,47 @@ Managed repositories need to be enabled manually for each SCM vendor individuall It contains a YAML configuration section for repository management residing under the namespace `scm`. The following is an excerpt of the configuration and contains all required information to set up your data. - - - # Configuration of Source control vendors - # client_command: - # Use this command to the default SCM vendor command (taken from path). - # Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe) - # On Windows, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work. - # manages: - # You may either specify a local path on the filesystem or an absolute URL to call when - # repositories are to be created or deleted. - # This allows OpenProject to take control over the given path to create and delete repositories - # directly when created in the frontend. - # - # When entering a URL, OpenProject will POST to this resource when repositories are created - # using the following JSON-encoded payload: - # - action: The action to perform (create, delete) - # - identifier: The repository identifier name - # - vendor: The SCM vendor of the repository to create - # - project: identifier, name and ID of the associated project - # - old_identifier: The identifier to the old repository (used only during relocate) - # - # NOTE: Disabling :managed repositories using disabled_types takes precedence over this setting. - # - # disabled_types: - # Disable specific repository types for this particular vendor. This allows - # to restrict the available choices a project administrator has for creating repositories - # See the example below for available types - # - # Available types for git: - # - :local (Local repositories, registered using a local path) - # - :managed (Managed repositories, available IF :manages path is set below) - # Available types for subversion: - # - :existing (Existing subversion repositories by URL - local using file:/// or remote - # using one of the supported URL schemes (e.g., https://, svn+ssh:// ) - # - :managed (Managed repositories, available IF :manages path is set below) - # - # Exemplary configuration (Enables managed Git repositories at the given path) - scm: - git: - manages: /srv/repositories/git +```yaml +# Configuration of Source control vendors +# client_command: +# Use this command to the default SCM vendor command (taken from path). +# Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe) +# On Windows, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work. +# manages: +# You may either specify a local path on the filesystem or an absolute URL to call when +# repositories are to be created or deleted. +# This allows OpenProject to take control over the given path to create and delete repositories +# directly when created in the frontend. +# +# When entering a URL, OpenProject will POST to this resource when repositories are created +# using the following JSON-encoded payload: +# - action: The action to perform (create, delete) +# - identifier: The repository identifier name +# - vendor: The SCM vendor of the repository to create +# - project: identifier, name and ID of the associated project +# - old_identifier: The identifier to the old repository (used only during relocate) +# +# NOTE: Disabling :managed repositories using disabled_types takes precedence over this setting. +# +# disabled_types: +# Disable specific repository types for this particular vendor. This allows +# to restrict the available choices a project administrator has for creating repositories +# See the example below for available types +# +# Available types for git: +# - :local (Local repositories, registered using a local path) +# - :managed (Managed repositories, available IF :manages path is set below) +# Available types for subversion: +# - :existing (Existing subversion repositories by URL - local using file:/// or remote +# using one of the supported URL schemes (e.g., https://, svn+ssh:// ) +# - :managed (Managed repositories, available IF :manages path is set below) +# +# Exemplary configuration (Enables managed Git repositories at the given path) +scm: + git: + manages: /srv/repositories/git +``` With this configuration, you can create managed repositories by selecting the `managed` Git repository in the Project repository settings tab. @@ -71,32 +76,36 @@ Part of the managed repositories functionality was previously provided with repo Reposman periodically checked for new projects and automatically created a repository of a given type. It never deleted repositories on the filesystem when their associated project was removed in OpenProject. -This script has been integrated into OpenProject and extended. For further guidance on how to migrate to managed repositories, please see the [upgrade guide to 5.0](../../operation/upgrading) +This script has been integrated into OpenProject and extended. For further guidance on how to migrate to managed repositories, please see the [upgrade guide to 5.0](../../operation/upgrading) ### Managing Repositories Remotely OpenProject comes with a simple webhook to call other services rather than management repositories itself. To enable remote managed repositories, pass an absolute URL to the `manages` key of a vendor in the `configuration.yml`. The following excerpt shows that configuration for Subversion, assuming your callback is `https://example.org/repos`. - scm: - subversion: - manages: https://example.org/repos - accesstoken: +```yaml +scm: + subversion: + manages: https://example.org/repos + accesstoken: +``` Upon creating and deleting repositories in the frontend, OpenProject will POST to this endpoint a JSON object containing information on the repository. - { - "identifier": "seeded_project.git", - "vendor": "git", - "scm_type": "managed", - "project": { - "id": 1, - "name": "Seeded Project", - "identifier": "seeded_project" - }, - "action": "create", - "token": - } +```json +{ + "identifier": "seeded_project.git", + "vendor": "git", + "scm_type": "managed", + "project": { + "id": 1, + "name": "Seeded Project", + "identifier": "seeded_project" + }, + "action": "create", + "token": "" +} +``` The endpoint is expected to return a JSON with at least a `message` property when the response is not successful (2xx). When the response is successful, it must at least return a `url` property that contains an accessible URL and optionally a `path` property to access the repository locally. @@ -110,26 +119,26 @@ It supports notifications for creating repositories (action `create`), moving re If you're interested in setting up the integration manually outside the context of packager, the following excerpt will help you: - - PerlSwitches -I/srv/www/perl-lib -T - PerlLoadModule Apache::OpenProjectRepoman - - - SetHandler perl-script - - # Sets the access token secret to check against - AccessSecret "" - - # Configure pairs of (vendor, path) to the wrapper - PerlAddVar ScmVendorPaths "git" - PerlAddVar ScmVendorPaths "/srv/repositories/git" - - PerlAddVar ScmVendorPaths "subversion" - PerlAddVar ScmVendorPaths "/srv/repositories/subversion" - - PerlResponseHandler Apache::OpenProjectRepoman - - +```apache +PerlSwitches -I/srv/www/perl-lib -T +PerlLoadModule Apache::OpenProjectRepoman + + + SetHandler perl-script + + # Sets the access token secret to check against + AccessSecret "" + + # Configure pairs of (vendor, path) to the wrapper + PerlAddVar ScmVendorPaths "git" + PerlAddVar ScmVendorPaths "/srv/repositories/git" + + PerlAddVar ScmVendorPaths "subversion" + PerlAddVar ScmVendorPaths "/srv/repositories/subversion" + + PerlResponseHandler Apache::OpenProjectRepoman + +``` ## Other Features @@ -144,9 +153,8 @@ This functionality is very basic and we hope to make it more robust over the nex * Checkout URLs are constructed from a base URL and the project identifier * On the repository page, the user is provided with a button to show/expand checkout instructions on demand. * This checkout instruction contains the checkout URL for the given repository and some further information on how the checkout works for this particular vendor (e.g., Subversion → svn checkout, Git → git clone). - * The instructions contain information regarding the capabilities a user has (read, read-write) - * The instructions are defined by the SCM vendor implementations themselves, so that the checkout instructions could be extended by some 3rd party SCM vendor plugin - +* The instructions contain information regarding the capabilities a user has (read, read-write) +* The instructions are defined by the SCM vendor implementations themselves, so that the checkout instructions could be extended by some 3rd party SCM vendor plugin ### Required Disk Storage Information @@ -158,11 +166,11 @@ It could also externally be refreshed by using a cron job using the Sys API. Exe For a future release, we are hoping to provide a webhook to update changesets and storage immediately after a change has been committed to the repository. -# Accessing repositories through Apache +## Accessing repositories through Apache With managed repositories, OpenProject takes care of the lifetime of repositories and their association with projects, however we still need to serve the repositories to the client. -## Preliminary Setup +### Preliminary Setup In the remainder of this document, we assume that you run OpenProject using a separate process, which listens for requests on `http://localhost:3000` that you serve over Apache using a proxy. @@ -172,7 +180,7 @@ authenticate against the OpenProject user database. Therefore, we use an authentication perl script located in `extra/svn/OpenProjectAuthentication.pm`. This script needs to be in your Apache perl path (for example it might be sym-linked into /etc/apache2/Apache). -To work with the authentication, you need to generate a secret repository API key, generated in your +To work with the authentication, you need to generate a secret repository API key, generated in your OpenProject instance at `Modules → Administration → Settings → Repositories`. On that page, enable *"Enable repository management web service"* and generate an API key (do not forget to save the settings). We need that API key later in our Apache configuration. @@ -180,18 +188,18 @@ forget to save the settings). We need that API key later in our Apache configura You also need a distinct filesystem path for Subversion and Git repositories. In this guide, we assume that you put your svn repositories in /srv/openproject/svn and your git repositories in /srv/openproject/git . -## Subversion Integration +### Subversion Integration Apache provides the module `mod_dav_svn` to serve Subversion repositories through HTTP(s). This method requires some apache modules to be enabled and installed. The following commands are required for Debian / Ubuntu, please adjust accordingly for other distributions: ```shell - apt-get install subversion libapache2-mod-perl2 libapache2-svn - a2enmod proxy proxy_http dav dav_svn +apt-get install subversion libapache2-mod-perl2 libapache2-svn +a2enmod proxy proxy_http dav dav_svn ``` -### Permissions +#### Permissions **Important:** If Apache and OpenProject run under separate users, you need to ensure OpenProject remains the owner of the repository in order to browse and delete it, when requested through the user interface. @@ -207,11 +215,11 @@ Without correcting the permissions, the following situation will occur: The following workarounds exist: -#### Apache running `mod_dav_svn` and OpenProject must be run with the same user +##### Apache running `mod_dav_svn` and OpenProject must be run with the same user This is a simple solution, but theoretically less secure when the server provides more than just SVN and OpenProject. -#### Use Filesystem ACLs +##### Use Filesystem ACLs You can define ACLs on the managed repository root (requires compatible FS). You'll need the the `acl` package and define the ACL. @@ -224,59 +232,57 @@ Assuming the following situation: * Repository path for SCM vendor X: `/srv/repositories/X` - - # Set existing ACL - - # Results in this ACL setting - # user::rwx - # user:www-data:rwx - # user:deploy:rwx - # group::r-x - # group:www-data:rwx - # mask::rwx - - setfacl -R -m u:www-data:rwx -m u: openproject:rwx -m d:m:rwx /srv/repositories/X - - # Promote to default ACL - # Results in - # default:user::rwx - # default:user:www-data:rwx - # default:user:deploy:rwx - # default:group::r-x - # default:group:www-data:rwx - # default:mask::rwx - # default:other::--- - - setfacl -dR -m u:www-data:rwx -m u:openproject:rwx -m m:rwx /srv/repositories/X - - - +```shell +# Set existing ACL + +# Results in this ACL setting +# user::rwx +# user:www-data:rwx +# user:deploy:rwx +# group::r-x +# group:www-data:rwx +# mask::rwx + +setfacl -R -m u:www-data:rwx -m u: openproject:rwx -m d:m:rwx /srv/repositories/X + +# Promote to default ACL +# Results in +# default:user::rwx +# default:user:www-data:rwx +# default:user:deploy:rwx +# default:group::r-x +# default:group:www-data:rwx +# default:mask::rwx +# default:other::--- + +setfacl -dR -m u:www-data:rwx -m u:openproject:rwx -m m:rwx /srv/repositories/X +``` On many file systems, ACLS are enabled by default. On others, you might need to remount affected filesystems with the `acl` option set. Note that this issue applies to mod_dav_svn only. -### Use the Apache wrapper script +#### Use the Apache wrapper script Similar to the integration we use ourselves for the packager-based installation, you can set up Apache to manage repositories using the remote hook in OpenProject. For more information, see the section 'Managing Repositories Remotely'. -### Exemplary Apache Configuration +#### Exemplary Apache Configuration We provide an example apache configuration. Some details are explained inline as comments. -​ +​ -## Git Integration +### Git Integration We can exploit git-http-backend to serve Git repositories through HTTP(s) with Apache. This method additionally requires the `cgi` Apache module to be installed. The following commands are required for Debian / Ubuntu, please adjust accordingly for other distributions: ```shell - apt-get install git libapache2-mod-perl2 - a2enmod proxy proxy_http cgi +apt-get install git libapache2-mod-perl2 +a2enmod proxy proxy_http cgi ``` You need to locate the location of the `git-http-backend` CGI wrapper shipping with the Git installation. @@ -284,12 +290,12 @@ Depending on your installation, it may reside in `/usr/libexec/git-core/git-http [More information on git-http-backend.](https://git-scm.com/docs/git-http-backend) -### Permissions +#### Permissions We create bare Git repositories in OpenProject with the [`--shared`](https://www.kernel.org/pub/software/scm/git/docs/git-init.html) option of `git-init` set to group-writable. Thus, if you use a separate user for Apache and OpenProject, they need to reside in a common group that is used for repository management. That group must be set in the `configuration.yml` (see above). -### Exemplary Apache Configuration +#### Exemplary Apache Configuration We provide an example apache configuration. Some details are explained inline as comments. diff --git a/docs/installation-and-operations/configuration/server/README.md b/docs/installation-and-operations/configuration/server/README.md index da928b4666ee..a9dc90143449 100644 --- a/docs/installation-and-operations/configuration/server/README.md +++ b/docs/installation-and-operations/configuration/server/README.md @@ -18,14 +18,14 @@ For instance you could define a new proxy server like this in the `docker-compos ```yaml services: - ... + # ... proxy: image: nginx volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro ports: - "8080:80" - ... + # ... ``` And the corresponding NginX configuration file would look like: @@ -75,5 +75,3 @@ server { } } ``` - -``` diff --git a/docs/installation-and-operations/configuration/ssl/README.md b/docs/installation-and-operations/configuration/ssl/README.md index 3ba1f7cac368..64dcedb4135c 100644 --- a/docs/installation-and-operations/configuration/ssl/README.md +++ b/docs/installation-and-operations/configuration/ssl/README.md @@ -55,7 +55,6 @@ This requires your OpenProject server to be reachable using a domain name (e.g. sudo certbot renew --dry-run ``` - ## External SSL termination If you terminate SSL externally1 before the request hits the OpenProject server, you need to let the OpenProject server know that the request being handled is https, even though SSL was terminated before. This is the most common source in problems in OpenProject when using an external server that terminates SSL. @@ -64,20 +63,15 @@ Please ensure that if you're proxying to the openproject server, you set the HOS On your outer proxying server, set these commands: -- In Apache2, set the `ProxyPreserveHost On` directive +- In Apache2, set the `ProxyPreserveHost On` directive - In NginX, use the following value: `proxy_set_header X-Forwarded-Host $host:$server_port;` - - If you're terminating SSL on the outer server, you need to set the `X-Forwarded-Proto https` header to let OpenProject know that the request is HTTPS, even though it has been terminated earlier in the request on the outer server. - In Apache2, use `RequestHeader set "X-Forwarded-Proto" https` - In Nginx, use `proxy_set_header X-Forwarded-Proto https;` - - Finally, to let OpenProject know that it should create links with 'https' when no request is available (for example, when sending emails), you need to set the Protocol setting of OpenProject to `https`. You can set this configuration by setting the ENV `OPENPROJECT_HTTPS="true"`. - _1 In the packaged installation this means you selected "no" when asked for SSL in the configuration wizard but at the same time take care of SSL termination elsewhere. This can be a manual Apache setup on the same server (not recommended) or an external server, for instance._ diff --git a/docs/installation-and-operations/installation-faq/README.md b/docs/installation-and-operations/installation-faq/README.md index 7dbaf0699bce..20d2cc876331 100644 --- a/docs/installation-and-operations/installation-faq/README.md +++ b/docs/installation-and-operations/installation-faq/README.md @@ -38,12 +38,12 @@ You can use a virtual machine as long as the hardware and the operating system m ### Why is there no installation wizard for desktop as there is for other software? -The Community edition and Enterprise edition of OpenProject are not a desktop application but a server application, typically for Linux servers. Therefore there's no typical user interface to install it. +The Community edition and Enterprise edition of OpenProject are not a desktop application but a server application, typically for Linux servers. Therefore there's no typical user interface to install it. If you want to install it on Windows or Mac you can use the Docker based installation. Please note that installing on Windows Desktop usually works but is not officially supported. The package based installation (for Linux) offers an installation wizard. If you already use Univention, you can use it to install OpenProject, too. -Alternatively, you could use OpenProject [as cloud version](https://www.openproject.org/enterprise-edition/#hosting-options) to avoid installation. +Alternatively, you could use OpenProject [as cloud version](https://www.openproject.org/enterprise-edition/#hosting-options) to avoid installation. ### Why don't you support Windows? @@ -51,10 +51,10 @@ Ruby support on Windows is notoriously difficult, however you might be able to r ### Can I install OpenProject on my Mac? -There's no installation packages for Mac. However, you can use Docker (easier way) or install it manually. -Your Mac will have to be reachable from the Internet if you want to collaborate with others. +There's no installation packages for Mac. However, you can use Docker (easier way) or install it manually. +Your Mac will have to be reachable from the Internet if you want to collaborate with others. -### Does the OpenProject docker container run on ARM technology like Apple M1 or Raspberry PI? +### Does the OpenProject docker container run on ARM technology like Apple M1 or Raspberry PI? Starting with OpenProject 12.5.6 we publish our containers for three architectures. @@ -66,7 +66,7 @@ However, the OpenProject **BIM Edition** is only supported on AMD64. ### Can I install OpenProject offline? -For the packaged installation there are quite a few dependencies which would have to be loaded during installation (like SQLite3, unzip, poppler-utils, unrtf, ...). Therefore, we recommend to use a Docker setup for offline installation. A Docker image contains all dependencies and can really be transferred as single files (via docker save ) without further dependencies. Please find out more about air-gapped installation [here](../installation/docker#offlineair-gapped-installation). +For the packaged installation there are quite a few dependencies which would have to be loaded during installation (like SQLite3, unzip, poppler-utils, unrtf, ...). Therefore, we recommend to use a Docker setup for offline installation. A Docker image contains all dependencies and can really be transferred as single files (via docker save ) without further dependencies. Please find out more about air-gapped installation [here](../installation/docker#offlineair-gapped-installation). Alternatively, you could install OpenProject on a virtual machine with Internet access and then re-use the VM image on the offline hosts. ### Can I use MySQL instead of PostgreSQL? @@ -94,13 +94,13 @@ Please follow these steps: ### Are there extra fees to pay, in terms of installing the OpenProject software? -The Community edition and [Enterprise on-premises edition](https://www.openproject.org/enterprise-edition/) are on-premises solutions and thus need installation from your side while the [Enterprise cloud edition](https://www.openproject.org/enterprise-edition/#hosting-options) is hosted by us. -The Community edition is for free and we ask you to do the installation yourself. Of course we support you with a clear and easy [installation guide](https://www.openproject.org/download-and-installation/). +The Community edition and [Enterprise on-premises edition](https://www.openproject.org/enterprise-edition/) are on-premises solutions and thus need installation from your side while the [Enterprise cloud edition](https://www.openproject.org/enterprise-edition/#hosting-options) is hosted by us. +The Community edition is for free and we ask you to do the installation yourself. Of course we support you with a clear and easy [installation guide](https://www.openproject.org/download-and-installation/). If you would like us to install the **Enterprise on-premises edition** for you, we are charging a fee of €300 (excluding VAT) for this once-off service. You can add the installation support during your [Enterprise on-premises edition booking process](../../enterprise-guide/enterprise-on-premises-guide/activate-enterprise-on-premises/#order-the-enterprise-on-premises-edition). ### How do I get SSL certificates (in case of installation support by OpenProject employee)? Do we have to purchase them? -You can either order the SSL certificates from your ISP or we can create them during installation using Let's Encrypt. If you want the former, you must store the certificates, keys and potentially the passphrase on the server so that they can be entered during the installation. If you want to use Let's Encrypt for encryption, please check whether your operating system supports the [certbot software](https://certbot.eff.org/instructions). +You can either order the SSL certificates from your ISP or we can create them during installation using Let's Encrypt. If you want the former, you must store the certificates, keys and potentially the passphrase on the server so that they can be entered during the installation. If you want to use Let's Encrypt for encryption, please check whether your operating system supports the [certbot software](https://certbot.eff.org/instructions). ### How do you implement the routing so that the page requests intended for this project domain of ours land on the Apache server that is part of the OpenProject installation? What agreements or requirements do we have to discuss with our domain/webspace provider? @@ -108,7 +108,7 @@ A DNS record needs to be placed at the ISP that connects the domain name you wou ### Does the email address used by OpenProject have to be within the our domain for OpenProject or can this also be another address? -The email address does not have to match the domain. For users, however, an email address that matches the domain could be easier to understand. +The email address does not have to match the domain. For users, however, an email address that matches the domain could be easier to understand. ### How can I select the BIM edition during installation? @@ -124,9 +124,7 @@ You can access it using a browser. Please see our [Installation & Upgrades Guide Set a higher number of web workers to allow more processes to be handled at the same time. Find out more [here](../operation/control) and about system requirements [here](../system-requirements/). - - -### I don't receive emails. Test email works fine but not the one for work package updates. +### I don't receive emails. Test email works fine but not the one for work package updates. What can I do? There are two different types of emails in OpenProject: One sent directly within the request to the server (this includes the test mail) and one sent asynchronously, via a background job from the backend. The majority of mail sending jobs is run asynchronously to facilitate a faster response time for server request. @@ -134,7 +132,7 @@ Use a browser to call your domain name followed by "health_checks/all" (e.g. `ht If the health check does not return satisfying results, have a look if the background worker is running by entering `ps aux | grep jobs` on the server. If it is not running, no entry is returned. If it is running an entry with "jobs:work" at the end is displayed. -If the worker is not running please try a restart with `sudo openproject restart worker`. +If the worker is not running please try a restart with `sudo openproject restart worker`. If that doesn't help it could be that the worker is scaled to 0 for some reason, so please try `sudo openproject scale worker=1`. If that doesn't help either, please have a look at your [logs](../operation/monitoring), which are accessible with `sudo openproject logs`. @@ -144,8 +142,6 @@ Another approach would be to restart OpenProject completely, especially after ch This will be done automatically in case the package based installation is used. - - ### The packaged installation cannot be installed or upgraded due to errors. What could cause them? For packaged installations, the openproject package behaves just like every other system package (dpkg or rpm packages, depending on your distribution). If you encounter errors while trying to install or upgrade, please check the following pieces of information first. @@ -154,11 +150,9 @@ For packaged installations, the openproject package behaves just like every othe 2. You have enough inodes on your partitions left. Verify with `df -i` . As OpenProject packages contains a high number of files, these might cause problems with low free inode counts. 3. Make sure you do not have a virus scanner such as Sophos or other pieces of software blocking the installation of packages. - - ### After upgrading I receive the error message "Your OpenProject installation has pending database migrations. You have likely missed running the migrations on your last upgrade. Please check the upgrade guide to properly upgrade your installation." What does that mean? -For some updates of OpenProject, the database layout needs to be adapted to support new features and fix bugs. These changes need to be carried out as part of the update process. This is why it is important to always run `sudo openproject configure` as part of the update process. +For some updates of OpenProject, the database layout needs to be adapted to support new features and fix bugs. These changes need to be carried out as part of the update process. This is why it is important to always run `sudo openproject configure` as part of the update process. Please also have a look at [our upgrade guide](../operation/upgrading). @@ -171,11 +165,11 @@ Once that's done all you have to do is enable automatic creation under /settings For existing projects you can enable the module in the project settings (*Project Settings -> Modules*) and then configure the repository under *Project Settings -> Repository* where you choose git and then "Git repository integrated into OpenProject". -Mind, that repository integration in the sense that you will be able to checkout the repository through OpenProject **does only work in the packaged installation, not docker**. +Mind, that repository integration in the sense that you will be able to checkout the repository through OpenProject **does only work in the packaged installation, not docker**. ### How can I uninstall OpenProject (Community edition or Enterprise on-premises)? -The package based installation is intended to be run on a dedicated system. Dedicated in this case means that no other application software should be served by the server. The system can be either physical or virtual. Removing OpenProject is then equivalent with removing that system or docker instances. +The package based installation is intended to be run on a dedicated system. Dedicated in this case means that no other application software should be served by the server. The system can be either physical or virtual. Removing OpenProject is then equivalent with removing that system or docker instances. In case the database is stored on a different system, e.g. within a database cluster, it needs to be removed separately. The database URL can be found within the OpenProject installation, via `openproject config:get DATABASE_URL`. @@ -187,4 +181,4 @@ It doesn't by default. There is a setting which enables this option: drop_old_se ### Can the OpenProject force password expiration and prevent users from reusing a password? -There is no password expiration in OpenProject, but OpenProject can prevent the re-use of previous passwords via the password_count_former_banned setting. If you use an LDAP-Server for login that has this feature, you can archive this via your LDAP-Server. Other identity providers (e.g. KeyCloak) used via OpenID Connect or SAML can also do this. You can set up these rules in these identity providers directly and use them for authentication. \ No newline at end of file +There is no password expiration in OpenProject, but OpenProject can prevent the re-use of previous passwords via the password_count_former_banned setting. If you use an LDAP-Server for login that has this feature, you can archive this via your LDAP-Server. Other identity providers (e.g. KeyCloak) used via OpenID Connect or SAML can also do this. You can set up these rules in these identity providers directly and use them for authentication. diff --git a/docs/installation-and-operations/installation/README.md b/docs/installation-and-operations/installation/README.md index c4a791c915a1..5f3b5be6d3b0 100644 --- a/docs/installation-and-operations/installation/README.md +++ b/docs/installation-and-operations/installation/README.md @@ -19,6 +19,8 @@ OpenProject can be setup in three different ways: > **NOTE: We recommend using the DEB/RPM package installation.** ## Frequently asked questions (FAQ) + ### Do you have a step-by-step guide to installing OpenProject Enterprise on-premises under Active Directory? + We have a guide on [how to use OpenProject with your Active Directory](../../system-admin-guide/authentication/ldap-authentication/). In addition, with the Enterprise on-premises edition it is also possible to [link LDAP groups with groups in OpenProject](../../system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/). diff --git a/docs/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md index bd154e71e03a..def0b32d2b2f 100644 --- a/docs/installation-and-operations/installation/docker/README.md +++ b/docs/installation-and-operations/installation/docker/README.md @@ -449,7 +449,7 @@ All the Dockerfile does is copy your custom plugins gemfile into the image, inst If you are using the `-slim` tag you will need to do the following to add your plugin. -``` +```dockerfile FROM openproject/openproject:14 AS plugin # If installing a local plugin (using `path:` in the `Gemfile.plugins` above), @@ -771,7 +771,7 @@ But that will be a single point of failure if the manager node goes down. To make this more redundant you can use the load balancer directive in your proxy configuration. For instance for apache this could look like this: -``` +```apache BalancerMember http://10.0.2.77:8080 # swarm node 1 (manager) BalancerMember http://10.0.2.78:8080 # swarm node 2 diff --git a/docs/installation-and-operations/installation/manual/README.md b/docs/installation-and-operations/installation/manual/README.md index 5f095555fe04..79a51e75dae8 100644 --- a/docs/installation-and-operations/installation/manual/README.md +++ b/docs/installation-and-operations/installation/manual/README.md @@ -116,7 +116,7 @@ time to finish. To check our Ruby installation we run `ruby --version`. It should output something very similar to: -``` +```text ruby 3.3.1 (2024-04-23 revision c56cd86388) [arm64-darwin23] ``` @@ -143,7 +143,7 @@ time to finish. To check our Node installation we run `node --version`. It should output something very similar to: -``` +```text v20.9.0 ``` @@ -152,7 +152,6 @@ v20.9.0 We will install the OpenProject Community Edition. It contains the recommended set of plugins for use with OpenProject. For more information, see [github.com/opf/openproject](https://github.com/opf/openproject). - ```shell [openproject@host] cd ~ [openproject@host] git clone https://github.com/opf/openproject.git --branch stable/9 --depth 1 @@ -215,7 +214,7 @@ a better performance of OpenProject: rails_cache_store: :memcache ``` -> __NOTE:__ You should validate your `yml` files, for example with [yamlchecker.com](https://yamlchecker.com/). Both, the `database.yml` and `configuration.yml` file are sensitive to whitespace. It is pretty easy to write invalid `yml` files without seeing the error. Validating those files prevents you from such errors. +> **NOTE:** You should validate your `yml` files, for example with [yamlchecker.com](https://yamlchecker.com/). Both, the `database.yml` and `configuration.yml` file are sensitive to whitespace. It is pretty easy to write invalid `yml` files without seeing the error. Validating those files prevents you from such errors. > To configure the environment variables such as the number of web server threads `OPENPROJECT_WEB_WORKERS`, copy the `.env.example` to `.env` and add the environment variables you want to configure. The variables will be automatically loaded to the application's environment. @@ -235,6 +234,7 @@ To configure the environment variables such as the number of web server threads ```shell [openproject@all] RAILS_ENV="production" OPENPROJECT_DEFAULT_LANGUAGE=fr ./bin/rake db:seed ``` + will seed the database in the French language. ### Secret token @@ -290,7 +290,6 @@ To do this, continue as the root user: As told by the installer, create the file /etc/apache2/mods-available/passenger.load and add the following line. But before copy&pasting the following lines, check if the content (especially the version numbers!) is the same as the passenger-install-apache2-module installer said. When you're in doubt, do what passenger tells you. - ```apache LoadModule passenger_module /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so ``` @@ -298,10 +297,10 @@ LoadModule passenger_module /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gem Then create the file /etc/apache2/mods-available/passenger.conf with the following contents (again, take care of the version numbers!): ```apache - - PassengerRoot /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14 - PassengerDefaultRuby /home/openproject/.rbenv/versions/2.1.6/bin/ruby - + + PassengerRoot /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14 + PassengerDefaultRuby /home/openproject/.rbenv/versions/2.1.6/bin/ruby + ``` Then run: diff --git a/docs/installation-and-operations/installation/misc/README.md b/docs/installation-and-operations/installation/misc/README.md index 49a05ff771e3..cb21e997e8a1 100644 --- a/docs/installation-and-operations/installation/misc/README.md +++ b/docs/installation-and-operations/installation/misc/README.md @@ -16,8 +16,7 @@ on different platforms which use either the docker container or the package: * [Synology](../synology) * [Manual (not recommended)](../manual) - -# Community provided installation variants +## Community provided installation variants There are additional methods on installing OpenProject, which we will link below for reference. Please note that we do not officially support these methods, and cannot guarantee their stability or correctness. diff --git a/docs/installation-and-operations/installation/packaged/README.md b/docs/installation-and-operations/installation/packaged/README.md index d7092252bf13..3992945ea792 100644 --- a/docs/installation-and-operations/installation/packaged/README.md +++ b/docs/installation-and-operations/installation/packaged/README.md @@ -305,11 +305,11 @@ sudo zypper install openproject Then finish the installation by reading the [*Initial configuration*](#initial-configuration) section. -# Full-text extraction not supported +## Full-text extraction not supported For some distributions we do not provide the required dependencies for full-text extraction of attachments. If you need this feature, please install the required dependencies (`catdoc unrtf poppler-utils tesseract-ocr`) manually. For more information, [please see the plaintext gem](https://github.com/planio-gmbh/plaintext). Once installed, check `Administration > Information` to see if OpenProject is able to pick up these dependencies. -# Initial Configuration +## Initial Configuration After you have successfully installed the OpenProject package, you can now perform the initial configuration of OpenProject, using the wizard that ships with the OpenProject package. @@ -431,9 +431,7 @@ In that case, you will be shown three additional dialogs to enter the certificat ![02d-ssl](02d-ssl.png) - - -Enabling this mode will result in OpenProject only responding to HTTPS requests, and upgrade any non-secured requests to HTTPS. It will also output HTTP Strict Transport Security (HSTS) headers to the client. +Enabling this mode will result in OpenProject only responding to HTTPS requests, and upgrade any non-secured requests to HTTPS. It will also output HTTP Strict Transport Security (HSTS) headers to the client. #### External SSL/TLS termination @@ -442,7 +440,7 @@ Enabling this mode will result in OpenProject only responding to HTTPS requests, If you have a separate server that is terminating SSL and only forwarding/proxying to the OpenProject server, you must select "No" in this dialog. However, there are some parameters you need to put into your outer configuration. - If you're proxying to the openproject server, you need to forward the HOST header to the internal server. This ensures that the host name of the outer request gets forwarded to the internal server. Otherwise you might see redirects in your browser to the internal host that OpenProject is running on. - - In Apache2, set the `ProxyPreserveHost On` directive + - In Apache2, set the `ProxyPreserveHost On` directive - In NginX, use the following value: `proxy_set_header X-Forwarded-Host $host:$server_port;` - If you're terminating SSL on the outer server, you need to set the `X-Forwarded-Proto https` header to let OpenProject know that the request is HTTPS, even though its been terminated earlier in the request on the outer server. - In Apache2, use `RequestHeader set "X-Forwarded-Proto" https` @@ -484,11 +482,9 @@ Here an example for external SSL/TLS termination with apache (httpd): ``` - - ### Skip Apache2 web server install (not recommended) -> **Note:** Skipping step 3 Apache2 web server install will ask later in step 7 for information about the hostname and HTTPS +> **Note:** Skipping step 3 Apache2 web server install will ask later in step 7 for information about the hostname and HTTPS The installer will not set up an external web server for accessing. You will need to either install and set up a web server such as Apache2 or Nginx to function as the web server forwarding to our internal server listening at `localhost:6000` by proxying. @@ -502,8 +498,6 @@ When installing with an existing Apache2, you can take a look at the source of o > **Please note:** If you reconfigure the OpenProject application and switch to `skip`, you might run into errors with the Apache configuration file, as that will not be automatically remove. Please double-check you removed references to the `openproject.conf` if you do reconfigure. - - ## Step 4: SVN/Git integration server If you have selected to auto-install an Apache2 web server, you will be asked whether you want to install Git and Subversion repository support. In case you do not need it or when in doubt, choose **Skip** for both options. @@ -512,7 +506,6 @@ For more information, [see our help on repositories](../../../user-guide/reposit ![03-repos](03-repos.png) - ## Step 5: Administrator email The wizard will ask you for an administrative email address so that it can create the administrator account with that email for the initial login. Enter your email address to have it tied to the admin account. @@ -533,14 +526,10 @@ First, enter the fully qualified domain where your OpenProject installation will ![Select the OpenProject host name](07a-hostname.png) - - Next, tell OpenProject whether you have SSL termination enabled somewhere in your stack. Please note that you need to set up protocol forwarding by the means mentioned in the [Skip Apache2 Installation](#skip-apache2-web-server-install-not-recommended) at step 3 above. ![HTTPS setting](07b-protocol.png) - - ## Step 8: Default language > **Note:** This step is only shown on the very first installation of OpenProject, as it affects only the initial seeding of the basic and demo data. Changing this value after installation will have no effect. @@ -555,7 +544,7 @@ Also, this setting will control what is the default language for new users if th With this last step confirmed, the OpenProject wizard will complete, and apply all the configuration options that you have just selected. This might take a few minutes depending on your machine and internet connection, as OpenProject might need to install additional packages (such as the web server, database) depending on your selections. -In case this process crashes or exits with an obvious error, please keep the output and send your configuration from `/etc/openproject/installer.dat` (removing any passwords from it) to us at support@openproject.com , or [reach out to the community forums](https://community.openproject.org/projects/openproject/forums). +In case this process crashes or exits with an obvious error, please keep the output and send your configuration from `/etc/openproject/installer.dat` (removing any passwords from it) to us at support@openproject.com , or [reach out to the community forums](https://community.openproject.org/projects/openproject/forums). When this process completes, it will have started the internal application and web servers, the background jobs to process work-intensive jobs, and set up the connection to the database. @@ -568,8 +557,6 @@ You can then log in using the default user/password combination: You will be asked to change this password immediately after the first login. - - ## Post-installation configuration Here are some pointers to related documentation that you will need to get started: diff --git a/docs/installation-and-operations/installation/univention/README.md b/docs/installation-and-operations/installation/univention/README.md index 95d910fb3dc7..6cac95aafc75 100644 --- a/docs/installation-and-operations/installation/univention/README.md +++ b/docs/installation-and-operations/installation/univention/README.md @@ -9,7 +9,6 @@ sidebar_navigation: Univention App Center is the marketplace in [Univention Corporate Server (UCS)](https://www.univention.com/products/ucs/), an enterprise operating platform for infrastructure and identity management. OpenProject is available in the [App Center](https://www.univention.com/products/app-catalog/openproject/) and comes integrated with the identity management. Please note that only App Center 5 is receiving updates for OpenProject due to the incompatibility between AppCenter 4.3 and 5.0 for Docker-based installations. - **App Appliance for easy deployment** With the App Appliance you can easily deploy your own OpenProject server in a virtual environment. The App Appliance consists of UCS and OpenProject already pre-installed. The UCS environment is setup with only a few steps. Download the official OpenProject virtual machine image in one of the following formats: diff --git a/docs/installation-and-operations/misc/custom-openid-connect-providers/README.md b/docs/installation-and-operations/misc/custom-openid-connect-providers/README.md index cb2adedfcf53..ffda2ec0a781 100644 --- a/docs/installation-and-operations/misc/custom-openid-connect-providers/README.md +++ b/docs/installation-and-operations/misc/custom-openid-connect-providers/README.md @@ -48,7 +48,6 @@ options = { } ``` - Just type this into the console and confirm by pressing *Enter*. This assumes that you have configured your application in the respective provider correctly @@ -137,15 +136,11 @@ options = { } ``` - - ### Back-channel logout OpenProject OIDC integration supports [back-channel logouts](https://openid.net/specs/openid-connect-backchannel-1_0.html) if OpenProject is configured for ActiveRecord based sessions (which is the default). -On the identity provider side, you need to set `https:///auth//backchannel-logout`. `` is the identifier of the OIDC configuration as provided above. - - +On the identity provider side, you need to set `https:///auth//backchannel-logout`. `` is the identifier of the OIDC configuration as provided above. #### Respecting self-registration @@ -160,8 +155,6 @@ options = { } ``` - - ### Claims You can also request [claims](https://openid.net/specs/openid-connect-core-1_0-final.html#Claims) for both the id_token and userinfo endpoint. @@ -215,14 +208,10 @@ more complicated `claims` option above but with `"essential": false`. For all other claims there is no such shorthand. - - ## Instructions for common OIDC providers The following section contains instructions for common OpenID Connect providers. Feel free to contribute your settings through the editing functionality at the bottom of this page. - - ### Keycloak In Keycloak, use the following steps to set up a OIDC integration for OpenProject: @@ -231,28 +220,22 @@ In Keycloak, use the following steps to set up a OIDC integration for OpenProjec - Under "Clients" menu, click on "Create" or "Create client" - **Add client**: Enter the following details - **Client type / protocol**: OpenID Connect - - **Client ID**: `https://` + - **Client ID**: `https://` - **Name**: Choose any name, used only within keycloak - For the **Capability config**, keep Standard flow checked. In our tested version of Keycloak, this was the default. - Click on Save - - You will be forwarded to the settings tab of the new client. Change these settings: - Set **Valid redirect URIs** to `https:///auth/keycloak/*` - Enable **Sign Documents** - If you want to enable [Backchannel logout](https://openid.net/specs/openid-connect-backchannel-1_0.html), set **Backchannel logout URL** to `https:///auth/keycloak/backchannel-logout` - - Next, you will need to create or note down the client secret for that client. -- Go to the **Credentials** tab +- Go to the **Credentials** tab - Click on the copy to clipboard button next to **Client secret** to copy that value - - **OPTIONAL:** By default, OpenProject will map the user's email to the login attribute in OpenProject. If you want to change that, you can do it by providing an alternate claim value in Keycloak: - Go to **Client scopes** @@ -264,8 +247,6 @@ Next, you will need to create or note down the client secret for that client. - Set Token claim name to `preferred_username` - Click on **Save** - - #### Setting up OpenProject for Keycloak integration In OpenProject, these are the variables you will need to set. Please refer to the above documentation for the different ways you can configure these variables: @@ -285,24 +266,18 @@ OPENPROJECT_OPENID__CONNECT_KEYCLOAK_END__SESSION__ENDPOINT="http://`) +- The Client ID you set up for OpenProject (assumed to be `https://`) - The client secret - The tenant's UUID ([Please see this guide](https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc) for more information on the tenant value) - - #### Setting up OpenProject for Keycloak integration In OpenProject, these are the variables you will need to set. Please refer to the above documentation for the different ways you can configure these variables: @@ -317,12 +292,8 @@ openproject config:set OPENPROJECT_OPENID__CONNECT_AZURE_TOKEN__ENDPOINT="https: openproject config:set OPENPROJECT_OPENID__CONNECT_AZURE_USERINFO__ENDPOINT="https://graph.microsoft.com/oidc/userinfo" ``` - - Restart your OpenProject server and test the login button to see if it works. - - ## Troubleshooting **Q: After clicking on a provider badge, I am redirected to a signup form that says a user already exists with that login.** diff --git a/docs/installation-and-operations/misc/docker-postgresql-migration/README.md b/docs/installation-and-operations/misc/docker-postgresql-migration/README.md index fddfaf8c6f5a..e94f2938e7e3 100644 --- a/docs/installation-and-operations/misc/docker-postgresql-migration/README.md +++ b/docs/installation-and-operations/misc/docker-postgresql-migration/README.md @@ -1,6 +1,6 @@ # Migrating your Docker OpenProject database to PostgreSQL -This guide will migrate your all-in-one docker-based MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). +This guide will migrate your all-in-one docker-based MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). ## Backing up @@ -14,7 +14,7 @@ The Dockerfile comes with a built-in PostgreSQL migration script that will auto- Depending on your usage, you may want to set up an external PostgreSQL database to provide the container with connection details just like you did for MySQL. -In any case, you may also use the internally configured PostgreSQL instance of the docker container by using the DATABASE_URL ` postgres://openproject:openproject@127.0.0.1/openproject` +In any case, you may also use the internally configured PostgreSQL instance of the docker container by using the DATABASE_URL `postgres://openproject:openproject@127.0.0.1/openproject` **Installing a PostgreSQL database outside docker** @@ -51,14 +51,10 @@ Lastly, exit the system user # You will be root again now. ``` - - ### Setting environment variables To run the migration part of the image, you will have to provide two environment files: - - ### The MYSQL_DATABASE_URL Note down or copy the current MySQL `DATABASE_URL` @@ -71,10 +67,7 @@ Note down or copy the current MySQL `DATABASE_URL` MYSQL_DATABASE_URL="mysql://user:password@localhost:3306/dbname" ``` - - -**Please note:** Ensure that the URL starts with `mysql://` , not with ` mysql2://` ! - +**Please note:** Ensure that the URL starts with `mysql://` , not with `mysql2://`! ### The PostgreSQL DATABASE_URL @@ -84,18 +77,15 @@ Pass in `DATABASE_URL` pointing to your new PostgreSQL database. This is either POSTGRES_DATABASE_URL="postgresql://:@/" ``` - ### Adapting the hostname **Note:** Depending on your docker installation and networking, you may need to replace the hostname `localhost` in the database URLs with `host.docker.internal` to access the docker host. On Mac for example, localhost will refer to the docker client. - ### Running the migration To run the migration script within the container, now simply run the following command, replacing the content of the environment variables with your actual values. - ```shell docker run -it \ -e MYSQL_DATABASE_URL="mysql://user:password@localhost:3306/dbname" \ @@ -103,5 +93,4 @@ docker run -it \ openproject/openproject:latest ``` - This will perform all necessary steps to perform the migration. Afterwards, simply remove the `MYSQL_DATABASE_URL` environment variable again and start your container as usual. diff --git a/docs/installation-and-operations/misc/migration-to-postgresql13/README.md b/docs/installation-and-operations/misc/migration-to-postgresql13/README.md index e5f5ba62fd8d..d5d093d3a2c5 100644 --- a/docs/installation-and-operations/misc/migration-to-postgresql13/README.md +++ b/docs/installation-and-operations/misc/migration-to-postgresql13/README.md @@ -19,13 +19,11 @@ And verify that it outputs: postgres/autoinstall **install**. If that is not the case, you are likely using a self-provisioned database or a remote database. In this case, please follow the instructions from your provider or use generic PostgreSQL upgrade guides. A guide we can recommend for Debian/Ubuntu based servers is [this one](https://gorails.com/guides/upgrading-postgresql-version-on-ubuntu-server). Please adapt that guide or the following steps to your distribution. -In the following, we assume that you initially let OpenProject setup your PostgreSQL installation, using a local database. +In the following, we assume that you initially let OpenProject setup your PostgreSQL installation, using a local database. NOTE: RedHat and CentOS are slightly different, depending on which PostgreSQL package/repository will be used. For the documentation parts titled RedHat/CentOS RedHat Enterprise Linux 8 was used. - - 1. First, connect to your server and make sure your local version is PostgreSQL v10: For Debian/Ubuntu: @@ -42,8 +40,6 @@ sudo cat /var/lib/pgsql/10/data/PG_VERSION 10 ``` - - 2. Install the new version of PostgreSQL: For Debian/Ubuntu: @@ -60,8 +56,6 @@ sudo yum install pgsql13 sudo /usr/bin/postgresql-13-setup initdb ``` - - 3. Stop the PostgreSQL servers: For Debian/Ubuntu: @@ -78,8 +72,6 @@ sudo su - postgres -c "/usr/pgsql-10/bin/pg_ctl stop --wait --pgdata=/var/lib/pg sudo su - postgres -c "/usr/pgsql-13/bin/pg_ctl stop --wait --pgdata=/var/lib/pgsql/13/data" ``` - - 4. Migrate your data to PostgreSQL 13: For Debian/Ubuntu: @@ -110,8 +102,6 @@ sudo su - postgres < Information" section. - - 7. If everything is fine, you can then remove your older PostgreSQL installation: For Debian/Ubuntu: @@ -207,7 +193,7 @@ docker run --rm -it \ If everything goes well, the process should end with a message as follows: -``` +```text Upgrade Complete ---------------- Optimizer statistics are not transferred by pg_upgrade so, @@ -264,11 +250,9 @@ Please change the command appropriately for other installation methods. Once con ANALYZE VERBOSE; ``` - - ## Troubleshooting -###### User "openproject" does not have a valid SCRAM secret - psql: error: FATAL: password authentication failed for user "openproject" +> User "openproject" does not have a valid SCRAM secret - psql: error: FATAL: password authentication failed for user "openproject" Check `/var/lib/pgsql/13/data/pg_hba.conf` for any appearance of `scram-sha-256` and replace with `md5` diff --git a/docs/installation-and-operations/misc/migration/README.md b/docs/installation-and-operations/misc/migration/README.md index 65ce530c5e17..6426c1dc830c 100644 --- a/docs/installation-and-operations/misc/migration/README.md +++ b/docs/installation-and-operations/misc/migration/README.md @@ -66,7 +66,6 @@ First the dump has to be extracted (unzipped) and then restored. The command use pg_restore -h -u -W --dbname --clean postgresql-dump-20180408095521.pgdump ``` - ### Attachments Your storage path on the old installation can be shown using the following command: @@ -87,8 +86,6 @@ openproject config:get ATTACHMENTS_STORAGE_PATH Simply extract your attachments dump into that folder with `tar -xvzf .tar.gz`, creating it beforehand if needed. Ensure that this is writable by the `openproject` user. - - ### Repositories For repositories, the same approach applies as for the attachments: @@ -107,8 +104,6 @@ openproject config:get GIT_REPOSITORIES Simply extract your respective repository dumps into ech folder, creating it beforehand if needed. The dumps will only be created if you use that feature in your old installation. - - ## Running openproject configure After you restored all data and updated your installer.dat, all you need to do is run through the configuration process of the packaged installation: diff --git a/docs/installation-and-operations/misc/packaged-postgresql-migration/README.md b/docs/installation-and-operations/misc/packaged-postgresql-migration/README.md index bc45d7ff666e..fe8ef3380462 100644 --- a/docs/installation-and-operations/misc/packaged-postgresql-migration/README.md +++ b/docs/installation-and-operations/misc/packaged-postgresql-migration/README.md @@ -2,7 +2,7 @@ **Note:** this guide only applies if you've installed OpenProject using our DEB/RPM packages. -This guide will migrate your packaged MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). +This guide will migrate your packaged MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). ## Backing up @@ -15,7 +15,6 @@ This guide should leave you with a set of archives that you can use to restore, - **Custom env configuration**: conf-<timestamp>.tar.gz - **Repositories**: svn- and git-<timestamp>.tar.gz - ## Installation of pgloader We ship a custom version of pgloader (named `pgloader-ccl`), which embeds some memory optimizations useful when you are migrating from a large MySQL database. This also allows us to provide a unified migration experience for all installation types. This package is available for all the currently supported distributions at [https://packager.io/gh/opf/pgloader-ccl](https://packager.io/gh/opf/pgloader-ccl). @@ -68,7 +67,7 @@ sudo zypper install pgloader-ccl ## Optional: Install and create PostgreSQL database -If you have not yet installed and set up a PostgreSQL installation database, please set up a PostgreSQL database now. +If you have not yet installed and set up a PostgreSQL installation database, please set up a PostgreSQL database now. OpenProject requires at least PostgreSQL 9.5 installed. Please check [www.postgresql.org/download](https://www.postgresql.org/download/) if your distributed package is too old. @@ -123,7 +122,6 @@ Form the `DATABASE_URL` string to match your selected password and add it to the openproject config:set DATABASE_URL="postgresql://openproject:@localhost/openproject" ``` - **Please note:** Replace `` with the password you provided above. If you used any special characters, [check whether they need to be percent-encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding) for the database URL. You can use this command to escape any characters in the password: @@ -132,7 +130,6 @@ You can use this command to escape any characters in the password: openproject run ruby -r cgi -e "puts CGI.escape('your-password-here');" ``` - ## Migrating the database You are now ready to migrate from MySQL to PostgreSQL. The OpenProject packages embed a migration script that can be launched as follows: @@ -145,20 +142,19 @@ This might take a while depending on current installation size. ## Optional: Uninstall MySQL -If the packaged installation auto-installed MySQL before and you no longer need it (i.e. only OpenProject used a MySQL database on your server), you can remove the MySQL packages. +If the packaged installation auto-installed MySQL before and you no longer need it (i.e. only OpenProject used a MySQL database on your server), you can remove the MySQL packages. You can check the output of `dpkg -l | grep mysql` to check for packages to be removed. Only keep `libmysqlclient-dev` for Ruby dependencies on the mysql adapter. -The following is an exemplary removal of an installed version MySQL 5.7. +The following is an exemplary removal of an installed version MySQL 5.7. -``` +```shell [root@host] apt-get remove mysql-server [root@host] openproject config:unset MYSQL_DATABASE_URL ``` **Note:** OpenProject still depends on `mysql-common` and other dev libraries of MySQL to build the `mysql2` gem for talking to MySQL databases. Depending on what packages you try to uninstall, `openproject` will be listed as a dependent package to be uninstalled if trying to uninstall `mysql-common`. Be careful here with the confirmation of removal, because it might just remove openproject itself due to the apt dependency management. - ## Running openproject reconfigure After you migrated your data, all you need to do is run through the configuration process of the packaged installation to remove the MySQL configuration @@ -167,9 +163,7 @@ After you migrated your data, all you need to do is run through the configuratio openproject reconfigure ``` - In the database installation screen, make sure to select `skip`. Keep all other values the same by simply confirming them by pressing `enter` . - After the configuration process has run through, your OpenProject installation will be running on PostgreSQL! diff --git a/docs/installation-and-operations/misc/textile-migration/README.md b/docs/installation-and-operations/misc/textile-migration/README.md index 4e4a17be2178..c32e66140799 100644 --- a/docs/installation-and-operations/misc/textile-migration/README.md +++ b/docs/installation-and-operations/misc/textile-migration/README.md @@ -12,7 +12,6 @@ The migration will be performed automatically during your upgrade to 8.0. You wi You need to run this migration on an OpenProject version < 13.0, as the conversion migration is no longer part of OpenProject starting that version. - ## Dependencies We depend on `pandoc` (https://pandoc.org) for the conversion of all formattable fields in OpenProject. It provides automated means to migrate between many input and output formats, in our case from Textile to GitHub-flavored Markdown. @@ -21,22 +20,16 @@ If you do not have an executable pandoc version of at least version 2.0 in your If you want to force a specific version within your path, set the environment variable OPENPROJECT_PANDOC_PATH, e.g., `OPENPROJECT_PANDOC_PATH=/opt/my/pandoc/bin/pandoc`. - - ## CommonMark Our Markdown parsers and formatters operate on the [CommonMark Markdown standard](https://commonmark.org/) with some suggested additions not yet part of the standard formalized in the [GitHub-flavored Markdown spec.](https://github.github.com/gfm/) - - ## Skipping the migration If you want to skip the migration during the upgrade of 8.0. (e.g., because you want it to run asynchronously), please set the environment variable `OPENPROJECT_SKIP_TEXTILE_MIGRATION="true"` . This will print a warning and then continue with the migration. You can manually force the migration with the following command. **Warning:** Be careful not to execute this once you have already migrated to Markdown because the converter does not distinguish between input formats and simply iterates over all values. - - ```shell $> bundle exec rails runner "OpenProject::TextFormatting::Formats::Markdown::TextileConverter.new.run!" ``` @@ -47,19 +40,12 @@ or in a packaged installation: $> openproject run bundle exec rails runner "OpenProject::TextFormatting::Formats::Markdown::TextileConverter.new.run!" ``` - - ## Markdown and WYSIWYG features With the migration of Markdown, we have introduced a quasi-WYSIWYG powered by CKEditor5 that will make editing in all formattable fields of OpenProject much easier. The output format of that editor is still Markdown. - - For information regarding the features of Markdown and the capabilities of the CKEditor WYSIWYG editor built upon it, please see [here](../../../user-guide/wiki/). +## Textile in 8.0.0 - -## Textile in 8.0.0. - -OpenProject does no longer support Textile in 8.0.0 because it is infeasible to support both variants. Please reach out to us if you're interested in maintaining a Textile format as a plugin. - +OpenProject does no longer support Textile in 8.0.0 because it is infeasible to support both variants. Please reach out to us if you're interested in maintaining a Textile format as a plugin. diff --git a/docs/installation-and-operations/misc/time-entries-corrupted-by-10-4/README.md b/docs/installation-and-operations/misc/time-entries-corrupted-by-10-4/README.md index 7821acbb08ca..60c3007f977b 100644 --- a/docs/installation-and-operations/misc/time-entries-corrupted-by-10-4/README.md +++ b/docs/installation-and-operations/misc/time-entries-corrupted-by-10-4/README.md @@ -2,7 +2,7 @@ > **Note**: This guide only concerns installations having upgraded exactly to the OpenProject version 10.4.0. Installations having upgraded to 10.4.1 directly are not affected. -The migration scripts that ran as part of the OpenProject 10.4.0 upgrade includes an unfortunate bug that leads to some installations suffering data loss. +The migration scripts that ran as part of the OpenProject 10.4.0 upgrade includes an unfortunate bug that leads to some installations suffering data loss. Installations, that had time entry activities enabled/disabled per project, will have all their time entries assigned to a single time entry activity. This guide describes how to fix the data once this has happened. @@ -15,9 +15,9 @@ This guide describes how to fix the data once this has happened. ## 1. Create a second database from the backup -Backup scripts are by default created via the [built in OpenProject command](../../operation/backing-up). -When not following the default, the database or the OpenProject server itself may have been backed up. -This guide only covers the proceedings for the the built in backup command. +Backup scripts are by default created via the [built in OpenProject command](../../operation/backing-up). +When not following the default, the database or the OpenProject server itself may have been backed up. +This guide only covers the proceedings for the the built in backup command. But the reader might deduce the steps necessary to restore accordingly for a custom backup from this guide. As a result of this step, a second database, not the database OpenProject is currently connecting to, will contain the data of the backup. @@ -57,13 +57,13 @@ CREATE DATABASE The command above might not work for some installations. In that case the following is a viable alternative: ```shell -$ su postgres -c createdb -O openproject_backup +su postgres -c createdb -O openproject_backup ``` Example: ```shell -$ su postgres -c createdb -O openproject openproject_backup +su postgres -c createdb -O openproject openproject_backup ``` ### 1.3 Restore backup to auxiliary database @@ -84,16 +84,16 @@ drwxr-xr-x 6 openproject openproject 4096 Nov 19 21:00 .. We will need the most recently created (but created before the migration to 10.4) file following the schema `postgresql-dump-.pgdump`. -Using that file we can then restore the database to the newly created database (called `openproject_backup` in our example). **In the following steps, ensure that you do not restore to the currently running database**. +Using that file we can then restore the database to the newly created database (called `openproject_backup` in our example). **In the following steps, ensure that you do not restore to the currently running database**. ```shell -$ pg_restore -d "postgres://:@:/" /var/db/openproject/backup/postgresql-dump-.pgdump` +pg_restore -d "postgres://:@:/" /var/db/openproject/backup/postgresql-dump-.pgdump` ``` Example: ```shell -$ pg_restore -d "postgres://openproject:L0BuQvlagjmxdOl6785kqwsKnfCEx1dv@127.0.0.1:45432/openproject_backup" /var/db/openproject/backup/postgresql-dump-20191119210038.pgdump` +pg_restore -d "postgres://openproject:L0BuQvlagjmxdOl6785kqwsKnfCEx1dv@127.0.0.1:45432/openproject_backup" /var/db/openproject/backup/postgresql-dump-20191119210038.pgdump` ``` That command will restore the contents of the backup file into the auxiliary database. @@ -103,13 +103,13 @@ That command will restore the contents of the backup file into the auxiliary dat The script that fixes the time entries can then be called: ```shell -$ BACKUP_DATABASE_URL="postgres://:@:/" sudo openproject run bundle exec rails openproject:reassign_time_entry_activities +BACKUP_DATABASE_URL="postgres://:@:/" sudo openproject run bundle exec rails openproject:reassign_time_entry_activities ``` Example ```shell -$ BACKUP_DATABASE_URL="postgres://openproject:L0BuQvlagjmxdOl6785kqwsKnfCEx1dv@127.0.0.1:45432/openproject_backup" sudo openproject run bundle exec rails openproject:reassign_time_entry_activities +BACKUP_DATABASE_URL="postgres://openproject:L0BuQvlagjmxdOl6785kqwsKnfCEx1dv@127.0.0.1:45432/openproject_backup" sudo openproject run bundle exec rails openproject:reassign_time_entry_activities ``` The script will then print out the number of time entries it has fixed. diff --git a/docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md b/docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md index de1aa7ce738a..5d713f7615f9 100644 --- a/docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md +++ b/docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md @@ -10,8 +10,6 @@ All the script needs is docker to be installed. It will start containers as requ ## Usage - - ### Create a backup First, you will need to create a backup to get the MySQL database dump. Please see our separate guide on [Backing up](../../operation/backing-up/). In a packaged installation, the following command will output a full backup to `/var/db/openproject/backup`: @@ -20,18 +18,13 @@ First, you will need to create a backup to get the MySQL database dump. Please s openproject run backup ``` - - This will output a MySQL dump at `/var/db/openproject/backup/mysql-dump-.sql.gz`. You will need to gunzip this: - ```shell cp /var/db/openproject/backup/mysql-dump-.sql.gz /tmp/openproject-mysql.dump.gz gunzip /tmp/openproject/openproject-mysql.dump.gz ``` - - ### Run the docker migration script With docker installed, use the following command to start the upgrade process on your MySQL dump. @@ -44,15 +37,12 @@ You will need to find the docker host IP to connect to the temporary MySQL datab The script will output a `-migrated.dump` pg_dump file which has been migrated and upgraded to the current stable version. You can also pass `sql` as a parameter after the input dump file to have the script output a `.sql` file instead of a `.dump` file. - ## Restoring the migrated database You now have an old packaged installation with an old database, and a separate database dump of the current version migrated to PostgreSQL. To upgrade OpenProject and use this dump, you have two options: - - ### Upgrading your existing installation You can simply upgrade your package first and then switch to a PostgreSQL database. You will basically have to follow our [Upgrading guide](../../operation/upgrading/). @@ -64,15 +54,13 @@ You can simply upgrade your package first and then switch to a PostgreSQL databa 3. After this is completed, stop the servers to restore the database separately `service openproject stop` - + The following command will restore the database. **WARNING:** This will remove the database returned by `openproject config:get DATABASE_URL`, so please double check this is what you want to do: `pg_restore --clean --if-exists --dbname $(openproject config:get DATABASE_URL) /path/to/migrated/postgresql.dump` 4. Execute configure script to ensure the migrations are complete and to restart the server - - ### Re-Installing OpenProject The alternative option is to remove your current installation, upgrade the newest package and configure a PostgreSQL database. This will ensure the package wizard will install and maintain a PostgreSQL database for you. @@ -105,16 +93,12 @@ The steps for this option is as follows: `openproject configure` - - ## Problems with the migration? - Please let us know if you have any questions regarding this upgrade path. Reach out to us [through our contact data or form on our website](https://www.openproject.org/contact/) with feedback and issues you experienced. We're very interested in providing a smooth upgrade at all times, and would like to document issues you experience during the upgrade. - ### Known problems **Permission errors when trying to start the OP7 container** diff --git a/docs/installation-and-operations/operation/control/README.md b/docs/installation-and-operations/operation/control/README.md index 9962d47f863d..69c5bab5fd2e 100644 --- a/docs/installation-and-operations/operation/control/README.md +++ b/docs/installation-and-operations/operation/control/README.md @@ -6,21 +6,15 @@ sidebar_navigation: # Process control for your OpenProject installation +## Packaged installation - - - -## Packaged installation - -#### Restart all the OpenProject processes +### Restart all the OpenProject processes ```shell sudo openproject restart ``` - - -#### Run commands like rake tasks or rails console +### Run commands like rake tasks or rails console The OpenProject command line tool supports running rake tasks and known scripts. For instance: @@ -54,9 +48,7 @@ sudo openproject run ruby -v # if using docker-compose: docker-compose run --rm web ruby -v ``` - - -#### Scaling the number of web workers +### Scaling the number of web workers Note: Depending on your free RAM on your system, we recommend you raise the default number of web processes. The default from 9.0.3 onwards is 4 web processes. Each worker will take roughly 300-400MB RAM. @@ -80,13 +72,12 @@ After changing these values, simply restart the web process: sudo openproject restart web ``` -#### Scaling the number of background workers +### Scaling the number of background workers Note: Depending on your free RAM on your system, we recommend you raise the default number of background processes. By default, one background worker is spawned. Background workers are responsible for delivering mails, copying projects, performing backups and deleting resources. We recommend to have two background worker processes. Please check your current web processes count with: - To set the desired process count, call ```shell @@ -99,13 +90,11 @@ The respective systemd services are automatically created or removed. If you wer ## All-in-one Docker-based installation -#### Run commands like rake tasks or rails console +### Run commands like rake tasks or rails console You can spawn an interactive shell in your docker container to run commands in the OpenProject environment. - - -First, find out the container ID of your web process with: +First, find out the container ID of your web process with: ```shell # Ensure the containers are running with the following output @@ -115,8 +104,6 @@ docker ps | grep web_1 export CID=$(docker ps | grep web_1 | cut -d' ' -f 1) ``` - - We can now run commands against that container Run a bash shell in the container @@ -137,54 +124,42 @@ In case of using kubernetes, the command is a bit different kubectl exec -it {POD_ID} -- bash -c "RAILS_ENV=production bundle exec rails console" ``` - - Launch an interactive console to directly interact with the underlying Ruby on Rails application: ```shell docker exec -it $CID bash -c "RAILS_ENV=production bundle exec rails console" ``` - - ## docker-compose based installation -#### Spawn a rails console +### Spawn a rails console You can spawn an interactive shell in your docker-compose setup container to run commands in the OpenProject environment. - The following command will spawn a Rails console in the container: ```shell docker-compose run web bash -c "RAILS_ENV=production bundle exec rails console" ``` - - ## Kubernetes and Helm-Charts For Kubernetes installations, you can use `kubectl` to access pods and get information about them. For example, to get a shell in one of the worker pods, you would have to do the following. First, get the pod name of the worker. Assuming your kubectl cluster has OpenProject installed at the `openproject` namespace: +```shell +kubectl get pods -n openproject ``` -kubectl get pods -n openproject -``` - - Then spawn a shell in the relevant one -``` +```shell kubectl exec -n openproject -it pods/openproject-worker-656c77d594-xjdck -- bash ``` - - This spawns a bash console. In there, you could for example run a rails console like follows: -``` +```shell bundle exec rails console ``` - diff --git a/docs/installation-and-operations/operation/faq/README.md b/docs/installation-and-operations/operation/faq/README.md index 0d2498c50045..b8e898ed224c 100644 --- a/docs/installation-and-operations/operation/faq/README.md +++ b/docs/installation-and-operations/operation/faq/README.md @@ -55,4 +55,3 @@ A closer look at the available branches: ## How can I backup and restore my OpenProject installation? Please refer to the [backup documentation](../backing-up) for the packaged installation. - diff --git a/docs/installation-and-operations/operation/monitoring/README.md b/docs/installation-and-operations/operation/monitoring/README.md index 145dba04978c..9c47269029b2 100644 --- a/docs/installation-and-operations/operation/monitoring/README.md +++ b/docs/installation-and-operations/operation/monitoring/README.md @@ -8,13 +8,11 @@ sidebar_navigation: OpenProject provides different means of monitoring and auditing your application. - - ## Logging information In production, OpenProject uses [Lograge formatter](https://github.com/roidrage/lograge) `key_value` logger by default. Every request will result in the following `info` log level: -``` +```text I, [2023-11-14T09:21:15.136914 #56791] INFO -- : [87a5dceb-0560-4e17-8577-2822106dfc00] method=GET path=/ format=html controller=HomescreenController action=index status=200 allocations=133182 duration=237.82 view=107.45 db=116.50 user=85742 ``` @@ -37,8 +35,6 @@ This formatter makes it easy to parse and analyze logs. Let's take a look at the | `db=116.50` | Time spent in database (in ms) | | `user=85742` | User ID of the instance | - - ## Displaying and filtering log files ### Packaged installation @@ -54,28 +50,24 @@ sudo openproject logs --tail You can abort this using Ctrl + C. - - **systemd / journalctl** On most distributions, OpenProject does not maintain its own log files, but sends logs directly to `journalctl`. On older distributions that use either sysvinit or upstart, all the logs are stored in `/var/log/openproject/`. -You can get all logs of the web processes like this: +You can get all logs of the web processes like this: -```bash +```shell journalctl -u openproject-web-1 ``` Likewise, to get all logs of the background worker processes: -```bash +```shell journalctl -u openproject-worker-1 ``` journalctl has flexible filtering options to search for logs. For example, add `--since "1 hour ago"` to show logs printed in the past hour. - - ### Docker-compose In a docker-based installation, all logs are redirected to STDOUT so you can use the normal docker tools to manage your logs. @@ -86,16 +78,12 @@ For instance for the Compose-based installation: docker-compose logs -f --tail 1000 ``` - - ### All-in-one / Slim docker container ```shell docker logs -f --tail 1000 openproject ``` - - ## Raising the log level OpenProject can log at different service levels, the default being `info`. You can set the [environment variable](../../configuration/environment/#environment-variables) `OPENPROJECT_LOG__LEVEL` to any of the following values: @@ -105,8 +93,6 @@ OpenProject can log at different service levels, the default being `info`. You c - `warn`: Operational warnings that might need resolution as well as error messages - `error` Caught or uncaught application errors, as well as fatal errors. - - For example, to set this in the packaged installation, use the following command: ```shell @@ -120,7 +106,7 @@ For Docker-based installations, add the ENV variable to your env file and restar OpenProject uses the [okcomputer gem](https://github.com/sportngin/okcomputer) to provide built-in health checks on database, web, and background workers. -We provide the following health checks: +We provide the following health checks: - `https://your-hostname.example.tld/health_checks/default` - An application level check to ensure the web workers are running. - `https://your-hostname.example.tld/health_checks/database` - A database liveliness check. @@ -133,4 +119,3 @@ We provide the following health checks: ### Optional authentication You can optionally provide a setting `health_checks_authentication_password` (`OPENPROJECT_HEALTH__CHECKS__AUTHENTICATION__PASSWORD`) that will add a basic auth challenge to the `/health_checks` endpoint. Please be aware that this might break existing container health services in place in the docker-compose and k8s based deployments, so use with care or prefer to use a network based separation instead on your proxy level. - diff --git a/docs/installation-and-operations/operation/restoring/README.md b/docs/installation-and-operations/operation/restoring/README.md index c0fc45cb6147..82e1ddf22bab 100644 --- a/docs/installation-and-operations/operation/restoring/README.md +++ b/docs/installation-and-operations/operation/restoring/README.md @@ -53,7 +53,6 @@ sudo tar xzf /var/db/openproject/backup/conf-20191119210038.tar.gz -C /etc/openp If you want to change anything in the configuration, you can also inspect the `/etc/openproject` folder afterwards and change them accordingly. To go through all configured wizards steps, use the `openproject reconfigure` option. [See the configuration guide](../reconfiguring) for more information. - Untar the repositories to their destination: ```shell diff --git a/docs/installation-and-operations/operation/upgrading/README.md b/docs/installation-and-operations/operation/upgrading/README.md index c5226a36c58a..050d7c096b70 100644 --- a/docs/installation-and-operations/operation/upgrading/README.md +++ b/docs/installation-and-operations/operation/upgrading/README.md @@ -21,6 +21,7 @@ sidebar_navigation: This section concerns upgrading of your OpenProject installation for packaged-based installation methods. ### Patch and minor releases + Upgrading to a newer patch or minor version of OpenProject is as easy as installing a newer OpenProject package and running the `openproject configure` command. Please follow the steps listed below according to your Linux distribution. @@ -48,7 +49,6 @@ If you get an error like the following: 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 ```shell @@ -87,7 +87,6 @@ After following the steps to update the package source, updating the openproject In case you experience issues, please note the exact steps you took, copy the output of all commands you ran and open a post in our [installation support forum](https://community.openproject.org/projects/openproject/forums/9). - ### Running openproject configure It is important that you run the `openproject configure` command after _every_ upgrade of OpenProject, as this will ensure your installation is being updated and necessary database migrations are being performed. @@ -98,7 +97,6 @@ If you want to perform changes to your configuration or are unsure what steps ar Note that this still takes previous values into consideration. Values that should not change from your previous configurations can be skipped by pressing ``. This also applies for steps with passwords, which are shown as empty even though they may have a value. Skipping those steps equals to re-use the existing value. - ## Compose-based installation When using the Compose-based docker installation, you can simply do the following: diff --git a/docs/installation-and-operations/system-requirements/README.md b/docs/installation-and-operations/system-requirements/README.md index df274ea802a1..e6734809b9f4 100644 --- a/docs/installation-and-operations/system-requirements/README.md +++ b/docs/installation-and-operations/system-requirements/README.md @@ -65,7 +65,7 @@ One way to scale the _docker_ installation is to use [docker Swarm](../installat The [package-based installation](../installation/packaged) requires one of the following Linux distributions: -| Distribution (**64 bits only**) | +| Distribution (__64 bits only__) | | ------------------------------- | | Ubuntu 22.04 Jammy | | Ubuntu 20.04 Focal | @@ -78,7 +78,7 @@ The [package-based installation](../installation/packaged) requires one of the f The [docker-based installation](../installation/docker) requires a system with Docker installed. Please see the [official Docker page](https://docs.docker.com/install/) for the list of supported systems. -**Please note**, that we only provide packages for the **AMD64** (x86) architecture. We do provide *docker containers* for both **ARM64** and **PPC64** on top of **AMD64**. +**Please note**, that we only provide packages for the __AMD64__ (x86) architecture. We do provide *docker containers* for both __ARM64__ and __PPC64__ on top of __AMD64__. ### Overview of dependencies diff --git a/docs/release-notes/10/10-0-0/README.md b/docs/release-notes/10/10-0-0/README.md index b13b6db2904f..2bdc4a7297d5 100644 --- a/docs/release-notes/10/10-0-0/README.md +++ b/docs/release-notes/10/10-0-0/README.md @@ -14,8 +14,6 @@ Read below to get a detailed overview of what is new in OpenProject 10. ![OpenProject 10](release-teaser.jpg) - - ## Drag & drop (manual sorting) in work package table OpenProject 10 adds drag and drop to the work package table. You can easily change the work package order by simply dragging a work package to a desired place. @@ -26,8 +24,6 @@ When you group the work package table based on an attribute (e.g. the assignee, ![Drag & Drop work packages](drag-drop-1.png) - - ## Card view for work packages The work package view is extended in OpenProject 10. In addition to the list view and the Gantt chart view, it is possible to display work packages in a card format. @@ -36,8 +32,6 @@ This provides an easy visual overview of the tasks in a project. Simply activate ![OpenProject card view](card-view.png) - - ## Updated Project Overview OpenProject 10 introduces an updated project overview page. You can now easily add, edit and remove widgets - directly from the project overview page. @@ -48,8 +42,6 @@ The overview pages of users upgrading from earlier versions to OpenProject 10 wi ![Updated project overview](overview.png) - - ## Graphs on project overview page (Enterprise add-on) As a user of the Enterprise cloud or Enterprise on-premises, you can add graphs to the overview page. This enables you to visualize important project information - directly form the project overview page. @@ -60,8 +52,6 @@ As a result, you quickly see your project's status and can act accordingly. ![Graphs on overview page](graphs.png) - - ## Updated administration menu and structure The administration area is completely remodeled in OpenProject 10. Due to the changes, the administration menu is much more clearly structured. @@ -70,8 +60,6 @@ Additionally, the administration overview page now highlights the different admi ![Updated administration](administration.png) - - ## Checkbox lists You can easily add checkboxes in order to create to do lists to wiki pages, work package descriptions and many other pages which support the wiki syntax. @@ -80,19 +68,15 @@ Afterwards, you can easily check off items which have been completed to keep tra ![Check boxes and sticky header wiki pages](checkbox-lists.png) - - ## Sticky toolbar for WYSIWYG editor The toolbar for wiki pages is now fixed at the top and no longer scrolls along with the page. Thus, you can easily edit even long texts on a wiki page without having to scroll up and down. - - ## Performance improvements OpenProject 10 significantly improves the performance, especially for the work package page. Due to description caching work packages are loaded swiftly. -#### Bug fixes and changes +## Bug fixes and changes - Added: [Wiki] Allow to create child pages via links without a target [[#24167](https://community.openproject.org/wp/24167)] - Added: Sticky text editor toolbar that is visible above long text fields [[#29738](https://community.openproject.org/wp/29738)] @@ -218,30 +202,24 @@ OpenProject 10 significantly improves the performance, especially for the work p - Fixed: Single Sign on feature is available in Community edition [[#31045](https://community.openproject.org/wp/31045)] - Fixed: Cannot edit comment that was just created [[#31057](https://community.openproject.org/wp/31057)] - - ## Support -You will find useful information in the OpenProject [FAQ]() or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). +You will find useful information in the OpenProject [FAQ](../../../faq/) or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). -### Upgrading your installation to OpenProject 10.0. +### Upgrading your installation to OpenProject 10.0 If you're using the OpenProject Enterprise cloud edition, you are already running on the latest version of OpenProject 10.0. For your local installations, there are some minor changes you need to do in order to perform the upgrade. [Please visit our upgrade guides for more information](../../../installation-and-operations/operation/upgrading). - - ## Credits Special thanks go to all OpenProject contributors without whom this release would not have been possible: - All the developers, designers, project managers who have contributed to OpenProject. -- Every dedicated user who has [reported bugs]() and supported the community by asking and answering questions in the [forum](https://community.openproject.org/projects/openproject/boards). +- Every dedicated user who has reported bugs and supported the community by asking and answering questions in the [forum](https://community.openproject.org/projects/openproject/boards). - All the engaged users who provided translations on [CrowdIn](https://crowdin.com/projects/opf). - - ## What's next? We are continuously developing new features and improvements for OpenProject. diff --git a/docs/release-notes/10/10-0-1/README.md b/docs/release-notes/10/10-0-1/README.md index 6bcaca04892e..e8d38472f669 100644 --- a/docs/release-notes/10/10-0-1/README.md +++ b/docs/release-notes/10/10-0-1/README.md @@ -11,9 +11,7 @@ release_date: 2019-09-30 We released [OpenProject 10.0.1](https://community.openproject.org/versions/1393). The release contains several bug fixes and we recommend updating to the newest version. - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Misaligned checkboxes in text editor [[#31066](https://community.openproject.org/wp/31066)] - Fixed: Wrong cursor icon when editing custom text widget [[#31092](https://community.openproject.org/wp/31092)] @@ -33,7 +31,7 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Attachments lose their name on download [[#31205](https://community.openproject.org/wp/31205)] - Changed: Complete missing translations for 10.0 [[#31147](https://community.openproject.org/wp/31147)] -#### Contributions +## Contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. diff --git a/docs/release-notes/10/10-0-2/README.md b/docs/release-notes/10/10-0-2/README.md index 682fc87ccaf9..32e4892e55e5 100644 --- a/docs/release-notes/10/10-0-2/README.md +++ b/docs/release-notes/10/10-0-2/README.md @@ -11,8 +11,6 @@ release_date: 2019-10-02 We released [OpenProject 10.0.2](https://community.openproject.org/versions/1395). The release contains a security related fix and we urge updating to the newest version. - - ## [CVE-2019-17092] XSS injection vulnerability in projects listing in versions before 9.0.4, 10.0.2 An XSS vulnerability in project list in OpenProject before 9.0.4 and 10.x before 10.0.2 allows remote attackers to inject arbitrary web script or HTML via the sortBy parameter because error messages are mishandled. @@ -22,10 +20,11 @@ This vulnerability has been assigned the CVE identifier CVE-2019-17092. Versions Affected: Versions <= 9.0.3, 10.0.1 Fixed Versions: 9.0.4, 10.0.2 -Credits +### Credits + Thanks to David Haintz from the SEC Consult Vulnerability Lab (https://www.sec-consult.com) for identifying and responsibly disclosing the identified issues. -#### Incorrect setting results in slow application and RAM usage +## Incorrect setting results in slow application and RAM usage The environment variable *WEB_CONCURRENCY* has been used by OpenProject for some time to control the number of web workers to be spawned by the Unicorn application server. It is defaulting to 4 workers which should account to around 1 - 1.2GB of RAM usage. @@ -33,17 +32,15 @@ In the upgrade to OpenProject 10, a buildpack from Heroku was updated to control This has been fixed in this release. We now use the environment variable *OPENPROJECT_WEB_WORKERS* to control the same setting. If you previously set *WEB_CONCURRENCY* in your application to a lower or higher number, please also set the *OPENPROJECT_WEB_WORKERS* variable to the same value. -#### OtherBug fixes and changes +## Other bug fixes and changes - Fixed: Inconsistent row heights when resizing widgets [[#31048](https://community.openproject.org/wp/31048)] - Fixed: In Budgets projected unit costs and labor cost is not shown [[#31247](https://community.openproject.org/wp/31247)] - Fixed: Restart puma workers to cope with potential memory leaks [[#31262](https://community.openproject.org/wp/31262)] - Fixed: "Enterprise edition" blue bar would be nicer horizontally [[#31265](https://community.openproject.org/wp/31265)] -#### Contributions +## Contributions Thanks to David Haintz from [SEC Consult Vulnerability Lab](https://www.sec-consult.com) for identifying and responsibly disclosing the identified issues. - 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 Andrea Pistai diff --git a/docs/release-notes/10/10-1-0/README.md b/docs/release-notes/10/10-1-0/README.md index 9a450a3b56a9..5ad88474f747 100644 --- a/docs/release-notes/10/10-1-0/README.md +++ b/docs/release-notes/10/10-1-0/README.md @@ -32,7 +32,7 @@ This way, the project overview page can be extended to a detailed reporting dash ![Dashboards](dashboards.png) -[Find out more about the new project status reporting in OpenProject](). +[Find out more about the new project status reporting in OpenProject](../../../user-guide/projects/project-status/). ## CRUD operations for projects in API v3 @@ -48,7 +48,7 @@ OpenProject contains a new consolidated look and feel for work package edit fiel OpenProject has been updated to Rails 6.0.0. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Status dropdown is misplaced when the widget is at the bottom of the page [[#31426](https://community.openproject.org/wp/31426)] - Fixed: Project overview: Display fields should be "read only" when user lacks permissions [[#31453\]](https://community.openproject.org/wp/31426) @@ -88,20 +88,20 @@ OpenProject has been updated to Rails 6.0.0. ## Support -You will find useful information in the OpenProject [FAQ]() or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). +You will find useful information in the OpenProject [FAQ](../../../faq/) or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). -### Upgrading your installation to OpenProject 10.1. +### Upgrading your installation to OpenProject 10.1 If you’re using the OpenProject Enterprise cloud edition, you will be automatically updated to the latest version of OpenProject 10.1 in the next days. For your local installations, there are some minor changes you need to do in order to perform the upgrade. -[Please visit our upgrade guides for more information](). +[Please visit our upgrade guides for more information](../../../installation-and-operations/operation/upgrading/). ## Credits Special thanks go to all OpenProject contributors without whom this release would not have been possible: - All the developers, designers, project managers who have contributed to OpenProject. -- Every dedicated user who has [reported bugs]() and supported the community by asking and answering questions in the [forum](https://community.openproject.org/projects/openproject/boards). +- Every dedicated user who has reported bugs and supported the community by asking and answering questions in the [forum](https://community.openproject.org/projects/openproject/boards). - All the engaged users who provided translations on [CrowdIn](https://crowdin.com/projects/opf). ## What’s next? diff --git a/docs/release-notes/10/10-2-0/README.md b/docs/release-notes/10/10-2-0/README.md index 422d74119f4c..9969d8fe2f67 100644 --- a/docs/release-notes/10/10-2-0/README.md +++ b/docs/release-notes/10/10-2-0/README.md @@ -12,7 +12,7 @@ release_date: 2019-11-11 We released [OpenProject 10.2.0](https://community.openproject.org/versions/1390). The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Many mails are still being sent synchronously, slowing down the application [[#28287](https://community.openproject.org/wp/28287)] - Fixed: Work package webhooks not triggered when Setting.notified_events disabled [[#29501](https://community.openproject.org/wp/29501)] @@ -30,8 +30,6 @@ The release contains several bug fixes and we recommend updating to the newest v - Changed: Upgrade CKEditor to 15.0 [[#31542](https://community.openproject.org/wp/31542)] - Changed: Zen mode for project overview page [[#31559](https://community.openproject.org/wp/31559)] -#### Contributions - - +## Contributions Thanks to Thanh Nguyen Nguyen from [Fortinet's FortiGuard Labs](https://fortiguard.com/) for identifying and responsibly disclosing the attachment filename stringification issue [#31580](https://community.openproject.org/wp/31580). diff --git a/docs/release-notes/10/10-2-1/README.md b/docs/release-notes/10/10-2-1/README.md index 13b324faddcf..461228f7abc2 100644 --- a/docs/release-notes/10/10-2-1/README.md +++ b/docs/release-notes/10/10-2-1/README.md @@ -11,15 +11,13 @@ release_date: 2019-11-13 We released [OpenProject 10.2.1](https://community.openproject.org/versions/1404). The release contains several bug fixes and we recommend updating to the newest version. - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Error 500 when clicking on a history version [[#31643](https://community.openproject.org/wp/31643)] - Fixed: Built-in users count towards active user limit [[#31650](https://community.openproject.org/wp/31650)] - Changed: Webhook for created time entries [[#31647](https://community.openproject.org/wp/31647)] -#### Contributions +## Contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. diff --git a/docs/release-notes/10/10-2-2/README.md b/docs/release-notes/10/10-2-2/README.md index 7d5624e026e9..ceb1801faf12 100644 --- a/docs/release-notes/10/10-2-2/README.md +++ b/docs/release-notes/10/10-2-2/README.md @@ -12,7 +12,7 @@ We released [OpenProject 10.2.2](https://community.openproject.org/versions/1405 The release contains several bug fixes and fixes server security issues. We thus urge everybody to upgrade to the newest version as soon as possible. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Outline of display-field extends table cell width \[[#31214](https://community.openproject.org/wp/31214)\] - Fixed: SQL error in work package view \[[#31667](https://community.openproject.org/wp/31667)\] @@ -29,7 +29,8 @@ The release contains several bug fixes and fixes server security issues. We thus - Fixed: API v3 /relations/:id does not check permissions \[[#31855](https://community.openproject.org/wp/31855)\] - Fixed: Tabnabbing on wiki pages \[[#31817](https://community.openproject.org/wp/31817)\] -#### Contributions +## Contributions + A big thanks to community members for reporting bugs and helping us identifying and providing fixes. In this release, we would especially like to thank Bartosz Nowicki for responsibly disclosing a severe data leakage \([#31855](https://community.openproject.org/wp/31855)\). Behavior like this helps improving the security for everybody, so thanks a lot Bartosz. And Thanh Nguyen Nguyen of [Fortiguard Labs](https://fortiguard.com/) has once again responsibly disclosed a security issue to us ([#31817](https://community.openproject.org/wp/31817)). Thank you, Nguyen. diff --git a/docs/release-notes/10/10-3-0/README.md b/docs/release-notes/10/10-3-0/README.md index cc131d84ddb0..78a0c174036d 100644 --- a/docs/release-notes/10/10-3-0/README.md +++ b/docs/release-notes/10/10-3-0/README.md @@ -29,7 +29,7 @@ You can use those custom fields to properly display text with a right-to-left or ![Custom fields with right-to-left orientation](CustomFieldsRTL.png) -#### Bug fixes and changes +## Bug fixes and changes - Changed: [Watchers] Removing watcher sends email to removed watcher \[[#21304](https://community.openproject.org/wp/21304)\] - Changed: Work packages tiles view for small screens \[[#31631](https://community.openproject.org/wp/31631)\] @@ -57,7 +57,7 @@ You can use those custom fields to properly display text with a right-to-left or You can find useful information in the [OpenProject help section](https://www.openproject.org/docs/) or you can post your questions in the [OpenProject Forum](https://community.openproject.org/projects/openproject/boards). -### Upgrading your installation to OpenProject 10.3. +### Upgrading your installation to OpenProject 10.3 If you’re using the OpenProject Enterprise cloud edition, you will be automatically updated to the latest version of OpenProject 10.1 in the next days. For your local installations, there are some minor changes you need to do in order to perform the upgrade. diff --git a/docs/release-notes/10/10-3-1/README.md b/docs/release-notes/10/10-3-1/README.md index 36161adf8dd5..5352700e0413 100644 --- a/docs/release-notes/10/10-3-1/README.md +++ b/docs/release-notes/10/10-3-1/README.md @@ -12,14 +12,15 @@ We released [OpenProject 10.3.1](https://community.openproject.org/versions/1409 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Activity numbers only partly shown on mobile \[[#31892](https://community.openproject.org/wp/31892)\] - Fixed: Text in custom field not correctly displayed \[[#31896](https://community.openproject.org/wp/31896)\] - Fixed: New Wiki pages are not shown \[[#31907](https://community.openproject.org/wp/31907)\] - Fixed: Date separator (dash) misplaced \[[#31926](https://community.openproject.org/wp/31926)\] -#### Contributions +## 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 diff --git a/docs/release-notes/10/10-4-0/README.md b/docs/release-notes/10/10-4-0/README.md index 85a8e9f20527..398bffc4e1f3 100644 --- a/docs/release-notes/10/10-4-0/README.md +++ b/docs/release-notes/10/10-4-0/README.md @@ -71,8 +71,6 @@ In OpenProject you can now manage multiple building models in IFC format in para ![OpenProject-BIM_structural](OpenProject-BIM_structural.png) - - ### IFC viewer integrated in OpenProject OpenProject 10.4 supports to open 3D **models** **and** **visualize** **building** **models** directly in your browser. With this new integrated functionality for construction project management you can now easily **share** **multiple IFC** **files** with your team directly in OpenProject - integrated with all OpenProject functionalities for the project management along the entire building project life-cycle, i.e. BCF management, issue tracking, project planning, documentation. @@ -81,7 +79,7 @@ View full 3D objects in OpenProject in IFC format. Select and display the model ![OpenProject-BIM_IFC-viewer](OpenProject-BIM_IFC-viewer.png) -### Switch between 3D and 2D view for your building model in OpenProject. +### Switch between 3D and 2D view for your building model in OpenProject You can change between a 3D view or 2D view of the building model in OpenProject. @@ -193,14 +191,10 @@ Here you can find the [Installation guidelines](../../../installation-and-operat Want to upgrade from a Community version to try out the light or dark theme? [Get a 14 days free trial token.](https://www.openproject.org/enterprise-edition/) - - ## How to try the OpenProject BIM edition Try out OpenProject BIM 10.4. right away, create a free trial instance for the [OpenProject BIM edition.](https://start.openproject.com/trial/bim) - - ## What is on the Roadmap? We are continuously developing new features for OpenProject. The next release will include improved scheduling in the Gantt chart. @@ -211,21 +205,15 @@ For the upcoming BIM specific release we are focusing on more building industry - Revit integration to OpenProject. - Further advanced BCF management. - - ## Migrating to OpenProject 10.4 Follow the [upgrade guide for the packaged installation or Docker installation](../../../installation-and-operations/operation/upgrading/) to update your OpenProject installation to OpenProject 10.4. We update hosted OpenProject environments (Enterprise cloud) automatically. - - ## Support -You will find useful information in the OpenProject [FAQ]() or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). - - +You will find useful information in the OpenProject [FAQ](../../../faq/) or you can post your questions in the [Forum](https://community.openproject.org/projects/openproject/boards). ## Credits diff --git a/docs/release-notes/10/10-4-1/README.md b/docs/release-notes/10/10-4-1/README.md index 059b2af4d061..fed53497f574 100644 --- a/docs/release-notes/10/10-4-1/README.md +++ b/docs/release-notes/10/10-4-1/README.md @@ -11,21 +11,15 @@ release_date: 2020-03-04 We released [OpenProject 10.4.1](https://community.openproject.org/versions/1417). The release contains several bug fixes and we recommend updating to the newest version. - - -### Time entry corruption in 10.4.0 update +## Time entry corruption in 10.4.0 update The migration scripts that ran as part of the OpenProject 10.4.0 upgrade include an unfortunate bug that leads to some installations suffering data loss. Installations, that had time entry activities enabled/disabled per project, will have all their time entries assigned to a single time entry activity. - - If you have updated to 10.4.0 and were using project-based time entry activities, please use the following guide to restore them: [Fixing time entries corrupted by upgrading to 10.4.0](../../../installation-and-operations/misc/time-entries-corrupted-by-10-4/). - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Can not delete queries on community.openproject.org \[[#32326](https://community.openproject.org/wp/32326)\] - Fixed: Special characters displayed as ASCII code in My Spent Time widget \[[#32328](https://community.openproject.org/wp/32328)\] @@ -34,9 +28,8 @@ If you have updated to 10.4.0 and were using project-based time entry activities - Fixed: Cost control - activity types lost after upgrade to 10.4 \[[#32360](https://community.openproject.org/wp/32360)\] - Fixed: Unexpected submit when using IME \[[#32423](https://community.openproject.org/wp/32423)\] -#### Contributions -A big thanks to community members for reporting bugs and helping us identifying and providing fixes. +## 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 - Freddy Trotin, Harald Holzmann, Wojciech Niziński, Kanta Ebihara diff --git a/docs/release-notes/10/10-5-0/README.md b/docs/release-notes/10/10-5-0/README.md index 2a120128b5ba..b6bf653b7d95 100644 --- a/docs/release-notes/10/10-5-0/README.md +++ b/docs/release-notes/10/10-5-0/README.md @@ -6,6 +6,7 @@ release_version: 10.5.0 release_date: 2020-04-23 --- --- + # Release notes OpenProject 10.5.0 | Release notes | Description | @@ -13,7 +14,6 @@ release_date: 2020-04-23 | [OpenProject 10.5.0](#openproject-1050) | What is new for OpenProject 10.5.0? | | [OpenProject 10.5 BIM edition for construction project management](#openproject-105-bim-edition-for-construction-project-management) | What is new for the construction project management for the building industry in OpenProject 10.5.0? | - # OpenProject 10.5.0 We released [OpenProject 10.5.0](https://community.openproject.org/versions/1386). @@ -21,27 +21,25 @@ The new release of the open source project management software contains new acti We recommend updating to the newest version. - - -### Action board for assignees +## Action board for assignees The new action boards for assignees allow to create agile boards with lists for individual users or groups. The assignee will automatically be updated when moving cards across lists. This allows very transparent prioritization of tasks and distribution of workload between individuals and teams. ![Assignee-boards](Assignee-boards.png) -### Sort versions by name +## Sort versions by name We have now changed the sorting of versions in the drop-down menu by name not by dates. This makes it much easier to select a version from the list, especially when there are multiple active versions in one project. ![Sorting-versions](Sorting-versions.png) -### No more 24-hour restriction for time tracking +## No more 24-hour restriction for time tracking The restriction to only allow the booking of 24 hours per day has now been removed. You can now summarize your time bookings and track more than 24 hours. ![Spent-time](Spent-time.png) -### Show news summary on project overview widget +## Show news summary on project overview widget The summary of news will now be displayed in the news widget on the project overview page. This way, the summary of the most recent news will be communicated at one sight. @@ -87,7 +85,7 @@ BCF Management in OpenProject is compatible with hundreds of applications that s BIM Issues can be created wherever the user identifies them, i.e. in his favorite BIM tool. These issues can then be easily imported into OpenProject - the central BCF management system - for centralized tracking and consolidation. An export function can then be used to distribute the BCFs back to the local applications. -### All changes and bug fixes +## All changes and bug fixes - Changed: Hide "Empty" work package updates \[[#21471](https://community.openproject.org/wp/21471)\] - Changed: Create a "Action board" with "Action attribute" -> "Assignee" \[[#30157](https://community.openproject.org/wp/30157)\] @@ -110,7 +108,7 @@ An export function can then be used to distribute the BCFs back to the local app - Fixed: Wiki tables not responsive + CSS weird + no markdown \[[#31920](https://community.openproject.org/wp/31920)\] - Fixed: Strings not localized (password settings) \[[#31976](https://community.openproject.org/wp/31976)\] - Fixed: Multiple Work Package Widgets on MyPage - Groups can't be reduced independently \[[#32030](https://community.openproject.org/wp/32030)\] -- Fixed: [Repository] Error 500 when trying to log time with unmapped changeset user \[[#32038](https://community.openproject.org/wp/32038)\] +- Fixed: \[Repository\] Error 500 when trying to log time with unmapped changeset user \[[#32038](https://community.openproject.org/wp/32038)\] - Fixed: Clean-up Administration -> System settings and remove wiki history compression \[[#32045](https://community.openproject.org/wp/32045)\] - Fixed: Work package ID cut off on right side \[[#32069](https://community.openproject.org/wp/32069)\] - Fixed: Project sorting not working anymore \[[#32220](https://community.openproject.org/wp/32220)\] @@ -159,7 +157,7 @@ An export function can then be used to distribute the BCFs back to the local app - Fixed: Avatars are incorrectly cached \[[#32870](https://community.openproject.org/wp/32870)\] - Fixed: Hourly cron synchronization not executed in docker context \[[#32884](https://community.openproject.org/wp/32884)\] - Fixed: Assignee list empty when creating a task in "modules" work package table \[[#32887](https://community.openproject.org/wp/32887)\] -- Fixed: [Docker] Attach files error "An internal error has occurred. The attachment could not be saved due to lacking file system permissions" \[[#32890](https://community.openproject.org/wp/32890)\] +- Fixed: \[Docker\] Attach files error "An internal error has occurred. The attachment could not be saved due to lacking file system permissions" \[[#32890](https://community.openproject.org/wp/32890)\] - Fixed: Inconsistent breadcrumb in Administration -> Enterprise edition \[[#32905](https://community.openproject.org/wp/32905)\] - Fixed: Styling and consistency issues in the confirm deletion modal for the EE token \[[#32908](https://community.openproject.org/wp/32908)\] - Fixed: Misaligned menu opener in Backlogs plugin \[[#32923](https://community.openproject.org/wp/32923)\] @@ -183,9 +181,8 @@ An export function can then be used to distribute the BCFs back to the local app - Fixed: String without translation in roles & permissions \[[#33113](https://community.openproject.org/wp/33113)\] - Fixed: Cannot find users anymore with "+" sign in user name / email to add to project \[[#33115](https://community.openproject.org/wp/33115)\] -#### Contributions -A big thanks to community members for reporting bugs and helping us identifying and providing fixes. +## 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 - Vikas Kedia, Fernando Meurer, Aurelien Barre, Adnan Abou-Rikab, Scott Sanders, York-Simon Johannsen, Joachim Schardt, Peter Pof, Tobias R, Frank Schmid, Harald Holzmann, Petr Zeman, Paul GARROUSTE, Marc Vollmer, Filter Punk, Mathias Gerlach, Gio @ Enuan, Per Bröms, Jason Culligan, Frank Long, Radovan Semancik, Frendy A. N. diff --git a/docs/release-notes/10/10-5-1/README.md b/docs/release-notes/10/10-5-1/README.md index c3bf9e122290..65ad25df1dc8 100644 --- a/docs/release-notes/10/10-5-1/README.md +++ b/docs/release-notes/10/10-5-1/README.md @@ -12,7 +12,7 @@ We released [OpenProject 10.5.1](https://community.openproject.org/versions/1426 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Remove horizontal line in several modules above buttons \[[#32924](https://community.openproject.org/wp/32924)\] - Fixed: Alignment for assignee in Gantt chart off \[[#33097](https://community.openproject.org/wp/33097)\] diff --git a/docs/release-notes/10/10-6-0/README.md b/docs/release-notes/10/10-6-0/README.md index 336f0a6b96d9..60b28f5f5f3b 100644 --- a/docs/release-notes/10/10-6-0/README.md +++ b/docs/release-notes/10/10-6-0/README.md @@ -6,18 +6,18 @@ release_version: 10.6.0 release_date: 2020-06-02 --- -# Release notes OpenProject 10.6.0 +# OpenProject 10.6.0 + +## Release notes OpenProject 10.6.0 | Release notes | Description | | ------------------------------------------------------------ | :----------------------------------------------------------- | | [OpenProject 10.6.0](#openproject-1060) | What is new for OpenProject 10.6.0? | | [OpenProject 10.6.0 BIM edition for construction project management](#openproject-1060-bim-edition) | What is new for the construction project management for the building industry in OpenProject 10.5.0? | -# OpenProject 10.6.0 - The new release of the open source project management software brings improved table formatting, quicker time logging, the Slovenian translation, better overview over activities and much more usability improvements and bug fixes. -### Better styling of tables with improved table formatting options +## Better styling of tables with improved table formatting options With the new release of OpenProject you can now customize your tables in the text editor even more. When integrating a table in a work package description, a meeting, the wiki or news, format it the way you want to. The new additional options are: @@ -29,46 +29,44 @@ With the new release of OpenProject you can now customize your tables in the tex ![table-format](table-format.png) -### Quicker time logging on work packages +## Quicker time logging on work packages From now on, time logging is even quicker. You won’t have to leave your current work environment to log time. For example, directly in the work package you will find an icon to log time. When you click on it, you can log your time in a pop-up window. ![time-logging](time-logging.png) - - Also, you can log time to a work package directly from your work package table view if you include the SPENT TIME as a table column. Clicking on the Log time will also open a pop-up window to book your spent time. ![time-log-work-package](time-log-work-package-1103367.png) -### Support of Slovenian language +## Support of Slovenian language We are very happy that OpenProject is now 100% translated into Slovenian. Zabavaj se! ![flag-slovenia](flag-slovenia-300x200.jpg) -### Attribution of cards to a project +## Attribution of cards to a project OpenProject 10.6 will upgrade the card view of work packages. To make clear what card belongs to what project, the project name will be shown on the card. ![card-view-subproject](card-view-subproject.png) -### Improved assignee board if there are no members in a project +## Improved assignee board if there are no members in a project If you are creating an agile boards by assignees, you will get notified if there are no members in your project. You will also get notified if you are trying to add another assignee list to your board even though there is no more member left. ![Assignee board notification](asssignee-board-notification.png) -### Various usability improvements and bug fixes +## Various usability improvements and bug fixes Furthermore, the **styling of the news widget** on the project overview page as well as the start page has been improved. Going forward, the **Activity module is only showing one activity per minute** per user per work package and type of change. That means the changes per minute are aggregated. -#### All bug fixes and changes +## All bug fixes and changes - Epic: Aggregate activity entries \[[#23744](https://community.openproject.org/wp/23744)\] - Fixed: Date picker allows selection a year for only the next 10 years. Needs to increase. \[[#29413](https://community.openproject.org/wp/29413)\] - Fixed: Weird date format at meetings page \[[#32986](https://community.openproject.org/wp/32986)\] -- Fixed: [Work packages] Custom fields for long text \[[#33143](https://community.openproject.org/wp/33143)\] +- Fixed: \[Work packages\] Custom fields for long text \[[#33143](https://community.openproject.org/wp/33143)\] - Fixed: .xls exports of cost reports use incorrect decimal precision \[[#33149](https://community.openproject.org/wp/33149)\] - Fixed: Button to log time is shown even if I do not have the permissions \[[#33152](https://community.openproject.org/wp/33152)\] - Fixed: Main menu element is not correctly highlighted when creating a new category \[[#33154](https://community.openproject.org/wp/33154)\] @@ -100,9 +98,6 @@ Furthermore, the **styling of the news widget** on the project overview page as - Changed: Enable Projects for outgoing Webhooks \[[#33355](https://community.openproject.org/wp/33355)\] - Changed: New Features teaser for 10.6 \[[#33470](https://community.openproject.org/wp/33470)\] - - - ## OpenProject 10.6.0 BIM edition OpenProject BIM 10.6 released with improved BCF Management. We released OpenProject BIM 10.6. The new release contains improvements for BIM project management for the building industry, especially with improved features for BCF Management. @@ -133,7 +128,7 @@ Please note that the OpenProject BIM edition is under continuous development. T Test OpenProject BIM 10.6 immediately, [create a free test instance](https://start.openproject.com/trial/bim) for the OpenProject BIM edition. -### Credits and contributions +## Credits and contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. diff --git a/docs/release-notes/10/10-6-1/README.md b/docs/release-notes/10/10-6-1/README.md index da59ee590a13..dd314fd61dc6 100644 --- a/docs/release-notes/10/10-6-1/README.md +++ b/docs/release-notes/10/10-6-1/README.md @@ -12,7 +12,7 @@ We released [OpenProject 10.6.1](https://community.openproject.org/versions/1437 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Second page is cut off when exporting to PDF \[[#33203](https://community.openproject.org/wp/33203)\] - Fixed: Cannot focus "Log time" by keyboard (accessibility) \[[#33380](https://community.openproject.org/wp/33380)\] diff --git a/docs/release-notes/10/10-6-2/README.md b/docs/release-notes/10/10-6-2/README.md index 73d22e2255a7..aaa595134a6a 100644 --- a/docs/release-notes/10/10-6-2/README.md +++ b/docs/release-notes/10/10-6-2/README.md @@ -12,7 +12,7 @@ We released [OpenProject 10.6.2](https://community.openproject.org/versions/1440 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Usability bug: activity toggle not readily visible \[[#32649](https://community.openproject.org/wp/32649)\] - Fixed: Multiple spaces in project name causes problems \[[#33344](https://community.openproject.org/wp/33344)\] @@ -27,7 +27,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: SAML single sign out URL is not being respected \[[#33617](https://community.openproject.org/wp/33617)\] - Fixed: Remapping of existing users with `oauth_allow_remapping_of_existing_users' does not work with LDAP users \[[#33620](https://community.openproject.org/wp/33620)\] -#### Contributions +## 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 diff --git a/docs/release-notes/10/10-6-3/README.md b/docs/release-notes/10/10-6-3/README.md index a45099d4dd8c..698c6bdff12e 100644 --- a/docs/release-notes/10/10-6-3/README.md +++ b/docs/release-notes/10/10-6-3/README.md @@ -12,7 +12,7 @@ We released [OpenProject 10.6.3](https://community.openproject.org/versions/1441 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Arrow next to parent task still shown after removing subtask \[[#33109](https://community.openproject.org/wp/33109)\] - Fixed: Multiple spaces in project name causes problems \[[#33344](https://community.openproject.org/wp/33344)\] @@ -21,7 +21,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Number of watchers not shown when opening work package in full screen (through double-click) \[[#33685](https://community.openproject.org/wp/33685)\] - Changed: Don't poll queries in boards in inactive tabs \[[#33707](https://community.openproject.org/wp/33707)\] -#### Contributions +## 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 diff --git a/docs/release-notes/10/10-6-4/README.md b/docs/release-notes/10/10-6-4/README.md index c6e4482de730..f85fb37e0f8f 100644 --- a/docs/release-notes/10/10-6-4/README.md +++ b/docs/release-notes/10/10-6-4/README.md @@ -12,5 +12,4 @@ We released [OpenProject 10.6.4](https://community.openproject.org/versions/1443 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes - +## Bug fixes and changes diff --git a/docs/release-notes/10/10-6-5/README.md b/docs/release-notes/10/10-6-5/README.md index 38f8ac63d515..4c8d3f8c67c5 100644 --- a/docs/release-notes/10/10-6-5/README.md +++ b/docs/release-notes/10/10-6-5/README.md @@ -12,12 +12,13 @@ We released [OpenProject 10.6.5](https://community.openproject.org/versions/1446 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Comments get repeated when entering several comments within 5 minutes \[[#33744](https://community.openproject.org/wp/33744)\] - Fixed: Wrong (abusive) translations on avatar change page in russian localization. \[[#33888](https://community.openproject.org/wp/33888)\] -#### Contributions +## 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 diff --git a/docs/release-notes/10/README.md b/docs/release-notes/10/README.md index 21ec1fe1a943..ec902cf32879 100644 --- a/docs/release-notes/10/README.md +++ b/docs/release-notes/10/README.md @@ -5,7 +5,7 @@ release_date: 2019-09-23 title: OpenProject Version 10 Release Notes --- -# OpenProject Version 10 Release Notes +# OpenProject Version 10 Release Notes | Version | Release date | |-------------------------------|--------------| diff --git a/docs/release-notes/11/11-0-0/README.md b/docs/release-notes/11/11-0-0/README.md index e3f569d5990b..50a5592393f7 100644 --- a/docs/release-notes/11/11-0-0/README.md +++ b/docs/release-notes/11/11-0-0/README.md @@ -310,7 +310,7 @@ To use OpenProject 11.0 right away, create an instance and [test Enterprise clou Prefer to run OpenProject 11.0 in your own infrastructure? Here you can find the [Installation guidelines](../../../installation-and-operations) for OpenProject. -Want to upgrade from your self-managed Community version to try out the Enterprise Enterprise add-ons? [Get a 14 days free trial token directly out of your current Community installation.](https://www.openproject.org/blog/enterprise-edition-upgrade-test-free/) +Want to upgrade from your self-managed Community version to try out the Enterprise Enterprise add-ons? [Get a 14 days free trial token directly out of your current Community installation.](https://www.openproject.org/blog/enterprise-edition-upgrade-test-free/) Navigate to the -> *Administration*-> *Enterprise edition* and request your trial token. ## Migrating to OpenProject 11.0 diff --git a/docs/release-notes/11/11-0-1/README.md b/docs/release-notes/11/11-0-1/README.md index 9e64fedf160a..a4b070c3abe5 100644 --- a/docs/release-notes/11/11-0-1/README.md +++ b/docs/release-notes/11/11-0-1/README.md @@ -12,7 +12,7 @@ We released [OpenProject 11.0.1](https://community.openproject.org/versions/1453 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Gantt chart: styles conflict between last active work package and hovered work package \[[#34126](https://community.openproject.org/wp/34126)\] - Fixed: Displaced datepicker for custom fields in the project dashboard \[[#34253](https://community.openproject.org/wp/34253)\] @@ -29,7 +29,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: API Settings Page Broken - ActionController::RoutingError (uninitialized constant Settings::ApiController \[[#34994](https://community.openproject.org/wp/34994)\] - Fixed: Repo Management Not Working \[[#35011](https://community.openproject.org/wp/35011)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-0-2/README.md b/docs/release-notes/11/11-0-2/README.md index 15cab67fa87d..8f019f2a6544 100644 --- a/docs/release-notes/11/11-0-2/README.md +++ b/docs/release-notes/11/11-0-2/README.md @@ -12,14 +12,15 @@ We released [OpenProject 11.0.2](https://community.openproject.org/versions/1454 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Typos / missing words in German translation when deleting user \[[#35072](https://community.openproject.org/wp/35072)\] - Fixed: Default docker-compose.yml is has tag 10 \[[#35093](https://community.openproject.org/wp/35093)\] - Fixed: Copied wiki attachments have original author while it should be the copying user \[[#35126](https://community.openproject.org/wp/35126)\] - Fixed: Slashes in wiki page titles break "Activity" view \[[#35132](https://community.openproject.org/wp/35132)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-0-3/README.md b/docs/release-notes/11/11-0-3/README.md index f4add900766a..c3530ef88ed1 100644 --- a/docs/release-notes/11/11-0-3/README.md +++ b/docs/release-notes/11/11-0-3/README.md @@ -12,7 +12,7 @@ We released [OpenProject 11.0.3](https://community.openproject.org/versions/1456 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Bulk edit: Custom field long text cut off \[[#34829](https://community.openproject.org/wp/34829)\] - Fixed: "Estimates and time" not translated to German when not logged in on community.openproject.org \[[#35009](https://community.openproject.org/wp/35009)\] diff --git a/docs/release-notes/11/11-0-4/README.md b/docs/release-notes/11/11-0-4/README.md index 7ba80b1c9e5f..265690787779 100644 --- a/docs/release-notes/11/11-0-4/README.md +++ b/docs/release-notes/11/11-0-4/README.md @@ -12,15 +12,16 @@ We released [OpenProject 11.0.4](https://community.openproject.org/versions/1458 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Budgets Fail to Copy due to Missing Superclass Method \[[#34966](https://community.openproject.org/wp/34966)\] - Fixed: Selected design / theme lost when switching to "Backlogs" module \[[#34968](https://community.openproject.org/wp/34968)\] - Fixed: Initially seeded homepage grid cannot be edited \[[#35266](https://community.openproject.org/wp/35266)\] -- Fixed: [Translation][German] Administration>User&Permissions>Roles \[[#35363](https://community.openproject.org/wp/35363)\] +- Fixed: \[Translation\]\[German\] Administration>User&Permissions>Roles \[[#35363](https://community.openproject.org/wp/35363)\] - Fixed: Internal error (500) on meeting history page when clicking on previous version link \[[#35433](https://community.openproject.org/wp/35433)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-1-0/README.md b/docs/release-notes/11/11-1-0/README.md index e333a2a1e582..31912dc1d67b 100644 --- a/docs/release-notes/11/11-1-0/README.md +++ b/docs/release-notes/11/11-1-0/README.md @@ -12,7 +12,7 @@ release_date: 2020-12-17 Release date: 2020-12-17 We released [OpenProject 11.1.0](https://community.openproject.org/versions/1424). -This new release will bring many new features and bug fixes that will improve classical as well as agile project management. +This new release will bring many new features and bug fixes that will improve classical as well as agile project management. ## Improved styling of the WYSIWYG text editor @@ -46,8 +46,6 @@ Luckily, we now automated this process in order to reduce manual effort on both ![DPA-OpenProject](DPA-OpenProject.png) - - ## Various improvements and bug fixes Furthermore, we have extended the authentication profile with an **OpenID Connect provider.** Also, the printing, e.g. for wiki pages, has been optimized via the browser print function. diff --git a/docs/release-notes/11/11-1-1/README.md b/docs/release-notes/11/11-1-1/README.md index e4976ab06713..b79a36442324 100644 --- a/docs/release-notes/11/11-1-1/README.md +++ b/docs/release-notes/11/11-1-1/README.md @@ -12,14 +12,15 @@ We released [OpenProject 11.1.1](https://community.openproject.org/versions/1463 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Week number is wrong after November \[[#35095](https://community.openproject.org/wp/35095)\] - Fixed: Deleted user associated to planned labor costs lead to 500 on Budget \[[#35670](https://community.openproject.org/wp/35670)\] - Fixed: Renamed column updated_on is still referenced for settings \[[#35673](https://community.openproject.org/wp/35673)\] - Fixed: Newrelic gem incorrectly loaded on installations resulting in unnecessary logs \[[#35776](https://community.openproject.org/wp/35776)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-1-2/README.md b/docs/release-notes/11/11-1-2/README.md index 9620fe0160ae..ec5631704798 100644 --- a/docs/release-notes/11/11-1-2/README.md +++ b/docs/release-notes/11/11-1-2/README.md @@ -12,7 +12,7 @@ We released [OpenProject 11.1.2](https://community.openproject.org/versions/1466 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Add table option not displayed properly when at bottom of page \[[#31502](https://community.openproject.org/wp/31502)\] - Fixed: .png images keep disappearing from description and from attachments \[[#35180](https://community.openproject.org/wp/35180)\] @@ -26,7 +26,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Incoming email: Priority is not overridable by default \[[#35949](https://community.openproject.org/wp/35949)\] - Fixed: Conflicting modifications error when uploading images in WP description \[[#35957](https://community.openproject.org/wp/35957)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-1-3/README.md b/docs/release-notes/11/11-1-3/README.md index 2bb876b17aed..75d781324835 100644 --- a/docs/release-notes/11/11-1-3/README.md +++ b/docs/release-notes/11/11-1-3/README.md @@ -12,7 +12,7 @@ We released [OpenProject 11.1.3](https://community.openproject.org/versions/1469 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Filter gets removed (ERIK@Staging) \[[#34003](https://community.openproject.org/wp/34003)\] - Fixed: S3 presigned URL cached for 7 days does not work with IAM roles and is a security issue \[[#35739](https://community.openproject.org/wp/35739)\] @@ -20,7 +20,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Selecting "Atom" in export menu throws cryptic error \[[#36052](https://community.openproject.org/wp/36052)\] - Fixed: Creating new synchronized groups from filters raises error if group name too long \[[#36081](https://community.openproject.org/wp/36081)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-1-4/README.md b/docs/release-notes/11/11-1-4/README.md index 9c9bdb458c17..088d58844769 100644 --- a/docs/release-notes/11/11-1-4/README.md +++ b/docs/release-notes/11/11-1-4/README.md @@ -12,7 +12,6 @@ We released [OpenProject 11.1.4](https://community.openproject.org/versions/1470 The release contains an important bug fix and we urge you to update to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Some settings can be written without authorization \[[#36254](https://community.openproject.org/wp/36254)\] - diff --git a/docs/release-notes/11/11-2-0/README.md b/docs/release-notes/11/11-2-0/README.md index fe510b9edd37..2eff3f45dfb3 100644 --- a/docs/release-notes/11/11-2-0/README.md +++ b/docs/release-notes/11/11-2-0/README.md @@ -11,7 +11,7 @@ release_date: 2021-03-09 Release date: 2021-03-09 We released [OpenProject 11.2.0](https://community.openproject.org/versions/1461). -This new release will bring many new features and bug fixes that will improve classical as well as agile project management. +This new release will bring many new features and bug fixes that will improve classical as well as agile project management. ## Placeholder users (Enterprise add-on) diff --git a/docs/release-notes/11/11-2-1/README.md b/docs/release-notes/11/11-2-1/README.md index 14f000344fd3..a4571c9c72b5 100644 --- a/docs/release-notes/11/11-2-1/README.md +++ b/docs/release-notes/11/11-2-1/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.2.1](https://community.openproject.org/versions/1472 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Inbound Emails - Email headers not handled correctly \[[#35834](https://community.openproject.org/wp/35834)\] - Fixed: Configuration and display of days in My spent time widget on my Page do not match \[[#35920](https://community.openproject.org/wp/35920)\] @@ -25,7 +25,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Cannot select assignee on WP create when filtering for multi-select custom field of type list \[[#36607](https://community.openproject.org/wp/36607)\] - Fixed: Error message in wrong language \[[#36688](https://community.openproject.org/wp/36688)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-2-2/README.md b/docs/release-notes/11/11-2-2/README.md index 0cfd6b7ff0b3..8e90c7374cc4 100644 --- a/docs/release-notes/11/11-2-2/README.md +++ b/docs/release-notes/11/11-2-2/README.md @@ -14,14 +14,15 @@ We released [OpenProject 11.2.2](https://community.openproject.org/versions/1473 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Column filter in Action Boards (e.g. Assignee, status, version, ...) is case sensitive \[[#35744](https://community.openproject.org/wp/35744)\] - Fixed: Create new role: "Check all" / "Uncheck all" for new role not working \[[#36291](https://community.openproject.org/wp/36291)\] - Fixed: Missing localization string for "Derived estimated hours" \[[#36712](https://community.openproject.org/wp/36712)\] - Fixed: Serious Problem: OpenProject not running after Upgrade to 11.2.1 – rake aborted! NoMethodError: undefined method `patch_gem_version' for OpenProject::Patches:Module \[[#36717](https://community.openproject.org/wp/36717)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-2-3/README.md b/docs/release-notes/11/11-2-3/README.md index 575d5534bc57..5e4b43b8fbe6 100644 --- a/docs/release-notes/11/11-2-3/README.md +++ b/docs/release-notes/11/11-2-3/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.2.3](https://community.openproject.org/versions/1474 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Task "Start Date in less than" filter does not include dates in the past. \[[#34513](https://community.openproject.org/wp/34513)\] - Fixed: MimeMagic deprecated \[[#36725](https://community.openproject.org/wp/36725)\] @@ -23,7 +23,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Work package table and Gantt not aligned \[[#36764](https://community.openproject.org/wp/36764)\] - Fixed: BIM group seed data is always applied \[[#36796](https://community.openproject.org/wp/36796)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-2-4/README.md b/docs/release-notes/11/11-2-4/README.md index c0b0bd3bd074..f6a8b1483250 100644 --- a/docs/release-notes/11/11-2-4/README.md +++ b/docs/release-notes/11/11-2-4/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.2.4](https://community.openproject.org/versions/1476 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Pagination in search results \[[#35045](https://community.openproject.org/wp/35045)\] - Fixed: Images in Dashboard are stretched in Safari \[[#36547](https://community.openproject.org/wp/36547)\] @@ -25,7 +25,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Setting sync users in synchronized group does not work without on-the-fly LDAP \[[#37036](https://community.openproject.org/wp/37036)\] - Fixed: BIM seeder overrides custom design \[[#37037](https://community.openproject.org/wp/37037)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-3-0/README.md b/docs/release-notes/11/11-3-0/README.md index 3bbf6d9b53a6..f482a8cecf8f 100644 --- a/docs/release-notes/11/11-3-0/README.md +++ b/docs/release-notes/11/11-3-0/README.md @@ -11,7 +11,7 @@ release_date: 2021-06-03 Release date: 2021-06-03 We released [OpenProject 11.3.0](https://community.openproject.org/versions/1468). -This new release will bring many new features and bug fixes that will improve classical as well as agile project management. +This new release will bring many new features and bug fixes that will improve classical as well as agile project management. @@ -33,6 +33,7 @@ Add a personal invitation message, e.g. an explanation for the invitation or a b The invite process can be started directly from the new "+" create button in the header navigation. ### Invite new users from work packages drop-down + The **new invite modal for users, groups, and placeholder users** can now be opened directly from the user type drop-down menu in a work package, e.g. to assign a user to a work package who is not yet a member of the project. This way, there is no need anymore to leave the work package to assign a user who is not yet a member of the project. The creation of users and adding them to a project is now much more intuitive. ![invite-user-type-drop-down](invite-user-type-drop-down.png) @@ -60,6 +61,7 @@ We have made **extensions to our API v3** to create, read, update and delete gro - List users of a group ### API V3 endpoints for placeholder users + We have added endpoints to our API v3 for fetching placeholder users so that placeholder users can be managed or read by a machine. ### Copy project via API v3 @@ -82,8 +84,6 @@ For work packages, fields can already be configured as multiple selections for a Users now have the option to **create backups of their OpenProject installation** directly via the web interface. the backup can be triggered via Administration -> Backup. They will receive an email notification with the link to download the backup files with an additional authentication (username/password + 2FA). - - ## All new features, bug fixes and changes - Epic: CRUD operations for groups in API v3 \[[#18812](https://community.openproject.org/wp/18812)\] diff --git a/docs/release-notes/11/11-3-1/README.md b/docs/release-notes/11/11-3-1/README.md index 7c0b10da5d89..89222fcc578d 100644 --- a/docs/release-notes/11/11-3-1/README.md +++ b/docs/release-notes/11/11-3-1/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.3.1](https://community.openproject.org/versions/1479 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Search autocompleter n+1 loads schemas -> slow \[[#34884](https://community.openproject.org/wp/34884)\] - Fixed: "Click here to open [...] in fullscreen view" not working \[[#37555](https://community.openproject.org/wp/37555)\] diff --git a/docs/release-notes/11/11-3-2/README.md b/docs/release-notes/11/11-3-2/README.md index ccf754fa6502..81936b0ccf07 100644 --- a/docs/release-notes/11/11-3-2/README.md +++ b/docs/release-notes/11/11-3-2/README.md @@ -14,13 +14,14 @@ We released [OpenProject 11.3.2](https://community.openproject.org/versions/1480 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Not possible to create or edit projects if relative url root configured \[[#37571](https://community.openproject.org/wp/37571)\] - Fixed: Internal server error on custom fields view when using Slovene language \[[#37607](https://community.openproject.org/wp/37607)\] - Fixed: Not possible to invite users via modal if relative url root configured \[[#37618](https://community.openproject.org/wp/37618)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-3-3/README.md b/docs/release-notes/11/11-3-3/README.md index 5f7e9a364428..f3d36c207570 100644 --- a/docs/release-notes/11/11-3-3/README.md +++ b/docs/release-notes/11/11-3-3/README.md @@ -13,7 +13,7 @@ Release date: 2021-07-20 We released [OpenProject 11.3.3](https://community.openproject.org/versions/1484). The release contains several bug fixes and we recommend updating to the newest version. -### Security issues +## Security issues **CVE-2021-32763**: Regular Expression Denial of Service in OpenProject forum messages @@ -29,19 +29,14 @@ Operating public facing docker containers is not recommended by OpenProject. The Please see the advisory for [CVE-2021-36390](https://github.com/opf/openproject/security/advisories/GHSA-r8f8-pgg2-2c26) for more information. - - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Database migration fails on upgrade from 11.2.2 to 11.3.X \[[#37687](https://community.openproject.org/wp/37687)\] - Fixed: Renaming a group removes all group members \[[#38017](https://community.openproject.org/wp/38017)\] - Fixed: Fix catastrophic backtracking in MessagesController#quote regular expression \[[#38021](https://community.openproject.org/wp/38021)\] - Fixed: Public-facing docker AIO container vulnerable to HOST header injection by default \[[#38067](https://community.openproject.org/wp/38067)\] -#### Contributions -A big thanks to community members for reporting bugs and helping us identifying and providing fixes. +## Contributions -Special thanks for reporting and finding bugs go to - -Rob A, Milad P. +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 Rob A, Milad P. diff --git a/docs/release-notes/11/11-3-4/README.md b/docs/release-notes/11/11-3-4/README.md index 3a078080edc8..75b21a4bd3f4 100644 --- a/docs/release-notes/11/11-3-4/README.md +++ b/docs/release-notes/11/11-3-4/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.3.4](https://community.openproject.org/versions/1488 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes This release contains only one fix for Centos 7 and Centos 8 packaged installations that are unable to access the PostgreSQL package source. It does not contain any other fixes diff --git a/docs/release-notes/11/11-3-5/README.md b/docs/release-notes/11/11-3-5/README.md index 42e7c5314404..31c87cfa9f4b 100644 --- a/docs/release-notes/11/11-3-5/README.md +++ b/docs/release-notes/11/11-3-5/README.md @@ -14,13 +14,14 @@ We released [OpenProject 11.3.5](https://community.openproject.org/versions/1490 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: User email validation regular expression insufficient \[[#38325](https://community.openproject.org/wp/38325)\] - Fixed: Inherited role memberships are not cleaned up if user is removed from a group via LDAP sync \[[#38614](https://community.openproject.org/wp/38614)\] - Fixed: Release notes for 11-3-4 is empty \[[#38678](https://community.openproject.org/wp/38678)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/11-4-0/README.md b/docs/release-notes/11/11-4-0/README.md index d2690f702a75..8728b11602f8 100644 --- a/docs/release-notes/11/11-4-0/README.md +++ b/docs/release-notes/11/11-4-0/README.md @@ -13,13 +13,11 @@ Release date: 2021-10-04 We released [OpenProject 11.4.0](https://community.openproject.org/versions/1485). The release contains several bug fixes and we recommend updating to the newest version. - - -#### Debian 11 support +## Debian 11 support OpenProject 11.4.0 adds packaged installation support for Debian 11 "Bullseye". -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Work package exports fail when column "BCF snapshot" active \[[#33448](https://community.openproject.org/wp/33448)\] - Fixed: Regression: On touch devices, Select, Info and Erase buttons don't work. \[[#38005](https://community.openproject.org/wp/38005)\] @@ -28,7 +26,7 @@ OpenProject 11.4.0 adds packaged installation support for Debian 11 "Bullseye". - Fixed: Wiki menu item scrolling does not work with two main wiki items \[[#38878](https://community.openproject.org/wp/38878)\] - Fixed: Imminent user limit warning shown prematurely \[[#38893](https://community.openproject.org/wp/38893)\] - Fixed: Custom S3 compatible upload providers blocked by CSP \[[#38900](https://community.openproject.org/wp/38900)\] -- Fixed: [Github Integration] Webhook fails for pull_request event without body \[[#38919](https://community.openproject.org/wp/38919)\] +- Fixed: \[Github Integration\] Webhook fails for pull_request event without body \[[#38919](https://community.openproject.org/wp/38919)\] - Fixed: IFC upload not working since attachment whitelisting \[[#38954](https://community.openproject.org/wp/38954)\] - Fixed: BIM seed are missing snapshots \[[#39009](https://community.openproject.org/wp/39009)\] - Fixed: Regression: Typing S while focus in viewer opens the OP global search \[[#39029](https://community.openproject.org/wp/39029)\] @@ -38,9 +36,7 @@ OpenProject 11.4.0 adds packaged installation support for Debian 11 "Bullseye". - Changed: BCF module: Change default order to ID DESC. \[[#38032](https://community.openproject.org/wp/38032)\] - Changed: Integrate latest Xeokit version v2.3.1 \[[#38981](https://community.openproject.org/wp/38981)\] -#### 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 +## Contributions -pat mac +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 pat mac diff --git a/docs/release-notes/11/11-4-1/README.md b/docs/release-notes/11/11-4-1/README.md index f6a601959351..a9f737623b36 100644 --- a/docs/release-notes/11/11-4-1/README.md +++ b/docs/release-notes/11/11-4-1/README.md @@ -14,7 +14,7 @@ We released [OpenProject 11.4.1](https://community.openproject.org/versions/1491 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Today's Date line does not show up on My Page work package tables \[[#35748](https://community.openproject.org/wp/35748)\] - Fixed: openproject configure tries to install postgresql 10 on upgrade, while 13 is already deployed \[[#39086](https://community.openproject.org/wp/39086)\] @@ -28,7 +28,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Help text modal text cut off \[[#39171](https://community.openproject.org/wp/39171)\] - Fixed: Switching from "viewer" to "viewer and cards" fails to load viewer \[[#39184](https://community.openproject.org/wp/39184)\] -#### Contributions +## 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 diff --git a/docs/release-notes/11/README.md b/docs/release-notes/11/README.md index a3a41cee64ef..c4730054500f 100644 --- a/docs/release-notes/11/README.md +++ b/docs/release-notes/11/README.md @@ -5,7 +5,7 @@ release_date: 2020-10-07 title: OpenProject Version 11 Release Notes --- -# OpenProject Version 11 Release Notes +# OpenProject Version 11 Release Notes | Version | Release date | |--------------------------------|--------------| diff --git a/docs/release-notes/12/12-0-0/README.md b/docs/release-notes/12/12-0-0/README.md index 00b61e9f4ab0..075eedddae3f 100644 --- a/docs/release-notes/12/12-0-0/README.md +++ b/docs/release-notes/12/12-0-0/README.md @@ -29,52 +29,40 @@ The new Notification center shows all notifications about changes within your pr ![notification-center](notification-center.png) - ## Improved notification settings The improved notification settings now allow to fine-tune for which actions and in which projects you want to receive a notification. With 12.0 you can now even add project-specific settings for changes you want to be notified about and override the default settings. ![notification-settings](notification-settings.png) - ## Email summaries In addition to the in-app notifications, also email reminders can be configured to receive important updates in a daily (or more often) email summary. These email reminders can be configured to receive also additional notifications about changes in your projects, e.g. new or updated memberships in a project. ![email-summaries](email-summaries.png) - - ## Improved work packages auto-completer The work package auto-completer for relations now also shows additional information (project name, status, …). It is now much easier to identify the respective work package. ![work-package-auto-completion](work-package-auto-completion.png) - - ## Export of the project list With OpenProject 12.0 it is now possible to export the project list with all project specific information, incl. project custom fields. You can choose between the formats XLS and CSV export. ![project-list-export](project-list-export.png) - - ## Change of roles and permissions settings With 12.0 we have added more granular rights for projects, for example the additional right to configure the project overview page. This way you can even better assign certain permissions to a role in a project. ![project permissions](image-20211111095046645.png) - - ## Drop official support for PostgreSQL < 13 OpenProject 12.0 will deprecate PostgreSQL versions < 13. This will result in a warning about the necessary migration to inform users trying to upgrade with an older version. The warning will be shown on startup and on the Administration > Info page. It will not result in a hard error for now. - - ## All bug fixes and changes in 12.0 - Changed: Send daily email summaries (email digest) \[[#1899](https://community.openproject.org/wp/1899)\] diff --git a/docs/release-notes/12/12-0-1/README.md b/docs/release-notes/12/12-0-1/README.md index e496bdc06871..324a48e655f5 100644 --- a/docs/release-notes/12/12-0-1/README.md +++ b/docs/release-notes/12/12-0-1/README.md @@ -13,8 +13,7 @@ Release date: 2021-11-17 We released [OpenProject 12.0.1](https://community.openproject.org/versions/1496). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Getting 500 internal server error while clicking the project meeting module \[[#39853](https://community.openproject.org/wp/39853)\] - Fixed: Members menu in wrong place (shown above wiki pages) \[[#39857](https://community.openproject.org/wp/39857)\] @@ -22,7 +21,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Updating IFC Models fails. \[[#39901](https://community.openproject.org/wp/39901)\] - Fixed: Auto-unlocking editing of locked wiki pages no longer works (500 server error) \[[#40124](https://community.openproject.org/wp/40124)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-0-10/README.md b/docs/release-notes/12/12-0-10/README.md index b5676d8a515c..c11426bdc8bb 100644 --- a/docs/release-notes/12/12-0-10/README.md +++ b/docs/release-notes/12/12-0-10/README.md @@ -13,21 +13,18 @@ Release date: 2022-03-16 We released [OpenProject 12.0.10](https://community.openproject.org/versions/1512). The release contains several bug fixes and we recommend updating to the newest version. -##### Localization issues +## Localization issues Some translations provided by our Crowdin integration were temporarily reverted to their english originals. This has been fixed and is the primary reason for this release. - -#### Bug fixes and changes +## Bug fixes and changes -- Fixed: Several Translation Errors [DE] \[[#41414](https://community.openproject.org/wp/41414)\] +- Fixed: Several Translation Errors \[DE\] \[[#41414](https://community.openproject.org/wp/41414)\] - Fixed: LOCALE env used for seeding is too generic \[[#41427](https://community.openproject.org/wp/41427)\] - Fixed: Broken translation in russian/german language after upgrade to actual release \[[#41434](https://community.openproject.org/wp/41434)\] -#### 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 +## Contributions -Jörg Mollowitz, Атилла Алтымышев +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 Jörg Mollowitz, Атилла Алтымышев diff --git a/docs/release-notes/12/12-0-2/README.md b/docs/release-notes/12/12-0-2/README.md index 7d76b44480cb..707cbbe474a0 100644 --- a/docs/release-notes/12/12-0-2/README.md +++ b/docs/release-notes/12/12-0-2/README.md @@ -13,8 +13,7 @@ Release date: 2021-11-24 We released [OpenProject 12.0.2](https://community.openproject.org/versions/1497). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: On global work package page all types are shown - even those in projects not accessible to users \[[#37869](https://community.openproject.org/wp/37869)\] - Fixed: New email design breaks with some mobile clients \[[#39821](https://community.openproject.org/wp/39821)\] @@ -26,7 +25,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Can't upload BCF files as normal attachments to work packages via FOG \[[#40112](https://community.openproject.org/wp/40112)\] - Changed: Improve error logging of SAML \[[#39899](https://community.openproject.org/wp/39899)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-0-3/README.md b/docs/release-notes/12/12-0-3/README.md index 8ca68a225249..5d57a1bb2d97 100644 --- a/docs/release-notes/12/12-0-3/README.md +++ b/docs/release-notes/12/12-0-3/README.md @@ -13,8 +13,7 @@ Release date: 2021-12-08 We released [OpenProject 12.0.3](https://community.openproject.org/versions/1498). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Wiki Link List in content formatting issue \[[#40016](https://community.openproject.org/wp/40016)\] - Fixed: Translation error when changing permissions \[[#40056](https://community.openproject.org/wp/40056)\] @@ -23,7 +22,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Optional header sso does not log in plain user \[[#40240](https://community.openproject.org/wp/40240)\] - Fixed: Auth source SSO redirects to my page on login \[[#40248](https://community.openproject.org/wp/40248)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-0-4/README.md b/docs/release-notes/12/12-0-4/README.md index 29f49a2c0762..21dab2ef42c4 100644 --- a/docs/release-notes/12/12-0-4/README.md +++ b/docs/release-notes/12/12-0-4/README.md @@ -13,29 +13,28 @@ Release date: 2021-12-14 We released [OpenProject 12.0.4](https://community.openproject.org/versions/1502). The release contains several bug fixes and we recommend updating to the newest version. - -### CVE-2021-43830 +## CVE-2021-43830 OpenProject versions >= 12.0.0 are vulnerable to a SQL injection in the budgets module. For authenticated users with the "Edit budgets" permission, the request to reassign work packages to another budget insufficiently sanitizes user input in the reassign_to_id parameter. -#### Patches +### Patches The vulnerability has been fixed in version 12.0.4. Versions prior to 12.0.0 are not affected. If you're upgrading from an older version, ensure you are upgrading to at least version 12.0.4. -#### Workaround +### Workaround + If you are unable to upgrade in a timely fashion, the following patch can be applied: [https://github.com/opf/openproject/pull/9983.patch](https://github.com/opf/openproject/pull/9983.patch) -#### Credits +### Credits + This security issue was responsibly disclosed by [Daniel Santos](https://github.com/bananabr) (Twitter [@bananabr](https://twitter.com/bananabr)). Thank you for reaching out to us and your help in identifying this issue. If you have a security vulnerability you would like to disclose, please see our [statement on security](../../../security-and-privacy/statement-on-security/). -### Bug fixes and changes +## Bug fixes and changes + - Fixed: Frontend including editor and time logging unusable when there are many activities \[[#40314](https://community.openproject.org/wp/40314)\] - Fixed: Change of View within OpenProject triggers reload of Viewer \[[#40315](https://community.openproject.org/wp/40315)\] -### 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 +## Contributions -Daniel Santos -Valentin Ege +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 Daniel Santos, Valentin Ege diff --git a/docs/release-notes/12/12-0-5/README.md b/docs/release-notes/12/12-0-5/README.md index 873a6c68962b..c5325b2254c7 100644 --- a/docs/release-notes/12/12-0-5/README.md +++ b/docs/release-notes/12/12-0-5/README.md @@ -13,8 +13,7 @@ Release date: 2022-01-11 We released [OpenProject 12.0.5](https://community.openproject.org/versions/1503). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Uploaded IFC Model can't be set as Standard Model \[[#40187](https://community.openproject.org/wp/40187)\] - Fixed: Git "View Differences" results in 500 error in Repository module. \[[#40191](https://community.openproject.org/wp/40191)\] @@ -30,11 +29,10 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Unpaginated api/v3/relations end point \[[#40434](https://community.openproject.org/wp/40434)\] - Fixed: Header-based SSO does not allow entering missing attributes \[[#40511](https://community.openproject.org/wp/40511)\] -#### Contributions +## 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 Valentin Ege, Rene Diekstra, Jonas Plum, Frank Schmid - - diff --git a/docs/release-notes/12/12-0-6/README.md b/docs/release-notes/12/12-0-6/README.md index 5186deb4f6c4..42ce996f0f3c 100644 --- a/docs/release-notes/12/12-0-6/README.md +++ b/docs/release-notes/12/12-0-6/README.md @@ -13,8 +13,7 @@ Release date: 2022-01-17 We released [OpenProject 12.0.6](https://community.openproject.org/versions/1504). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Notification center empty state showing during loading \[[#39828](https://community.openproject.org/wp/39828)\] - Fixed: Notification images are cached for years without invalidation means - old images shown \[[#40143](https://community.openproject.org/wp/40143)\] @@ -30,7 +29,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Dropdown menu of parent child board not showing all WPs \[[#40647](https://community.openproject.org/wp/40647)\] - Fixed: Backup feature does not work with relative URL root \[[#40656](https://community.openproject.org/wp/40656)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-0-7/README.md b/docs/release-notes/12/12-0-7/README.md index fd9de592d31d..4baf3e484be6 100644 --- a/docs/release-notes/12/12-0-7/README.md +++ b/docs/release-notes/12/12-0-7/README.md @@ -13,27 +13,26 @@ Release date: 2022-01-26 We released [OpenProject 12.0.7](https://community.openproject.org/versions/1506). The release contains several bug fixes and we recommend updating to the newest version. -### API default max page sizes -In previous versions of OpenProject, the max API page size is controlled by the maximum page size in the "Per page options". This is not clear and causes issues when trying to request larger page sizes (such as for autocompleters). For example, larger instances reported missing options for users and projects. +## API default max page sizes + +In previous versions of OpenProject, the max API page size is controlled by the maximum page size in the "Per page options". This is not clear and causes issues when trying to request larger page sizes (such as for autocompleters). For example, larger instances reported missing options for users and projects. There is now a separate setting for the max API size that will be used for these autocompleters. You can find it in Administration > System settings > API. -### Russian expletive translations +## Russian expletive translations OpenProject relies on community translations for some languages that we cannot provide translations for ourselves. It was brought to our attention that the Russian translations partially contain expletive languages. Thanks to community contributors Sergey and Christina, these translations were fixed on crowdin and could now be included into the release. We need your help to improve and extend translations of OpenProject into your native language. To get more information, please see our [Translating OpenProject guide](../../../development/translate-openproject/) and our [project on crowdin.com](https://crowdin.com/project/openproject), where you can provide and help approve translations from your browser. If you wish to become a proofreader for your language, please reach out to [info@openproject.com](mailto:info@openproject.com) -### Custom plugins in packaged installations +## Custom plugins in packaged installations If you were using custom plugins, the build of the OpenProject frontend failed due to a Gemfile lock issue as well as an angular error. Both of these issues were fixed. - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Custom plugins not working with 11.0.1 \[[#35103](https://community.openproject.org/wp/35103)\] -- Fixed: [Repository] GIT Referencing and time tracking not work in branch \[[#39796](https://community.openproject.org/wp/39796)\] +- Fixed: \[Repository\] GIT Referencing and time tracking not work in branch \[[#39796](https://community.openproject.org/wp/39796)\] - Fixed: Disable send_notifications on instantiating new project from template \[[#40348](https://community.openproject.org/wp/40348)\] - Fixed: Only last N projects available for parent project selection \[[#40580](https://community.openproject.org/wp/40580)\] - Fixed: Change labels in Russian (expletive) \[[#40581](https://community.openproject.org/wp/40581)\] @@ -46,9 +45,9 @@ If you were using custom plugins, the build of the OpenProject frontend failed d - Fixed: Custom fields disappearing after attachment upload \[[#40826](https://community.openproject.org/wp/40826)\] - Changed: Add separate APIv3 page size limit \[[#40816](https://community.openproject.org/wp/40816)\] -#### Contributions +## 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 - Gábor Sift, Frank Schmid, Christina Vechkanova, George Plant, Ivo Maffei diff --git a/docs/release-notes/12/12-0-8/README.md b/docs/release-notes/12/12-0-8/README.md index e292ac425881..472cc0a0d7c8 100644 --- a/docs/release-notes/12/12-0-8/README.md +++ b/docs/release-notes/12/12-0-8/README.md @@ -13,15 +13,15 @@ Release date: 2022-02-23 We released [OpenProject 12.0.8](https://community.openproject.org/versions/1507). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Work package title input shrinks when inputting something in FF \[[#39833](https://community.openproject.org/wp/39833)\] - Fixed: dropdown to select project in notification settings is limited to objects per page options \[[#40934](https://community.openproject.org/wp/40934)\] - Fixed: Cannot log time entries when recent work package was removed and time entry assigned to project \[[#41015](https://community.openproject.org/wp/41015)\] - Fixed: Small display bug \[[#41034](https://community.openproject.org/wp/41034)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-0-9/README.md b/docs/release-notes/12/12-0-9/README.md index b55214a53098..0c9ed107cff9 100644 --- a/docs/release-notes/12/12-0-9/README.md +++ b/docs/release-notes/12/12-0-9/README.md @@ -13,8 +13,7 @@ Release date: 2022-03-14 We released [OpenProject 12.0.9](https://community.openproject.org/versions/1511). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Possible to create invalid project identifier when creating project \[[#41228](https://community.openproject.org/wp/41228)\] - Fixed: Internal PostgreSQL error when updating query order with invalid IDs \[[#41310](https://community.openproject.org/wp/41310)\] diff --git a/docs/release-notes/12/12-1-0/README.md b/docs/release-notes/12/12-1-0/README.md index 8c457b75608c..104e6e5d8c43 100644 --- a/docs/release-notes/12/12-1-0/README.md +++ b/docs/release-notes/12/12-1-0/README.md @@ -47,16 +47,12 @@ The “Include Projects” filter option makes it easier to add different projec ![openproject-include-projects](openproject-include-projects.gif) - - ## Files tab for work packages We added a new “Files” tab in the work package details. This way, you will have all possible information attached to a work package together in one place. ![openproject-files-tab](openproject-files-tab.png) - - ## Further improvements, changes, and bug fixes - We created global roles for groups to assign these roles to groups and create superuser groups. @@ -64,7 +60,7 @@ We added a new “Files” tab in the work package details. This way, you will h - An index page was added also for the team planner and calendar module. - API to CRUD links between files (i.e. for Nextcloud) and work packages in OpenProject. -#### List of all bug fixes and changes +### List of all bug fixes and changes - Epic: Introduce module specific queries (e.g. for calendar, team planner and BCF module) \[[#30583](https://community.openproject.org/wp/30583)\] - Epic: Team planner \[[#39784](https://community.openproject.org/wp/39784)\] @@ -128,7 +124,7 @@ We added a new “Files” tab in the work package details. This way, you will h - Changed: Seed (migrate) team planner permissions \[[#41899](https://community.openproject.org/wp/41899)\] - Changed: Add packaged installation support for Ubuntu 22.04 \[[#42069](https://community.openproject.org/wp/42069)\] - Fixed: Missing translation in custom fields administration \[[#38057](https://community.openproject.org/wp/38057)\] -- Fixed: [Navigation] Breadcrumbs changes from "Relations" to "Activity" \[[#38531](https://community.openproject.org/wp/38531)\] +- Fixed: \[Navigation\] Breadcrumbs changes from "Relations" to "Activity" \[[#38531](https://community.openproject.org/wp/38531)\] - Fixed: Minor spelling change for work package filter \[[#38533](https://community.openproject.org/wp/38533)\] - Fixed: Mobile: When clicking on WP tabs ("Activity", "Watchers", ...) jump to top of page \[[#39848](https://community.openproject.org/wp/39848)\] - Fixed: Internal error when trying to set milestone as parent wp \[[#39856](https://community.openproject.org/wp/39856)\] @@ -150,7 +146,7 @@ We added a new “Files” tab in the work package details. This way, you will h - Fixed: Users can't select public template projects in new project dialog \[[#40918](https://community.openproject.org/wp/40918)\] - Fixed: Meeting Time in iCalendar is wrong \[[#40941](https://community.openproject.org/wp/40941)\] - Fixed: Toolbar icons should be rendered in the "old" style and not the new rounded style (which is a work in progress) \[[#40957](https://community.openproject.org/wp/40957)\] -- Fixed: [Docker] - Gitlab integration plugin \[[#40959](https://community.openproject.org/wp/40959)\] +- Fixed: \[Docker\] - Gitlab integration plugin \[[#40959](https://community.openproject.org/wp/40959)\] - Fixed: Project dropdown no longer autofocused \[[#40978](https://community.openproject.org/wp/40978)\] - Fixed: Not possible to copy work package to another project \[[#41005](https://community.openproject.org/wp/41005)\] - Fixed: Changed calendar styles applied to time entries component \[[#41013](https://community.openproject.org/wp/41013)\] @@ -216,7 +212,8 @@ We added a new “Files” tab in the work package details. This way, you will h - Fixed: Search results below include projects modal \[[#42090](https://community.openproject.org/wp/42090)\] - Fixed: Include projects - Toggle button is not rounded \[[#42171](https://community.openproject.org/wp/42171)\] -#### Contributions +## Contributions + A big thanks to community members for reporting bugs and helping us identifying and providing fixes. - Special thanks for Autoliv for sponsoring the development of the new team planner. diff --git a/docs/release-notes/12/12-1-1/README.md b/docs/release-notes/12/12-1-1/README.md index 76aeb23b01c5..b357e24ab46d 100644 --- a/docs/release-notes/12/12-1-1/README.md +++ b/docs/release-notes/12/12-1-1/README.md @@ -13,8 +13,7 @@ Release date: 2022-05-04 We released [OpenProject 12.1.1](https://community.openproject.org/versions/1548). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Click on Include projects filter is flickering \[[#42196](https://community.openproject.org/wp/42196)\] - Fixed: Unprefixed E-Mail settings ignored \[[#42209](https://community.openproject.org/wp/42209)\] @@ -30,7 +29,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: IFC conversion fails (libhostfxr.so not found) \[[#42245](https://community.openproject.org/wp/42245)\] - Fixed: Roles cannot be edited with french language \[[#42246](https://community.openproject.org/wp/42246)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-1-2/README.md b/docs/release-notes/12/12-1-2/README.md index af5a431c1a5e..29685a918a14 100644 --- a/docs/release-notes/12/12-1-2/README.md +++ b/docs/release-notes/12/12-1-2/README.md @@ -13,8 +13,7 @@ Release date: 2022-05-11 We released [OpenProject 12.1.2](https://community.openproject.org/versions/1549). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Audio of OpenProject video is played when opening the export project modal \[[#41924](https://community.openproject.org/wp/41924)\] - Fixed: Wrong row break in Include Project modal for German \[[#42224](https://community.openproject.org/wp/42224)\] @@ -26,7 +25,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: SMTP setting issues in packager installation \[[#42299](https://community.openproject.org/wp/42299)\] - Fixed: LDAP User Synchronization doesn't work \[[#42312](https://community.openproject.org/wp/42312)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-1-3/README.md b/docs/release-notes/12/12-1-3/README.md index 574aa5062534..4195008013c6 100644 --- a/docs/release-notes/12/12-1-3/README.md +++ b/docs/release-notes/12/12-1-3/README.md @@ -24,14 +24,14 @@ warranting another patch level release. We're sorry for the inconvenience caused If you experience bugs in installing or using OpenProject, please help us by reporting them to our community. To read how to do this, please see [reporting a bug in OpenProject](../../../development/report-a-bug/). - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: "openproject configure" reports errors \[[#42349](https://community.openproject.org/wp/42349)\] - Fixed: Scheduled LDAP User Synchronization doesn't work \[[#42351](https://community.openproject.org/wp/42351)\] - Fixed: [Packager] configure fails when sendmail was configured for emails \[[#42352](https://community.openproject.org/wp/42352)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-1-4/README.md b/docs/release-notes/12/12-1-4/README.md index 3d12c67e3553..f5cbe861a713 100644 --- a/docs/release-notes/12/12-1-4/README.md +++ b/docs/release-notes/12/12-1-4/README.md @@ -16,8 +16,7 @@ The release contains several bug fixes and we recommend updating to the newest v **Centos 7 support** This version restores support for OpenProject packages on centos 7. A PostgreSQL bump has caused incompatibility issues with the centos7 versions that are shipped and extra effort was needed to provide compatible newer dev headers. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Removal of the new SPOT buttons because of consistency \[[#42251](https://community.openproject.org/wp/42251)\] - Fixed: Incorrect project assignment in the team planner \[[#42271](https://community.openproject.org/wp/42271)\] @@ -30,7 +29,8 @@ This version restores support for OpenProject packages on centos 7. A PostgreSQL - Fixed: LDAP user synchronization - administrator flag is overwritten \[[#42396](https://community.openproject.org/wp/42396)\] - Fixed: Project filter is not applied in embedded table \[[#42397](https://community.openproject.org/wp/42397)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-1-5/README.md b/docs/release-notes/12/12-1-5/README.md index 72c35d354a46..cc87e95b2a50 100644 --- a/docs/release-notes/12/12-1-5/README.md +++ b/docs/release-notes/12/12-1-5/README.md @@ -13,8 +13,7 @@ Release date: 2022-06-08 We released [OpenProject 12.1.5](https://community.openproject.org/versions/1552). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Order of work packages in XLS, PDF, CSV export differs from order in OpenProject \[[#34971](https://community.openproject.org/wp/34971)\] - Fixed: API notification error on work package query page \[[#40506](https://community.openproject.org/wp/40506)\] @@ -31,7 +30,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Dutch translation additional project status on the project overview page \[[#42754](https://community.openproject.org/wp/42754)\] - Fixed: OpenID Connect providers can no longer be set via env \[[#42810](https://community.openproject.org/wp/42810)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-1-6/README.md b/docs/release-notes/12/12-1-6/README.md index 0763a848636c..ba3f04f7f538 100644 --- a/docs/release-notes/12/12-1-6/README.md +++ b/docs/release-notes/12/12-1-6/README.md @@ -13,8 +13,7 @@ Release date: 2022-07-12 We released [OpenProject 12.1.6](https://community.openproject.org/versions/1586). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: EE Trial creation not possible from form configuration \[[#42806](https://community.openproject.org/wp/42806)\] - Fixed: Deleting a user only locks the user \[[#42882](https://community.openproject.org/wp/42882)\] @@ -25,7 +24,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Include projects mistake \[[#43034](https://community.openproject.org/wp/43034)\] - Fixed: dots of Ü are missing in notification list \[[#43086](https://community.openproject.org/wp/43086)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-2-0/README.md b/docs/release-notes/12/12-2-0/README.md index ead3cc3aa554..3916e9f25830 100644 --- a/docs/release-notes/12/12-2-0/README.md +++ b/docs/release-notes/12/12-2-0/README.md @@ -36,9 +36,9 @@ You can find out more [how to use the Nextcloud integration](../../../user-guide ## Contextual information and warnings when scheduling work packages -For OpenProject 12.2, the team has worked on **improving the date picker** to give you more clarity when scheduling work packages. To choose [automatic or manual scheduling mode](../../../user-guide/gantt-chart/scheduling/), the selection box moved to the top of the date picker to be more visible. We are also introducing information and warning banners that provide important contextual information before modifying dates of work packages that have relations with other work packages. +For OpenProject 12.2, the team has worked on **improving the date picker** to give you more clarity when scheduling work packages. To choose [automatic or manual scheduling mode](../../../user-guide/gantt-chart/scheduling/), the selection box moved to the top of the date picker to be more visible. We are also introducing information and warning banners that provide important contextual information before modifying dates of work packages that have relations with other work packages. -*Blue banners* will indicate information that maybe be helpful (such as if the work package's dates are automatically derived from relations, or if available date ranges are limited by relations) and *orange banners* will warn of possible consequences to other work packages (existing relations being ignored as a result of enabling manual scheduling, or the dates of related work packages changing as a result of changes to the current work package). +*Blue banners* will indicate information that maybe be helpful (such as if the work package's dates are automatically derived from relations, or if available date ranges are limited by relations) and *orange banners* will warn of possible consequences to other work packages (existing relations being ignored as a result of enabling manual scheduling, or the dates of related work packages changing as a result of changes to the current work package). Additionally, a new "**Show relations**" on these banners allows you to quickly generate a Gantt view showing all directly related work packages in hierarchy view, so you can preview which work packages might be affected before making a change. @@ -48,7 +48,7 @@ Find out more about how to set and change dates with the [improved date picker]( ## Log time for other users -OpenProject 12.2 gives an administrator the possibility to grant permissions to log time for other users. With the required permissions, you can now select the team member for whom you want to log time from a drop down. +OpenProject 12.2 gives an administrator the possibility to grant permissions to log time for other users. With the required permissions, you can now select the team member for whom you want to log time from a drop down. ![log time for other users](image-20220811130616209.png) @@ -82,7 +82,7 @@ For more information, please see the respective installation pages: - [Packaged installation](../../../installation-and-operations/installation/packaged/#step-3-apache2-web-server-and-ssl-termination) - [Docker installation](../../../installation-and-operations/installation/docker/#configuration) -## List of all bug fixes and changes +## List of all bug fixes and changes - Changed: Log time for other users \[[#21754](https://community.openproject.org/wp/21754)\] - Changed: Send out an email reply if an incoming email could not be processed correctly \[[#35823](https://community.openproject.org/wp/35823)\] @@ -172,7 +172,8 @@ For more information, please see the respective installation pages: - Epic: Files tab that shows linked files in Nextcloud \[[#40203](https://community.openproject.org/wp/40203)\] - Epic: Settings connection between Nextcloud and OpenProject (OAuth) \[[#42072](https://community.openproject.org/wp/42072)\] -#### Contributions +## Contributions + A big thanks to community members for reporting bugs, helping us identify issues and providing fixes. - Special thanks for City of Cologne and University of Duisburg-Essen for sponsoring the development of the Nextcloud integration. diff --git a/docs/release-notes/12/12-2-1/README.md b/docs/release-notes/12/12-2-1/README.md index 15f868ab9e7f..a50ffb3b78fd 100644 --- a/docs/release-notes/12/12-2-1/README.md +++ b/docs/release-notes/12/12-2-1/README.md @@ -13,8 +13,6 @@ Release date: 2022-08-18 We released [OpenProject 12.2.1](https://community.openproject.org/versions/1594). The release contains a critical bug fixes that resolves a data corruption issue and we urge updating to the newest version. Please see the details below for more information. - - ## Important bug fix for activity records In OpenProject 12.2.0, a critical bug may randomly corrupt the activity records in the database, controlling @@ -28,8 +26,6 @@ This error manifests itself as: - Being unable to see activities in work package [#43773](https://community.openproject.org/wp/43773). - Getting internal errors trying to update an existing work package. - - The upgrade to 12.2.1 fixes this bug and includes a migration to try and restore the intermediate activities for the records that were affected. **Please note that the newest version was unaffected and all the changes you made in the system are still correct.** However, affected activities had to be restored and may be missing some changes or contain changes from previous or following activities. Any activity that had its record restored contains a note that this has happened. @@ -38,8 +34,6 @@ If you did not yet upgrade your system to 12.2.0., please update to 12.2.1 direc For cloud customers of OpenProject: The records affected by this bug were restored already in the same fashion. If your instance has been affected by this bug, we will reach out to you separately to inform you. - - ## Changes to the HTTPS settings If you are running OpenProject in a docker-based or if you manually integrate the packaged installation into your existing web server, you might need to set a new configuration value if you're not running under HTTPS. @@ -51,7 +45,6 @@ For more information on this setting and how to configure it for your installati - [Packaged installation](../../../installation-and-operations/installation/packaged/#step-3-apache2-web-server-and-ssl-termination) - [Docker installation](../../../installation-and-operations/installation/docker/#configuration) - ## All bug fixes - Fixed: Wrong html title while selecting filters in notification center \[[#43122](https://community.openproject.org/wp/43122)\] @@ -63,9 +56,7 @@ For more information on this setting and how to configure it for your installati - Fixed: Unable to see activities in work package \[[#43773](https://community.openproject.org/wp/43773)\] - Fixed: Timeline shows bar at wrong time after collapsing a group \[[#43775](https://community.openproject.org/wp/43775)\] - - -#### Contributions +## Contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. diff --git a/docs/release-notes/12/12-2-2/README.md b/docs/release-notes/12/12-2-2/README.md index e42d96324c6c..58c496d5ddd7 100644 --- a/docs/release-notes/12/12-2-2/README.md +++ b/docs/release-notes/12/12-2-2/README.md @@ -13,8 +13,6 @@ Release date: 2022-08-31 We released [OpenProject 12.2.2](https://community.openproject.org/versions/1597). The release contains several bug fixes and we recommend updating to the newest version. - - ## Known issues ### Pending database migration issue @@ -25,7 +23,7 @@ For a few customers, this migration appears to have been unsuccessful to restore When you update to OpenProject 12.2.2 and the migration fails again, it will output steps on how to force the migration to complete. Doing that will output a debug log of all relevant information on these journals. Please help us identifying this issue by posting this log in this ticket: https://community.openproject.org/wp/43876, or reaching out to support@openproject.org. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Wrong link for "Documents added" email notification \[[#41114](https://community.openproject.org/wp/41114)\] - Fixed: Bulk copy error when Assignee value set 'nobody' \[[#43145](https://community.openproject.org/wp/43145)\] @@ -39,7 +37,8 @@ When you update to OpenProject 12.2.2 and the migration fails again, it will out - Fixed: Upgrade 12.1.4 to 12.2.1 fails: pending database migration \[[#43876](https://community.openproject.org/wp/43876)\] - Fixed: System 'read only' field \[[#43893](https://community.openproject.org/wp/43893)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-2-3/README.md b/docs/release-notes/12/12-2-3/README.md index 3ce5cf4355b8..d204d9d7a3b3 100644 --- a/docs/release-notes/12/12-2-3/README.md +++ b/docs/release-notes/12/12-2-3/README.md @@ -13,12 +13,11 @@ Release date: 2022-09-12 We released [OpenProject 12.2.3](https://community.openproject.org/versions/1598). The release contains several bug fixes and we recommend updating to the newest version. -### Fixed: Installing custom plugins in packaged installations +## Fixed: Installing custom plugins in packaged installations Newer bundler versions would prevent custom plugins being installed in packaged installation. This has been fixed in this released version. For more information, please see [#44058](https://community.openproject.org/wp/44058) - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: RPM/DEB installation fails with a custom gemfile \[[#44058](https://community.openproject.org/wp/44058)\] diff --git a/docs/release-notes/12/12-2-4/README.md b/docs/release-notes/12/12-2-4/README.md index a06fd2eef3e9..2cad383bb0a4 100644 --- a/docs/release-notes/12/12-2-4/README.md +++ b/docs/release-notes/12/12-2-4/README.md @@ -13,9 +13,7 @@ Release date: 2022-09-15 We released [OpenProject 12.2.4](https://community.openproject.org/versions/1599). The release contains several bug fixes and we recommend updating to the newest version. - - -### Pending journal cleanup database migration +## Pending journal cleanup database migration With OpenProject 12.2.2, a journal cleanup migration was introduced to fix a data corruption bug in the 12.2.0 release. @@ -25,19 +23,14 @@ A migration was added to this release to do just that, and ensure that the 12.2. For more information on that change, please see the discussion in [Bug #44132](https://community.openproject.org/wp/44132) - - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Remaining hours sum not well formed \[[#43833](https://community.openproject.org/wp/43833)\] - Fixed: Destroy journals with invalid data_type associations \[[#44132](https://community.openproject.org/wp/44132)\] - Fixed: Internal error / Illegal instruction error \[[#44155](https://community.openproject.org/wp/44155)\] - Fixed: Dragging images to CKEditor on Grid custom texts not working with direct upload \[[#44156](https://community.openproject.org/wp/44156)\] -#### 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 +## Contributions -Nico Aymet +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 Nico Aymet diff --git a/docs/release-notes/12/12-2-5/README.md b/docs/release-notes/12/12-2-5/README.md index 4dcbf89eb736..47829360ec30 100644 --- a/docs/release-notes/12/12-2-5/README.md +++ b/docs/release-notes/12/12-2-5/README.md @@ -13,8 +13,7 @@ Release date: 2022-10-04 We released [OpenProject 12.2.5](https://community.openproject.org/versions/1602). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes ## LDAP group synchronization bug diff --git a/docs/release-notes/12/12-3-0/README.md b/docs/release-notes/12/12-3-0/README.md index 24fe1d53170b..d489cf0b4579 100644 --- a/docs/release-notes/12/12-3-0/README.md +++ b/docs/release-notes/12/12-3-0/README.md @@ -18,7 +18,7 @@ With OpenProject 12.3, administrators can define the [global work week](../../.. OpenProject 12.3 also adds [duration](../../../user-guide/work-packages/set-change-dates/#duration) to work packages. Thereby, the duration is bound to the start and the finish date. -With the introduction of the work week and duration, consequently also the [date picker got improved](../../../user-guide/work-packages/set-change-dates/#working-days). You will now see the duration as well as a switch to consider "Working days only" for your planning. +With the introduction of the work week and duration, consequently also the [date picker got improved](../../../user-guide/work-packages/set-change-dates/#working-days). You will now see the duration as well as a switch to consider "Working days only" for your planning. Additionally, this release launches **meaningful tool tips to the most essential actions**, and **when copying a project, all file links attached to work packages will be copied as well**. @@ -26,7 +26,7 @@ As always, this release also contains many more improvements and bug fixes. We r ## Introduction of the global work week -OpenProject 12.3 gives the administrator the possibility to specify working and non-working days on an overall instance-level and consequently define a global work week. +OpenProject 12.3 gives the administrator the possibility to specify working and non-working days on an overall instance-level and consequently define a global work week. This helps you to create more accurate project schedules and avoid having start or finish date of a work packages on a weekend. Non-working days are displayed grey in the calendar and work packages cannot be scheduled to start or finish on those days. The default value for non-working days is set to Saturday and Sunday, but you set them as needed. @@ -50,7 +50,7 @@ With the addition of duration and introduction of the global work week, the date The duration field is obviously there to indicate the duration of a work package and to assist with setting start or finish date. -With the working days only switch you can decide to either stick to the set work week or to include weekends. +With the working days only switch you can decide to either stick to the set work week or to include weekends. By default the **Working days only** switch is activated and the work week, as defined in the administration settings, is used to define the duration. Consequently, non-working days are not included in the calculation of the duration. These non-working days show in grey in the calendar and are not clickable. @@ -60,7 +60,7 @@ By moving the switch and deactivate the “Working days only”, non-working day The functionality of the "Working days only" switch is well [documented](../../../user-guide/work-packages/set-change-dates/#working-days). -### Please note the impact on the scheduling of all work packages +### Please note the impact on the scheduling of all work packages These changes to scheduling will not impact work packages created before the release of OpenProject 12.3 or before the upgrade to OpenProject 12.3. For the work packages created before OpenProject 12.3, the setting will have automatically turned-off the switch for “Working days only”. This is important to not change any existing dates for work packages. However, for new work packages, the switch will be set by default to “Working days only”. @@ -70,9 +70,7 @@ The new and additional tool tips in the OpenProject application will make the na ![hover over select a project and tool tip view all projects comes up](tool-tip.png) - - -## List of all bug fixes and changes +## List of all bug fixes and changes - Epic: Define weekly work schedule (weekends) [#18416](https://community.openproject.org/wp/18416) - Epic: Duration (deriving duration from dates, deriving dates from duration, updated datepicker, duration field elsewhere) [#31992](https://community.openproject.org/wp/31992) @@ -112,7 +110,7 @@ The new and additional tool tips in the OpenProject application will make the na - Changed: New release teaser block for 12.3 [#44212](https://community.openproject.org/wp/44212) - Changed: Add the Switch component and Switch Field pattern to the design system [#44213](https://community.openproject.org/wp/44213) -### Contributions +## Contributions A big thanks to community members for reporting bugs, helping us identify issues and providing fixes. diff --git a/docs/release-notes/12/12-3-1/README.md b/docs/release-notes/12/12-3-1/README.md index fe2967b8d35f..d1a95d2dd5b6 100644 --- a/docs/release-notes/12/12-3-1/README.md +++ b/docs/release-notes/12/12-3-1/README.md @@ -13,8 +13,7 @@ Release date: 2022-10-24 We released [OpenProject 12.3.1](https://community.openproject.org/versions/1605). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Frontend including editor and time logging unusable when there are many activities \[[#40373](https://community.openproject.org/wp/40373)\] - Fixed: Attachments are not going to be copied, when using "Copy to other project" function \[[#43005](https://community.openproject.org/wp/43005)\] @@ -38,7 +37,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: "missing translation" pop-up message on a newly created cloud instance \[[#44583](https://community.openproject.org/wp/44583)\] - Fixed: OpenProject upgrade fails with "column roles.assignable does not exist" error during AddStoragesPermissionsToRoles migration \[[#44616](https://community.openproject.org/wp/44616)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-3-2/README.md b/docs/release-notes/12/12-3-2/README.md index f804c2af4255..2b178536ba50 100644 --- a/docs/release-notes/12/12-3-2/README.md +++ b/docs/release-notes/12/12-3-2/README.md @@ -13,15 +13,15 @@ Release date: 2022-10-26 We released [OpenProject 12.3.2](https://community.openproject.org/versions/1608). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Multiple identical Webhooks are sent for each WP change applied, not considering the Aggregated WorkPackage Journal \[[#44158](https://community.openproject.org/wp/44158)\] - Fixed: Moving a week-days-only WP on Gantt chart and falling its end-date to a non-working date is not possible \[[#44501](https://community.openproject.org/wp/44501)\] - Fixed: Migration to 12.3.1 fails with Key columns "user_id" and "id" are of incompatible types: numeric and bigint. \[[#44634](https://community.openproject.org/wp/44634)\] - Fixed: rake assets:precompile fails with NameError: uninitialized constant ActiveRecord::ConnectionAdapters::PostgreSQLAdapter \[[#44635](https://community.openproject.org/wp/44635)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-3-3/README.md b/docs/release-notes/12/12-3-3/README.md index 87ea226a4666..008c45808ed4 100644 --- a/docs/release-notes/12/12-3-3/README.md +++ b/docs/release-notes/12/12-3-3/README.md @@ -13,8 +13,7 @@ Release date: 2022-11-23 We released [OpenProject 12.3.3](https://community.openproject.org/versions/1609). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Gantt calendar weeks not according to settings \[[#41327](https://community.openproject.org/wp/41327)\] - Fixed: BIM edition unavailable on Ubuntu 22.04 packaged installation \[[#43531](https://community.openproject.org/wp/43531)\] @@ -23,7 +22,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Initial Installation fails if `welcome_text` is set in `configuration.yml` \[[#44755](https://community.openproject.org/wp/44755)\] - Fixed: OAuth login POST doesn't work on mobile Safari due to CSP \[[#44772](https://community.openproject.org/wp/44772)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-3-4/README.md b/docs/release-notes/12/12-3-4/README.md index ed626dd832dc..4bc0bd88fb7d 100644 --- a/docs/release-notes/12/12-3-4/README.md +++ b/docs/release-notes/12/12-3-4/README.md @@ -13,7 +13,6 @@ Release date: 2022-12-02 We released [OpenProject 12.3.4](https://community.openproject.org/versions/1613). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Chrome v108 freezes up on work package create and show page \[[#45169](https://community.openproject.org/wp/45169)\] diff --git a/docs/release-notes/12/12-4-0/README.md b/docs/release-notes/12/12-4-0/README.md index 6bbd4f56746d..ab3fc42c2bfd 100644 --- a/docs/release-notes/12/12-4-0/README.md +++ b/docs/release-notes/12/12-4-0/README.md @@ -14,16 +14,16 @@ We released [OpenProject 12.4.0](https://community.openproject.org/versions/1595 This release launches a long awaited feature of **date alerts for upcoming due dates (start or finish date)** and **reminders for overdue tasks**. -With OpenProject 12.4 the **2-factor authentication feature becomes part of the Community edition** and adds an additional security layer to your application. Do not take long before you activate it. +With OpenProject 12.4 the **2-factor authentication feature becomes part of the Community edition** and adds an additional security layer to your application. Do not take long before you activate it. -Official **OpenProject HelmCharts** are available from now on. We also added the possibility of choosing a work week as opposed to 1 or 2 week view with the team planer. In addition, users can now tag themselves via @mentioned and can bulk edit the work-package field "subject". +Official **OpenProject HelmCharts** are available from now on. We also added the possibility of choosing a work week as opposed to 1 or 2 week view with the team planer. In addition, users can now tag themselves via @mentioned and can bulk edit the work-package field "subject". As usual, the release contains several bug fixes and we recommend updating to the newest version. ## Date alerts for the upcoming dates and overdue tasks -The new OpenProject 12.4 release will bring notification date alerts for upcoming dates and overdue tasks (Enterprise add-on). Within the [Notification settings](../../../user-guide/notifications/notification-settings/) in My Account, automatic notifications for important dates and approaching dates can now be adjusted. This can be done for the open work packages you are involved in either as an assignee, accountable or watcher. A reminder can be set for 1 day, 3 days or a week before a start or a due date approaches. -Same options are now available for the overdue work package reminders. +The new OpenProject 12.4 release will bring notification date alerts for upcoming dates and overdue tasks (Enterprise add-on). Within the [Notification settings](../../../user-guide/notifications/notification-settings/) in My Account, automatic notifications for important dates and approaching dates can now be adjusted. This can be done for the open work packages you are involved in either as an assignee, accountable or watcher. A reminder can be set for 1 day, 3 days or a week before a start or a due date approaches. +Same options are now available for the overdue work package reminders. ![date-alerts-settings](openproject-date-alerts-settings.png) @@ -38,14 +38,12 @@ Date alerts are an Enterprise add-on and only available in the [Enterprise on-pr ## 2-factor Authentication (2FA) for the community edition -With OpenProject 12.4 users who have OpenProject community edition installed can activate 2-factor authentication. We strongly recommend that you make use of this option and increase your account security. +With OpenProject 12.4 users who have OpenProject community edition installed can activate 2-factor authentication. We strongly recommend that you make use of this option and increase your account security. ![two-factor-authentication](openproject-2-factor-authentication-community-edition.png) !See [here](../../../getting-started/my-account/#two-factor-authentication) how to setup the 2FA under My account. - - ## LDAP connection encryption changes In previous versions of OpenProject, there were three connection security modes that were hard to differentiate, especially with regards to actual verification of SSL certificates. @@ -72,7 +70,7 @@ Starting with OpenProject 12.4 official [OpenProject Helm charts](../../../insta ## List up to three people in a notification card -From now on is possible to list up to 3 people in a notification card when multiple people were involved in the changes. +From now on is possible to list up to 3 people in a notification card when multiple people were involved in the changes. ![openproject notifications center three people tagged](openproject-notifications-three-users-tagged.png) @@ -82,7 +80,7 @@ Users can now notify not only other users but themselves too via @mention. Notif ## Bulk edit work package "subject" field -It is now possible to bulk edit the subject field for multiple work packages. See how to [bulk edit work packages](../../../user-guide/work-packages/edit-work-package/#bulk-edit-work-packages). +It is now possible to bulk edit the subject field for multiple work packages. See how to [bulk edit work packages](../../../user-guide/work-packages/edit-work-package/#bulk-edit-work-packages). ![openproject bulk edit work package subject field](openproject-bulk-edit-subject.png) @@ -112,10 +110,10 @@ It is now possible to bulk edit the subject field for multiple work packages. Se - Changed: Bulk edit of the work-package field "subject" \[[#44386](https://community.openproject.org/wp/44386)\] - Changed: Team planner: add "Work week" option to visible time scale \[[#44702](https://community.openproject.org/wp/44702)\] -#### Contributions +## Contributions + A big thanks to community members for reporting bugs and helping us identifying and providing fixes. A gigantic thank you goes out to Sven Kunze for developing the self-tagging feature and the bulk edit option for the subject field. Special thanks for reporting and finding bugs also go to Artur Neumann, Noel Lublovary, Hein Stefans. - diff --git a/docs/release-notes/12/12-4-1/README.md b/docs/release-notes/12/12-4-1/README.md index b1c2f2065493..fc8344c0ce16 100644 --- a/docs/release-notes/12/12-4-1/README.md +++ b/docs/release-notes/12/12-4-1/README.md @@ -13,8 +13,7 @@ Release date: 2022-12-14 We released [OpenProject 12.4.1](https://community.openproject.org/versions/1612). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Margin under road map caption when version is overdue \[[#41676](https://community.openproject.org/wp/41676)\] - Fixed: Issues with project selection on mobile \[[#44440](https://community.openproject.org/wp/44440)\] @@ -32,7 +31,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Login and email missing during AzureAD OpenID Connect registration \[[#45415](https://community.openproject.org/wp/45415)\] - Fixed: xeokit-metadata fails to find dotnet-runtime in Ubuntu 22.04 \[[#45442](https://community.openproject.org/wp/45442)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-4-2/README.md b/docs/release-notes/12/12-4-2/README.md index 9f8880f1e8e5..ed92707826d7 100644 --- a/docs/release-notes/12/12-4-2/README.md +++ b/docs/release-notes/12/12-4-2/README.md @@ -13,8 +13,7 @@ Release date: 2023-01-16 We released [OpenProject 12.4.2](https://community.openproject.org/versions/1614). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Password confirmation dialog doesn't work when using ENTER instead of clicking on Confirm \[[#44499](https://community.openproject.org/wp/44499)\] - Fixed: File picker does not load directory listing when OAuth token is expired \[[#44916](https://community.openproject.org/wp/44916)\] @@ -30,7 +29,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Date alert creation job timing out \[[#45591](https://community.openproject.org/wp/45591)\] - Fixed: New custom field with default value breaks comments \[[#45724](https://community.openproject.org/wp/45724)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-4-3/README.md b/docs/release-notes/12/12-4-3/README.md index 5aae7b63c54c..55fc32f83840 100644 --- a/docs/release-notes/12/12-4-3/README.md +++ b/docs/release-notes/12/12-4-3/README.md @@ -13,15 +13,15 @@ Release date: 2023-01-30 We released [OpenProject 12.4.3](https://community.openproject.org/versions/1621). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Custom field in cost report show "not found" after custom filed's value \[[#34978](https://community.openproject.org/wp/34978)\] - Fixed: Race condition with outdated OAuth access token \[[#45799](https://community.openproject.org/wp/45799)\] - Fixed: Notifications API are still showing errors in case of not authorized / other errors \[[#45854](https://community.openproject.org/wp/45854)\] - Fixed: Administration: Permissions report page doesn't work in french in 12.4.1 \[[#45892](https://community.openproject.org/wp/45892)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-4-4/README.md b/docs/release-notes/12/12-4-4/README.md index c1c7eca14751..2c8007cce1c9 100644 --- a/docs/release-notes/12/12-4-4/README.md +++ b/docs/release-notes/12/12-4-4/README.md @@ -13,8 +13,7 @@ Release date: 2023-02-15 We released [OpenProject 12.4.4](https://community.openproject.org/versions/1623). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Deleting tmp/cache works when called manually but never by scheduled jobs \[[#44182](https://community.openproject.org/wp/44182)\] - Fixed: Not possible to delete favicon and touch icon \[[#45997](https://community.openproject.org/wp/45997)\] @@ -22,7 +21,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Prevent OAuth refresh token race condition. \[[#46195](https://community.openproject.org/wp/46195)\] - Fixed: Click started in modal, but dragged outside closes the modal \[[#46217](https://community.openproject.org/wp/46217)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-4-5/README.md b/docs/release-notes/12/12-4-5/README.md index 495ce66a92ac..9c68b7a736e1 100644 --- a/docs/release-notes/12/12-4-5/README.md +++ b/docs/release-notes/12/12-4-5/README.md @@ -13,8 +13,7 @@ Release date: 2023-02-23 We released [OpenProject 12.4.5](https://community.openproject.org/versions/1657). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Timeout when bulk editing work package assignees across projects \[[#46284](https://community.openproject.org/wp/46284)\] - Fixed: Groups can no longer have their notifications suppressed \[[#46330](https://community.openproject.org/wp/46330)\] diff --git a/docs/release-notes/12/12-5-0/README.md b/docs/release-notes/12/12-5-0/README.md index 1645c6e640cf..61e35cb88a8e 100644 --- a/docs/release-notes/12/12-5-0/README.md +++ b/docs/release-notes/12/12-5-0/README.md @@ -15,7 +15,7 @@ We have released [OpenProject 12.5.0](https://community.openproject.org/versions This new release is again packed with many new collaboration features, improvements and bug fixes. Version 12.5 brings the anticipated collaboration features for the **Nextcloud integration to the OpenProject side**. Nextcloud and OpenProject now offer users of both services a way to manage their projects and share files seamlessly and without disruption. -OpenProject 12.5 now also lets system administrator **define additional non-working days** on an instance level, such as public holidays. We are also happy to **release another Enterprise add-on** to the free-of-charge Community version: The advanced search functionality not only supports full text search but also enables users to search for work package attachments or content. +OpenProject 12.5 now also lets system administrator **define additional non-working days** on an instance level, such as public holidays. We are also happy to **release another Enterprise add-on** to the free-of-charge Community version: The advanced search functionality not only supports full text search but also enables users to search for work package attachments or content. ## Upload files to Nextcloud while working in OpenProject @@ -55,8 +55,6 @@ Once you have selected or dropped the files you would like to upload, simply sel The ability to upload new files to Nextcloud directly from OpenProject or link existing files to work packages is not reserved only for existing work packages. You can now do both also when creating a new work package. - - ![openproject-nextcloud-upload-files-empty-status](openproject-nextcloud-upload-files-empty-status.png) ### More options for linked Nextcloud files in OpenProject @@ -73,7 +71,7 @@ With OpenProject 12.5, administrators can now also define additional individual ![Non-working-days-holidays](Non-working-days-holidays.png) -**Please note**: These additional non-working days are set at an instance level and affect all work packages in all projects. Adding additional non-working days can therefore affect and reschedule a large number of work packages in the instance (except those for which the 'Working days only' switch is turned off). Individual non-working days and are also tied to a specific year. Recurring holidays like Christmas have to be set separately for each year. +**Please note**: These additional non-working days are set at an instance level and affect all work packages in all projects. Adding additional non-working days can therefore affect and reschedule a large number of work packages in the instance (except those for which the 'Working days only' switch is turned off). Individual non-working days and are also tied to a specific year. Recurring holidays like Christmas have to be set separately for each year. ## View project activity @@ -215,6 +213,7 @@ With OpenProject 12.5, we are happy to announce that another Enterprise add-on w - Epic: Cross-application main menu for dPhoenixSuite/Sovereign Administrative Work Place \[[#44297](https://community.openproject.org/wp/44297)\] ## Credits and contributions + A very special thank you goes to the following sponsors for features and improvements of this release: - **The City of Cologne** for having sponsored the tracking of project changes, adding additional non-working days, and parts of the Nextcloud integration. @@ -222,4 +221,4 @@ A very special thank you goes to the following sponsors for features and improve A very big thank you to M V, Sven Kunze, Rince wind, Christina Vechkanova, Johannes Frenck, Marc Burk, Jörg Nold, Nidhin Manoharan, Jörg Mollowitz, Benjamin Rönnau, Harald Herz for finding and reporting bugs. -And of course, a very big thank you to the **Nextcloud** team for this amazing collaboration. +And of course, a very big thank you to the **Nextcloud** team for this amazing collaboration. diff --git a/docs/release-notes/12/12-5-1/README.md b/docs/release-notes/12/12-5-1/README.md index df2de60d02ab..65c3c46a34b0 100644 --- a/docs/release-notes/12/12-5-1/README.md +++ b/docs/release-notes/12/12-5-1/README.md @@ -13,8 +13,7 @@ Release date: 2023-03-20 We released [OpenProject 12.5.1](https://community.openproject.org/versions/1692). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Changing non working days in Polish fails \[[#47020](https://community.openproject.org/wp/47020)\] - Fixed: Unable to login via oauth provider (e.g. Azure) \[[#47044](https://community.openproject.org/wp/47044)\] diff --git a/docs/release-notes/12/12-5-2/README.md b/docs/release-notes/12/12-5-2/README.md index a9b1220b88a2..b479d94207c9 100644 --- a/docs/release-notes/12/12-5-2/README.md +++ b/docs/release-notes/12/12-5-2/README.md @@ -13,8 +13,7 @@ Release date: 2023-03-28 We released [OpenProject 12.5.2](https://community.openproject.org/versions/1693). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: [AppSignal] incompatible character encodings: ASCII-8BIT and UTF-8 \[[#43898](https://community.openproject.org/wp/43898)\] - Fixed: Missing deletion confirmation for subprojects \[[#45935](https://community.openproject.org/wp/45935)\] @@ -26,7 +25,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Swagger UI is not rendering for API docs \[[#47157](https://community.openproject.org/wp/47157)\] - Changed: Add hint if Nextcloud App "OpenProject Integration" needs upgrade for 12.5 \[[#47021](https://community.openproject.org/wp/47021)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-5-3/README.md b/docs/release-notes/12/12-5-3/README.md index bc0bc8935d87..e664d1dbfc8a 100644 --- a/docs/release-notes/12/12-5-3/README.md +++ b/docs/release-notes/12/12-5-3/README.md @@ -13,8 +13,7 @@ Release date: 2023-04-24 We released [OpenProject 12.5.3](https://community.openproject.org/versions/1694). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Titles of related work packages are unnecessarily truncated. Full titles are not accessible. \[[#44828](https://community.openproject.org/wp/44828)\] - Fixed: Date picker: selected dates in mini calendar don't have a hover (primary dark) \[[#46436](https://community.openproject.org/wp/46436)\] @@ -28,7 +27,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Anyone can sign up using Google even if user registration is disabled \[[#47622](https://community.openproject.org/wp/47622)\] - Fixed: inbound emails uses "move_on_success" and "move_on_failure" error \[[#47633](https://community.openproject.org/wp/47633)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-5-4/README.md b/docs/release-notes/12/12-5-4/README.md index 8d546c2f59a2..f0bd2a5711c4 100644 --- a/docs/release-notes/12/12-5-4/README.md +++ b/docs/release-notes/12/12-5-4/README.md @@ -13,9 +13,9 @@ Release date: 2023-05-02 We released [OpenProject 12.5.4](https://community.openproject.org/versions/1728). The release contains two security related bug fixes and we recommend updating to the newest version. +## CVE-2023-31140 - -### CVE-2023-31140: Invalidation of existing sessions when 2FA activated \[[#48035](https://community.openproject.org/wp/48035)\] +Invalidation of existing sessions when 2FA activated \[[#48035](https://community.openproject.org/wp/48035)\] When a user registers and confirms their first two-factor authentication (2FA) device for an account, existing logged in sessions for that user account are not terminated. Likewise, if an administrators creates a mobile phone 2FA device on behalf of a user, their existing sessions are not terminated. The issue has been resolved in OpenProject version 12.5.4 by actively terminating sessions of user accounts having registered and confirmed a 2FA device. @@ -27,7 +27,7 @@ For more information, [please see our security advisory](https://github.com/opf/ As a workaround, users who register the first 2FA device on their account can manually log out to terminate all other active sessions. This is the default behavior of OpenProject but might be disabled [through a configuration option](../../../installation-and-operations/configuration/#setting-session-options). Double check that this option is not overridden if you plan to employ the workaround. -### Invalidation of password reset link when user changes password in the meantime \[[#48036](https://community.openproject.org/wp/48036)\] +**Invalidation of password reset link when user changes password in the meantime \[[#48036](https://community.openproject.org/wp/48036)\]** When a user requests a password reset, an email is sent with a link to confirm and reset the password. If the user changes the password in an active session in the meantime, the password reset link was not invalidated and continued to be usable for the duration of its validity period. @@ -35,9 +35,7 @@ The issue has been resolved in OpenProject version 12.5.4 by actively revoking a This security related issue was responsibly disclosed by [Vaishnavi Pardeshi](mailto:researchervaishnavi0@gmail.com). Thank you for reaching out to us and your help in identifying this issue. If you have a security vulnerability you would like to disclose, please see our [statement on security](../../../security-and-privacy/statement-on-security/). - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Google reCAPTCHA v2 and V3 changed implementation \[[#44115](https://community.openproject.org/wp/44115)\] - Fixed: User activity: Previous link removes user parameter from URL \[[#47855](https://community.openproject.org/wp/47855)\] @@ -46,10 +44,7 @@ This security related issue was responsibly disclosed by [Vaishnavi Pardeshi](ma - Fixed: Previously Created Session Continue Being Valid After 2FA Activation \[[#48035](https://community.openproject.org/wp/48035)\] - Fixed: Forgotten password link does not expire when user changes password in the meantime \[[#48036](https://community.openproject.org/wp/48036)\] -#### 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 - -Björn Schümann +## 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 Björn Schümann diff --git a/docs/release-notes/12/12-5-5/README.md b/docs/release-notes/12/12-5-5/README.md index 1a1837a06536..743ba17c63fc 100644 --- a/docs/release-notes/12/12-5-5/README.md +++ b/docs/release-notes/12/12-5-5/README.md @@ -13,8 +13,7 @@ Release date: 2023-05-16 We released [OpenProject 12.5.5](https://community.openproject.org/versions/1761). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: API v3 Group List Api sometimes misses embedded members field \[[#42303](https://community.openproject.org/wp/42303)\] - Fixed: Wrong date format for the Slovenian language \[[#48032](https://community.openproject.org/wp/48032)\] @@ -23,7 +22,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Links from the welcome text stop working when text is edited \[[#48158](https://community.openproject.org/wp/48158)\] - Fixed: Document not listing project name under My Page \[[#48177](https://community.openproject.org/wp/48177)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-5-6/README.md b/docs/release-notes/12/12-5-6/README.md index 32cbb43d1f4a..737863680a68 100644 --- a/docs/release-notes/12/12-5-6/README.md +++ b/docs/release-notes/12/12-5-6/README.md @@ -13,7 +13,7 @@ Release date: 2023-06-01 We released [OpenProject 12.5.6](https://community.openproject.org/versions/1794). The release contains a security related bug fix and we recommend updating to the newest version. -### CVE-2023-31140: Project identifier information leakage through robots.txt +## CVE-2023-31140: Project identifier information leakage through robots.txt For any OpenProject installation, a robots.txt file is generated through the server to denote which routes shall or shall not be accessed by crawlers. These routes contain project identifiers of all public projects in the instance. Even if the entire instance is marked as "Login required" and prevents all truly anonymous access, the /robots.txt route remains publicly available. @@ -28,9 +28,7 @@ You can download the following patch file to apply the patch to any OpenProject **Workaround** If you are unable to update or apply the provided patch, mark any public project as non-public for the time being and give anyone in need of access to the project a membership. - - -#### Bug fixes and changes +## Bug fixes and changes - Changed: Add packaged installation support for SLES 15 \[[#44117](https://community.openproject.org/wp/44117)\] - Changed: Allow URL behind the application logo to be configurable \[[#48251](https://community.openproject.org/wp/48251)\] @@ -40,9 +38,7 @@ If you are unable to update or apply the provided patch, mark any public project - Fixed: robots.txt leaks public project identifiers \[[#48338](https://community.openproject.org/wp/48338)\] - Fixed: Unchecked copy options are still copied in the new project \[[#48351](https://community.openproject.org/wp/48351)\] -#### 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 +## Contributions -Benjamin Rönnau, Ryan Brownell +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 Benjamin Rönnau, Ryan Brownell diff --git a/docs/release-notes/12/12-5-7/README.md b/docs/release-notes/12/12-5-7/README.md index ce4cf2166bd0..74c7069ba689 100644 --- a/docs/release-notes/12/12-5-7/README.md +++ b/docs/release-notes/12/12-5-7/README.md @@ -13,14 +13,14 @@ Release date: 2023-06-14 We released [OpenProject 12.5.7](https://community.openproject.org/versions/1796). The release contains several bug fixes and we recommend updating to the newest version. - -#### Bug fixes and changes +## Bug fixes and changes - Changed: Quick-Wins to make blue boxes easier to understand \[[#44340](https://community.openproject.org/wp/44340)\] - Fixed: Milestone cannot be dragged left-right on the calendar \[[#48334](https://community.openproject.org/wp/48334)\] - Fixed: Docker linux/arm64 image raise "/app/docker/prod/gosu: cannot execute binary file: Exec format error" \[[#48395](https://community.openproject.org/wp/48395)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/12-5-8/README.md b/docs/release-notes/12/12-5-8/README.md index 7fb10cfe53be..a8db496883d3 100644 --- a/docs/release-notes/12/12-5-8/README.md +++ b/docs/release-notes/12/12-5-8/README.md @@ -14,7 +14,7 @@ We released [OpenProject 12.5.8](https://community.openproject.org/versions/1829 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: After calling "Create project copy" API endpoint, the Job Status API should return the new projects id, not only its identifier \[[#37783](https://community.openproject.org/wp/37783)\] - Fixed: Entries in summary emails not clickable in Outlook (links not working) \[[#40157](https://community.openproject.org/wp/40157)\] @@ -29,7 +29,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Internal error occurs when invalid project is set to template \[[#49116](https://community.openproject.org/wp/49116)\] - Changed: Allow internal login even if omniauth direct provider selected \[[#47930](https://community.openproject.org/wp/47930)\] -#### Contributions +## 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 diff --git a/docs/release-notes/12/README.md b/docs/release-notes/12/README.md index 3ab1af18b1ee..249797ddabb1 100644 --- a/docs/release-notes/12/README.md +++ b/docs/release-notes/12/README.md @@ -5,7 +5,7 @@ release_date: 2021-11-15 title: OpenProject Version 12 Release Notes --- -# OpenProject Version 12 Release Notes +# OpenProject Version 12 Release Notes | Version | Release date | |---------------------------------|--------------| @@ -53,4 +53,3 @@ title: OpenProject Version 12 Release Notes | [OpenProject 12.0.2](12-0-2/) | 2021-11-24 | | [OpenProject 12.0.1](12-0-1/) | 2021-11-17 | | [OpenProject 12.0.0](12-0-0/) | 2021-11-15 | - diff --git a/docs/release-notes/13-0-0/README.md b/docs/release-notes/13-0-0/README.md index 25bb77be64d7..b6ae78c862fe 100644 --- a/docs/release-notes/13-0-0/README.md +++ b/docs/release-notes/13-0-0/README.md @@ -53,7 +53,8 @@ With 13.0 we have added a new global menu to access all global modules for your ![OpenProject global modules overview](openproject-global-modules.png) -## Time tracking button +## Time tracking button + We added a button that allows you to easily record the time spent on a work package. Pressing the button on the work package will start the timer. Your avatar in the header navigation will show the active time tracking. Clicking the button again will stop the time tracking and you can log the time spent on the work package. ![OpenProject time tracking button](openproject-time-tracking-button.png) diff --git a/docs/release-notes/13-0-1/README.md b/docs/release-notes/13-0-1/README.md index 40a4ef78cbd3..e44dbadf1d22 100644 --- a/docs/release-notes/13-0-1/README.md +++ b/docs/release-notes/13-0-1/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.0.1](https://community.openproject.org/versions/1865 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Copy to clipboard icon wrong \[[#49721](https://community.openproject.org/wp/49721)\] - Fixed: Shared calendar return 404 when using a parent filter \[[#49726](https://community.openproject.org/wp/49726)\] @@ -27,7 +27,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: CF multiselect list with default values does not show default values on work package creation \[[#49784](https://community.openproject.org/wp/49784)\] - Fixed: Chinese zh-CN locale is not up to date \[[#49795](https://community.openproject.org/wp/49795)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-0-2/README.md b/docs/release-notes/13-0-2/README.md index a4fa65275526..62ce32c17f73 100644 --- a/docs/release-notes/13-0-2/README.md +++ b/docs/release-notes/13-0-2/README.md @@ -25,7 +25,7 @@ to other project folders. This only affects those users that have granted OpenProject access to their Nextcloud user via OAuth. Other users that do not have access rights to any project folder and have not granted access to Nextcloud via OAuth are not affected. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: [AppSignal] Performance MessagesController#show \[[#47871](https://community.openproject.org/wp/47871)\] - Fixed: Number of wp no longer shown in bars on the graph \[[#49767](https://community.openproject.org/wp/49767)\] @@ -44,7 +44,8 @@ This only affects those users that have granted OpenProject access to their Next - Changed: Forbid user to enable misconfigured storages for a project. \[[#49218](https://community.openproject.org/wp/49218)\] - Changed: Remove the "show" view for a storage's settings page \[[#49676](https://community.openproject.org/wp/49676)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-0-3/README.md b/docs/release-notes/13-0-3/README.md index 764ad484bb1a..62bb66163b5b 100644 --- a/docs/release-notes/13-0-3/README.md +++ b/docs/release-notes/13-0-3/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.0.3](https://community.openproject.org/versions/1901 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Enterprise Trial automatic activation does not work \[[#49781](https://community.openproject.org/wp/49781)\] - Fixed: Fix untranslated strings \[[#49848](https://community.openproject.org/wp/49848)\] diff --git a/docs/release-notes/13-0-4/README.md b/docs/release-notes/13-0-4/README.md index f7a5cd68b511..06b9340d066e 100644 --- a/docs/release-notes/13-0-4/README.md +++ b/docs/release-notes/13-0-4/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.0.4](https://community.openproject.org/versions/1902 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: PDF export does not contain custom fields and some core values \[[#49948](https://community.openproject.org/wp/49948)\] - Fixed: Poor performance of work package autocompleter and /api/v3/work_packages in some scenarios \[[#50102](https://community.openproject.org/wp/50102)\] @@ -23,7 +23,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: DATABASE_URL environment variable is not validated before usage \[[#50152](https://community.openproject.org/wp/50152)\] - Fixed: Work package activity not shown when using Polish language \[[#50197](https://community.openproject.org/wp/50197)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-0-5/README.md b/docs/release-notes/13-0-5/README.md index 1c82961b01f1..309eef48edc3 100644 --- a/docs/release-notes/13-0-5/README.md +++ b/docs/release-notes/13-0-5/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.0.5](https://community.openproject.org/versions/1904 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: get 500 error when open wiki page in every project \[[#40500](https://community.openproject.org/wp/40500)\] - Fixed: [AppSignal] Performance VersionsController#index \[[#47872](https://community.openproject.org/wp/47872)\] @@ -27,7 +27,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Copying projects with Nextcloud project folders does not recreate file links to folders \[[#50295](https://community.openproject.org/wp/50295)\] - Fixed: Help text incorrectly cached for non admins \[[#50299](https://community.openproject.org/wp/50299)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-0-6/README.md b/docs/release-notes/13-0-6/README.md index 5ddb6cb57b73..9cba9d65851a 100644 --- a/docs/release-notes/13-0-6/README.md +++ b/docs/release-notes/13-0-6/README.md @@ -14,6 +14,6 @@ We released [OpenProject 13.0.6](https://community.openproject.org/versions/1937 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Project storage members page can be accessed without a session. \[[#50519](https://community.openproject.org/wp/50519)\] diff --git a/docs/release-notes/13-0-7/README.md b/docs/release-notes/13-0-7/README.md index 87939a8200de..a3c43987846a 100644 --- a/docs/release-notes/13-0-7/README.md +++ b/docs/release-notes/13-0-7/README.md @@ -14,12 +14,13 @@ We released [OpenProject 13.0.7](https://community.openproject.org/versions/1938 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: File Drag and Drop \[[#49507](https://community.openproject.org/wp/49507)\] - Fixed: Help icon not shown when having a custom help link setting \[[#50666](https://community.openproject.org/wp/50666)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-0-8/README.md b/docs/release-notes/13-0-8/README.md index 6d022b851874..57fb5b40720f 100644 --- a/docs/release-notes/13-0-8/README.md +++ b/docs/release-notes/13-0-8/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.0.8](https://community.openproject.org/versions/1942 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Logging time using "My spent time" widget returns previous day (likely time zone issue) \[[#49779](https://community.openproject.org/wp/49779)\] - Fixed: Internal server error upon login via Microsoft Entra ID (AzureAD) \[[#50167](https://community.openproject.org/wp/50167)\] @@ -22,7 +22,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: +Custom field button moved left (instead of being on the right) of the Custom fields page in Project settings \[[#50285](https://community.openproject.org/wp/50285)\] - Fixed: Make Nextcloud synchronization more stable in 13.0. \[[#51265](https://community.openproject.org/wp/51265)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-1-0/README.md b/docs/release-notes/13-1-0/README.md index 4256196658d2..4ce4eb0773c8 100644 --- a/docs/release-notes/13-1-0/README.md +++ b/docs/release-notes/13-1-0/README.md @@ -40,7 +40,7 @@ See our user guide to learn more about this Enterprise add-on and how to [use th ## Share work packages with external users and groups (Enterprise add-on) -With OpenProject 13.1 it is possible to share work packages with users and/or groups outside of your installation. This sharing feature is available as an Enterprise add-on. Work packages can now be shared with users or groups that have no permissions to see a particular project in its entirety, only allowing access to relevant work packages. This way, stakeholders can get easy access to relevant project information without having to see all of a project’s work packages. +With OpenProject 13.1 it is possible to share work packages with users and/or groups outside of your installation. This sharing feature is available as an Enterprise add-on. Work packages can now be shared with users or groups that have no permissions to see a particular project in its entirety, only allowing access to relevant work packages. This way, stakeholders can get easy access to relevant project information without having to see all of a project’s work packages. ![Share work packages with external users in OpenProject](openproject-13-1-share-work-packages.png) @@ -54,26 +54,22 @@ With OpenProject 13.1, we released [Attribute help texts](../../system-admin-gui ## Accessibility improvements and high contrast mode -We continued to work on improving accessibility of OpenProject according to the WCAG 2.1 AA. You can now select to use a high contrast mode in your [profile settings](../../getting-started/my-account/#select-the-high-contrast-color-mode), which will override the current OpenProject theme and be especially valuable for OpenProject users with visual impairments. +We continued to work on improving accessibility of OpenProject according to the WCAG 2.1 AA. You can now select to use a high contrast mode in your [profile settings](../../getting-started/my-account/#select-the-high-contrast-color-mode), which will override the current OpenProject theme and be especially valuable for OpenProject users with visual impairments. ![High contrast mode in OpenProject](openproject_my_account_high_contrast_mode.png) ## Continued integration of Primer design system -With OpenProject 13.1 we have continued to integration the [Primer Design system](https://primer.style/). This will especially be noticeable in the new features, such as the new Meetings module. - - +With OpenProject 13.1 we have continued to integration the [Primer Design system](https://primer.style/). This will especially be noticeable in the new features, such as the new Meetings module. ## Discontinued support for Centos7 and SLES12 -Support for packaged installations on Centos7 and SUSE Enterprise Linux 12 have been removed in 13.1.0 Both are nearing or have exceeded their EOL and packaged builds were failing prior to the release already. We will not provide additional support for these systems. +Support for packaged installations on Centos7 and SUSE Enterprise Linux 12 have been removed in 13.1.0 Both are nearing or have exceeded their EOL and packaged builds were failing prior to the release already. We will not provide additional support for these systems. Users still required to run on these systems should consider upgrading to a supported version, or use our docker-based installation methods. For more information, please see [#51333](https://community.openproject.org/projects/openproject/work_packages/51533/activity) and our [installation guides](../../installation-and-operations/installation/). - - ## List of all bug fixes and changes - Epic: Share work packages with external users and groups that are not member of the project team \[[#31150](https://community.openproject.org/wp/31150)\] @@ -143,7 +139,8 @@ For more information, please see [#51333](https://community.openproject.org/proj - Fixed: Search not working on some meetings (possibly because of agenda items containing macros) \[[#51426](https://community.openproject.org/wp/51426)\] - Fixed: Overview page suggests some information (e.g. custom fields, status, description) not set when they are hidden \[[#51431](https://community.openproject.org/wp/51431)\] -### Contributions +## Contributions + A very special thank you goes to our sponsors for features and improvements of this release: - **Deutsche Bahn** – for the OneDrive/SharePoint integration diff --git a/docs/release-notes/13-1-1/README.md b/docs/release-notes/13-1-1/README.md index ac0d344a7e16..39bcea391ddf 100644 --- a/docs/release-notes/13-1-1/README.md +++ b/docs/release-notes/13-1-1/README.md @@ -14,7 +14,7 @@ We released [OpenProject 13.1.1](https://community.openproject.org/versions/1980 The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Inconsistent hrefs in wp shared mail \[[#51480](https://community.openproject.org/wp/51480)\] - Fixed: Slow notification polling \[[#51622](https://community.openproject.org/wp/51622)\] @@ -26,7 +26,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: Time and costs \[[#51700](https://community.openproject.org/wp/51700)\] - Fixed: Pasting into autocompleter does not work initially \[[#51730](https://community.openproject.org/wp/51730)\] -#### Contributions +## 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 diff --git a/docs/release-notes/13-2-0/README.md b/docs/release-notes/13-2-0/README.md index 9cb7974a1578..d1b748b6664c 100644 --- a/docs/release-notes/13-2-0/README.md +++ b/docs/release-notes/13-2-0/README.md @@ -14,11 +14,11 @@ We released [OpenProject 13.2.0](https://community.openproject.org/versions/1979 Among other features, it brings improvements for the **OneDrive/SharePoint integration**, now also allowing **manual project folders**. In addition to that, both OneDrive/SharePoint and Nextcloud integrations were improved by **showing deleted files in OpenProject work packages**. -We also added the option to **filter the project member list**, allowing project administrators to easily filter through the project member lists based on various roles, groups and shares. Instance administrators can now also allow for users to **change work package status without the rights to edit a work package**. +We also added the option to **filter the project member list**, allowing project administrators to easily filter through the project member lists based on various roles, groups and shares. Instance administrators can now also allow for users to **change work package status without the rights to edit a work package**. Furthermore, it is now **possible to set users with whom a work package has been shared as assignee or responsible**. The **quick content menu** in the Gantt view has now offers an additional option to show work package relations. -Finally, **several fields were renamed**: +Finally, **several fields were renamed**: - **Estimated time** is now called Work (calculation of **Work** has also been updated) - **Remaining hours** is now called Remaining work (calculation of **Remaining work** has also been updated) @@ -26,10 +26,9 @@ Finally, **several fields were renamed**: As always, this release contains several bug fixes and we recommend updating to the newest version. - ## Manual project folders for OneDrive/SharePoint storages (Enterprise add-on) -With OpenProject 13.2, manual project folders have become available for OneDrive/SharePoint storage, further improving access to essential project files. +With OpenProject 13.2, manual project folders have become available for OneDrive/SharePoint storage, further improving access to essential project files. When project folders are configured, all project-related files are automatically uploaded and organized within the specified folder. To activate project folders, administrators are required to designate the desired folder as the project folder and manually configure the associated permissions. This feature enhances user convenience and file organization within the OpenProject environment. @@ -39,18 +38,19 @@ See our user guide to learn more about this Enterprise add-on and how to [use th ## Show file links of files that are not available to the user in the cloud storage -In 13.2 we improved the functionality of file storages. Even if a file has been deleted on a file storage, it will still be displayed under the Files tab in OpenProject work packages, allowing users to better keep track of project files. +In 13.2 we improved the functionality of file storages. Even if a file has been deleted on a file storage, it will still be displayed under the Files tab in OpenProject work packages, allowing users to better keep track of project files. ![Deleted file storage file in OpenProject](deleted-file.png) -This new feature is available for [both file storage integrations](../../user-guide/file-management). +This new feature is available for [both file storage integrations](../../user-guide/file-management). ## Filter for roles, groups, and shares in the project members list + With OpenProject 13.2, users can filter the list of project member based on user roles, groups, and shared work packages. This enables project members to promptly identify others with specific roles or individuals outside the project team who have gained access through the newly introduced Sharing feature. ![Project members filter in OpenProject](project-members.png) -Read more about filtering the project members list in our [user guide](../../user-guide/members/#project-members-overview). +Read more about filtering the project members list in our [user guide](../../user-guide/members/#project-members-overview). ## Allow assignee and accountable for shared work packages (Enterprise add-on) @@ -66,24 +66,25 @@ Read more about [roles and permissions for users of OpenProject](../../system-ad ## Quick context menu in Gantt view: Show relations -Quick context menu in the Gantt view now includes "Show relations" option. It displays all existing relations for the selected work package. +Quick context menu in the Gantt view now includes "Show relations" option. It displays all existing relations for the selected work package. -Please note that this option is only available if you have selected a Gantt view (i.e. not a table or cards view). +Please note that this option is only available if you have selected a Gantt view (i.e. not a table or cards view). ![Quick context menu in Gantt charts in OpenProject](gantt-relations.png) Read more about [Gantt charts in OpenProject](../../user-guide/gantt-chart/) ## New field names and calculation of work and remaining work + Several field names were changed in OpenProject 13.2. - Estimated time is now called **Work** -- Remaining hours is now called **Remaining work** +- Remaining hours is now called **Remaining work** - Progress (%) is now called **% Complete** Furthermore, the calculation of **Work** and **Remaining work** has been modified, now featuring a sum value (∑) displayed in the "Work" and "Remaining work" fields. This sum shows the total value of all child elements within the work package, including the work package itself. -Please note that **% Complete** does not adjust automatically when the values of **Work** or **Remaining work** are changed. +Please note that **% Complete** does not adjust automatically when the values of **Work** or **Remaining work** are changed. ## Bug fixes and changes @@ -118,12 +119,12 @@ Please note that **% Complete** does not adjust automatically when the values of -### Contributions +## Contributions A very special thank you goes to our sponsors for features and improvements of this release: - **AMG** - for the advanced filters for project members lists -- **Deutsche Bahn** - for the manual project folders for OneDrive/SharePoint integration +- **Deutsche Bahn** - for the manual project folders for OneDrive/SharePoint integration - **German Federal Ministry of the Interior and Home Affairs (BMI)** - for the improvements to progress reporting A big thanks to Community members for reporting bugs and helping us identifying and providing fixes, especially to Arun M, Patrick Massé and Richard Richter. diff --git a/docs/release-notes/13-2-1/README.md b/docs/release-notes/13-2-1/README.md index 4294b0d75f8a..0afaee581c26 100644 --- a/docs/release-notes/13-2-1/README.md +++ b/docs/release-notes/13-2-1/README.md @@ -48,7 +48,8 @@ The release contains several bug fixes and we recommend updating to the newest v -#### Contributions +## 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 diff --git a/docs/release-notes/13-3-0/README.md b/docs/release-notes/13-3-0/README.md index dcfbdb794101..98a4e817b10a 100644 --- a/docs/release-notes/13-3-0/README.md +++ b/docs/release-notes/13-3-0/README.md @@ -90,7 +90,8 @@ With this release, admins of an Enterprise edition can choose between manually o - Feature: Maintain manually managed project folder on project copy for SharePoint/OneDrive \[[#52363](https://community.openproject.org/wp/52363)\] - Feature: Rename "Managed folder status" heading in Storage form \[[#52456](https://community.openproject.org/wp/52456)\] -### Contributions +## Contributions + A very special thank you goes to our sponsors for features and improvements of this release: - BMI for sponsoring the features on progress reporting and Gantt charts (which will be continued in the following releases) diff --git a/docs/release-notes/13-3-1/README.md b/docs/release-notes/13-3-1/README.md index 58fe5046dc64..5a5b28209e8f 100644 --- a/docs/release-notes/13-3-1/README.md +++ b/docs/release-notes/13-3-1/README.md @@ -36,9 +36,10 @@ The release contains several bug fixes and we recommend updating to the newest v -#### Contributions +## 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 Dennis St. -Thank you to Syvert Fossdal for translating OpenProject into Norwegian. +Thank you to Syvert Fossdal for translating OpenProject into Norwegian. diff --git a/docs/release-notes/13-4-0/README.md b/docs/release-notes/13-4-0/README.md index 358aba1d09ea..2fbeacf1bd64 100644 --- a/docs/release-notes/13-4-0/README.md +++ b/docs/release-notes/13-4-0/README.md @@ -33,14 +33,14 @@ We are delighted about the GitLab integration, which is officially available wit With this integration, you can manage GitLab's units of work (merge requests and issues) from within OpenProject by linking them with work packages. Read more about OpenProject's GitLab integration [in our system admin guide](https://www.openproject.com/docs/system-admin-guide/integrations/gitlab-integration/). -
+
**Already using the user-generated GitLab plugin?** With OpenProject 13.4, the existing plugin will be replaced by the new integration. We recommend removing the plugin module folder and bundler references before upgrading to OpenProject. Your historical dataset will remain unaffected within OpenProject as there were no changes to the data model. Before upgrading, please do the following: 1. Remove traces of the GitLab integration in your **Gemfile.lock** and **Gemfile.modules**. See [btey/openproject-gitlab-integration#configuration](https://github.com/btey/openproject-gitlab-integration?tab=readme-ov-file#configuration). Failure to do so may result in a `Bundler::GemfileError` matching the following error message: _Your Gemfile lists the gem openproject-gitlab_integration (>= 0) more than once._ -2. Remove the module code traces of the GitLab integration by running this command: `rm -rf /path/to/openproject/modules/gitlab_integration` +2. Remove the module code traces of the GitLab integration by running this command: `rm -rf /path/to/openproject/modules/gitlab_integration`
@@ -62,7 +62,7 @@ Another long-awaited improvement: When you copy a dynamic meeting, **existing ag ![Copy a meeting with agenda](openproject-13-4-meetings-copy-agenda-highlighted.png) -And finally, the .ics file now also contains information about the (dynamic) meeting attendees - in addition to other existing information such as PARTSTAT. This now allows you to **confirm or decline invitations to a meeting directly in your calendar software**. +And finally, the .ics file now also contains information about the (dynamic) meeting attendees - in addition to other existing information such as PARTSTAT. This now allows you to **confirm or decline invitations to a meeting directly in your calendar software**.
@@ -161,11 +161,12 @@ A very special thank you goes to our sponsors for features and improvements: Another big thanks goes to our Community members for reporting bugs and helping us identify and provide fixes. Special thanks for reporting and finding bugs go to Andreas H., Diego Liberman, Andreas G, Mario Zeppin, Arved Kampe, and Richard Richter. -We are always thankful for our great [Community](https://www.openproject.org/blog/community-instance/). If you are thinking about contributing to OpenProject yourself, we would like to encourage you to do so! +We are always thankful for our great [Community](https://www.openproject.org/blog/community-instance/). If you are thinking about contributing to OpenProject yourself, we would like to encourage you to do so! ### Translation contributors -An important part is also the translations, for which we thank the following contributors in particular for this release: +An important part is also the translations, for which we thank the following contributors in particular for this release: + - [Syvert Fossdal](https://crowdin.com/profile/syvert), who translated a lot of OpenProject strings into Norwegian - [WilliamfromTW](https://crowdin.com/profile/williamfromtw), who translated to Traditional Chinese - [Tomas S](https://crowdin.com/profile/tomass), who translated to Lithuanian diff --git a/docs/release-notes/13-4-1/README.md b/docs/release-notes/13-4-1/README.md index 8b8c6bf3931e..368543a2397f 100644 --- a/docs/release-notes/13-4-1/README.md +++ b/docs/release-notes/13-4-1/README.md @@ -13,23 +13,16 @@ Release date: 2024-03-26 We released [OpenProject 13.4.1](https://community.openproject.org/versions/2035). The release contains several bug fixes and we recommend updating to the newest version. - - ## Bug fixes and changes - - - - Bugfix: Error 500 on project lists after upgrade to 13.4.0 \[[#53570](https://community.openproject.org/wp/53570)\] - Bugfix: PT-BR translation works as PT-PT \[[#53584](https://community.openproject.org/wp/53584)\] - Bugfix: Work Package Table crashes when grouped by integer and sums are displayed \[[#53609](https://community.openproject.org/wp/53609)\] - Bugfix: SettingSeeder rake aborted! when upgrade from 13.3.0 to 13.4.0 \[[#53611](https://community.openproject.org/wp/53611)\] - Bugfix: Internal error (comparison NilClass with String failed) on query 5000 on community \[[#53617](https://community.openproject.org/wp/53617)\] - - +## Contributions -#### 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 diff --git a/docs/release-notes/14-0-0/README.md b/docs/release-notes/14-0-0/README.md index 279826deb90c..503bd95a139d 100644 --- a/docs/release-notes/14-0-0/README.md +++ b/docs/release-notes/14-0-0/README.md @@ -31,6 +31,7 @@ In version 13.1 we have overhauled our system to handle internal permission chec defined on project or global level, but also on resources like work packages. Therefore, we have introduced new methods to check permissions. The old methods have been marked as deprecated and are now removed in 14.0. Affected methods are: + - `User#allowed_to?` - `User#allowed_to_globally?` - `User#allowed_to_in_project?` @@ -51,7 +52,6 @@ The following variables have been changed: | primary-color-dark | - | Will now be calculated automatically based on the "primary-button-color" | | link-color | accent-color | Is not only used for links, but for all decently highlighted elements (e.g. the selection state in a datepicker).
The (old) value of "primary-color" was use for this. | - If you have developed a plugin or have custom code that uses these variables, you need to update your code to use the new names. The rest of the variables is unchanged. For more information, see [#53309](https://community.openproject.org/work_packages/53309). @@ -73,19 +73,19 @@ The `available_responsibles` endpoint has been removed from the API. This endpoi There are some major changes in terms of progress reporting for work package hierarchies. The calculation of progress (% Complete) in work package hierarchies is now consistent. This leads to the following important changes: -#### % Complete will be an automatically calculated (non-editable) attribute based on Work. +#### % Complete will be an automatically calculated (non-editable) attribute based on Work In Work-based progress reporting, % Complete will be automatically calculated and can therefore no longer be edited manually. This means that for a work package to have a value for % Complete, both Work and Remaining work are required to be set. To make this link clear and transparent, clicking on any of the three values to modify them will display the following pop-over: ![Work-based progress reporting](progress-work-estimates-workMode.jpg) -#### In status-based progress reporting, Remaining work will be automatically calculated. +#### In status-based progress reporting, Remaining work will be automatically calculated In Status-based progress reporting mode, Work is not a required value. However, if Work is set, Remaining work is automatically calculated. To make this link clear and transparent, clicking on any of the three values to modify them will display the following pop-over: ![Status-based progress reporting](progress-work-estimates-statusMode.jpg) -#### Administrators will be able to exclude certain work packages from hierarchy totals of Work, Remaining work and % Complete. +#### Administrators will be able to exclude certain work packages from hierarchy totals of Work, Remaining work and % Complete Admins are able to exclude specific work packages (e.g., those marked as rejected) from the total sum calculations of their parent. In this case, a small info icon will appear next to excluded values: @@ -107,7 +107,7 @@ Project attributes as well as the sections can be managed in administration/proj ### Streamlined view of custom fields in project lists and project overview -Until now, there have been uncertainties with project-specific custom fields from time to time. This is why the tab 'project' has been removed from the custom fields admin settings pages. Instead, project custom fields are now edited within their own admin settings page. Also, the custom fields widget has been removed. +Until now, there have been uncertainties with project-specific custom fields from time to time. This is why the tab 'project' has been removed from the custom fields admin settings pages. Instead, project custom fields are now edited within their own admin settings page. Also, the custom fields widget has been removed. As described above, *project* custom fields are now called 'Project attributes' and can be shown in a sidebar on the project overview page on a per-project configuration. @@ -134,7 +134,7 @@ If you copy a project where a file storage has automatically managed project fol * Deactivate the copy option "File Storages: Project folders" – this will copy the file storage, but not the specific project folder. * Deactivate the copy option "File Storages" – this will not copy any file storage. -### Reminder for admins when revoking a project membership to remove shares on work packages +### Reminder for admins when revoking a project membership to remove shares on work packages As of 14.0, admins are asked whether they also want to remove access to [shared work packages](https://www.openproject.com/docs/user-guide/work-packages/share-work-packages/) when removing a project member or group from a project. @@ -282,7 +282,7 @@ Apart from the features mentioned above, there have been a lot of other changes, -#### Contributions +## Contributions A very special thank you goes to our sponsors for features and improvements of this release: diff --git a/docs/release-notes/3/3-0-0/README.md b/docs/release-notes/3/3-0-0/README.md index 02e1a5d21be9..1b5432e5132e 100644 --- a/docs/release-notes/3/3-0-0/README.md +++ b/docs/release-notes/3/3-0-0/README.md @@ -1,85 +1,82 @@ --- - title: OpenProject 3.0.0 - sidebar_navigation: - title: 3.0.0 - release_version: 3.0.0 - release_date: 2014-03-07 +title: OpenProject 3.0.0 +sidebar_navigation: + title: 3.0.0 +release_version: 3.0.0 +release_date: 2014-03-07 --- # OpenProject 3.0.0 ## New Design - - Use of icon fonts - - New header and side navigation - - Contractible side navigation - - New work package form - - Design customization via Themes +- Use of icon fonts +- New header and side navigation +- Contractible side navigation +- New work package form +- Design customization via Themes ## Major Accessibility Improvements - - Contrast changes supported - - Keyboard focus highlighted by blue box - - Keyboard focus order aligned with process order - - Form elements linked to their labels - - Screen reader support for multiple languages (English, German) +- Contrast changes supported +- Keyboard focus highlighted by blue box +- Keyboard focus order aligned with process order +- Form elements linked to their labels +- Screen reader support for multiple languages (English, German) ## Keyboard Shortcuts for Power Users - - Implementation of keyboard shortcuts for power users - - Shortcuts can be accessed by pressing “?” on the keyboard +- Implementation of keyboard shortcuts for power users +- Shortcuts can be accessed by pressing “?” on the keyboard ## Adaptive Timeline Reports - - Issues and planning elements combined to work packages - - Multi project reports - - Filter by project attributes - - Historic planning comparison - - Support of custom fields - - Autocompletion in filter (select2) - - Support for Internet Explorer 11 added (Internet Explorer 8 no - longer supported) - - Performance improvements +- Issues and planning elements combined to work packages +- Multi project reports +- Filter by project attributes +- Historic planning comparison +- Support of custom fields +- Autocompletion in filter (select2) +- Support for Internet Explorer 11 added (Internet Explorer 8 no + longer supported) +- Performance improvements ## Improved Work Package Functionality - - Auto-completion for work packages - - Quick selection for custom queries - - Responsible added to work package summary - - Responsible can be assigned via context menu and bulk edit - - Easier navigation to work packages through shorter URL +- Auto-completion for work packages +- Quick selection for custom queries +- Responsible added to work package summary +- Responsible can be assigned via context menu and bulk edit +- Easier navigation to work packages through shorter URL ## Add work package queries as menu items to sidebar - - Frequently used work package queries can be added to the side - navigation - - Subsequently, query pages can be renamed or deleted +- Frequently used work package queries can be added to the side navigation +- Subsequently, query pages can be renamed or deleted ## Copy projects based on Templates - - New projects can be created based on existing projects / project - templates - - Select different project settings to be copied (e.g. work packages) +- New projects can be created based on existing projects / project templates +- Select different project settings to be copied (e.g. work packages) ## Improved Project Settings - - Improved member configuration - - Improved and extended type configuration +- Improved member configuration +- Improved and extended type configuration ## Additional Account Security Features - - Random passwords - - Stronger passwords through required characters - - Password expiration - - Ban of former passwords - - Automated user blocking after certain number of failed login - attempts - - Automated logout on inactivity +- Random passwords +- Stronger passwords through required characters +- Password expiration +- Ban of former passwords +- Automated user blocking after certain number of failed login + attempts +- Automated logout on inactivity ## Substantial Number of Bug Fixes Many bugs have been fixed with the release of OpenProject 3.0. - ## Migration to Ruby 2.1 and Rails 3.2 diff --git a/docs/release-notes/3/3-0-1/README.md b/docs/release-notes/3/3-0-1/README.md index 021fd84a8bd1..ab1ff6b0bb1e 100644 --- a/docs/release-notes/3/3-0-1/README.md +++ b/docs/release-notes/3/3-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.1 - sidebar_navigation: - title: 3.0.1 - release_version: 3.0.1 - release_date: 2014-03-21 +title: OpenProject 3.0.1 +sidebar_navigation: + title: 3.0.1 +release_version: 3.0.1 +release_date: 2014-03-21 --- # OpenProject 3.0.1 @@ -14,4 +14,3 @@ Specifically the error in adding a work package process was fixed, as well as the duplication of file content display. [Read more](https://community.openproject.org/versions/296) - diff --git a/docs/release-notes/3/3-0-11/README.md b/docs/release-notes/3/3-0-11/README.md index cde3912336d8..6c0c8c7d9875 100644 --- a/docs/release-notes/3/3-0-11/README.md +++ b/docs/release-notes/3/3-0-11/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.11 - sidebar_navigation: - title: 3.0.11 - release_version: 3.0.11 - release_date: 2014-08-06 +title: OpenProject 3.0.11 +sidebar_navigation: + title: 3.0.11 +release_version: 3.0.11 +release_date: 2014-08-06 --- # OpenProject 3.0.11 @@ -33,7 +33,5 @@ of SVN repositories with OpenProject. The same will be allowed for Git repositories with OpenProject 4.0 ([#3708](https://community.openproject.org/work_packages/3708 "Release OpenProject 4.0 (closed)")). -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [OpenProject 3.0.11 query](https://community.openproject.org/versions/423). - - diff --git a/docs/release-notes/3/3-0-12/README.md b/docs/release-notes/3/3-0-12/README.md index de586f57acf1..6b15e226356b 100644 --- a/docs/release-notes/3/3-0-12/README.md +++ b/docs/release-notes/3/3-0-12/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.12 - sidebar_navigation: - title: 3.0.12 - release_version: 3.0.12 - release_date: 2014-08-26 +title: OpenProject 3.0.12 +sidebar_navigation: + title: 3.0.12 +release_version: 3.0.12 +release_date: 2014-08-26 --- # OpenProject 3.0.12 @@ -31,7 +31,5 @@ included in 3.0.12: has been fixed. Many thanks to [Björn Blissing](https://github.com/bjornblissing) who reported and fixed this error. -For a complete list of changes, pleas refer to the +For a complete list of changes, pleas refer to the [OpenProject 3.0.12 query](https://community.openproject.org/versions/450). - - diff --git a/docs/release-notes/3/3-0-13/README.md b/docs/release-notes/3/3-0-13/README.md index c0d615b29d93..07f0c9f92aa2 100644 --- a/docs/release-notes/3/3-0-13/README.md +++ b/docs/release-notes/3/3-0-13/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.13 - sidebar_navigation: - title: 3.0.13 - release_version: 3.0.13 - release_date: 2014-09-30 +title: OpenProject 3.0.13 +sidebar_navigation: + title: 3.0.13 +release_version: 3.0.13 +release_date: 2014-09-30 --- # OpenProject 3.0.13 @@ -27,7 +27,5 @@ An error preventing to copy projects in OpenProject persists in 3.0.13 ([#15706](https://community.openproject.org/work_packages/15706 "[Copy project] Projects cannot be copied (formerly: Subprojects are not copied correctly and the ... (closed)")), it will be addressed in the next patch release (3.0.14). -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [OpenProject 3.0.13 query](https://community.openproject.org/versions/466). - - diff --git a/docs/release-notes/3/3-0-14/README.md b/docs/release-notes/3/3-0-14/README.md index 57cadb2c9c37..2930ba31b3cc 100644 --- a/docs/release-notes/3/3-0-14/README.md +++ b/docs/release-notes/3/3-0-14/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.14 - sidebar_navigation: - title: 3.0.14 - release_version: 3.0.14 - release_date: 2014-10-28 +title: OpenProject 3.0.14 +sidebar_navigation: + title: 3.0.14 +release_version: 3.0.14 +release_date: 2014-10-28 --- # OpenProject 3.0.14 @@ -21,7 +21,5 @@ displayed twice ([#16169](https://community.openproject.org/work_packages/16169 "Viewing content in repository or attachments shows up twice (closed)")). This has been reported and fixed by [Björn Blissing](https://github.com/bjornblissing). Many thanks! -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [OpenProject 3.0.14 query](https://community.openproject.org/versions/490). - - diff --git a/docs/release-notes/3/3-0-15/README.md b/docs/release-notes/3/3-0-15/README.md index e598a59bb5f6..2d2852b73d23 100644 --- a/docs/release-notes/3/3-0-15/README.md +++ b/docs/release-notes/3/3-0-15/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.15 - sidebar_navigation: - title: 3.0.15 - release_version: 3.0.15 - release_date: 2014-11-05 +title: OpenProject 3.0.15 +sidebar_navigation: + title: 3.0.15 +release_version: 3.0.15 +release_date: 2014-11-05 --- # OpenProject 3.0.15 @@ -18,7 +18,5 @@ Furthermore, a bug which prevented the timelines macro from working properly has been fixed ([#17010](https://community.openproject.org/work_packages/17010 "Timeline controls separate from rest of timeline when timeline embedded in wiki page (closed)")). -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [OpenProject 3.0.15 query](https://community.openproject.org/versions/503). - - diff --git a/docs/release-notes/3/3-0-16/README.md b/docs/release-notes/3/3-0-16/README.md index ac8cd5306918..f31a37bdbbcc 100644 --- a/docs/release-notes/3/3-0-16/README.md +++ b/docs/release-notes/3/3-0-16/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.16 - sidebar_navigation: - title: 3.0.16 - release_version: 3.0.16 - release_date: 2014-11-20 +title: OpenProject 3.0.16 +sidebar_navigation: + title: 3.0.16 +release_version: 3.0.16 +release_date: 2014-11-20 --- # OpenProject 3.0.16 @@ -25,9 +25,7 @@ not applied properly. This has been fixed with OpenProject 3.0.16 A big thanks goes to everyone involved in fixing and reporting those bugs! -For a complete list of changes, please refer to the -[Changelog v3.0.16](https://community.openproject.org/versions/544) -or have a look at +For a complete list of changes, please refer to the +[Changelog v3.0.16](https://community.openproject.org/versions/544) +or have a look at [Github](https://github.com/opf/openproject/tree/v3.0.16). - - diff --git a/docs/release-notes/3/3-0-17/README.md b/docs/release-notes/3/3-0-17/README.md index 1053f27f01bf..d66c972794cb 100644 --- a/docs/release-notes/3/3-0-17/README.md +++ b/docs/release-notes/3/3-0-17/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.17 - sidebar_navigation: - title: 3.0.17 - release_version: 3.0.17 - release_date: 2015-01-07 +title: OpenProject 3.0.17 +sidebar_navigation: + title: 3.0.17 +release_version: 3.0.17 +release_date: 2015-01-07 --- # OpenProject 3.0.17 @@ -23,7 +23,7 @@ Additionally, several gems have been updated Thanks to [marutosi](https://github.com/marutosi) for creating pull requests. -For a complete list of changes, please refer to the -[Changelog v3.0.17](https://community.openproject.org/versions/545) -or take a look at +For a complete list of changes, please refer to the +[Changelog v3.0.17](https://community.openproject.org/versions/545) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v3.0.17). diff --git a/docs/release-notes/3/3-0-3/README.md b/docs/release-notes/3/3-0-3/README.md index 077715105c3f..23c0112ab931 100644 --- a/docs/release-notes/3/3-0-3/README.md +++ b/docs/release-notes/3/3-0-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.3 - sidebar_navigation: - title: 3.0.3 - release_version: 3.0.3 - release_date: 2014-05-07 +title: OpenProject 3.0.3 +sidebar_navigation: + title: 3.0.3 +release_version: 3.0.3 +release_date: 2014-05-07 --- # OpenProject 3.0.3 @@ -23,17 +23,17 @@ involved tricking OpenProject with a faked MIME type when uploading attachments. In conclusion it is strongly recommended to upgrade your 3.0 based -deployments to version 3.0.3 as soon as possible. The +deployments to version 3.0.3 as soon as possible. The [OpenProject 3.0.3 tag](https://github.com/opf/openproject/tree/v3.0.3) and the [`dev`](https://github.com/opf/openproject/tree/dev) branches both include the security fixes. -## Bug Fixes: +## Bug Fixes There was a regression in MRI Ruby 2.1.1 that changed some return values of Ruby’s internal class `Hash` and led to several failing tests. This change is intended for Ruby 2.2 but due to their semantic versioning -scheme shouldn’t have been incorporated in 2.1.1. Check out +scheme shouldn’t have been incorporated in 2.1.1. Check out [this blog post](https://www.ruby-lang.org/en/news/2014/03/10/regression-of-hash-reject-in-ruby-2-1-1/) if you want to know more about it. @@ -53,5 +53,3 @@ if you want to know how to do that exactly. And here is the full changelog [3.0.3](https://community.openproject.org/versions/313) - - diff --git a/docs/release-notes/3/3-0-4/README.md b/docs/release-notes/3/3-0-4/README.md index 5f73a60e6d04..bad439375c55 100644 --- a/docs/release-notes/3/3-0-4/README.md +++ b/docs/release-notes/3/3-0-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 3.0.4 - sidebar_navigation: - title: 3.0.4 - release_version: 3.0.4 - release_date: 2014-06-17 +title: OpenProject 3.0.4 +sidebar_navigation: + title: 3.0.4 +release_version: 3.0.4 +release_date: 2014-06-17 --- # OpenProject 3.0.4 @@ -27,5 +27,5 @@ the installation should work. There is no need to change the `config.ru` file or other configurations anymore. Regardless of whether you are using passenger or any other application server. -For a full list of fixes we made please see the +For a full list of fixes we made please see the [changelog v 3.0.4](https://community.openproject.org/versions/316) diff --git a/docs/release-notes/3/3-0-8/README.md b/docs/release-notes/3/3-0-8/README.md index 093b974c6a94..6b3290bb3b64 100644 --- a/docs/release-notes/3/3-0-8/README.md +++ b/docs/release-notes/3/3-0-8/README.md @@ -1,15 +1,15 @@ --- - title: OpenProject 3.0.8 - sidebar_navigation: - title: 3.0.8 - release_version: 3.0.8 - release_date: 2014-07-04 +title: OpenProject 3.0.8 +sidebar_navigation: + title: 3.0.8 +release_version: 3.0.8 +release_date: 2014-07-04 --- # OpenProject 3.0.8 -The -[3.0.8 bugfix release of OpenProject](https://github.com/opf/openproject/tree/v3.0.8) +The +[3.0.8 bugfix release of OpenProject](https://github.com/opf/openproject/tree/v3.0.8) addresses a variety of bugs from filtering ([#7169](https://community.openproject.org/work_packages/7169 "Filtering for assignee's role returns wrong results (closed)")) to accessibility @@ -18,7 +18,7 @@ and performance limitations when copying projects ([#12299](https://community.openproject.org/work_packages/12299 "App server blocked when copying large project (closed)")). For the later, delayed job is employed to ensure that the app server will still answer while large projects are copied. Please bear in mind -that for this to happen you need to have +that for this to happen you need to have [delayed job running](https://github.com/collectiveidea/delayed_job). For a complete list of changes to OpenProject, please refer to the @@ -38,11 +38,9 @@ doing this is to follow the stable branches for every plugin and OpenProject. We are aware that this change in versioning has some weird side effects. -The most noticeable is the +The most noticeable is the [costs plugin](https://github.com/finnlabs/openproject-costs) falling back from version 5.0.4 to 3.0.8. While this might be confusing, we are convinced that keeping versions in lockstep will convey the intended compatibility much better than every other mechanism. - - diff --git a/docs/release-notes/3/README.md b/docs/release-notes/3/README.md index bda608e72199..fd2f63bfabbb 100644 --- a/docs/release-notes/3/README.md +++ b/docs/release-notes/3/README.md @@ -5,7 +5,7 @@ release_date: 2014-10-08 title: OpenProject Version 3 Release Notes --- -# OpenProject Version 3 Release Notes +# OpenProject Version 3 Release Notes | Version | Release date | |-------------------------------|--------------| diff --git a/docs/release-notes/4/4-0-0/README.md b/docs/release-notes/4/4-0-0/README.md index 7a3f56849f38..71567a444477 100644 --- a/docs/release-notes/4/4-0-0/README.md +++ b/docs/release-notes/4/4-0-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.0 - sidebar_navigation: - title: 4.0.0 - release_version: 4.0.0 - release_date: 2014-11-06 +title: OpenProject 4.0.0 +sidebar_navigation: + title: 4.0.0 +release_version: 4.0.0 +release_date: 2014-11-06 --- # OpenProject 4.0.0 @@ -110,4 +110,4 @@ page. ## Substantial Number of Bug Fixes A large number of bugs have been fixed with the release of OpenProject -4.0. \ No newline at end of file +4.0. diff --git a/docs/release-notes/4/4-0-1/README.md b/docs/release-notes/4/4-0-1/README.md index e09b710268b6..4191d55742d2 100644 --- a/docs/release-notes/4/4-0-1/README.md +++ b/docs/release-notes/4/4-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.1 - sidebar_navigation: - title: 4.0.1 - release_version: 4.0.1 - release_date: 2014-11-05 +title: OpenProject 4.0.1 +sidebar_navigation: + title: 4.0.1 +release_version: 4.0.1 +release_date: 2014-11-05 --- # OpenProject 4.0.1 @@ -17,10 +17,8 @@ We advise anyone to update their OpenProject installation. Packager support for easier installation has been extended to also include RHEL, CentOS and Ubuntu ([#17165](https://community.openproject.org/work_packages/17165 "Packaged based installer for RHEL, CentOS and Ubuntu (closed)")). -Find the current packager version of OpenProject here: +Find the current packager version of OpenProject here: [OpenProject Packager installation](https://packager.io/gh/opf/openproject). -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [OpenProject 4.0.1 query](https://community.openproject.org/versions/530). - - diff --git a/docs/release-notes/4/4-0-10/README.md b/docs/release-notes/4/4-0-10/README.md index 078a877124d6..ed10d37ea0f3 100644 --- a/docs/release-notes/4/4-0-10/README.md +++ b/docs/release-notes/4/4-0-10/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.10 - sidebar_navigation: - title: 4.0.10 - release_version: 4.0.10 - release_date: 2015-04-29 +title: OpenProject 4.0.10 +sidebar_navigation: + title: 4.0.10 +release_version: 4.0.10 +release_date: 2015-04-29 --- # OpenProject 4.0.10 @@ -17,8 +17,7 @@ work package table. This error has been fixed with OpenProject 4.0.10 ([#19809](https://community.openproject.org/work_packages/19809 "#19809")). -For further information on the release, please refer to the -[Changelog v.4.0.10](https://community.openproject.org/versions/704 "Changelog v.4.0.10") +For further information on the release, please refer to the +[Changelog v.4.0.10](https://community.openproject.org/versions/704 "Changelog v.4.0.10") or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.10 "GitHub"). - diff --git a/docs/release-notes/4/4-0-11/README.md b/docs/release-notes/4/4-0-11/README.md index 84c555b4488e..f5a35f79e492 100644 --- a/docs/release-notes/4/4-0-11/README.md +++ b/docs/release-notes/4/4-0-11/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.11 - sidebar_navigation: - title: 4.0.11 - release_version: 4.0.11 - release_date: 2015-06-17 +title: OpenProject 4.0.11 +sidebar_navigation: + title: 4.0.11 +release_version: 4.0.11 +release_date: 2015-06-17 --- # OpenProject 4.0.11 @@ -16,11 +16,7 @@ Ruby-on-Rails](https://weblog.rubyonrails.org/2015/6/16/Rails-3-2-22-4-1-11-and- which is an important part of the software stack used by OpenProject ([#20469](https://community.openproject.org/work_packages/20469)). -For further information on the release, please refer to the +For further information on the release, please refer to the [Changelog v.4.0.11](https://community.openproject.org/versions/732) -or take a look at +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.11). - - - - diff --git a/docs/release-notes/4/4-0-12/README.md b/docs/release-notes/4/4-0-12/README.md index b3e47df16c82..e6f584ebe100 100644 --- a/docs/release-notes/4/4-0-12/README.md +++ b/docs/release-notes/4/4-0-12/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.12 - sidebar_navigation: - title: 4.0.12 - release_version: 4.0.12 - release_date: 2015-07-31 +title: OpenProject 4.0.12 +sidebar_navigation: + title: 4.0.12 +release_version: 4.0.12 +release_date: 2015-07-31 --- # OpenProject 4.0.12 @@ -18,11 +18,7 @@ The following bugs have been fixed: - In addition, a security bug has been fixed which potentially enabled XSS attacks. -For further information on the release, please refer to the -[Changelog v.4.0.12](https://community.openproject.org/versions/756) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.0.12](https://community.openproject.org/versions/756) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.12). - - - - diff --git a/docs/release-notes/4/4-0-2/README.md b/docs/release-notes/4/4-0-2/README.md index dc4c12179dca..1c4f16fe7ca3 100644 --- a/docs/release-notes/4/4-0-2/README.md +++ b/docs/release-notes/4/4-0-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.2 - sidebar_navigation: - title: 4.0.2 - release_version: 4.0.2 - release_date: 2014-11-20 +title: OpenProject 4.0.2 +sidebar_navigation: + title: 4.0.2 +release_version: 4.0.2 +release_date: 2014-11-20 --- # OpenProject 4.0.2 @@ -33,7 +33,7 @@ In addition, several bugs have been fixed: A big thanks to everyone involved in fixing and reporting those bugs! -For a complete list of changes, please refer to the -[Changelog v4.0.2](https://community.openproject.org/versions/532) +For a complete list of changes, please refer to the +[Changelog v4.0.2](https://community.openproject.org/versions/532) or to [Github](https://github.com/opf/openproject/tree/v4.0.2). diff --git a/docs/release-notes/4/4-0-3/README.md b/docs/release-notes/4/4-0-3/README.md index 3e594f4a9517..e3b65ffe29ee 100644 --- a/docs/release-notes/4/4-0-3/README.md +++ b/docs/release-notes/4/4-0-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.3 - sidebar_navigation: - title: 4.0.3 - release_version: 4.0.3 - release_date: 2014-12-11 +title: OpenProject 4.0.3 +sidebar_navigation: + title: 4.0.3 +release_version: 4.0.3 +release_date: 2014-12-11 --- ## OpenProject 4.0.3 @@ -39,7 +39,5 @@ In addition, there has been a small change to the backlogs plugin: ## List of changes -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [Changelog v4.0.3](https://community.openproject.org/versions/543). - - diff --git a/docs/release-notes/4/4-0-4/README.md b/docs/release-notes/4/4-0-4/README.md index 228584af9298..3493ae01a8d7 100644 --- a/docs/release-notes/4/4-0-4/README.md +++ b/docs/release-notes/4/4-0-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.4 - sidebar_navigation: - title: 4.0.4 - release_version: 4.0.4 - release_date: 2014-12-11 +title: OpenProject 4.0.4 +sidebar_navigation: + title: 4.0.4 +release_version: 4.0.4 +release_date: 2014-12-11 --- # OpenProject 4.0.4 @@ -21,6 +21,5 @@ OpenProject 4.0.4. ## List of changes -For a complete list of changes, please refer to the +For a complete list of changes, please refer to the [Changelog v.4.0.4](https://community.openproject.org/versions/559). - diff --git a/docs/release-notes/4/4-0-5/README.md b/docs/release-notes/4/4-0-5/README.md index 015b66a3296d..198a010f7869 100644 --- a/docs/release-notes/4/4-0-5/README.md +++ b/docs/release-notes/4/4-0-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.5 - sidebar_navigation: - title: 4.0.5 - release_version: 4.0.5 - release_date: 2015-01-07 +title: OpenProject 4.0.5 +sidebar_navigation: + title: 4.0.5 +release_version: 4.0.5 +release_date: 2015-01-07 --- # OpenProject 4.0.5 @@ -39,8 +39,7 @@ repository): In the Translations plugin an error was fixed which caused translations in the work package table not to be displayed properly ([#17944](https://community.openproject.org/work_packages/17944 "Missing js files added (closed)")). -For a complete list of changes, please refer to the -[Changelog v4.0.5](https://community.openproject.org/versions/566) +For a complete list of changes, please refer to the +[Changelog v4.0.5](https://community.openproject.org/versions/566) or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.5). - diff --git a/docs/release-notes/4/4-0-6/README.md b/docs/release-notes/4/4-0-6/README.md index 1b8f04f6d9d8..e21c70d10abc 100644 --- a/docs/release-notes/4/4-0-6/README.md +++ b/docs/release-notes/4/4-0-6/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.6 - sidebar_navigation: - title: 4.0.6 - release_version: 4.0.6 - release_date: 2015-01-28 +title: OpenProject 4.0.6 +sidebar_navigation: + title: 4.0.6 +release_version: 4.0.6 +release_date: 2015-01-28 --- # OpenProject 4.0.6 @@ -18,9 +18,7 @@ With OpenProject 4.0.6, a fix has been introduced which addresses this problem ([#8753](https://community.openproject.org/work_packages/8753 "#8753")). -To get an overview of the new version, please refer to the +To get an overview of the new version, please refer to the [Changelog v.4.0.6](https://community.openproject.org/versions/592 "Changelog v4.0.6") or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.6 "GitHub"). - - diff --git a/docs/release-notes/4/4-0-7/README.md b/docs/release-notes/4/4-0-7/README.md index f8cf2e00bf54..3ac7911951e9 100644 --- a/docs/release-notes/4/4-0-7/README.md +++ b/docs/release-notes/4/4-0-7/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.7 - sidebar_navigation: - title: 4.0.7 - release_version: 4.0.7 - release_date: 2015-02-18 +title: OpenProject 4.0.7 +sidebar_navigation: + title: 4.0.7 +release_version: 4.0.7 +release_date: 2015-02-18 --- @@ -37,4 +37,3 @@ To get an overview of the new version, please refer to the [Changelog v.4.0.7](https://community.openproject.org/versions/602 "Changelog v.4.0.7") or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.7 "GitHub"). - diff --git a/docs/release-notes/4/4-0-8/README.md b/docs/release-notes/4/4-0-8/README.md index f29ca5e3926f..3c20d152d7ee 100644 --- a/docs/release-notes/4/4-0-8/README.md +++ b/docs/release-notes/4/4-0-8/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.8 - sidebar_navigation: - title: 4.0.8 - release_version: 4.0.8 - release_date: 2015-02-25 +title: OpenProject 4.0.8 +sidebar_navigation: + title: 4.0.8 +release_version: 4.0.8 +release_date: 2015-02-25 --- # OpenProject 4.0.8 @@ -20,9 +20,7 @@ projects. Since this error significantly reduced the usability, it has been fixed in OpenProject 4.0.8. ([#18889](https://community.openproject.org/work_packages/18889 "#18889")). -To get an overview of the new version, please refer to the +To get an overview of the new version, please refer to the [Changelog v.4.0.8](https://community.openproject.org/versions/615 "Changelog v.4.0.8") or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.8 "GitHub OpenProject 4.0.8"). - - diff --git a/docs/release-notes/4/4-0-9/README.md b/docs/release-notes/4/4-0-9/README.md index ae5aa10197a3..1275db398fd5 100644 --- a/docs/release-notes/4/4-0-9/README.md +++ b/docs/release-notes/4/4-0-9/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.0.9 - sidebar_navigation: - title: 4.0.9 - release_version: 4.0.9 - release_date: 2015-03-25 +title: OpenProject 4.0.9 +sidebar_navigation: + title: 4.0.9 +release_version: 4.0.9 +release_date: 2015-03-25 --- # OpenProject 4.0.9 @@ -15,7 +15,7 @@ installation. For details on the security bug fix, please have a look at the following work package: [#19243](https://community.openproject.org/work_packages/19243 "#19243"). -This error also occurred temporarily on the +This error also occurred temporarily on the [OpenProject demo environments](https://start.openproject.com/ "OpenProject demo environments"). However, login information has not been affected by this error. @@ -26,9 +26,7 @@ error when the notification could not be delivered to one or several of the recipients ([#19263](https://community.openproject.org/work_packages/19263 "#19263")). -For further information on the release, please refer to the -[Changelog v.4.0.9](https://github.com/opf/openproject/releases/tag/v4.0.9 "Changelog version 4.0.9") -or take a look at +For further information on the release, please refer to the +[Changelog v.4.0.9](https://github.com/opf/openproject/releases/tag/v4.0.9 "Changelog version 4.0.9") +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.0.9 "GitHub"). - - diff --git a/docs/release-notes/4/4-1-0/README.md b/docs/release-notes/4/4-1-0/README.md index 87f91e4730f2..b7699fa44972 100644 --- a/docs/release-notes/4/4-1-0/README.md +++ b/docs/release-notes/4/4-1-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.1.0 - sidebar_navigation: - title: 4.1.0 - release_version: 4.1.0 - release_date: 2015-05-21 +title: OpenProject 4.1.0 +sidebar_navigation: + title: 4.1.0 +release_version: 4.1.0 +release_date: 2015-05-21 --- # OpenProject 4.1.0 diff --git a/docs/release-notes/4/4-1-1/README.md b/docs/release-notes/4/4-1-1/README.md index 1537936ba3a9..b9d3916e340d 100644 --- a/docs/release-notes/4/4-1-1/README.md +++ b/docs/release-notes/4/4-1-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.1.1 - sidebar_navigation: - title: 4.1.1 - release_version: 4.1.1 - release_date: 2015-05-26 +title: OpenProject 4.1.1 +sidebar_navigation: + title: 4.1.1 +release_version: 4.1.1 +release_date: 2015-05-26 --- # OpenProject 4.1.1 @@ -20,9 +20,7 @@ Additionally, the width for the column selection screen on the work package page has been increased ([#20095](https://community.openproject.org/work_packages/20095)). -For further information on the release, please refer to the -[Changelog v.4.1.1](https://community.openproject.org/versions/714 "Changelog v.4.0.10") +For further information on the release, please refer to the +[Changelog v.4.1.1](https://community.openproject.org/versions/714 "Changelog v.4.0.10") or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.1.1 "GitHub"). - - diff --git a/docs/release-notes/4/4-1-2/README.md b/docs/release-notes/4/4-1-2/README.md index 0655bac1cb71..e227eb2bc291 100644 --- a/docs/release-notes/4/4-1-2/README.md +++ b/docs/release-notes/4/4-1-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.1.2 - sidebar_navigation: - title: 4.1.2 - release_version: 4.1.2 - release_date: 2015-06-11 +title: OpenProject 4.1.2 +sidebar_navigation: + title: 4.1.2 +release_version: 4.1.2 +release_date: 2015-06-11 --- @@ -32,10 +32,10 @@ We strongly recommend to upgrade to the current version. is working properly again with OpenProject 4.1.2 ([#20316](https://community.openproject.org/work_packages/20316)). - Additional a number of design errors have been fixed - ([#20305](https://community.openproject.org/work_packages/20305), + ([#20305](https://community.openproject.org/work_packages/20305), [#20306](https://community.openproject.org/work_packages/20306), [#20308](https://community.openproject.org/work_packages/20308), - [#20309](https://community.openproject.org/work_packages/20309), + [#20309](https://community.openproject.org/work_packages/20309), [#20317](https://community.openproject.org/work_packages/20317), [#20313](https://community.openproject.org/work_packages/20313)). @@ -60,12 +60,7 @@ have been updated - In OpenProject 4.1.1 it was not possible to delete meetings. This feature has been fixed ([#20149](https://community.openproject.org/work_packages/20149)). - -For further information on the release, please refer to the -[Changelog v.4.1.2](https://community.openproject.org/versions/726) +For further information on the release, please refer to the +[Changelog v.4.1.2](https://community.openproject.org/versions/726) or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.1.2). - - - - diff --git a/docs/release-notes/4/4-1-3/README.md b/docs/release-notes/4/4-1-3/README.md index a47f5ff76187..0c0465f05bb9 100644 --- a/docs/release-notes/4/4-1-3/README.md +++ b/docs/release-notes/4/4-1-3/README.md @@ -1,14 +1,14 @@ --- - title: OpenProject 4.1.3 - sidebar_navigation: - title: 4.1.3 - release_version: 4.1.3 - release_date: 2015-06-17 +title: OpenProject 4.1.3 +sidebar_navigation: + title: 4.1.3 +release_version: 4.1.3 +release_date: 2015-06-17 --- # OpenProject 4.1.3 -OpenProject 4.1.3 contains a +OpenProject 4.1.3 contains a [security fix for Ruby-on-Rails](https://weblog.rubyonrails.org/2015/6/16/Rails-3-2-22-4-1-11-and-4-2-2-have-been-released-and-more/) which is an important part of the software stack used by OpenProject ([#20470](https://community.openproject.org/work_packages/20470)). @@ -28,8 +28,6 @@ Additionally, the styling of the activities section on the details pane has been updated ([#19788](https://community.openproject.org/work_packages/19788)). -For further information on the release, please refer to the -[Changelog v.4.1.3](https://community.openproject.org/versions/733) +For further information on the release, please refer to the +[Changelog v.4.1.3](https://community.openproject.org/versions/733) or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.1.3). - - diff --git a/docs/release-notes/4/4-1-4/README.md b/docs/release-notes/4/4-1-4/README.md index e709cdf5d1fa..4c065c9a436d 100644 --- a/docs/release-notes/4/4-1-4/README.md +++ b/docs/release-notes/4/4-1-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.1.4 - sidebar_navigation: - title: 4.1.4 - release_version: 4.1.4 - release_date: 2015-07-31 +title: OpenProject 4.1.4 +sidebar_navigation: + title: 4.1.4 +release_version: 4.1.4 +release_date: 2015-07-31 --- # OpenProject 4.1.4 @@ -18,7 +18,7 @@ The following bugs have been fixed: - In addition, a security bug has been fixed which potentially enabled XSS attacks. -For further information on the release, please refer to the -[Changelog v.4.1.4](https://community.openproject.org/versions/755) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.1.4](https://community.openproject.org/versions/755) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.1.4). diff --git a/docs/release-notes/4/4-2-0/README.md b/docs/release-notes/4/4-2-0/README.md index 6986d3c1ef94..74f5822f6715 100644 --- a/docs/release-notes/4/4-2-0/README.md +++ b/docs/release-notes/4/4-2-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.0 - sidebar_navigation: - title: 4.2.0 - release_version: 4.2.0 - release_date: 2015-07-07 +title: OpenProject 4.2.0 +sidebar_navigation: + title: 4.2.0 +release_version: 4.2.0 +release_date: 2015-07-07 --- # OpenProject 4.2.0 @@ -49,8 +49,6 @@ administration navigation The option “Spent time” has been renamed “Time sheet” ([#20219](https://community.openproject.org/work_packages/20219)). - - ## Improved design OpenProject 4.2 contains various design improvements to provide a better diff --git a/docs/release-notes/4/4-2-1/README.md b/docs/release-notes/4/4-2-1/README.md index a6559ac53723..91fd20a55b6a 100644 --- a/docs/release-notes/4/4-2-1/README.md +++ b/docs/release-notes/4/4-2-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.1 - sidebar_navigation: - title: 4.2.1 - release_version: 4.2.1 - release_date: 2015-07-10 +title: OpenProject 4.2.1 +sidebar_navigation: + title: 4.2.1 +release_version: 4.2.1 +release_date: 2015-07-10 --- # OpenProject 4.2.1 @@ -20,9 +20,7 @@ Additionally, some other translation related errors have been fixed: - Some translations in the work package context menu broke the layout ([#20835](https://community.openproject.org/work_packages/20835)). -For further information on the release, please refer to the -[Changelog v.4.2.1](https://community.openproject.org/versions/731) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.1](https://community.openproject.org/versions/731) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.1). - - diff --git a/docs/release-notes/4/4-2-2/README.md b/docs/release-notes/4/4-2-2/README.md index 025fbd13ce05..f8ca46026cf5 100644 --- a/docs/release-notes/4/4-2-2/README.md +++ b/docs/release-notes/4/4-2-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.2 - sidebar_navigation: - title: 4.2.2 - release_version: 4.2.2 - release_date: 2015-07-18 +title: OpenProject 4.2.2 +sidebar_navigation: + title: 4.2.2 +release_version: 4.2.2 +release_date: 2015-07-18 --- # OpenProject 4.2.2 @@ -22,8 +22,7 @@ Additionally, some bugs have been fixed: - The last login is no longer visible in the user profile ([#20892](https://community.openproject.org/work_packages/20892)). -For further information on the release, please refer to the -[Changelog v.4.2.2](https://community.openproject.org/versions/729) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.2](https://community.openproject.org/versions/729) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.2). - diff --git a/docs/release-notes/4/4-2-3/README.md b/docs/release-notes/4/4-2-3/README.md index 6ff7ab14e62e..07c86850adad 100644 --- a/docs/release-notes/4/4-2-3/README.md +++ b/docs/release-notes/4/4-2-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.3 - sidebar_navigation: - title: 4.2.3 - release_version: 4.2.3 - release_date: 2015-07-23 +title: OpenProject 4.2.3 +sidebar_navigation: + title: 4.2.3 +release_version: 4.2.3 +release_date: 2015-07-23 --- @@ -37,7 +37,7 @@ been fixed: - PDF Export: A success notification contained a type ([#20996](https://community.openproject.org/work_packages/20996)). -For further information on the release, please refer to the -[Changelog v.4.2.3](https://community.openproject.org/versions/748) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.3](https://community.openproject.org/versions/748) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.3). diff --git a/docs/release-notes/4/4-2-4/README.md b/docs/release-notes/4/4-2-4/README.md index 03a0eeb02c75..092ed5749439 100644 --- a/docs/release-notes/4/4-2-4/README.md +++ b/docs/release-notes/4/4-2-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.4 - sidebar_navigation: - title: 4.2.4 - release_version: 4.2.4 - release_date: 2015-07-30 +title: OpenProject 4.2.4 +sidebar_navigation: + title: 4.2.4 +release_version: 4.2.4 +release_date: 2015-07-30 --- # OpenProject 4.2.4 @@ -19,7 +19,7 @@ The following bug has been fixed: Additionally, new translations have been included (including complete translations for Portuguese, Brazilian). -For further information on the release, please refer to the -[Changelog v.4.2.4](https://community.openproject.org/versions/752) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.4](https://community.openproject.org/versions/752) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.4). diff --git a/docs/release-notes/4/4-2-5/README.md b/docs/release-notes/4/4-2-5/README.md index a2ec6665c5dd..91a37b5f9c9a 100644 --- a/docs/release-notes/4/4-2-5/README.md +++ b/docs/release-notes/4/4-2-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.5 - sidebar_navigation: - title: 4.2.5 - release_version: 4.2.5 - release_date: 2015-08-06 +title: OpenProject 4.2.5 +sidebar_navigation: + title: 4.2.5 +release_version: 4.2.5 +release_date: 2015-08-06 --- # OpenProject 4.2.5 @@ -27,7 +27,7 @@ The following bugs have been fixed: Additionally, new translations have been included (including complete translations for Swedish). -For further information on the release, please refer to the -[Changelog v.4.2.5](https://community.openproject.org/versions/759) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.5](https://community.openproject.org/versions/759) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.5). diff --git a/docs/release-notes/4/4-2-6/README.md b/docs/release-notes/4/4-2-6/README.md index de3b8c056014..7bc3025d533a 100644 --- a/docs/release-notes/4/4-2-6/README.md +++ b/docs/release-notes/4/4-2-6/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.6 - sidebar_navigation: - title: 4.2.6 - release_version: 4.2.6 - release_date: 2015-08-13 +title: OpenProject 4.2.6 +sidebar_navigation: + title: 4.2.6 +release_version: 4.2.6 +release_date: 2015-08-13 --- # OpenProject 4.2.6 @@ -29,7 +29,7 @@ The following bugs have been fixed: Additionally, OpenProject 4.2.6 contains new translations. -For further information on the release, please refer to the -[Changelog v.4.2.6](https://community.openproject.org/versions/762) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.6](https://community.openproject.org/versions/762) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.6). diff --git a/docs/release-notes/4/4-2-7/README.md b/docs/release-notes/4/4-2-7/README.md index 625883ddf019..6c5e5b9ce2fe 100644 --- a/docs/release-notes/4/4-2-7/README.md +++ b/docs/release-notes/4/4-2-7/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.7 - sidebar_navigation: - title: 4.2.7 - release_version: 4.2.7 - release_date: 2015-09-18 +title: OpenProject 4.2.7 +sidebar_navigation: + title: 4.2.7 +release_version: 4.2.7 +release_date: 2015-09-18 --- # OpenProject 4.2.7 @@ -18,7 +18,7 @@ Additionally, a bug was fixed which caused cache settings to be overwritten ([#21536](https://community.openproject.org/projects/openproject/work_packages/21536)). -For further information on the release, please refer to the -[Changelog v.4.2.7](https://community.openproject.org/versions/763) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.7](https://community.openproject.org/versions/763) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.7). diff --git a/docs/release-notes/4/4-2-8/README.md b/docs/release-notes/4/4-2-8/README.md index 3835c6272edd..0073c09a068e 100644 --- a/docs/release-notes/4/4-2-8/README.md +++ b/docs/release-notes/4/4-2-8/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.8 - sidebar_navigation: - title: 4.2.8 - release_version: 4.2.8 - release_date: 2015-09-28 +title: OpenProject 4.2.8 +sidebar_navigation: + title: 4.2.8 +release_version: 4.2.8 +release_date: 2015-09-28 --- # OpenProject 4.2.8 @@ -14,7 +14,7 @@ installing OpenProject via Packager. In addition, new translations have been added. Thanks to everyone who helped to translate and proof read OpenProject! -For further information on the release, please refer to the -[Changelog v.4.2.8](https://community.openproject.org/versions/773) -or take a look at +For further information on the release, please refer to the +[Changelog v.4.2.8](https://community.openproject.org/versions/773) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.8). diff --git a/docs/release-notes/4/4-2-9/README.md b/docs/release-notes/4/4-2-9/README.md index 7eb57bd2c576..cd3424926f65 100644 --- a/docs/release-notes/4/4-2-9/README.md +++ b/docs/release-notes/4/4-2-9/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 4.2.9 - sidebar_navigation: - title: 4.2.9 - release_version: 4.2.9 - release_date: 2015-10-29 +title: OpenProject 4.2.9 +sidebar_navigation: + title: 4.2.9 +release_version: 4.2.9 +release_date: 2015-10-29 --- # OpenProject 4.2.9 @@ -12,10 +12,8 @@ OpenProject 4.2.9 contains the newest translations for the OpenProject core and plugins. Thanks to everyone who helped to translate and proof read OpenProject! -To help translate OpenProject, please take a look at the +To help translate OpenProject, please take a look at the [OpenProject CrowdIn projects](https://crowdin.com/projects/opf). For further information on the release, please take a look at [GitHub](https://github.com/opf/openproject/tree/v4.2.9). - - diff --git a/docs/release-notes/4/README.md b/docs/release-notes/4/README.md index 99f14c9b9593..68fe052a4931 100644 --- a/docs/release-notes/4/README.md +++ b/docs/release-notes/4/README.md @@ -36,4 +36,4 @@ title: OpenProject Version 4 Release Notes | [OpenProject 4.0.3](4-0-3/) | 2014-12-11 | | [OpenProject 4.0.2](4-0-2/) | 2014-11-20 | | [OpenProject 4.0.1](4-0-1/) | 2014-11-05 | -| [OpenProject 4.0.0](4-0-0/) | 2014-11-06 | \ No newline at end of file +| [OpenProject 4.0.0](4-0-0/) | 2014-11-06 | diff --git a/docs/release-notes/5/5-0-0/README.md b/docs/release-notes/5/5-0-0/README.md index 67bb3b18d004..5f24b1e1b2e4 100644 --- a/docs/release-notes/5/5-0-0/README.md +++ b/docs/release-notes/5/5-0-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.0 - sidebar_navigation: - title: 5.0.0 - release_version: 5.0.0 - release_date: 2015-08-21 +title: OpenProject 5.0.0 +sidebar_navigation: + title: 5.0.0 +release_version: 5.0.0 +release_date: 2015-08-21 --- # OpenProject 5.0.0 @@ -18,8 +18,6 @@ work package split screen Attachments can now be more easily added by using the drag and drop area on the work package split screen. - - ## New work package full screen view The existing work package screen has been replaced by a new responsive @@ -35,8 +33,6 @@ In addition, the behavior for watchers has been changed: Email notifications are sent out immediately when adding a watcher to a work package. - - ## Improved work package split screen - It is possible to edit and comment in one step in the work package @@ -48,8 +44,6 @@ package. package split screen ([#15422](https://community.openproject.org/wp/15422)). - - ## New home screen With OpenProject 5.0, the new home screen of OpenProject instances @@ -59,8 +53,6 @@ references have been added. Optionally, a welcome text block with custom notifications can be added. - - ## Aggregated work package activities and email notifications In order to reduce the amount of activity and email notifications on @@ -73,8 +65,6 @@ aggregated activities ([#20694](https://community.openproject.org/wp/20694), [#21035](https://community.openproject.org/wp/21035)). - - ## Enhanced repository management **Important:** When updating your existing OpenProject installation, @@ -95,8 +85,6 @@ information for their projects. Furthermore, it is possible to see the disk space used by the used repositories in order to get a better overview of the data usage. - - ## Invite project members to OpenProject and add to a project in one step With OpenProject 5.0 users can be invited to a project via email without @@ -111,8 +99,6 @@ project settings and has been added to the project side menu. The create user functionality has been simplified, so that only the most important values have to be entered during creation. - - ## Improved project administration page The project page in the administration not only includes the used disk @@ -124,8 +110,6 @@ date, used disk storage). The project list is paginated in order to reduce loading time when there are a lot of projects. - - ## Restructured my account section The My Account page has been restructured and the settings are spread @@ -134,8 +118,6 @@ out across different sections Profile images can be set in my account section (local avatar plugin). - - ## Simplified project and user creation The project and user creation has been simplified and only shows the @@ -148,8 +130,6 @@ custom fields. Attributes shown on user invitation screen are limited to most important attributes. - - ## Deprecated features In order to reduce complexity, some rarely used OpenProject features @@ -237,4 +217,3 @@ OpenProject Packager edition. A large number of bugs have been fixed with the release of OpenProject 5.0. - diff --git a/docs/release-notes/5/5-0-1/README.md b/docs/release-notes/5/5-0-1/README.md index d3ad197d62be..aacdff785483 100644 --- a/docs/release-notes/5/5-0-1/README.md +++ b/docs/release-notes/5/5-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.1 - sidebar_navigation: - title: 5.0.1 - release_version: 5.0.1 - release_date: 2015-11-20 +title: OpenProject 5.0.1 +sidebar_navigation: + title: 5.0.1 +release_version: 5.0.1 +release_date: 2015-11-20 --- # OpenProject 5.0.1 @@ -46,8 +46,6 @@ To help translate OpenProject, please take a look at the [OpenProject CrowdIn projects](https://crowdin.com/projects/opf). For further information on the release, please refer to the -[Changelog v.5.0.1](https://community.openproject.org/versions/774) +[Changelog v.5.0.1](https://community.openproject.org/versions/774) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.1). - - diff --git a/docs/release-notes/5/5-0-10/README.md b/docs/release-notes/5/5-0-10/README.md index 5f91664e8b84..ec8ddffccb86 100644 --- a/docs/release-notes/5/5-0-10/README.md +++ b/docs/release-notes/5/5-0-10/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.10 - sidebar_navigation: - title: 5.0.10 - release_version: 5.0.10 - release_date: 2016-01-22 +title: OpenProject 5.0.10 +sidebar_navigation: + title: 5.0.10 +release_version: 5.0.10 +release_date: 2016-01-22 --- # OpenProject 5.0.10 @@ -41,8 +41,6 @@ In addition the performance when saving a work package has been improved ([#21757](https://community.openproject.org/work_packages/21757)). For further information on the release, please refer to the -[Changelog v.5.0.10](https://community.openproject.org/versions/788) +[Changelog v.5.0.10](https://community.openproject.org/versions/788) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.10). - - diff --git a/docs/release-notes/5/5-0-11/README.md b/docs/release-notes/5/5-0-11/README.md index 776078ecee19..c2769b81f340 100644 --- a/docs/release-notes/5/5-0-11/README.md +++ b/docs/release-notes/5/5-0-11/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.11 - sidebar_navigation: - title: 5.0.11 - release_version: 5.0.11 - release_date: 2016-01-26 +title: OpenProject 5.0.11 +sidebar_navigation: + title: 5.0.11 +release_version: 5.0.11 +release_date: 2016-01-26 --- # OpenProject 5.0.11 @@ -16,8 +16,6 @@ For further information, take a look at the [Rails release notes](https://weblog.rubyonrails.org/2016/1/25/Rails-5-0-0-beta1-1-4-2-5-1-4-1-14-1-3-2-22-1-and-rails-html-sanitizer-1-0-3-have-been-released/). For further information on the release, please refer to the -[Changelog v.5.0.11](https://community.openproject.org/versions/798) +[Changelog v.5.0.11](https://community.openproject.org/versions/798) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.11) - - diff --git a/docs/release-notes/5/5-0-12/README.md b/docs/release-notes/5/5-0-12/README.md index 76e9a4bf4566..a769792ce155 100644 --- a/docs/release-notes/5/5-0-12/README.md +++ b/docs/release-notes/5/5-0-12/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.12 - sidebar_navigation: - title: 5.0.12 - release_version: 5.0.12 - release_date: 2016-02-01 +title: OpenProject 5.0.12 +sidebar_navigation: + title: 5.0.12 +release_version: 5.0.12 +release_date: 2016-02-01 --- @@ -24,10 +24,6 @@ OpenProject 5.0.12 contains several bug fixes: [#20683](https://community.openproject.org/work_packages/20683)). For further information on the release, please refer to the -[Changelog v.5.0.12](https://community.openproject.org/versions/800) +[Changelog v.5.0.12](https://community.openproject.org/versions/800) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.12). - - - - diff --git a/docs/release-notes/5/5-0-13/README.md b/docs/release-notes/5/5-0-13/README.md index 5d6618e6daa9..81524768019d 100644 --- a/docs/release-notes/5/5-0-13/README.md +++ b/docs/release-notes/5/5-0-13/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.13 - sidebar_navigation: - title: 5.0.13 - release_version: 5.0.13 - release_date: 2016-02-01 +title: OpenProject 5.0.13 +sidebar_navigation: + title: 5.0.13 +release_version: 5.0.13 +release_date: 2016-02-01 --- @@ -14,7 +14,3 @@ installation. For further information, please take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.12). - - - - diff --git a/docs/release-notes/5/5-0-14/README.md b/docs/release-notes/5/5-0-14/README.md index 70853eaf1253..b2996222414b 100644 --- a/docs/release-notes/5/5-0-14/README.md +++ b/docs/release-notes/5/5-0-14/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.14 - sidebar_navigation: - title: 5.0.14 - release_version: 5.0.14 - release_date: 2016-02-05 +title: OpenProject 5.0.14 +sidebar_navigation: + title: 5.0.14 +release_version: 5.0.14 +release_date: 2016-02-05 --- # OpenProject 5.0.14 @@ -26,6 +26,6 @@ OpenProject 5.0.14 contains several bug fixes: [#22597](https://community.openproject.org/work_packages/22597)). For further information on the release, please refer to the -[Changelog v.5.0.14](https://community.openproject.org/versions/799) +[Changelog v.5.0.14](https://community.openproject.org/versions/799) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.14). diff --git a/docs/release-notes/5/5-0-15/README.md b/docs/release-notes/5/5-0-15/README.md index 9e90073056ab..ee8acf6b97ee 100644 --- a/docs/release-notes/5/5-0-15/README.md +++ b/docs/release-notes/5/5-0-15/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.15 - sidebar_navigation: - title: 5.0.15 - release_version: 5.0.15 - release_date: 2016-02-16 +title: OpenProject 5.0.15 +sidebar_navigation: + title: 5.0.15 +release_version: 5.0.15 +release_date: 2016-02-16 --- @@ -30,10 +30,6 @@ In addition, the accessibility has been improved [#22005](https://community.openproject.org/work_packages/22005)). For further information on the release, please refer to the -[Changelog v.5.0.15](https://community.openproject.org/versions/783) +[Changelog v.5.0.15](https://community.openproject.org/versions/783) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.15). - - - - diff --git a/docs/release-notes/5/5-0-16/README.md b/docs/release-notes/5/5-0-16/README.md index 83f4c797a743..8b5bb85ccc82 100644 --- a/docs/release-notes/5/5-0-16/README.md +++ b/docs/release-notes/5/5-0-16/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.16 - sidebar_navigation: - title: 5.0.16 - release_version: 5.0.16 - release_date: 2016-03-08 +title: OpenProject 5.0.16 +sidebar_navigation: + title: 5.0.16 +release_version: 5.0.16 +release_date: 2016-03-08 --- # OpenProject 5.0.16 @@ -56,6 +56,6 @@ This is now fully functional again ([#22390](https://community.openproject.org/work_packages/22390)). For further information on the release, please refer to the -[Changelog v.5.0.16](https://community.openproject.org/versions/804) +[Changelog v.5.0.16](https://community.openproject.org/versions/804) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.16). diff --git a/docs/release-notes/5/5-0-17/README.md b/docs/release-notes/5/5-0-17/README.md index cd117b95ca06..0c629bc8e141 100644 --- a/docs/release-notes/5/5-0-17/README.md +++ b/docs/release-notes/5/5-0-17/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.17 - sidebar_navigation: - title: 5.0.17 - release_version: 5.0.17 - release_date: 2016-04-11 +title: OpenProject 5.0.17 +sidebar_navigation: + title: 5.0.17 +release_version: 5.0.17 +release_date: 2016-04-11 --- # OpenProject 5.0.17 @@ -40,9 +40,7 @@ In addition, there are several design and usability improvements: page on small screens ([#22953](https://community.openproject.org/wp/22953)). -For further information on the release, please refer to the -[Changelog v.5.0.17](https://community.openproject.org/versions/805) -or take a look at +For further information on the release, please refer to the +[Changelog v.5.0.17](https://community.openproject.org/versions/805) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.17). - - diff --git a/docs/release-notes/5/5-0-18/README.md b/docs/release-notes/5/5-0-18/README.md index 38598704e95d..1f5b67a7a7a7 100644 --- a/docs/release-notes/5/5-0-18/README.md +++ b/docs/release-notes/5/5-0-18/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.18 - sidebar_navigation: - title: 5.0.18 - release_version: 5.0.18 - release_date: 2016-05-27 +title: OpenProject 5.0.18 +sidebar_navigation: + title: 5.0.18 +release_version: 5.0.18 +release_date: 2016-05-27 --- # OpenProject 5.0.18 @@ -45,7 +45,7 @@ The textbox above a forum does now render textile. It’s therefore possible to e.g. include links or references ([#23180](https://community.openproject.org/wp/23180)). -For further information on the release, please refer to the -[Changelog v.5.0.18](https://community.openproject.org/versions/806) -or take a look at +For further information on the release, please refer to the +[Changelog v.5.0.18](https://community.openproject.org/versions/806) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.18). diff --git a/docs/release-notes/5/5-0-19/README.md b/docs/release-notes/5/5-0-19/README.md index d319b134f9fb..f1c8c3c9d78a 100644 --- a/docs/release-notes/5/5-0-19/README.md +++ b/docs/release-notes/5/5-0-19/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.19 - sidebar_navigation: - title: 5.0.19 - release_version: 5.0.19 - release_date: 2016-06-20 +title: OpenProject 5.0.19 +sidebar_navigation: + title: 5.0.19 +release_version: 5.0.19 +release_date: 2016-06-20 --- # OpenProject 5.0.19 @@ -33,7 +33,7 @@ OpenProject 5.0.19 contains several bug fixes: texts ([#23073](https://community.openproject.org/wp/23073)). -For further information on the release, please refer to the -[Changelog v.5.0.19](https://community.openproject.org/versions/810) -or take a look at +For further information on the release, please refer to the +[Changelog v.5.0.19](https://community.openproject.org/versions/810) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.19). diff --git a/docs/release-notes/5/5-0-2/README.md b/docs/release-notes/5/5-0-2/README.md index deb379a94ee8..2554c7f3b4b0 100644 --- a/docs/release-notes/5/5-0-2/README.md +++ b/docs/release-notes/5/5-0-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.2 - sidebar_navigation: - title: 5.0.2 - release_version: 5.0.2 - release_date: 2015-11-24 +title: OpenProject 5.0.2 +sidebar_navigation: + title: 5.0.2 +release_version: 5.0.2 +release_date: 2015-11-24 --- # OpenProject 5.0.2 @@ -37,6 +37,6 @@ To help translate OpenProject, please take a look at the [OpenProject CrowdIn projects](https://crowdin.com/projects/opf). For further information on the release, please refer to the -[Changelog v.5.0.2](https://community.openproject.org/versions/781) +[Changelog v.5.0.2](https://community.openproject.org/versions/781) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.2). diff --git a/docs/release-notes/5/5-0-20/README.md b/docs/release-notes/5/5-0-20/README.md index 857ce86b5d07..3bdec8bb5925 100644 --- a/docs/release-notes/5/5-0-20/README.md +++ b/docs/release-notes/5/5-0-20/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.20 - sidebar_navigation: - title: 5.0.20 - release_version: 5.0.20 - release_date: 2016-08-16 +title: OpenProject 5.0.20 +sidebar_navigation: + title: 5.0.20 +release_version: 5.0.20 +release_date: 2016-08-16 --- # OpenProject 5.0.20 @@ -19,5 +19,3 @@ We strongly recommend the update to the current version. For further information on the release, please take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.20). - - diff --git a/docs/release-notes/5/5-0-3/README.md b/docs/release-notes/5/5-0-3/README.md index fd737c4e90bf..88b18094dac5 100644 --- a/docs/release-notes/5/5-0-3/README.md +++ b/docs/release-notes/5/5-0-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.3 - sidebar_navigation: - title: 5.0.3 - release_version: 5.0.3 - release_date: 2015-11-24 +title: OpenProject 5.0.3 +sidebar_navigation: + title: 5.0.3 +release_version: 5.0.3 +release_date: 2015-11-24 --- # OpenProject 5.0.3 @@ -15,7 +15,6 @@ OpenProject 5.0.3 contains a bug fix for creating versions: ([#22094](https://community.openproject.org/work_packages/22094)). For further information on the release, please refer to the -[Changelog v.5.0.3](https://community.openproject.org/versions/782) +[Changelog v.5.0.3](https://community.openproject.org/versions/782) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.3). - diff --git a/docs/release-notes/5/5-0-4/README.md b/docs/release-notes/5/5-0-4/README.md index e059b00476a9..8613fd54c113 100644 --- a/docs/release-notes/5/5-0-4/README.md +++ b/docs/release-notes/5/5-0-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.4 - sidebar_navigation: - title: 5.0.4 - release_version: 5.0.4 - release_date: 2015-11-27 +title: OpenProject 5.0.4 +sidebar_navigation: + title: 5.0.4 +release_version: 5.0.4 +release_date: 2015-11-27 --- # OpenProject 5.0.4 @@ -26,7 +26,7 @@ improvements: [#22065](https://community.openproject.org/work_packages/22065), [#22047](https://community.openproject.org/work_packages/22047)). -For further information on the release, please refer to the -[Changelog v.5.0.4](https://community.openproject.org/versions/779) +For further information on the release, please refer to the +[Changelog v.5.0.4](https://community.openproject.org/versions/779) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.4). diff --git a/docs/release-notes/5/5-0-5/README.md b/docs/release-notes/5/5-0-5/README.md index 786239f6da9d..0c607ecd2d51 100644 --- a/docs/release-notes/5/5-0-5/README.md +++ b/docs/release-notes/5/5-0-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.5 - sidebar_navigation: - title: 5.0.5 - release_version: 5.0.5 - release_date: 2015-12-02 +title: OpenProject 5.0.5 +sidebar_navigation: + title: 5.0.5 +release_version: 5.0.5 +release_date: 2015-12-02 --- @@ -38,8 +38,6 @@ To help translate OpenProject, please take a look at the [OpenProject CrowdIn projects](https://crowdin.com/projects/opf). For further information on the release, please refer to the -[Changelog v.5.0.5](https://community.openproject.org/versions/780) +[Changelog v.5.0.5](https://community.openproject.org/versions/780) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.5). - - diff --git a/docs/release-notes/5/5-0-6/README.md b/docs/release-notes/5/5-0-6/README.md index bc7c3d55100c..581b4913466a 100644 --- a/docs/release-notes/5/5-0-6/README.md +++ b/docs/release-notes/5/5-0-6/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.6 - sidebar_navigation: - title: 5.0.6 - release_version: 5.0.6 - release_date: 2015-12-09 +title: OpenProject 5.0.6 +sidebar_navigation: + title: 5.0.6 +release_version: 5.0.6 +release_date: 2015-12-09 --- @@ -41,8 +41,6 @@ Changing a work packages assignee and responsible works significantly faster in projects with a lot of members. For further information on the release, please refer to the -[Changelog v.5.0.6](https://community.openproject.org/versions/784) +[Changelog v.5.0.6](https://community.openproject.org/versions/784) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.6). - - diff --git a/docs/release-notes/5/5-0-7/README.md b/docs/release-notes/5/5-0-7/README.md index a202182bc75b..690342485ad0 100644 --- a/docs/release-notes/5/5-0-7/README.md +++ b/docs/release-notes/5/5-0-7/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.7 - sidebar_navigation: - title: 5.0.7 - release_version: 5.0.7 - release_date: 2015-12-11 +title: OpenProject 5.0.7 +sidebar_navigation: + title: 5.0.7 +release_version: 5.0.7 +release_date: 2015-12-11 --- # OpenProject 5.0.7 @@ -26,8 +26,6 @@ OpenProject 5.0.7 contains several bug fixes: [#22313](https://community.openproject.org/work_packages/22313)). For further information on the release, please refer to the -[Changelog v.5.0.7](https://community.openproject.org/versions/785) +[Changelog v.5.0.7](https://community.openproject.org/versions/785) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.7). - - diff --git a/docs/release-notes/5/5-0-8/README.md b/docs/release-notes/5/5-0-8/README.md index c3ef943e3072..b859f29f51ee 100644 --- a/docs/release-notes/5/5-0-8/README.md +++ b/docs/release-notes/5/5-0-8/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.8 - sidebar_navigation: - title: 5.0.8 - release_version: 5.0.8 - release_date: 2016-01-08 +title: OpenProject 5.0.8 +sidebar_navigation: + title: 5.0.8 +release_version: 5.0.8 +release_date: 2016-01-08 --- # OpenProject 5.0.8 @@ -40,8 +40,6 @@ In addition new icons for the mobile view have been added several accessibility improvements have been implemented. For further information on the release, please refer to the -[Changelog v.5.0.8](https://community.openproject.org/versions/786) +[Changelog v.5.0.8](https://community.openproject.org/versions/786) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.8). - - diff --git a/docs/release-notes/5/5-0-9/README.md b/docs/release-notes/5/5-0-9/README.md index 1d3ef3ee84d2..ced626c508a5 100644 --- a/docs/release-notes/5/5-0-9/README.md +++ b/docs/release-notes/5/5-0-9/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 5.0.9 - sidebar_navigation: - title: 5.0.9 - release_version: 5.0.9 - release_date: 2016-01-13 +title: OpenProject 5.0.9 +sidebar_navigation: + title: 5.0.9 +release_version: 5.0.9 +release_date: 2016-01-13 --- # OpenProject 5.0.9 @@ -26,6 +26,6 @@ OpenProject 5.0.9 contains several bug fixes: [#22397](https://community.openproject.org/work_packages/22397)). For further information on the release, please refer to the -[Changelog v.5.0.9](https://community.openproject.org/versions/789) +[Changelog v.5.0.9](https://community.openproject.org/versions/789) or take a look at [GitHub](https://github.com/opf/openproject/tree/v5.0.9). diff --git a/docs/release-notes/6/6-0-0/README.md b/docs/release-notes/6/6-0-0/README.md index 748d114bc620..39645d35388f 100644 --- a/docs/release-notes/6/6-0-0/README.md +++ b/docs/release-notes/6/6-0-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.0 - sidebar_navigation: - title: 6.0.0 - release_version: 6.0.0 - release_date: 2016-05-27 +title: OpenProject 6.0.0 +sidebar_navigation: + title: 6.0.0 +release_version: 6.0.0 +release_date: 2016-05-27 --- # OpenProject 6.0.0 @@ -17,8 +17,6 @@ OpenProject 6.0 adds the ability to rapidly create a list of work packages (e.g. As a result, you can now easily and swiftly create task table. - - ## Inline edit in work package table With OpenProject 6.0 it is possible to use inline editing to swiftly update work packages (such as tasks, features, milestones) directly from @@ -28,16 +26,12 @@ It is no longer necessary to open a separate split screen view. Note, that all links (except for ID) have been removed from the work package table and form. - - ## Automatic synchronization between work package split screen and work package table The split screen view automatically reflects changes in the work package table. When a work package is created, it is immediately shown in the table. Likewise, the work package table directly displays changes on the split screen. - - ## Configuration of visible work package attributes in OpenProject With OpenProject 6.0 you can configure the attributes shown for each @@ -48,8 +42,6 @@ the start and due date. Users can either completely deactivate or initially hide attributes. (to be shown when clicking on the “Show all” button on work packages). - - ## Extended help menu and onboarding video The help menu in OpenProject has been extended. As a result, it now @@ -59,8 +51,6 @@ information. Additionally, a *First steps* video makes it easier for new users to start working with OpenProject. - - ## Usability improvements Aside from the main features, OpenProject 6.0 includes several smaller @@ -78,8 +68,6 @@ usability improvements: OpenProject 6.0 includes several design improvements. - - ## URL slugs for wiki pages In OpenProject versions prior to 6.0.0., specific characters of wiki @@ -95,12 +83,9 @@ This causes the identifiers of wiki pages with non-ascii characters to be more visually pleasing and easier to link to. When upgrading to 6.0., permalinks for all your pages will be generated automatically. - - -## **Substantial number of bug fixes** +## Substantial number of bug fixes OpenProject 6.0 contains a large number of bugs fixes. For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22type%22,%22status%22,%22subject%22,%22assigned_to%22%5D,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22fixed_version_id%22,%22o%22:%22%253D%22,%22t%22:%22list_optional%22,%22v%22:%22666%22%7D,%7B%22n%22:%22type_id%22,%22o%22:%22%253D%22,%22t%22:%22list_model%22,%22v%22:%221%22%7D,%7B%22n%22:%22subproject_id%22,%22o%22:%22*%22,%22t%22:%22list_subprojects%22%7D%5D,%22pa%22:1,%22pp%22:20%7D). - diff --git a/docs/release-notes/6/6-0-1/README.md b/docs/release-notes/6/6-0-1/README.md index 22f93f535a26..cda6073fcf61 100644 --- a/docs/release-notes/6/6-0-1/README.md +++ b/docs/release-notes/6/6-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.1 - sidebar_navigation: - title: 6.0.1 - release_version: 6.0.1 - release_date: 2016-08-01 +title: OpenProject 6.0.1 +sidebar_navigation: + title: 6.0.1 +release_version: 6.0.1 +release_date: 2016-08-01 --- # OpenProject 6.0.1 @@ -82,10 +82,9 @@ Thanks a lot to Guillaume Ferry and Willy Gardiol for [reporting bugs](../../../development/report-a-bug/). For further information on the release, please refer to the -[Changelog v.6.0.1](https://community.openproject.org/versions/807) +[Changelog v.6.0.1](https://community.openproject.org/versions/807) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.0.1). For a free 30 day trial create your own OpenProject instance on [OpenProject.org](https://openproject.org/). - diff --git a/docs/release-notes/6/6-0-2/README.md b/docs/release-notes/6/6-0-2/README.md index 888abae7873f..5a89cab2f6bb 100644 --- a/docs/release-notes/6/6-0-2/README.md +++ b/docs/release-notes/6/6-0-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.2 - sidebar_navigation: - title: 6.0.2 - release_version: 6.0.2 - release_date: 2016-08-10 +title: OpenProject 6.0.2 +sidebar_navigation: + title: 6.0.2 +release_version: 6.0.2 +release_date: 2016-08-10 --- # OpenProject 6.0.2 @@ -43,10 +43,9 @@ Thanks a lot to the community, in particular Marc Vollmer, for bugs](../../../development/report-a-bug/)! For further information on the release, please refer to the -[Changelog v.6.0.2](https://community.openproject.org/versions/814) +[Changelog v.6.0.2](https://community.openproject.org/versions/814) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.0.2). You can try OpenProject for free. For a free 30 day trial create your OpenProject instance on [OpenProject.org](https://openproject.org/). - diff --git a/docs/release-notes/6/6-0-3/README.md b/docs/release-notes/6/6-0-3/README.md index a92ed032765e..93ea41098fbd 100644 --- a/docs/release-notes/6/6-0-3/README.md +++ b/docs/release-notes/6/6-0-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.3 - sidebar_navigation: - title: 6.0.3 - release_version: 6.0.3 - release_date: 2016-08-16 +title: OpenProject 6.0.3 +sidebar_navigation: + title: 6.0.3 +release_version: 6.0.3 +release_date: 2016-08-16 --- # OpenProject 6.0.3 @@ -39,8 +39,6 @@ Frank Schmid and Marc Vollmer, for [reporting multiple bugs](../../../development/report-a-bug/)! For further information on the release, please refer to the -[Changelog v.6.0.3](https://community.openproject.org/versions/815) +[Changelog v.6.0.3](https://community.openproject.org/versions/815) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.0.3). - - diff --git a/docs/release-notes/6/6-0-4/README.md b/docs/release-notes/6/6-0-4/README.md index afdbd4cad55a..ad4b7ab37d45 100644 --- a/docs/release-notes/6/6-0-4/README.md +++ b/docs/release-notes/6/6-0-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.4 - sidebar_navigation: - title: 6.0.4 - release_version: 6.0.4 - release_date: 2016-08-30 +title: OpenProject 6.0.4 +sidebar_navigation: + title: 6.0.4 +release_version: 6.0.4 +release_date: 2016-08-30 --- # OpenProject 6.0.4 @@ -53,10 +53,9 @@ Thanks a lot to the community, in particular to Marc Vollmer, for bugs](../../../development/report-a-bug/)! For further information on the release, please refer to the -[Changelog v.6.0.4](https://community.openproject.org/versions/816) +[Changelog v.6.0.4](https://community.openproject.org/versions/816) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.0.4). You can try OpenProject for free. For a free 30 day trial create your OpenProject instance on [OpenProject.org](https://openproject.org/). - diff --git a/docs/release-notes/6/6-0-5/README.md b/docs/release-notes/6/6-0-5/README.md index 5237bfe94d9f..ca8a4e627f04 100644 --- a/docs/release-notes/6/6-0-5/README.md +++ b/docs/release-notes/6/6-0-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.0.5 - sidebar_navigation: - title: 6.0.5 - release_version: 6.0.5 - release_date: 2016-10-18 +title: OpenProject 6.0.5 +sidebar_navigation: + title: 6.0.5 +release_version: 6.0.5 +release_date: 2016-10-18 --- # OpenProject 6.0.5 @@ -97,10 +97,9 @@ Berthold for [reporting bugs](../../../development/report-a-bug/)! For further information on the release, please refer to the -[Changelog v.6.0.5](https://community.openproject.org/versions/817) +[Changelog v.6.0.5](https://community.openproject.org/versions/817) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.0.5). You can try OpenProject for free. For a free 30 day trial create your OpenProject instance on [OpenProject.org](https://openproject.org/). - diff --git a/docs/release-notes/6/6-1-0/README.md b/docs/release-notes/6/6-1-0/README.md index b2f34d1c62a0..29e2d90d4a83 100644 --- a/docs/release-notes/6/6-1-0/README.md +++ b/docs/release-notes/6/6-1-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.0 - sidebar_navigation: - title: 6.1.0 - release_version: 6.1.0 - release_date: 2016-11-07 +title: OpenProject 6.1.0 +sidebar_navigation: + title: 6.1.0 +release_version: 6.1.0 +release_date: 2016-11-07 --- # OpenProject 6.1.0 @@ -20,8 +20,6 @@ list ([#22859](https://community.openproject.org/wp/22859)). This provides an easy way to quickly find, remove or edit the permissions of project members in large projects. - - ## Improved work package relations The work package relations tab has been improved: It has a clearer @@ -32,8 +30,6 @@ new relation types Hierarchical relationships are immediately clear through a tree-structure. - - ## Improved performance for work packages The work package table is now loaded more quickly and changes can be made @@ -51,7 +47,7 @@ Meetings can therefore easily added to you calendar. The OpenProject API v3 has been extended by user endpoints. It is now possible to create, read, update and delete user information. In addition, we added the relations API. -For more information take a look at the +For more information take a look at the [API documentation](../../../api/). ## Upgrade to Rails 5.0 @@ -69,5 +65,5 @@ there is enough space. OpenProject 6.1 contains a large number of bugs fixes. -For an extensive overview of bug fixes please refer to the +For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22p%22:%22openproject%22,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22t%22:%22list_optional%22,%22v%22:%22667%22%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22t%22:%22list_model%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22t%22:%22list_subprojects%22%7D%5D,%22pa%22:1,%22pp%22:20%7D). diff --git a/docs/release-notes/6/6-1-1/README.md b/docs/release-notes/6/6-1-1/README.md index c1cc0555b095..64ac37a31ea0 100644 --- a/docs/release-notes/6/6-1-1/README.md +++ b/docs/release-notes/6/6-1-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.1 - sidebar_navigation: - title: 6.1.1 - release_version: 6.1.1 - release_date: 2016-11-29 +title: OpenProject 6.1.1 +sidebar_navigation: + title: 6.1.1 +release_version: 6.1.1 +release_date: 2016-11-29 --- @@ -62,10 +62,9 @@ Hillenbrand, Nicolai Daniel and Christophe Mornet for [reporting bugs](../../../development/report-a-bug/)! For further information on the release, please refer to the -[Changelog v.6.1.1](https://community.openproject.org/versions/821) +[Changelog v.6.1.1](https://community.openproject.org/versions/821) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.1.1). You can try OpenProject for free. For a free 30 day trial create your OpenProject instance on [OpenProject.org](https://openproject.org/). - diff --git a/docs/release-notes/6/6-1-2/README.md b/docs/release-notes/6/6-1-2/README.md index bc6a41a8a751..d5680241e92f 100644 --- a/docs/release-notes/6/6-1-2/README.md +++ b/docs/release-notes/6/6-1-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.2 - sidebar_navigation: - title: 6.1.2 - release_version: 6.1.2 - release_date: 2016-12-21 +title: OpenProject 6.1.2 +sidebar_navigation: + title: 6.1.2 +release_version: 6.1.2 +release_date: 2016-12-21 --- # OpenProject 6.1.2 @@ -34,5 +34,3 @@ fixes [here.](https://community.openproject.org/versions/822) Special thanks to [Dirk Wiesenthal](https://github.com/dwiesent) from [Univention](https://www.univention.de/) for helping us to improve our users api. - - diff --git a/docs/release-notes/6/6-1-3/README.md b/docs/release-notes/6/6-1-3/README.md index bb044b8e5046..5b28d6a2f8d1 100644 --- a/docs/release-notes/6/6-1-3/README.md +++ b/docs/release-notes/6/6-1-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.3 - sidebar_navigation: - title: 6.1.3 - release_version: 6.1.3 - release_date: 2017-01-20 +title: OpenProject 6.1.3 +sidebar_navigation: + title: 6.1.3 +release_version: 6.1.3 +release_date: 2017-01-20 --- # OpenProject 6.1.3 @@ -19,8 +19,6 @@ your OpenProject installation to this version. This error has been fixed. For further information on the release, please refer to the -[Changelog v.6.1.3](https://community.openproject.org/versions/826) +[Changelog v.6.1.3](https://community.openproject.org/versions/826) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.1.3). - - diff --git a/docs/release-notes/6/6-1-4/README.md b/docs/release-notes/6/6-1-4/README.md index 20c79203166d..38d3eb30b3e9 100644 --- a/docs/release-notes/6/6-1-4/README.md +++ b/docs/release-notes/6/6-1-4/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.4 - sidebar_navigation: - title: 6.1.4 - release_version: 6.1.4 - release_date: 2017-01-20 +title: OpenProject 6.1.4 +sidebar_navigation: + title: 6.1.4 +release_version: 6.1.4 +release_date: 2017-01-20 --- @@ -31,8 +31,6 @@ your OpenProject installation to this - Project filter was lost on the second page of the search results page. For further information on the release, please refer to the -[Changelog v.6.1.4](https://community.openproject.org/versions/827) +[Changelog v.6.1.4](https://community.openproject.org/versions/827) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.1.4). - - diff --git a/docs/release-notes/6/6-1-5/README.md b/docs/release-notes/6/6-1-5/README.md index 1f6ca0355baa..7d663d63669e 100644 --- a/docs/release-notes/6/6-1-5/README.md +++ b/docs/release-notes/6/6-1-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 6.1.5 - sidebar_navigation: - title: 6.1.5 - release_version: 6.1.5 - release_date: 2017-03-14 +title: OpenProject 6.1.5 +sidebar_navigation: + title: 6.1.5 +release_version: 6.1.5 +release_date: 2017-03-14 --- # OpenProject 6.1.5 @@ -47,8 +47,6 @@ your OpenProject installation to this version. types. For further information on the release, please refer to the -[Changelog v.6.1.5](https://community.openproject.org/versions/828) +[Changelog v.6.1.5](https://community.openproject.org/versions/828) or take a look at [GitHub](https://github.com/opf/openproject/tree/v6.1.5). - - diff --git a/docs/release-notes/6/6-1-6/README.md b/docs/release-notes/6/6-1-6/README.md index 18e9db8c95c0..6afe01dc5b7f 100644 --- a/docs/release-notes/6/6-1-6/README.md +++ b/docs/release-notes/6/6-1-6/README.md @@ -1,16 +1,16 @@ --- - title: OpenProject 6.1.6 - sidebar_navigation: - title: 6.1.6 - release_version: 6.1.6 - release_date: 2017-03-20 +title: OpenProject 6.1.6 +sidebar_navigation: + title: 6.1.6 +release_version: 6.1.6 +release_date: 2017-03-20 --- # OpenProject 6.1.6 The release contains an important security fix regarding session expiry. -For details on the security fix, take a look at the +For details on the security fix, take a look at the [release news](https://www.openproject.org/blog/openproject-6-1-6-released-security-fix/). We recommend the update to the current version. diff --git a/docs/release-notes/6/README.md b/docs/release-notes/6/README.md index 7e4eb6812132..19a2137dc5e2 100644 --- a/docs/release-notes/6/README.md +++ b/docs/release-notes/6/README.md @@ -21,4 +21,4 @@ title: OpenProject Version 6 Release Notes | [OpenProject 6.0.3](6-0-3/) | 2016-08-16 | | [OpenProject 6.0.2](6-0-2/) | 2016-08-10 | | [OpenProject 6.0.1](6-0-1/) | 2016-08-01 | -| [OpenProject 6.0.0](6-0-0/) | 2016-05-27 | \ No newline at end of file +| [OpenProject 6.0.0](6-0-0/) | 2016-05-27 | diff --git a/docs/release-notes/7/7-0-0/README.md b/docs/release-notes/7/7-0-0/README.md index 2443f8de19ab..6f683fba2575 100644 --- a/docs/release-notes/7/7-0-0/README.md +++ b/docs/release-notes/7/7-0-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.0.0 - sidebar_navigation: - title: 7.0.0 - release_version: 7.0.0 - release_date: 2017-05-18 +title: OpenProject 7.0.0 +sidebar_navigation: + title: 7.0.0 +release_version: 7.0.0 +release_date: 2017-05-18 --- @@ -21,16 +21,12 @@ work package table ([#13785](https://community.openproject.org/wp/13785)). The new timeline is much more interactive and user-friendly than the old timeline. - - ## Display hierarchies in work package table You can display hierarchies on the work package table and collapse and expand them ([#24647](https://community.openproject.org/wp/24647)). - - ## Attribute group configuration for work package types With OpenProject 7.0 you can configure which attributes @@ -40,8 +36,6 @@ are displayed for a work package type You can therefore control which attributes are shown and which are hidden by default. - - ## Filter based on date in work package table The work package table now supports filtering based on fixed dates. This @@ -49,8 +43,6 @@ affects all date attributes (e.g. start / due date, created on / updated on) ([#22585](https://community.openproject.org/projects/telekom/work_packages/22585)). - - ## New header navigation The header navigation in OpenProject is updated and displays the current @@ -58,16 +50,12 @@ project. Additionally, the logo has been centered and existing menus have been reordered ([#24465](https://community.openproject.org/projects/design/work_packages/24465)). - - ## Archive and delete projects from project settings As an administrator you can archive and delete projects right from the project settings ([#24913](https://community.openproject.org/wp/24913)). - - ## Zen-mode on work package page With the zen mode on the work package table, you can maximize the @@ -76,11 +64,9 @@ available screen real estate by hiding the side and top navigation This provides a cleaner and larger user interface to work with. - - ## Multi-select custom fields (Enterprise add-on) -Users of the OpenProject [Enterprise on-premises](https://www.openproject.org/enterprise-edition/) +Users of the OpenProject [Enterprise on-premises](https://www.openproject.org/enterprise-edition/) and [Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options) can create multi-select custom fields ([#24793](https://community.openproject.org/wp/24793)). @@ -88,8 +74,6 @@ custom fields With these custom fields you can select multiple values for work package custom fields at once and also filter based on them. - - ## Logo upload and custom color scheme (Enterprise add-on) Users of the OpenProject Enterprise cloud and Enterprise on-premises edition can upload @@ -99,8 +83,6 @@ Additionally, you can change the colors by using a custom color scheme ([#18099](https://community.openproject.org/projects/gmbh/work_packages/18099), [#24460](https://community.openproject.org/projects/gmbh/work_packages/24460)). - - ## Performance improvements The performance – especially for the work package table – has been improved. Loading and displaying work packages is faster. @@ -116,4 +98,3 @@ OpenProject 7.0 contains a large number of bugs fixes. For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22p%22:%22openproject%22,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22t%22:%22list_optional%22,%22v%22:%22750%22%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22t%22:%22list_model%22,%22v%22:%221%22%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22t%22:%22list_subprojects%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). - diff --git a/docs/release-notes/7/7-0-1/README.md b/docs/release-notes/7/7-0-1/README.md index 03a070fc5a57..cb2e954c334d 100644 --- a/docs/release-notes/7/7-0-1/README.md +++ b/docs/release-notes/7/7-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.0.1 - sidebar_navigation: - title: 7.0.1 - release_version: 7.0.1 - release_date: 2017-06-08 +title: OpenProject 7.0.1 +sidebar_navigation: + title: 7.0.1 +release_version: 7.0.1 +release_date: 2017-06-08 --- @@ -55,8 +55,6 @@ Thanks a lot to the community, in particular to Mike Lewis and Harsha BS for reporting and fixing bugs! For further information on the release, please refer to the [Changelog -v7.0.1](https://community.openproject.org/versions/924) +v7.0.1](https://community.openproject.org/versions/924) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.0.1). - - diff --git a/docs/release-notes/7/7-0-2/README.md b/docs/release-notes/7/7-0-2/README.md index 7cbb7e49c550..a0dc63bee3c8 100644 --- a/docs/release-notes/7/7-0-2/README.md +++ b/docs/release-notes/7/7-0-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.0.2 - sidebar_navigation: - title: 7.0.2 - release_version: 7.0.2 - release_date: 2017-06-12 +title: OpenProject 7.0.2 +sidebar_navigation: + title: 7.0.2 +release_version: 7.0.2 +release_date: 2017-06-12 --- @@ -34,8 +34,6 @@ Thanks a lot to the community, in particular to Peter Spiess-Knafl for reporting bugs! For further information on the release, please refer to the [Changelog -v7.0.2](https://community.openproject.org/versions/837) +v7.0.2](https://community.openproject.org/versions/837) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.0.2). - - diff --git a/docs/release-notes/7/7-0-3/README.md b/docs/release-notes/7/7-0-3/README.md index a8ac4b4b253a..737ef274f3de 100644 --- a/docs/release-notes/7/7-0-3/README.md +++ b/docs/release-notes/7/7-0-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.0.3 - sidebar_navigation: - title: 7.0.3 - release_version: 7.0.3 - release_date: 2017-06-29 +title: OpenProject 7.0.3 +sidebar_navigation: + title: 7.0.3 +release_version: 7.0.3 +release_date: 2017-06-29 --- @@ -44,8 +44,6 @@ Seekurity SAS de C.V, Peter F, Jochen Gehlbach and Ole Odendahl for reporting bugs! For further information on the release, please refer to the [Changelog -v7.0.3](https://community.openproject.org/versions/839) +v7.0.3](https://community.openproject.org/versions/839) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.0.3). - - diff --git a/docs/release-notes/7/7-1-0/README.md b/docs/release-notes/7/7-1-0/README.md index dda762c37d88..d068f4fab299 100644 --- a/docs/release-notes/7/7-1-0/README.md +++ b/docs/release-notes/7/7-1-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.1.0 - sidebar_navigation: - title: 7.1.0 - release_version: 7.1.0 - release_date: 2017-07-04 +title: OpenProject 7.1.0 +sidebar_navigation: + title: 7.1.0 +release_version: 7.1.0 +release_date: 2017-07-04 --- @@ -20,7 +20,7 @@ bug fixes included. - The timeline zoom factor is now saved in queries: When you open a saved timeline query the same zoom level as before is shown ([#25318](https://community.openproject.org/wp/25318)). - - As a user of the [Enterprise cloud edition](https://www.openproject.org/enterprise-edition/#hosting-options) or + - As a user of the [Enterprise cloud edition](https://www.openproject.org/enterprise-edition/#hosting-options) or [Enterprise on-premises edition](https://www.openproject.org/enterprise-edition/), you can now upload a custom favicon which is shown in the browser. You can also set a touch icon which is shown on smartphones (e.g. when @@ -91,8 +91,6 @@ Thanks a lot to the community, in particular to Peter F, Jochen Gehlbach and Ole Odendahl for reporting bugs! For further information on the release, please refer to the [Changelog -v7.1.0](https://community.openproject.org/versions/836) +v7.1.0](https://community.openproject.org/versions/836) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.1.0). - - diff --git a/docs/release-notes/7/7-2-0/README.md b/docs/release-notes/7/7-2-0/README.md index ccf204fb1c27..7e8fddd45fd3 100644 --- a/docs/release-notes/7/7-2-0/README.md +++ b/docs/release-notes/7/7-2-0/README.md @@ -1,12 +1,11 @@ --- - title: OpenProject 7.2.0 - sidebar_navigation: - title: 7.2.0 - release_version: 7.2.0 - release_date: 2017-08-09 +title: OpenProject 7.2.0 +sidebar_navigation: + title: 7.2.0 +release_version: 7.2.0 +release_date: 2017-08-09 --- - # OpenProject 7.2 OpenProject 7.2 includes several improvements: Relations can be @@ -16,53 +15,41 @@ possible to use copy / paste to add screenshots from the clipboard. Users of the OpenProject Enterprise cloud and Enterprise on-premises edition can specify attribute help texts which make working with attributes easier. -### Gantt chart includes weekends, subject and dates +## Gantt chart includes weekends, subject and dates The Gantt chart highlights the weekend (Saturday, Sunday) so users can see when to not schedule phases or milestones. Additionally, the subject is shown in the Gantt chart and start and due date is visible on hover. - - -### Full-width Gantt chart / timeline +## Full-width Gantt chart / timeline By removing columns from the work package table the width of the Gantt chart can be increased. By removing all columns, the Gantt chart expands to almost the entire width of the page. - - -### Add screenshots to work package description and comments with copy / paste +## Add screenshots to work package description and comments with copy / paste You can add screenshots to work packages by copying and pasting them into the description, the comments or custom fields of type long text. - - -### Show only comments on work package activity tab +## Show only comments on work package activity tab When working with long work package activities it can get difficult to see the most important information. You can choose to only show comments on the activity tab to hide all other activity entries. - - -### Relations in the work package table (Enterprise add-on) +## Relations in the work package table (Enterprise add-on) With OpenProject 7.2 you can show relation columns in the work package table. A label shows how many related elements a work package has. By clicking on the label, the related work packages are shown. - - -### Attribute help texts (Enterprise add-on) +## Attribute help texts (Enterprise add-on) Users of the OpenProject Enterprise cloud and Enterprise on-premises edition can specify attribute help texts which show additional information for attributes (e.g. custom fields). - - ## Improved usability and design OpenProject 7.2 includes several usability improvements. @@ -75,6 +62,4 @@ at the label shown next to the *Relations* tab. OpenProject 7.2 contains a large number of bugs fixes. -For an extensive overview of bug fixes please refer to the [following -list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22tzl%22:%22days%22,%22hi%22:true,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22v%22:%5B%22824%22%5D%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). - +For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22tzl%22:%22days%22,%22hi%22:true,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22v%22:%5B%22824%22%5D%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). diff --git a/docs/release-notes/7/7-2-1/README.md b/docs/release-notes/7/7-2-1/README.md index 176d6b119a67..0843d0517d9a 100644 --- a/docs/release-notes/7/7-2-1/README.md +++ b/docs/release-notes/7/7-2-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.2.1 - sidebar_navigation: - title: 7.2.1 - release_version: 7.2.1 - release_date: 2017-08-16 +title: OpenProject 7.2.1 +sidebar_navigation: + title: 7.2.1 +release_version: 7.2.1 +release_date: 2017-08-16 --- # OpenProject 7.2.1 @@ -35,8 +35,6 @@ Thanks a lot to the community, in particular to Mark Brown for reporting bugs! For further information on the release, please refer to the [Changelog -v7.2.1](https://community.openproject.org/versions/843) +v7.2.1](https://community.openproject.org/versions/843) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.2.1). - - diff --git a/docs/release-notes/7/7-2-2/README.md b/docs/release-notes/7/7-2-2/README.md index ac6138dffd4e..83e36a173225 100644 --- a/docs/release-notes/7/7-2-2/README.md +++ b/docs/release-notes/7/7-2-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.2.2 - sidebar_navigation: - title: 7.2.2 - release_version: 7.2.2 - release_date: 2017-09-04 +title: OpenProject 7.2.2 +sidebar_navigation: + title: 7.2.2 +release_version: 7.2.2 +release_date: 2017-09-04 --- # OpenProject 7.2.2 @@ -43,7 +43,7 @@ Hillenbrand, and Marc Vollmer for reporting bugs! For further information on the 7.2.2 release, please refer to the [Changelog -v7.2.2](https://community.openproject.org/versions/846) +v7.2.2](https://community.openproject.org/versions/846) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.2.2). @@ -56,7 +56,3 @@ Installation](https://www.openproject.org/download-and-installation/) page. For more information, please also see ticket \[[#26144](https://community.openproject.org/wp/26144)\] and [this forum post](https://community.openproject.org/topics/8114). - - - - diff --git a/docs/release-notes/7/7-2-3/README.md b/docs/release-notes/7/7-2-3/README.md index 3e3df0dfd416..9799e5c0a90e 100644 --- a/docs/release-notes/7/7-2-3/README.md +++ b/docs/release-notes/7/7-2-3/README.md @@ -1,12 +1,14 @@ --- - title: OpenProject 7.2.3 - sidebar_navigation: - title: 7.2.3 - release_version: 7.2.3 - release_date: 2017-09-04 +title: OpenProject 7.2.3 +sidebar_navigation: + title: 7.2.3 +release_version: 7.2.3 +release_date: 2017-09-04 --- -## Bug: Assigned to filter returns work packages set to assignee’s group. +# OpenProject 7.2.3 + +## Bug: Assigned to filter returns work packages set to assignee’s group When filtering by *Assigned to* with a single user selected, the filter returns work packages assigned to that user. Since OpenProject 7.0, it @@ -24,7 +26,3 @@ If you want to filter for this exact behavior, a new filter named group, and any users within Bug reference: [#26207](https://community.openproject.org/wp/26207) - - - - diff --git a/docs/release-notes/7/7-3-0/README.md b/docs/release-notes/7/7-3-0/README.md index ffbff1cffa87..2c795cba29cc 100644 --- a/docs/release-notes/7/7-3-0/README.md +++ b/docs/release-notes/7/7-3-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.3.0 - sidebar_navigation: - title: 7.3.0 - release_version: 7.3.0 - release_date: 2017-09-29 +title: OpenProject 7.3.0 +sidebar_navigation: + title: 7.3.0 +release_version: 7.3.0 +release_date: 2017-09-29 --- # OpenProject 7.3 @@ -25,8 +25,6 @@ example show the progress (in %) and the assignee directly in the Gantt chart without having to include those attributes as separate work package columns. - - ## Auto zoom in Gantt chart Especially for large projects Gantt charts can become difficult to @@ -35,8 +33,6 @@ adjust the zoom level, we implemented an intelligent zoom button. This allows you to immediately switch to the optimal zoom level to see all work packages without zooming out too much. - - ## Notify users with @notations on work package page While working with work packages, you may want to quickly reference a @@ -47,8 +43,6 @@ clear and personal to directly address the person. This is possible with a description), simply enter an *@* sign, followed by the user’s name. The user then receives an email notification. - - ## Resize work package split screen with drag & drop With OpenProject 7.3 you can resize the work package split screen using @@ -57,8 +51,6 @@ the width of the split screen. OpenProject remembers the new size, so you don’t have to resize the split screen whenever you open a new work package. - - ## Breadcrumb on work package page Work packages are often part of a hierarchy which is not immediately @@ -67,8 +59,6 @@ view. In order to make the hierarchy more transparent, OpenProject 7.3 introduces a breadcrumb for work packages (shown in both the fullscreen and split screen view). - - ## Improved usability and design OpenProject 7.3 includes several usability improvements. @@ -98,5 +88,5 @@ package to another project. OpenProject 7.3 contains a large number of bugs fixes. -For an extensive overview of bug fixes please refer to the +For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22tzl%22:%22days%22,%22hi%22:true,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22v%22:%5B%22841%22%5D%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). diff --git a/docs/release-notes/7/7-3-1/README.md b/docs/release-notes/7/7-3-1/README.md index 5636481bcd45..c541864290b4 100644 --- a/docs/release-notes/7/7-3-1/README.md +++ b/docs/release-notes/7/7-3-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.3.1 - sidebar_navigation: - title: 7.3.1 - release_version: 7.3.1 - release_date: 2017-11-03 +title: OpenProject 7.3.1 +sidebar_navigation: + title: 7.3.1 +release_version: 7.3.1 +release_date: 2017-11-03 --- # OpenProject 7.3.1 @@ -37,8 +37,7 @@ Thanks a lot to the community, in particular to Frank Michler, Ottavio Campana and Rob Guinness for reporting bugs! -For further information on the 7.3.1 release, please refer to the -[Changelog v7.3.1](https://community.openproject.org/versions/851) +For further information on the 7.3.1 release, please refer to the +[Changelog v7.3.1](https://community.openproject.org/versions/851) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.3.1). - diff --git a/docs/release-notes/7/7-3-2/README.md b/docs/release-notes/7/7-3-2/README.md index 41d41be17d16..c0f0662cefb2 100644 --- a/docs/release-notes/7/7-3-2/README.md +++ b/docs/release-notes/7/7-3-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.3.2 - sidebar_navigation: - title: 7.3.2 - release_version: 7.3.2 - release_date: 2017-11-23 +title: OpenProject 7.3.2 +sidebar_navigation: + title: 7.3.2 +release_version: 7.3.2 +release_date: 2017-11-23 --- # OpenProject 7.3.2 @@ -21,6 +21,6 @@ Thanks a lot to the community, in particular to Chris Jornlin and Steve Manning for reporting bugs! For further information on the 7.3.2 release, please refer to -the [Changelog v7.3.2](https://community.openproject.org/versions/852) +the [Changelog v7.3.2](https://community.openproject.org/versions/852) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.3.2). diff --git a/docs/release-notes/7/7-4-0/README.md b/docs/release-notes/7/7-4-0/README.md index c45baeaa044d..47fc84578e85 100644 --- a/docs/release-notes/7/7-4-0/README.md +++ b/docs/release-notes/7/7-4-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.0 - sidebar_navigation: - title: 7.4.0 - release_version: 7.4.0 - release_date: 2017-12-15 +title: OpenProject 7.4.0 +sidebar_navigation: + title: 7.4.0 +release_version: 7.4.0 +release_date: 2017-12-15 --- # OpenProject 7.4 @@ -14,8 +14,8 @@ been combined. Additionally, you can resize the Gantt chart via drag and drop and the work package status is highlighted more prominently. As a user of the -[Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options) or -[Enterprise on-premises](https://www.openproject.org/enterprise-edition/), +[Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options) or +[Enterprise on-premises](https://www.openproject.org/enterprise-edition/), custom fields are shown in the project list. In addition, two factor authentication is available for Enterprise @@ -26,7 +26,7 @@ edition and Enterprise cloud edition users. With OpenProject 7.4 the project list is combined with the project admin list. As a user you can choose to expand or collapse the project description. As a result, you can see all projects in one place. -As a user of the [Enterprise on-premises](https://www.openproject.org/enterprise-edition/) +As a user of the [Enterprise on-premises](https://www.openproject.org/enterprise-edition/) or [Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options), you can also see project custom fields (e.g. project status, project responsible) @@ -35,10 +35,9 @@ fields. This provides a good foundation for project portfolio management. We removed the projects entry from the administration. Administrators can simply navigate to the project list and copy, archive or delete -projects from the list view. For more information take a look at +projects from the list view. For more information take a look at [this blog post](https://www.openproject.org/blog/openproject-7-4-project-list-moves-administration-view-projects-page/). - ## Resize Gantt chart with drag & drop A frequent request we received is the ability to easily resize the Gantt @@ -46,8 +45,6 @@ chart. This is possible with OpenProject 7.4. Simply select the handle on the left side of the Gantt chart drag to increase or decrease the width of the Gantt chart. - - ## Work package status more prominent The status of a work package (e.g. task, phase or milestone) is one of @@ -74,8 +71,6 @@ overview page, from the wiki page or from a meeting. It is even possible to set a default type to allow users to rapidly create e.g. bugs or tasks. - - ## Two factor authentication (Enterprise add-on) Users of the OpenProject Enterprise cloud and Enterprise on-premises edition can activate two @@ -88,7 +83,7 @@ provided. This provides a much higher level of security. ## OpenProject webhooks -OpenProject offers an [extensive API](../../../api/) +OpenProject offers an [extensive API](../../../api/) to synchronize data between OpenProject and third party applications. With OpenProject 7.4, OpenProject also offers a webhook plugin which can @@ -119,6 +114,5 @@ We optimized the mobile view for the work package view. OpenProject 7.4 contains a large number of bugs fixes. -For an extensive overview of bug fixes please refer to the +For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22tzl%22:%22days%22,%22hi%22:true,%22g%22:%22%22,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22v%22:%5B%22845%22%5D%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). - diff --git a/docs/release-notes/7/7-4-1/README.md b/docs/release-notes/7/7-4-1/README.md index e72090bba8e5..f90a004235d0 100644 --- a/docs/release-notes/7/7-4-1/README.md +++ b/docs/release-notes/7/7-4-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.1 - sidebar_navigation: - title: 7.4.1 - release_version: 7.4.1 - release_date: 2018-02-13 +title: OpenProject 7.4.1 +sidebar_navigation: + title: 7.4.1 +release_version: 7.4.1 +release_date: 2018-02-13 --- # OpenProject 7.4.1 @@ -17,8 +17,6 @@ Denial-of-Service attack (CVE-2017-15412) For further information on the 7.4.1 release, please refer to -the [Changelog v7.4.1](https://community.openproject.org/versions/855) +the [Changelog v7.4.1](https://community.openproject.org/versions/855) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.4.1). - - diff --git a/docs/release-notes/7/7-4-2/README.md b/docs/release-notes/7/7-4-2/README.md index f8100c1bf641..315da096d381 100644 --- a/docs/release-notes/7/7-4-2/README.md +++ b/docs/release-notes/7/7-4-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.2 - sidebar_navigation: - title: 7.4.2 - release_version: 7.4.2 - release_date: 2018-03-14 +title: OpenProject 7.4.2 +sidebar_navigation: + title: 7.4.2 +release_version: 7.4.2 +release_date: 2018-03-14 --- # OpenProject 7.4.2 @@ -29,8 +29,6 @@ sorting by name also sorts by their effective date For further information on the 7.4.2 release, please refer to -the [Changelog v7.4.2](https://community.openproject.org/versions/857) +the [Changelog v7.4.2](https://community.openproject.org/versions/857) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.4.2). - - diff --git a/docs/release-notes/7/7-4-3/README.md b/docs/release-notes/7/7-4-3/README.md index 1631b2dc8d69..da7e3719839a 100644 --- a/docs/release-notes/7/7-4-3/README.md +++ b/docs/release-notes/7/7-4-3/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.3 - sidebar_navigation: - title: 7.4.3 - release_version: 7.4.3 - release_date: 2018-04-03 +title: OpenProject 7.4.3 +sidebar_navigation: + title: 7.4.3 +release_version: 7.4.3 +release_date: 2018-04-03 --- # OpenProject 7.4.3 @@ -46,5 +46,5 @@ announcement](https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-4-4-released/) - SMTP authentication *none* can now be configured through the system settings. ([#27284](https://community.openproject.org/wp/27284)) - For further information on the 7.4.3 release, please refer to - the [Changelog v7.4.3](https://community.openproject.org/versions/890) + the [Changelog v7.4.3](https://community.openproject.org/versions/890) or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.4.3). diff --git a/docs/release-notes/7/7-4-4/README.md b/docs/release-notes/7/7-4-4/README.md index 97b8f57cc9a3..60b1a175bd5a 100644 --- a/docs/release-notes/7/7-4-4/README.md +++ b/docs/release-notes/7/7-4-4/README.md @@ -1,59 +1,46 @@ --- - title: OpenProject 7.4.4 - sidebar_navigation: - title: 7.4.4 - release_version: 7.4.4 - release_date: 2018-05-07 +title: OpenProject 7.4.4 +sidebar_navigation: + title: 7.4.4 +release_version: 7.4.4 +release_date: 2018-05-07 --- # OpenProject 7.4.4 -Version 7.4.4 of OpenProject has been released. This release contains the -following bug - fixes: - - - Work package modification for regular users on MySQL-based - instances ([#27237](https://community.openproject.org/wp/27237)) - - Child work packages were not deleted when the parent element is - deleted ([#27280](https://community.openproject.org/wp/27280)) - - The fuzzy project autocompletion has been corrected to provide - better matching when a substring is matched - ([#27447](https://community.openproject.org/wp/27447)) - - The GitHub integration plugin did not properly receive events due to - a naming clash - ([#27448](https://community.openproject.org/wp/27448)) - - Creating new wiki pages from a wiki link (e.g, *\[\[ - Wiki - page \]\] *) now retains the correct title instead of the generated - URL slug ([#27462](https://community.openproject.org/wp/27462)) - - A subsequent search for documents in the global search disabled the - documents search checkbox - ([#27479](https://community.openproject.org/wp/27479)) - - The reset button for RSS tokens generated a new API token instead - ([#27498](https://community.openproject.org/wp/27498)) - - Wiki - start pages - (titled *Wiki*) - could not be renamed back if the name was changed at one point - ([#27576](https://community.openproject.org/wp/27576)) - - - -### Changes - - - Meetings - plugin: The *close* button of the show page now requires a - confirmation before closing - ([#27336](https://community.openproject.org/wp/27336)) - - The restriction to create a time entry with at maximum 1000 hours on - a single work package has been lifted - ([#27457](https://community.openproject.org/wp/27457)) - - - -For more information, please see the [v7.4.4 version in our -community](https://community.openproject.org/versions/924) or take -a look -at [GitHub](https://github.com/opf/openproject/tree/v7.4.4). - - +Version 7.4.4 of OpenProject has been released. This release contains: + +## Bug fixes + +- Work package modification for regular users on MySQL-based + instances ([#27237](https://community.openproject.org/wp/27237)) +- Child work packages were not deleted when the parent element is + deleted ([#27280](https://community.openproject.org/wp/27280)) +- The fuzzy project autocompletion has been corrected to provide + better matching when a substring is matched + ([#27447](https://community.openproject.org/wp/27447)) +- The GitHub integration plugin did not properly receive events due to + a naming clash + ([#27448](https://community.openproject.org/wp/27448)) +- Creating new wiki pages from a wiki link (e.g, *\[\[Wiki page\]\]*) now retains the correct title instead of the + generated URL slug ([#27462](https://community.openproject.org/wp/27462)) +- A subsequent search for documents in the global search disabled the + documents search checkbox + ([#27479](https://community.openproject.org/wp/27479)) +- The reset button for RSS tokens generated a new API token instead + ([#27498](https://community.openproject.org/wp/27498)) +- Wiki start pages (titled *Wiki*) could not be renamed back if the name was changed at one point + ([#27576](https://community.openproject.org/wp/27576)) + +## Changes + +- Meetings + plugin: The *close* button of the show page now requires a + confirmation before closing + ([#27336](https://community.openproject.org/wp/27336)) +- The restriction to create a time entry with at maximum 1000 hours on + a single work package has been lifted + ([#27457](https://community.openproject.org/wp/27457)) + +For more information, please see the [v7.4.4 version in our community](https://community.openproject.org/versions/924) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.4.4). diff --git a/docs/release-notes/7/7-4-5/README.md b/docs/release-notes/7/7-4-5/README.md index 67b007fa0081..4976528666c1 100644 --- a/docs/release-notes/7/7-4-5/README.md +++ b/docs/release-notes/7/7-4-5/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.5 - sidebar_navigation: - title: 7.4.5 - release_version: 7.4.5 - release_date: 2018-05-28 +title: OpenProject 7.4.5 +sidebar_navigation: + title: 7.4.5 +release_version: 7.4.5 +release_date: 2018-05-28 --- # OpenProject 7.4.5 @@ -11,49 +11,46 @@ Version 7.4.5 of OpenProject has been released. The release contains several bug fixes. We recommend the update to the current version. - - Fixed: Cookie *secure* flag was not applied in all cases even when - SSL was enabled - ([#27763](https://community.openproject.org/wp/27763)) - - Fixed: - Calendar widget on - *My page* overlapped the project dropdown - ([#27765](https://community.openproject.org/wp/27765)) - - Fixed: Removed text formatting other than references in commit - messages ([#27769](https://community.openproject.org/wp/27769)) - - Fixed: Flashing of content - on *My account* on initial page load - ([#25795](https://community.openproject.org/wp/25795)) - - Fixed: Chrome where the right column of a two-column work package - layout (on larger screens) was not receiving any clicks - ([#27687](https://community.openproject.org/wp/27687)) - - Fixed: Updating overridden labor and unit costs reset all other - overridden costs to their calculated values - ([#](https://community.openproject.org/wp/27692)[27692](https://community.openproject.org/wp/27692)) - - Fixed: Unable to update parent to previous sibling work package in - shared hierarchy - ([#27746](https://community.openproject.org/wp/27746)) - - Fixed: English language option displayed twice in the administration - ([#27696](https://community.openproject.org/wp/27696), - [#27751](https://community.openproject.org/wp/27751)) - - Improved: Error messages when dependent work package is invalid - (e.g., trying to save child with invalid parent) - - Improved: Parent wiki pages can be selected when creating new wiki - pages through content links - ([#26189](https://community.openproject.org/wp/26189)) - -For more information, please see the [v7.4.5 version in our -community](https://community.openproject.org/versions/990) or take -a look -at [GitHub](https://github.com/opf/openproject/tree/v7.4.5). - -Special thanks go to all OpenProject contributors for [reporting -bugs](../../../development/report-a-bug/) and helping -us to reproduce them. - -### DSGVO consenting feature +## Bug fixes and changes + +- Fixed: Cookie *secure* flag was not applied in all cases even when + SSL was enabled + ([#27763](https://community.openproject.org/wp/27763)) +- Fixed: + Calendar widget on + *My page* overlapped the project dropdown + ([#27765](https://community.openproject.org/wp/27765)) +- Fixed: Removed text formatting other than references in commit + messages ([#27769](https://community.openproject.org/wp/27769)) +- Fixed: Flashing of content + on *My account* on initial page load + ([#25795](https://community.openproject.org/wp/25795)) +- Fixed: Chrome where the right column of a two-column work package + layout (on larger screens) was not receiving any clicks + ([#27687](https://community.openproject.org/wp/27687)) +- Fixed: Updating overridden labor and unit costs reset all other + overridden costs to their calculated values + ([#](https://community.openproject.org/wp/27692)[27692](https://community.openproject.org/wp/27692)) +- Fixed: Unable to update parent to previous sibling work package in + shared hierarchy + ([#27746](https://community.openproject.org/wp/27746)) +- Fixed: English language option displayed twice in the administration + ([#27696](https://community.openproject.org/wp/27696), + [#27751](https://community.openproject.org/wp/27751)) +- Improved: Error messages when dependent work package is invalid + (e.g., trying to save child with invalid parent) +- Improved: Parent wiki pages can be selected when creating new wiki + pages through content links + ([#26189](https://community.openproject.org/wp/26189)) + +For more information, please see the [v7.4.5 version in our community](https://community.openproject.org/versions/990) +or take a look at [GitHub](https://github.com/opf/openproject/tree/v7.4.5). + +Special thanks go to all OpenProject contributors for [reporting bugs](../../../development/report-a-bug/) +and helping us to reproduce them. + +## DSGVO consenting feature Users can now be requested to consent into the privacy and usage policies of your instance. To configure consent, enable the setting in -the global administration under *System administration * \> *Users* - - +the global administration under *System administration* \> *Users* diff --git a/docs/release-notes/7/7-4-6/README.md b/docs/release-notes/7/7-4-6/README.md index 70a8e85862b8..a0d032484d54 100644 --- a/docs/release-notes/7/7-4-6/README.md +++ b/docs/release-notes/7/7-4-6/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.6 - sidebar_navigation: - title: 7.4.6 - release_version: 7.4.6 - release_date: 2018-07-10 +title: OpenProject 7.4.6 +sidebar_navigation: + title: 7.4.6 +release_version: 7.4.6 +release_date: 2018-07-10 --- # OpenProject 7.4.6 @@ -11,30 +11,27 @@ We released OpenProject 7.4.6. The release contains several bug fixes. We recommend the update to the current version. -#### Support for Ubuntu 18.04. +## Support for Ubuntu 18.04 OpenProject 7.4.6 packaged installation introduces support for Ubuntu -18.04. +18.04. ([#27799](https://community.openproject.org/wp/27799)) -#### Bug fixes and changes - - - Fixed: Poor performance when adding several work packages to a large - tree - ([#27878](https://community.openproject.org/wp/27878)) - - Fixed: Saving filter-selected list Custom Field with single value - results in error - ([#27833](https://community.openproject.org/wp/27833)) - - Fixed: Progress calculation for parents in bulk edit was not applied - ([#27975](https://community.openproject.org/wp/27975)) - - Fixed: CSS columns display in Chrome versions 65 to 66 due to - backface-visibility - ([#27823](https://community.openproject.org/wp/27823)) - - Improved: Performance on global activities page - ([#27582](https://community.openproject.org/wp/27582)) - -Special thanks go to all OpenProject contributors for [reporting -bugs](../../../development/report-a-bug/) and helping -us to reproduce them. - - +## Bug fixes and changes + +- Fixed: Poor performance when adding several work packages to a large + tree + ([#27878](https://community.openproject.org/wp/27878)) +- Fixed: Saving filter-selected list Custom Field with single value + results in error + ([#27833](https://community.openproject.org/wp/27833)) +- Fixed: Progress calculation for parents in bulk edit was not applied + ([#27975](https://community.openproject.org/wp/27975)) +- Fixed: CSS columns display in Chrome versions 65 to 66 due to + backface-visibility + ([#27823](https://community.openproject.org/wp/27823)) +- Improved: Performance on global activities page + ([#27582](https://community.openproject.org/wp/27582)) + +Special thanks go to all OpenProject contributors for [reporting bugs](../../../development/report-a-bug/) +and helping us to reproduce them. diff --git a/docs/release-notes/7/7-4-7/README.md b/docs/release-notes/7/7-4-7/README.md index a6f73c695c37..d900ff10e120 100644 --- a/docs/release-notes/7/7-4-7/README.md +++ b/docs/release-notes/7/7-4-7/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 7.4.7 - sidebar_navigation: - title: 7.4.7 - release_version: 7.4.7 - release_date: 2018-07-20 +title: OpenProject 7.4.7 +sidebar_navigation: + title: 7.4.7 +release_version: 7.4.7 +release_date: 2018-07-20 --- # OpenProject 7.4.7 @@ -11,24 +11,23 @@ We released OpenProject 7.4.7. The release contains some minor fixes regarding MessageBird adapter for Two-factor authentication. -#### Work packages PDF export with images +## Work packages PDF export with images Exporting a work package table can now optionally export image attachments of the work package. Additional options are added to the export modal. -#### Bug fixes and changes - - - Fixed: \[2FA\] Device ID not transmitted when resending with - different channel - \[[#28033](https://community.openproject.org/wp/28033)\] - - Fixed: \[2FA\] MessageBird: Originator may not be longer than 11 - characters \[[#28034](https://community.openproject.org/wp/28034)\] - - Fixed: \[2FA\] MessageBird: - work-package-types/#work-package-form-configuration-premium-featureUser - language may be - empty \[[#28035](https://community.openproject.org/wp/28035)\] - - Fixed: \[Styling\] Prevent scrolling body when reaching bottom of - project autocompleter - \[[#28039](https://community.openproject.org/wp/28039)\] +## Bug fixes and changes +- Fixed: \[2FA\] Device ID not transmitted when resending with + different channel + \[[#28033](https://community.openproject.org/wp/28033)\] +- Fixed: \[2FA\] MessageBird: Originator may not be longer than 11 + characters \[[#28034](https://community.openproject.org/wp/28034)\] +- Fixed: \[2FA\] MessageBird: + work-package-types/#work-package-form-configuration-premium-featureUser + language may be + empty \[[#28035](https://community.openproject.org/wp/28035)\] +- Fixed: \[Styling\] Prevent scrolling body when reaching bottom of + project autocompleter + \[[#28039](https://community.openproject.org/wp/28039)\] diff --git a/docs/release-notes/8/8-0-0/README.md b/docs/release-notes/8/8-0-0/README.md index 82f5f3fb61e2..80dd872ab871 100644 --- a/docs/release-notes/8/8-0-0/README.md +++ b/docs/release-notes/8/8-0-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.0.0 - sidebar_navigation: - title: 8.0.0 - release_version: 8.0.0 - release_date: 2018-08-29 +title: OpenProject 8.0.0 +sidebar_navigation: + title: 8.0.0 +release_version: 8.0.0 +release_date: 2018-08-29 --- @@ -40,8 +40,6 @@ around the Markdown format. When migrating to 8.0., your Textile documents will be converted to the new format automatically using pandoc. - - ## New side navigation Navigating within OpenProject is now even easier: The new side @@ -53,8 +51,6 @@ real estate, just hide the entire side navigation. In addition, work package views and wiki pages are now much easier to find and navigate to. - - ## Embedded work package tables With OpenProject 8 you can easily embed work package views and the Gantt @@ -63,8 +59,6 @@ chart in wiki pages This way you can display key project information (such as the current milestone plan) directly in a wiki page or in the project overview page. - - ## Full text search for work package attachments (Enterprise add-on) Looking for a specific document or some text in that document? This is @@ -75,8 +69,6 @@ You can either search by file name of the content of the file from the work package page. This allows you to quickly find all the work packages with certain attachments. - - ## Custom actions (Enterprise add-on) With OpenProject 8 you can model intelligent workflows using custom @@ -88,8 +80,6 @@ a work package with the click of a single button. This gives you a powerful way to easily and quickly update your work packages based on predefined workflows. You save time and avoid errors. - - ## Conditional formatting for work package table (Enterprise add-on) Rows in the work package page page can be highlighted based on the @@ -98,8 +88,6 @@ which tasks are most important or need attention. In addition, the due date can be highlighted so that you see right away which phases, milestones or tasks are due soon or overdue. - - ## Subelement groups for work package types (Enterprise add-on) To quickly add child work packages for an existing work package, you can @@ -108,8 +96,6 @@ small work package table as an attribute group to a work package. You can configure which columns and which types of child work packages are displayed. - - ## Usability improvements OpenProject’s overall usability has been improved. The functionality of @@ -118,13 +104,11 @@ In particular, the work package page configuration has been updated to be usable for embedded tables as well. In addition *Responsible* has been renamed to *Accountable*. - - ## New design With version 8, OpenProject gets a fresh new look: Both the OpenProject -logo and default color theme has been updated. As a user of the -OpenProject Enterprise cloud and Enterprise on-premises edition you can +logo and default color theme has been updated. As a user of the +OpenProject Enterprise cloud and Enterprise on-premises edition you can of course change the default color theme. ## Performance improvements @@ -145,7 +129,7 @@ OpenProject 8.0 contains a large number of bugs fixes. For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22:%5B%22id%22,%22subject%22,%22type%22,%22status%22,%22assignee%22%5D,%22tzl%22:%22days%22,%22hi%22:false,%22g%22:%22%22,%22t%22:%22parent:desc%22,%22f%22:%5B%7B%22n%22:%22version%22,%22o%22:%22%253D%22,%22v%22:%5B%22818%22%5D%7D,%7B%22n%22:%22type%22,%22o%22:%22%253D%22,%22v%22:%5B%221%22%5D%7D,%7B%22n%22:%22subprojectId%22,%22o%22:%22*%22,%22v%22:%5B%5D%7D%5D,%22pa%22:1,%22pp%22:20%7D). -## Upgrading your installation to OpenProject 8.0. +## Upgrading your installation to OpenProject 8.0 If you’re on our hosted environment of OpenProject, you are already running on the latest version of OpenProject 8.0.0. For your local diff --git a/docs/release-notes/8/8-0-1/README.md b/docs/release-notes/8/8-0-1/README.md index 48945d49ac2d..b1060eb939b6 100644 --- a/docs/release-notes/8/8-0-1/README.md +++ b/docs/release-notes/8/8-0-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.0.1 - sidebar_navigation: - title: 8.0.1 - release_version: 8.0.1 - release_date: 2018-09-26 +title: OpenProject 8.0.1 +sidebar_navigation: + title: 8.0.1 +release_version: 8.0.1 +release_date: 2018-09-26 --- @@ -14,7 +14,7 @@ We released The release contains bug fixes from the 8.0 release. We recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Highlighting of timeline missing with highlighting mode none \[[#28564](https://community.openproject.org/wp/28564)\] @@ -47,7 +47,7 @@ updating to the newest version. - Fixed: Login dropdown labels were styled as buttons on hover \[[#28616](https://community.openproject.org/wp/28616)\] - Fixed: Editing work package after submission with - add\_work\_packages permission + add\_work\_packages permission \[[#28580](https://community.openproject.org/wp/28580)\] - Fixed: Fast click on subsequent query elements in the sidebar result in invalid table @@ -65,10 +65,8 @@ updating to the newest version. is invalid when creating new project \[[#28543](https://community.openproject.org/wp/28543)\] -#### Contributions +## Contributions A big thanks to community members for reporting bugs, especially to Marc Vollmer, Frank Schmid, and Nicolas Salguero for their aid in identifying and providing fixes for multiple bug reports. - - diff --git a/docs/release-notes/8/8-0-2/README.md b/docs/release-notes/8/8-0-2/README.md index ee9d09ba74b6..c0a074545f09 100644 --- a/docs/release-notes/8/8-0-2/README.md +++ b/docs/release-notes/8/8-0-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.0.2 - sidebar_navigation: - title: 8.0.2 - release_version: 8.0.2 - release_date: 2018-10-23 +title: OpenProject 8.0.2 +sidebar_navigation: + title: 8.0.2 +release_version: 8.0.2 +release_date: 2018-10-23 --- @@ -14,7 +14,7 @@ We released The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Relations cannot be added when OpenProject is running on relative URL root @@ -41,14 +41,10 @@ newest version. files will receive a forced *attachment* content disposition to ensure the file is not loaded in the browser. - - -#### Contributions +## Contributions Thanks to Github users @storm2513 and @akasparas for providing bugfixes as pull requests [on our GitHub project](https://github.com/opf/openproject). A big thanks to community members for reporting bugs and helping us identifying and providing fixes. - - diff --git a/docs/release-notes/8/8-2-0/README.md b/docs/release-notes/8/8-2-0/README.md index 7817f5148406..b56066fdbe46 100644 --- a/docs/release-notes/8/8-2-0/README.md +++ b/docs/release-notes/8/8-2-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.2.0 - sidebar_navigation: - title: 8.2.0 - release_version: 8.2.0 - release_date: 2018-12-17 +title: OpenProject 8.2.0 +sidebar_navigation: + title: 8.2.0 +release_version: 8.2.0 +release_date: 2018-12-17 --- @@ -69,5 +69,3 @@ fixes. For an overview, please take a look at the [list of bug fixes](https://community.openproject.org/projects/openproject/work_packages?query_props=%7B%22c%22%3A%5B%22id%22%2C%22subject%22%2C%22type%22%2C%22status%22%2C%22assignee%22%2C%22version%22%5D%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22parent%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22status%22%2C%22o%22%3A%22*%22%2C%22v%22%3A%5B%5D%7D%2C%7B%22n%22%3A%22version%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%221253%22%5D%7D%2C%7B%22n%22%3A%22type%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%221%22%5D%7D%2C%7B%22n%22%3A%22subprojectId%22%2C%22o%22%3A%22*%22%2C%22v%22%3A%5B%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A20%7D). - - diff --git a/docs/release-notes/8/8-2-1/README.md b/docs/release-notes/8/8-2-1/README.md index 82742229bdd5..657c6970b312 100644 --- a/docs/release-notes/8/8-2-1/README.md +++ b/docs/release-notes/8/8-2-1/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.2.1 - sidebar_navigation: - title: 8.2.1 - release_version: 8.2.1 - release_date: 2019-02-14 +title: OpenProject 8.2.1 +sidebar_navigation: + title: 8.2.1 +release_version: 8.2.1 +release_date: 2019-02-14 --- @@ -14,9 +14,7 @@ We released The release contains several bug fixes and we recommend updating to the newest version. -#### Bug fixes and changes - - +## Bug fixes and changes - Fixed: Long heading in forum overlaps buttons \[[#28839](https://community.openproject.org/wp/28839)\] @@ -60,11 +58,7 @@ newest version. requested from our release servers to render the badge. This page also provides means to disable this check. - - -#### Contributions +## Contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. - - diff --git a/docs/release-notes/8/8-3-0/README.md b/docs/release-notes/8/8-3-0/README.md index ffee8286f4a1..69d98de4a2b6 100644 --- a/docs/release-notes/8/8-3-0/README.md +++ b/docs/release-notes/8/8-3-0/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.3.0 - sidebar_navigation: - title: 8.3.0 - release_version: 8.3.0 - release_date: 2019-03-07 +title: OpenProject 8.3.0 +sidebar_navigation: + title: 8.3.0 +release_version: 8.3.0 +release_date: 2019-03-07 --- @@ -14,9 +14,7 @@ We released The release contains several bug fixes and we recommend updating to the newest version. -#### Notable changes - - +## Notable changes **Modernized My page grid implementation** @@ -67,96 +65,90 @@ The OpenProject APIv3 can now be authenticated using the OAuth2 standard. To register an OAuth applications, visit the new module under Administration \> OAuth applications. - -#### Bug fixes and changes - - - Feature: OAuth2 authorization flow - \[[#28952](https://community.openproject.org/wp/28952)\] - - Feature: Global Search: Autocompletion on work package subjects - \[[#29218](https://community.openproject.org/wp/29218)\] - - Feature: Auto completion for work package attributes - \[[#29257](https://community.openproject.org/wp/29257)\] - - Feature: Migrate existing my page data - \[[#29357](https://community.openproject.org/wp/29357)\] - - Feature: Global search defaults on work packages and shows a table - as result \[[#29388](https://community.openproject.org/wp/29388)\] - - Feature: Better error reporting for bulk edit - \[[#29561](https://community.openproject.org/wp/29561)\] - - Feature: Automatic calculation of work packages per pagination based - on widget height - \[[#29467](https://community.openproject.org/wp/29467)\] - - Changed: Draw work packages without end date up to the current date - in timeline - \[[#25471](https://community.openproject.org/wp/25471)\] - - Changed: Deactivate option “Use current date as start date for new - work packages” by default - \[[#29468](https://community.openproject.org/wp/29468)\] - - Changed: When sending iCalendar invitation, include email to user - who sends out invitation - \[[#29485](https://community.openproject.org/wp/29485)\] - - Changed: Projects are now being deleted in a background job. - - Fixed: Problems when exporting in unified diff - \[[#26599](https://community.openproject.org/wp/26599)\] - - Fixed: In repository module diff does not escape HTML tags that are - present in the compared code - \[[#26614](https://community.openproject.org/wp/26614)\] - - Fixed: Incompatible browsers warning not shown in IE11 and older FF - \[[#28484](https://community.openproject.org/wp/28484)\] - - Fixed: Table menu in WYSIWYG editor is cut off on smaller screens - \[[#28815](https://community.openproject.org/wp/28815)\] - - Fixed: Upgrading reverts protocol to HTTP - \[[#28954](https://community.openproject.org/wp/28954)\] - - Fixed: Icon texts are not consistently used in tables - \[[#29072](https://community.openproject.org/wp/29072)\] - - Fixed: Blank circles before work package’s type after upgrading to - 8.1 \[[#29082](https://community.openproject.org/wp/29082)\] - - Fixed: Dependencies for fulltext search in work package attachments - not installed with packager installation - \[[#29085](https://community.openproject.org/wp/29085)\] - - Fixed: Sorting doesn’t work with 8.1 when also using Hierarchy - \[[#29122](https://community.openproject.org/wp/29122)\] - - Fixed: Very large custom field is killing web browser - \[[#29136](https://community.openproject.org/wp/29136)\] - - Fixed: Delete projects in delayed job - \[[#29214](https://community.openproject.org/wp/29214)\] - - Fixed: SVN fails to get changesets in subfolders which start at a - revision greater than 1 - \[[#29402](https://community.openproject.org/wp/29402)\] - - Fixed: “Set Parent” not translated in work package view - \[[#29447](https://community.openproject.org/wp/29447)\] - - Fixed: WP content does not close right side gap - \[[#29448](https://community.openproject.org/wp/29448)\] - - Fixed: Redundant type declaration in relations tab - \[[#29460](https://community.openproject.org/wp/29460)\] - - Fixed: Better error handling on attachment max size exceeded - \[[#29461](https://community.openproject.org/wp/29461)\] - - Fixed: Improve structure for news section - \[[#29464](https://community.openproject.org/wp/29464)\] - - Fixed: Editor dropdown is cut off when opened to top - \[[#29482](https://community.openproject.org/wp/29482)\] - - Fixed: Custom fields for groups throw error message when set - \[[#29486](https://community.openproject.org/wp/29486)\] - - Fixed: Column shifts when opening autocompleter - \[[#29492](https://community.openproject.org/wp/29492)\] - - Fixed: Gantt chart not properly aligned when using groups - \[[#29497](https://community.openproject.org/wp/29497)\] - - Fixed: White space between first table row and header - \[[#29521](https://community.openproject.org/wp/29521)\] - - Fixed: Different font sizes on WP page - \[[#29528](https://community.openproject.org/wp/29528)\] - - Fixed: Cannot select category because font is invisible - \[[#29531](https://community.openproject.org/wp/29531)\] - - Fixed: Search bar too long on mobile Safari browser - \[[#29553](https://community.openproject.org/wp/29553)\] - - Fixed: Docker incoming-mails not logged - \[[#29575](https://community.openproject.org/wp/29575)\] - -#### 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 Nicolas Salguero, -Andy Shilton, Ricardo Vigatti, Michael Johannessen, Wojtek Chrobok, Timo -Lösch. - +## Bug fixes and changes + +- Feature: OAuth2 authorization flow + \[[#28952](https://community.openproject.org/wp/28952)\] +- Feature: Global Search: Autocompletion on work package subjects + \[[#29218](https://community.openproject.org/wp/29218)\] +- Feature: Auto completion for work package attributes + \[[#29257](https://community.openproject.org/wp/29257)\] +- Feature: Migrate existing my page data + \[[#29357](https://community.openproject.org/wp/29357)\] +- Feature: Global search defaults on work packages and shows a table + as result \[[#29388](https://community.openproject.org/wp/29388)\] +- Feature: Better error reporting for bulk edit + \[[#29561](https://community.openproject.org/wp/29561)\] +- Feature: Automatic calculation of work packages per pagination based + on widget height + \[[#29467](https://community.openproject.org/wp/29467)\] +- Changed: Draw work packages without end date up to the current date + in timeline + \[[#25471](https://community.openproject.org/wp/25471)\] +- Changed: Deactivate option “Use current date as start date for new + work packages” by default + \[[#29468](https://community.openproject.org/wp/29468)\] +- Changed: When sending iCalendar invitation, include email to user + who sends out invitation + \[[#29485](https://community.openproject.org/wp/29485)\] +- Changed: Projects are now being deleted in a background job. +- Fixed: Problems when exporting in unified diff + \[[#26599](https://community.openproject.org/wp/26599)\] +- Fixed: In repository module diff does not escape HTML tags that are + present in the compared code + \[[#26614](https://community.openproject.org/wp/26614)\] +- Fixed: Incompatible browsers warning not shown in IE11 and older FF + \[[#28484](https://community.openproject.org/wp/28484)\] +- Fixed: Table menu in WYSIWYG editor is cut off on smaller screens + \[[#28815](https://community.openproject.org/wp/28815)\] +- Fixed: Upgrading reverts protocol to HTTP + \[[#28954](https://community.openproject.org/wp/28954)\] +- Fixed: Icon texts are not consistently used in tables + \[[#29072](https://community.openproject.org/wp/29072)\] +- Fixed: Blank circles before work package’s type after upgrading to + 8.1 \[[#29082](https://community.openproject.org/wp/29082)\] +- Fixed: Dependencies for fulltext search in work package attachments + not installed with packager installation + \[[#29085](https://community.openproject.org/wp/29085)\] +- Fixed: Sorting doesn’t work with 8.1 when also using Hierarchy + \[[#29122](https://community.openproject.org/wp/29122)\] +- Fixed: Very large custom field is killing web browser + \[[#29136](https://community.openproject.org/wp/29136)\] +- Fixed: Delete projects in delayed job + \[[#29214](https://community.openproject.org/wp/29214)\] +- Fixed: SVN fails to get changesets in subfolders which start at a + revision greater than 1 + \[[#29402](https://community.openproject.org/wp/29402)\] +- Fixed: “Set Parent” not translated in work package view + \[[#29447](https://community.openproject.org/wp/29447)\] +- Fixed: WP content does not close right side gap + \[[#29448](https://community.openproject.org/wp/29448)\] +- Fixed: Redundant type declaration in relations tab + \[[#29460](https://community.openproject.org/wp/29460)\] +- Fixed: Better error handling on attachment max size exceeded + \[[#29461](https://community.openproject.org/wp/29461)\] +- Fixed: Improve structure for news section + \[[#29464](https://community.openproject.org/wp/29464)\] +- Fixed: Editor dropdown is cut off when opened to top + \[[#29482](https://community.openproject.org/wp/29482)\] +- Fixed: Custom fields for groups throw error message when set + \[[#29486](https://community.openproject.org/wp/29486)\] +- Fixed: Column shifts when opening autocompleter + \[[#29492](https://community.openproject.org/wp/29492)\] +- Fixed: Gantt chart not properly aligned when using groups + \[[#29497](https://community.openproject.org/wp/29497)\] +- Fixed: White space between first table row and header + \[[#29521](https://community.openproject.org/wp/29521)\] +- Fixed: Different font sizes on WP page + \[[#29528](https://community.openproject.org/wp/29528)\] +- Fixed: Cannot select category because font is invisible + \[[#29531](https://community.openproject.org/wp/29531)\] +- Fixed: Search bar too long on mobile Safari browser + \[[#29553](https://community.openproject.org/wp/29553)\] +- Fixed: Docker incoming-mails not logged + \[[#29575](https://community.openproject.org/wp/29575)\] + +## 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 Nicolas Salguero, Andy Shilton, Ricardo Vigatti, Michael Johannessen, Wojtek Chrobok, Timo Lösch. diff --git a/docs/release-notes/8/8-3-1/README.md b/docs/release-notes/8/8-3-1/README.md index d320236cae92..1b7cd9642f1f 100644 --- a/docs/release-notes/8/8-3-1/README.md +++ b/docs/release-notes/8/8-3-1/README.md @@ -1,57 +1,49 @@ --- - title: OpenProject 8.3.1 - sidebar_navigation: - title: 8.3.1 - release_version: 8.3.1 - release_date: 2019-03-15 +title: OpenProject 8.3.1 +sidebar_navigation: + title: 8.3.1 +release_version: 8.3.1 +release_date: 2019-03-15 --- - # OpenProject 8.3.1 -We released -[OpenProject 8.3.1](https://community.openproject.org/versions/1355). +We released [OpenProject 8.3.1](https://community.openproject.org/versions/1355). The release contains several bug and security related fixes and we urge updating to the newest version. -#### Rails security fixes - -This upgrade include Rails 5.2.2.1 with fixes for [CVE-2019-5418, -CVE-2019-5419 -and CVE-2019-5420](https://weblog.rubyonrails.org/2019/3/13/Rails-4-2-5-1-5-1-6-2-have-been-released/). - -#### Bug fixes and changes - - - Fixed: Long Work Package titles not wrapped in - Cost Reports - \[[#28766](https://community.openproject.org/wp/28766)\] - - Fixed: Cannot sort by custom field of type “Float” if named - “Position” - \[[#29655](https://community.openproject.org/wp/29655)\] - - Fixed: WorkPackage search results load results thrice and are slow - because of it - \[[#29715](https://community.openproject.org/wp/29715)\] - - Fixed: Internal error when accessing budget detail view - \[[#29718](https://community.openproject.org/wp/29718)\] - - Fixed: Search page loads slowly initially - \[[#29719](https://community.openproject.org/wp/29719)\] - - Fixed: Manually set admin flag being unset by SAML authentication - \[[#29720](https://community.openproject.org/wp/29720)\] - - Fixed: Gantt Zoom buttons are inverted - \[[#29721](https://community.openproject.org/wp/29721)\] - - Fixed: Attachments deleted on work package update via email - \[[#29722](https://community.openproject.org/wp/29722)\] - - Changed: Allow instances to define a legal notice link to be - rendered \[[#29697](https://community.openproject.org/wp/29697)\] - - Changed: Make Gravatar default image configurable again - \[[#29711](https://community.openproject.org/wp/29711)\] - -#### 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 Michael Johannessen, -Marc Vollmer, Klaus-Jürgen Weghorn, Ole Odendahl - - +## Rails security fixes + +This upgrade include Rails 5.2.2.1 with fixes for +[CVE-2019-5418, CVE-2019-5419 and CVE-2019-5420](https://weblog.rubyonrails.org/2019/3/13/Rails-4-2-5-1-5-1-6-2-have-been-released/). + +## Bug fixes and changes + +- Fixed: Long Work Package titles not wrapped in + Cost Reports + \[[#28766](https://community.openproject.org/wp/28766)\] +- Fixed: Cannot sort by custom field of type “Float” if named + “Position” + \[[#29655](https://community.openproject.org/wp/29655)\] +- Fixed: WorkPackage search results load results thrice and are slow + because of it + \[[#29715](https://community.openproject.org/wp/29715)\] +- Fixed: Internal error when accessing budget detail view + \[[#29718](https://community.openproject.org/wp/29718)\] +- Fixed: Search page loads slowly initially + \[[#29719](https://community.openproject.org/wp/29719)\] +- Fixed: Manually set admin flag being unset by SAML authentication + \[[#29720](https://community.openproject.org/wp/29720)\] +- Fixed: Gantt Zoom buttons are inverted + \[[#29721](https://community.openproject.org/wp/29721)\] +- Fixed: Attachments deleted on work package update via email + \[[#29722](https://community.openproject.org/wp/29722)\] +- Changed: Allow instances to define a legal notice link to be + rendered \[[#29697](https://community.openproject.org/wp/29697)\] +- Changed: Make Gravatar default image configurable again + \[[#29711](https://community.openproject.org/wp/29711)\] + +## 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 Michael Johannessen, Marc Vollmer, Klaus-Jürgen Weghorn, Ole Odendahl diff --git a/docs/release-notes/8/8-3-2/README.md b/docs/release-notes/8/8-3-2/README.md index 76fb43940db1..6762a18e3dac 100644 --- a/docs/release-notes/8/8-3-2/README.md +++ b/docs/release-notes/8/8-3-2/README.md @@ -1,9 +1,9 @@ --- - title: OpenProject 8.3.2 - sidebar_navigation: - title: 8.3.2 - release_version: 8.3.2 - release_date: 2019-04-30 +title: OpenProject 8.3.2 +sidebar_navigation: + title: 8.3.2 +release_version: 8.3.2 +release_date: 2019-04-30 --- @@ -13,14 +13,13 @@ We released OpenProject 8.3.2. The release contains a security related fix and we urge updating to the newest version. - - ## CVE-2019-11600 A SQL injection vulnerability in the activities API in OpenProject before 8.3.2 allows a remote attacker to execute arbitrary SQL commands via the id parameter. The attack can be performed unauthenticated if -OpenProject is configured not to require authentication for API access. +OpenProject is configured not to require authentication for API access. + This vulnerability has been assigned the CVE identifier CVE-2019-11600. Versions Affected: 5.0.0 – 8.3.1 @@ -37,5 +36,3 @@ responsible disclose security related issues to us, please see our Thanks to Thanaphon Soo from the [SEC Consult Vulnerability Lab](https://www.sec-consult.com) for identifying and responsibly disclosing the identified issues. - - diff --git a/docs/release-notes/8/README.md b/docs/release-notes/8/README.md index 205d9b221e01..320391b49b85 100644 --- a/docs/release-notes/8/README.md +++ b/docs/release-notes/8/README.md @@ -5,7 +5,7 @@ release_date: 2018-08-29 title: OpenProject Version 8 Release Notes --- -# Version 8 Release Notes +# Version 8 Release Notes | Version | Release date | |-----------------------------|--------------| diff --git a/docs/release-notes/9/9-0-0/README.md b/docs/release-notes/9/9-0-0/README.md index 84d250602362..8260de507ed2 100644 --- a/docs/release-notes/9/9-0-0/README.md +++ b/docs/release-notes/9/9-0-0/README.md @@ -6,7 +6,6 @@ release_version: 9.0.0 release_date: 2019-06-06 --- - # OpenProject 9.0 OpenProject 9.0 introduces a board view to support agile project management with Kanban. In addition, you can define work package templates to rapidly create new work packages with a pre-defined structure. Each user can now add their own custom work package views to their my page. @@ -15,19 +14,15 @@ Read below to get a detailed overview of what is new in OpenProject 9. ![OpenProject 9](release-teaser.jpg) - - ## Board view (Enterprise add-on) The board view is a new module for OpenProject and allows Scrum and Kanban-style agile project management. You can display display a board view with the different statuses shown as columns (similarly to a Kanban board) and quickly update the status. Alternatively, you can define a basic board with custom names or display versions as columns (e.g. to plan your roadmap). Since boards display work packages - just like the work package tables - you can easily combine traditional and agile project management. Simply schedule your tasks in the Gantt chart and work on them from the boards view. -To use boards you need to use either the Enterprise cloud or the Enterprise on-premises edition. If you currently use the Community edition and would like to give boards a try, simply [request an Enterprise edition trial license](). - -[Learn more about Boards for Scrum and Agile Project Management.]() - +To use boards you need to use either the Enterprise cloud or the Enterprise on-premises edition. If you currently use the Community edition and would like to give boards a try, simply [request an Enterprise edition trial license](https://www.openproject.org/pricing/#trial). +Learn more about [Boards for Scrum and Agile Project Management](../../../user-guide/agile-boards/). ## Work package templates @@ -35,9 +30,7 @@ You can define templates for work package types. Templates are automatically dis Templates can be configured in the work package type configuration. -![img](template.png) - - +![Work package templates](template.png) ## Work package widget on My Page @@ -45,16 +38,12 @@ On the My Page, each user can add work package widgets and customize which work You can filter and group by work package attributes and also display Gantt charts in the widgets. - - ## Updated work package table Assignees are now directly displayed as avatars in the work package page. Additionally, the work package type selection has been updated. ![Improved design](improved-design.png) - - ## Improved usability OpenProject is even more user-friendly: You can add attachments (e.g. images) directly to meetings (agenda / minutes). @@ -65,17 +54,13 @@ Filters and work package attributes are improved and support auto-completion. For an overview of all new improvements, take a look at the [feature list](https://community.openproject.org/projects/openproject/work_packages?query_props={"c"%3A["id"%2C"subject"%2C"type"%2C"status"%2C"assignee"%2C"version"]%2C"hi"%3Atrue%2C"g"%3A""%2C"t"%3A"id%3Aasc"%2C"f"%3A[{"n"%3A"status"%2C"o"%3A"!"%2C"v"%3A["6"]}%2C{"n"%3A"version"%2C"o"%3A"%3D"%2C"v"%3A["853"]}%2C{"n"%3A"subprojectId"%2C"o"%3A"*"%2C"v"%3A[]}%2C{"n"%3A"type"%2C"o"%3A"%3D"%2C"v"%3A["6"%2C"8"]}]%2C"pa"%3A1%2C"pp"%3A100}). - - ## Substantial number of bug fixes OpenProject 9.0 contains a large number of bugs fixes. For an extensive overview of bug fixes please refer to the [following list](https://community.openproject.org/projects/openproject/work_packages?query_props={"c"%3A["id"%2C"subject"%2C"type"%2C"status"%2C"assignee"]%2C"hi"%3Afalse%2C"g"%3A""%2C"t"%3A"id%3Adesc"%2C"f"%3A[{"n"%3A"version"%2C"o"%3A"%3D"%2C"v"%3A["853"]}%2C{"n"%3A"type"%2C"o"%3A"%3D"%2C"v"%3A["1"]}%2C{"n"%3A"subprojectId"%2C"o"%3A"*"%2C"v"%3A[]}]%2C"pa"%3A1%2C"pp"%3A20}). - - -## Upgrading your installation to OpenProject 9.0. +## Upgrading your installation to OpenProject 9.0 If you're using the OpenProject Enterprise cloud edition, you are already running on the latest version of OpenProject 9.0. For your local installations, there are some minor changes you need to do in order to perform the upgrade. diff --git a/docs/release-notes/9/9-0-1/README.md b/docs/release-notes/9/9-0-1/README.md index bcfa6bda3033..56469db09052 100644 --- a/docs/release-notes/9/9-0-1/README.md +++ b/docs/release-notes/9/9-0-1/README.md @@ -11,9 +11,7 @@ release_date: 2019-06-07 We released [OpenProject 9.0.1](https://community.openproject.org/versions/1368). The release contains several bug fixes and we recommend updating to the newest version. - - -#### Bug fixes and changes +## Bug fixes and changes - Fixed: Wiki TOC doesn't render headings properly [[#30245](https://community.openproject.org/wp/30245)] - Fixed: Doubled files section in meeting agenda [[#30291](https://community.openproject.org/wp/30291)] @@ -26,9 +24,8 @@ The release contains several bug fixes and we recommend updating to the newest v - Changed: Improve print view of cost report via CSS [[#30305](https://community.openproject.org/wp/30305)] - Changed: Ensure PostgreSQL migration is finished before attachments are re-inserted [[#30352](https://community.openproject.org/wp/30352)] -#### Contributions +## 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 Varac Anero - diff --git a/docs/release-notes/9/9-0-2/README.md b/docs/release-notes/9/9-0-2/README.md index ff58f926dce9..6e2e8153be8e 100644 --- a/docs/release-notes/9/9-0-2/README.md +++ b/docs/release-notes/9/9-0-2/README.md @@ -11,9 +11,7 @@ release_date: 2019-06-13 We released [OpenProject 9.0.2](https://community.openproject.org/versions/1359). The release contains several bug fixes and we recommend updating to the newest version. If you're running OpenProject with a relative URL root (e.g., under domain.example.org/openproject), this update should fix [an installation issue related to Sass compilation](https://community.openproject.org/wp/30372) as well as [an error trying to use create new boards](https://community.openproject.org/wp/30370). - - -#### Bug fixes and changes +## Bug fixes and changes - **Fixed**: Wiki TOC doesn't render headings properly [[#30245](https://community.openproject.org/wp/30245)] - **Fixed**: Cannot create new boards in installations with relative_url_root set [[#30370](https://community.openproject.org/wp/30370)] @@ -21,4 +19,3 @@ The release contains several bug fixes and we recommend updating to the newest v - **Fixed**: Chrome is logged out when accessing pages with images on S3 storage [[#28652](https://community.openproject.org/wp/28652)] - **Fixed**: OpenProject logo on My page does not redirect to landing page [[#30376](https://community.openproject.org/wp/30376)] - **Fixed**: The PDF export is cut off after the first page [[#29929](https://community.openproject.org/wp/29929)] - diff --git a/docs/release-notes/9/9-0-3/README.md b/docs/release-notes/9/9-0-3/README.md index 98fa590c338f..04857bade19d 100644 --- a/docs/release-notes/9/9-0-3/README.md +++ b/docs/release-notes/9/9-0-3/README.md @@ -11,9 +11,7 @@ release_date: 2019-07-23 We released [OpenProject 9.0.3](https://community.openproject.org/versions/1376). The release contains several bug fixes and we recommend updating to the newest version. - - -#### Bug fixes and changes +## Bug fixes and changes - Changed: Searching for Custom Fields [[#29756](https://community.openproject.org/wp/29756)] - Changed: Prevent collisions between users working on the same board [[#30403](https://community.openproject.org/wp/30403)] @@ -45,7 +43,7 @@ The release contains several bug fixes and we recommend updating to the newest v - Fixed: "Login" instead of "Login name" used (causes problems with translations) [[#30591](https://community.openproject.org/wp/30591)] - Fixed: Board links in sidebar broken [[#30595](https://community.openproject.org/wp/30595)] -#### Contributions +## Contributions A big thanks to community members for reporting bugs and helping us identifying and providing fixes. diff --git a/docs/release-notes/9/9-0-4/README.md b/docs/release-notes/9/9-0-4/README.md index 639f489c27c0..b1c609a887be 100644 --- a/docs/release-notes/9/9-0-4/README.md +++ b/docs/release-notes/9/9-0-4/README.md @@ -16,8 +16,5 @@ Versions Affected: Versions <= 9.0.3, 10.0.1 Fixed Versions: 9.0.4, 10.0.2 ## Credits -Thanks to David Haintz from the SEC Consult Vulnerability Lab (https://www.sec-consult.com) for identifying and responsibly disclosing the identified issues. - -#### Contributions Thanks to David Haintz from [SEC Consult Vulnerability Lab](https://www.sec-consult.com) for identifying and responsibly disclosing the identified issues. diff --git a/docs/release-notes/9/README.md b/docs/release-notes/9/README.md index d673856d0926..f866a2a4e390 100644 --- a/docs/release-notes/9/README.md +++ b/docs/release-notes/9/README.md @@ -5,7 +5,7 @@ release_date: 2019-06-06 title: OpenProject Version 9 Release Notes --- -# OpenProject Version 9 Release Notes +# OpenProject Version 9 Release Notes | Version | Release date | |-----------------------------|--------------| diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index e0087ca52b32..211fa6628fd0 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -10,7 +10,6 @@ We never stop improving OpenProject. Every year there are several stable release Stay up to date and get an overview of the new features included in the releases. - @@ -20,14 +19,12 @@ Release date: 2024-04-24 [Release Notes](14-0-0/) - ## 13.4.1 Release date: 2024-03-26 [Release Notes](13-4-1/) - ## 13.4.0 Release date: 2024-03-20 @@ -40,7 +37,6 @@ Release date: 2024-02-28 [Release Notes](13-3-1/) - ## 13.3.0 Release date: 2024-02-14 @@ -53,91 +49,78 @@ Release date: 2024-01-31 [Release Notes](13-2-1/) - ## 13.2.0 Release date: 2024-01-17 [Release Notes](13-2-0/) - ## 13.1.2 Release date: 2023-12-22 [Release Notes](13-1-2/) - ## 13.1.1 Release date: 2023-12-20 [Release Notes](13-1-1/) - ## 13.1.0 Release date: 2023-12-13 [Release Notes](13-1-0/) - ## 13.0.8 Release date: 2023-12-05 [Release Notes](13-0-8/) - ## 13.0.7 Release date: 2023-10-23 [Release Notes](13-0-7/) - ## 13.0.6 Release date: 2023-10-13 [Release Notes](13-0-6/) - ## 13.0.5 Release date: 2023-10-10 [Release Notes](13-0-5/) - ## 13.0.4 Release date: 2023-09-26 [Release Notes](13-0-4/) - ## 13.0.3 Release date: 2023-09-12 [Release Notes](13-0-3/) - ## 13.0.2 Release date: 2023-09-07 [Release Notes](13-0-2/) - ## 13.0.1 Release date: 2023-08-29 [Release Notes](13-0-1/) - ## 13.0.0 Release date: 2023-08-21 diff --git a/docs/security-and-privacy/README.md b/docs/security-and-privacy/README.md index a157a16fbc30..99ef713e561d 100644 --- a/docs/security-and-privacy/README.md +++ b/docs/security-and-privacy/README.md @@ -19,4 +19,3 @@ The purpose of this document is to equip users of OpenProject with the necessar * Security documentation: BSI Grundschutzchecks (coming Q1 2024) * Statement on data security: [Statement on data security](./statement-on-security) - diff --git a/docs/security-and-privacy/processing-of-personal-data/README.md b/docs/security-and-privacy/processing-of-personal-data/README.md index 1b769c1cef67..70cb7e6724c7 100644 --- a/docs/security-and-privacy/processing-of-personal-data/README.md +++ b/docs/security-and-privacy/processing-of-personal-data/README.md @@ -39,13 +39,13 @@ Anonymity is not complete because the underlying webserver might still generate To sign-in to the OpenProject platform, the [registration of a user account](../../system-admin-guide/users-permissions/users/#create-users) is required. For registered user's the following personal data are processed: -##### User profile (bu-01) +#### User profile (bu-01) - Name - Username - Avatar -##### User settings (bu-02) +#### User settings (bu-02) - Email address - Notification settings @@ -54,7 +54,7 @@ To sign-in to the OpenProject platform, the [registration of a user account](../ - Time zone settings - Display settings (contrast modes, custom themes) -##### User authentication (bu-03) +#### User authentication (bu-03) * Access tokens * User sessions @@ -62,20 +62,20 @@ To sign-in to the OpenProject platform, the [registration of a user account](../ * Phone number for sending one-time passwords via SMS * OATH secret codes -##### User notification settings (bu-04) +#### User notification settings (bu-04) - Default notification settings -- Project-specific notification settings +- Project-specific notification settings - Default email reminder settings - Project-specific email reminder settings -##### User roles and permissions (bu-05) +#### User roles and permissions (bu-05) - Group memberships -- Project roles +- Project roles - Global roles -##### User rates (bu-06) +#### User rates (bu-06) * Default hourly rate * Hourly rate per project @@ -86,43 +86,43 @@ To sign-in to the OpenProject platform, the [registration of a user account](../ Depending on the individual use and permissions of the user the following personal data is processed: -##### Boards (cb-01) +#### Boards (cb-01) - Assignment of a person to a work package (author, assignee, responsible, user custom fields) - Change history - Person mentioned in a board -##### Budgets (cb-02) +#### Budgets (cb-02) - Assignments of a person to a budget - Change history - Person mentioned in a budget description -##### Comments (cc-01) +#### Comments (cc-01) - Author of a comment - Change history - Reactions of a user to a comment - Person mentioned in a comment -##### Email notifications (ce-01) +#### Email notifications (ce-01) - Email header including sender and recipients - Person mentioned in an email -##### Files (cf-01) +#### Files (cf-01) - Assignment of a files to an uploader or creator - Change history - Person mentioned in a file (incl. file attributes) -##### Meetings (cm-01) +#### Meetings (cm-01) - Assignment of a person (author, invitee, participant) to a meeting - Change history - Person mentioned in an agenda item -##### Projects (cp-01) +#### Projects (cp-01) - Assignment of a person to a project (author, project member) @@ -134,38 +134,37 @@ Depending on the individual use and permissions of the user the following person - Persons mentioned in a project status information - -##### Project calendars (cp-02) +#### Project calendars (cp-02) - Assignment of objects shown in the calendar (meetings, work packages, versions, milestones) to a person - Change history - Person mentioned in a calendar item -##### Project news (cp-03) +#### Project news (cp-03) - Author of a project news - Change history - Person mentioned in a project news -##### Team planner (ct-01) +#### Team planner (ct-01) - Assignment of a work package to a person - Change history - Persons mentioned in team planners -##### Time tracking (ct-02) +#### Time tracking (ct-02) - Assignments of a time entry to a person - Change history - Person mentioned in a time entry -##### Wiki pages (cw-01) +#### Wiki pages (cw-01) - Assignment of an wiki page edit to a person (author, contributor) - Change history - Person mentioned in a wiki page -##### Work packages (cw-02) +#### Work packages (cw-02) - Assignment of a work package to a person - Change history @@ -174,7 +173,6 @@ Depending on the individual use and permissions of the user the following person - Person mentioned in a linked file - Person mentioned in a linked pull request (i.e. GitHub or GitLab) - ### D: Logging #### Logged information @@ -184,6 +182,7 @@ Activities in OpenProject are automatically journalized. It allows users to unde Independently of the change history every interaction (i.e. web request) of a browser or other client results in an entry written to the server logfiles. These files support the operation of the application as they provide information on faulty behavior of the system (i.e. bugs and lack of performance). Those log files contain the following person related data: + * id of the user performing the request * time of the request * url called @@ -195,7 +194,7 @@ The data listed above is generated upon entering the application. When actually #### Retention period -Logfiles are automatically removed based on a first-in-first-out mechanism. This is done to limit the disk space which ensures the server's operation and at the same time serves as a means to erase the log entries once they have served their purpose of supporting operations. By default the retention period is determined by the size of the logfile. Once the logfile reaches its storage limit, the oldest entries are removed. +Logfiles are automatically removed based on a first-in-first-out mechanism. This is done to limit the disk space which ensures the server's operation and at the same time serves as a means to erase the log entries once they have served their purpose of supporting operations. By default the retention period is determined by the size of the logfile. Once the logfile reaches its storage limit, the oldest entries are removed. As such, the log entries are not kept for a fixed period of time. If there are a lot of requests, old entries are removed faster then if there are less requests. Administrators of an OpenProject installation might decide to configure a different behavior that factors in the age of the log entries. @@ -237,16 +236,16 @@ flowchart TD gih["GitHub (gih)"] gil["GitLab (gil)"] cal["Calendar (cal)"] - O["API integrations (api)"] + O["API integrations (api)"] end subgraph services[Internal Services] direction TB - M[Memcached] - P[PostgreSQL] - S[Object storage or NFS] - email["Email gateways (eml)"] + M[Memcached] + P[PostgreSQL] + S[Object storage or NFS] + email["Email gateways (eml)"] end @@ -256,13 +255,13 @@ end subgraph localclients[Local Client / User device] direction TB - browser - A1 - A2 - - - - + browser + A1 + A2 + + + + end @@ -307,23 +306,23 @@ flowchart LR subgraph IDP[Identity Provider] direction LR - ssoprovider[SSO provider] - LDAP + ssoprovider[SSO provider] + LDAP end subgraph openproject["Relying Party (OpenProject) "] direction LR - ssoclient[SSO client] - ldapauthentication[LDAP authentication] - ldapgroupsync[LDAP group sync] - - end + ssoclient[SSO client] + ldapauthentication[LDAP authentication] + ldapgroupsync[LDAP group sync] + + end subgraph localclients[Local clients] direction LR - Browser - end + Browser + end ``` @@ -346,10 +345,9 @@ flowchart LR * `idp-02` TLS * `idp-03` TLS -### C: Email (eml) - -#### Overview +### C: Email (eml) +#### Overview ```mermaid %%{init: {'theme':'neutral'}}%% @@ -362,24 +360,24 @@ flowchart LR subgraph localclients[Local clients] direction TB - A + A end subgraph internal[Internal services] direction TB - C + C end subgraph external[External services] direction TB - A - B + A + B end subgraph OpenProject direction TB - D + D end @@ -397,7 +395,7 @@ flowchart LR * `bu-01` * `bu-04` -* `bu-05` +* `bu-05` * `cc-01` * `cm-01` * `cp-01` @@ -425,19 +423,19 @@ flowchart LR opicalapi -->|cal-02| localcalendarapp subgraph localclient[Local clients] - direction TB - localcalendarapp + direction TB + localcalendarapp end subgraph external[External services] - direction TB - B + direction TB + B end subgraph OpenProject - direction TB - projectcalendar[Project calendar] --> opicalapi + direction TB + projectcalendar[Project calendar] --> opicalapi end ``` @@ -457,7 +455,7 @@ flowchart LR * `cal-01` TLS * `cal-02` TLS (not controlled by the OpenProject system) -* `cal-03` TLS (not controlled by the OpenProject system) +* `cal-03` TLS (not controlled by the OpenProject system) ### E: Nextcloud (nex) @@ -472,21 +470,21 @@ flowchart LR appopenprojectintegration <-->|nex-04| openprojectapi subgraph local[Local clients] - Browser - nextclouddesktopclient + Browser + nextclouddesktopclient end subgraph openproject[OpenProject] - opnextcloudintegrattion[Nextcloud integration] - openprojectapi[API] - end + opnextcloudintegrattion[Nextcloud integration] + openprojectapi[API] + end subgraph nextcloud[Nextcloud] - groupfolder[Group folder app] - appopenprojectintegration[OpenProject integration app] - nextcloudapi[API] - end + groupfolder[Group folder app] + appopenprojectintegration[OpenProject integration app] + nextcloudapi[API] + end ``` @@ -498,7 +496,7 @@ subgraph openproject[OpenProject] #### Processed data * `bu-01` -* `bu-03 ` +* `bu-03` * `cf-01` #### Security measures @@ -521,20 +519,20 @@ flowchart LR appopenprojectintegration <-->|osh-04| openprojectapi subgraph local[Local clients] - Browser - onedrivedesktopclient[OneDrive desktop client] + Browser + onedrivedesktopclient[OneDrive desktop client] end subgraph openproject[OpenProject] - oponedrivetegration[OneDrive/SharePoint integration] - openprojectapi[API] - end + oponedrivetegration[OneDrive/SharePoint integration] + openprojectapi[API] + end subgraph onedrive[OneDrive/SharePoint] - appopenprojectintegration[OpenProject integration app] - onedriveapi[API] - end + appopenprojectintegration[OpenProject integration app] + onedriveapi[API] + end ``` @@ -562,26 +560,26 @@ subgraph openproject[OpenProject] ```mermaid %%{init: {'theme':'neutral'}}%% flowchart LR - gitclient <-->|gih-01| githubapi - githubapi <-->|gih-02| opgithubintegration - githubwebhooks -->|gih-03| opgithubintegration + gitclient <-->|gih-01| githubapi + githubapi <-->|gih-02| opgithubintegration + githubwebhooks -->|gih-03| opgithubintegration subgraph GitHub direction TB - githubapi[API] - githubwebhooks[Webhooks] + githubapi[API] + githubwebhooks[Webhooks] - end - - subgraph localclients[Local clients] + end + + subgraph localclients[Local clients] direction TB - gitclient[Git client] - end + gitclient[Git client] + end subgraph openproject[OpenProject] direction TB - opgithubintegration[Github integration] --- workpackagesmodule[Work packages module] - end + opgithubintegration[Github integration] --- workpackagesmodule[Work packages module] + end ``` @@ -608,26 +606,26 @@ flowchart LR ```mermaid %%{init: {'theme':'neutral'}}%% flowchart LR - gitclient <-->|gil-01| gitlabapi - gitlabapi <-->|gil-02| opgitlabintegration - gitlabwebhooks -->|gil-03| opgitlabintegration + gitclient <-->|gil-01| gitlabapi + gitlabapi <-->|gil-02| opgitlabintegration + gitlabwebhooks -->|gil-03| opgitlabintegration subgraph GitLab direction TB - gitlabapi[API] - gitlabwebhooks[Webhooks] + gitlabapi[API] + gitlabwebhooks[Webhooks] - end - - subgraph localclients[Local clients] + end + + subgraph localclients[Local clients] direction TB - gitclient[Git client] - end + gitclient[Git client] + end subgraph openproject[OpenProject] direction TB - opgitlabintegration[GitLab integration] --- workpackagesmodule[Work packages module] - end + opgitlabintegration[GitLab integration] --- workpackagesmodule[Work packages module] + end ``` @@ -655,19 +653,17 @@ flowchart LR ```mermaid %%{init: {'theme':'neutral'}}%% flowchart LR - api <-->|api-01| apiintegration[API integration] - - subgraph externalintegreations[External integrations] + api <-->|api-01| apiintegration[API integration] + + subgraph externalintegreations[External integrations] direction TB - apiintegration - end + apiintegration + end subgraph openproject[OpenProject] direction TB - api[API] - end - - + api[API] + end ``` #### Purpose @@ -696,11 +692,11 @@ OpenProject makes use of technical cookies to identity the browser client and/or ## Deletion of personal data -Whenever a user in OpenProject is fully deleted, the system scrubs and removes all user master data, all functional assignments, and all references to a user in the change histories. All actions performed in the name of the user are being replaced with a singular "**Deleted user**" reference in order to maintain integrity of database references, such as being an author of a work package that remains. Finally, the user data itself will be deleted, removing all structural traces of PII in the system. +Whenever a user in OpenProject is fully deleted, the system scrubs and removes all user master data, all functional assignments, and all references to a user in the change histories. All actions performed in the name of the user are being replaced with a singular "**Deleted user**" reference in order to maintain integrity of database references, such as being an author of a work package that remains. Finally, the user data itself will be deleted, removing all structural traces of PII in the system. **Note:** Due to the user references changing, respective cache keys for information such as work packages or projects are invalidated automatically. -**Note:** Deleting a user account is a permanent action and cannot be reversed. +**Note:** Deleting a user account is a permanent action and cannot be reversed. For more information on user account deletion, please see [the user administration guide](../../system-admin-guide/users-permissions/users/#delete-users). diff --git a/docs/security-and-privacy/statement-on-security/README.md b/docs/security-and-privacy/statement-on-security/README.md index 6d4800b67b30..0942ed317ff7 100644 --- a/docs/security-and-privacy/statement-on-security/README.md +++ b/docs/security-and-privacy/statement-on-security/README.md @@ -14,8 +14,6 @@ Automated tests and manual code reviews ensure that these contributions are safe For more information on security and data privacy for OpenProject, please visit: [www.openproject.org/security-and-privacy](https://www.openproject.org/security-and-privacy/). - - ## Security announcements mailing list If you want to receive immediate security notifications via email as we publish them, please sign up to our security mailing list: https://www.openproject.org/security-and-privacy/#mailing-list. @@ -26,14 +24,10 @@ To unsubscribe, you will find a link at the end of every email. Any security related information will also be published on our [blog](https://www.openproject.org/blog/) and in the [release notes](../../release-notes/). - - ## Security advisory list OpenProject uses GitHub to manage and publish security advisory listings: https://github.com/opf/openproject/security/advisories - - ## Security vulnerability processing When we receive vulnerability reports from researchers or through internal identification, the following process is taking place immediately: @@ -47,8 +41,6 @@ When we receive vulnerability reports from researchers or through internal ident 7. A patch release is created, published and distributed for all supported installations 8. The security vulnerability is publicly disclosed on GitHub and communicated through the mailing list - - ## Reporting a vulnerability We take all facets of security seriously at OpenProject. If you want to report a security concerns, have remarks, or contributions regarding security at OpenProject, please reach out to us at [security@openproject.com](mailto:security@openproject.com). @@ -63,16 +55,15 @@ Please include a description on how to reproduce the issue if possible. Our secu > **Please note:** OpenProject currently does not offer a bug bounty program. We will do our best to give you the appropriate credits for responsibly disclosing a security vulnerability to us. We will gladly reference your work, name, website on every publication we do related to the security update. - ## OpenProject security features ### Authentication and password security -OpenProject administrators can enforce [authentication mechanisms and password rules]() to ensure users choose secure passwords according to current industry standards. Passwords stored by OpenProject are securely stored using salted bcrypt. Alternatively, external authentication providers and protocols (such as LDAP, SAML) can be enforced to avoid using and exposing passwords within OpenProject. +OpenProject administrators can enforce **authentication mechanisms and password rules** to ensure users choose secure passwords according to current industry standards. Passwords stored by OpenProject are securely stored using salted bcrypt. Alternatively, external authentication providers and protocols (such as LDAP, SAML) can be enforced to avoid using and exposing passwords within OpenProject. ### User management and access control -Administrators are provided with [fine-grained role-based access control mechanisms]() to ensure that users are only seeing and accessing the data they are allowed to on an individual project level. +Administrators are provided with **fine-grained role-based access control mechanisms** to ensure that users are only seeing and accessing the data they are allowed to on an individual project level. ### Definition of session runtime @@ -98,6 +89,4 @@ Synchronize OpenProject users and groups with your company’s LDAP to update us With the single sign-on feature you can securely access OpenProject. Control and secure access to your projects with the main authentication providers. - - Find out more about our [GDPR compliance](../../enterprise-guide/enterprise-cloud-guide/gdpr-compliance/). diff --git a/docs/system-admin-guide/README.md b/docs/system-admin-guide/README.md index 989d4b31cbd8..b98afd99e6c7 100644 --- a/docs/system-admin-guide/README.md +++ b/docs/system-admin-guide/README.md @@ -17,8 +17,6 @@ Click on one of the categories in order to proceed with the configuration. ![openproject_system_administration_start_page](openproject_system_administration_start_page.png) - - ## Overview | Topic | Content | diff --git a/docs/system-admin-guide/announcement/README.md b/docs/system-admin-guide/announcement/README.md index 51476f12759f..06637ab887bc 100644 --- a/docs/system-admin-guide/announcement/README.md +++ b/docs/system-admin-guide/announcement/README.md @@ -22,4 +22,4 @@ The active announcement will be displayed until the defined date to users **on t Also, the active announcement will be displayed until the defined date to users **on the application start page**. -![Sys-admin-announcement-start-page](Sys-admin-announcement-start-page.png) \ No newline at end of file +![Sys-admin-announcement-start-page](Sys-admin-announcement-start-page.png) diff --git a/docs/system-admin-guide/api-and-webhooks/README.md b/docs/system-admin-guide/api-and-webhooks/README.md index 18d02cecac42..a03ff1f31db2 100644 --- a/docs/system-admin-guide/api-and-webhooks/README.md +++ b/docs/system-admin-guide/api-and-webhooks/README.md @@ -58,4 +58,3 @@ You can configure the following options for webhooks: **Note** You have to scroll down to find the create button. There you can also cancel your input. ![create-button-new-webhook](create-button-new-webhook.png) - diff --git a/docs/system-admin-guide/attachments/README.md b/docs/system-admin-guide/attachments/README.md index e869b21f204f..98a7aed79ffa 100644 --- a/docs/system-admin-guide/attachments/README.md +++ b/docs/system-admin-guide/attachments/README.md @@ -14,13 +14,11 @@ In OpenProject you can determine the maximum attachment size and activate the vi ![Navigation to attachment settings in OpenProject](openproject_system_adminstration_attachments.png) - - ## Attachment settings 1. Here you can increase or decrease **maximum attachment size** (in kB). -2. The box next to **Attachment upload whitelist** is an open-entry text box in which some common file formats are pre-populated by default. The file formats in this list are specifically whitelisted or allowed to be attached to work packages. +2. The box next to **Attachment upload whitelist** is an open-entry text box in which some common file formats are pre-populated by default. The file formats in this list are specifically whitelisted or allowed to be attached to work packages. If you wish, you can add additional file formats. Use only one file format entry per line, and keep to the following cadence: `*****.[**file extension**]` @@ -31,8 +29,6 @@ In OpenProject you can determine the maximum attachment size and activate the vi ![attachment settings](openproject_system_adminstration_attachment_settings.png) - - ## Virus scanning (Enterprise-add-on) For information about virus scanning, please see the [documentation on virus scanning](./virus-scanning/). diff --git a/docs/system-admin-guide/attachments/virus-scanning/README.md b/docs/system-admin-guide/attachments/virus-scanning/README.md index 21b9d458691a..8e265866fa69 100644 --- a/docs/system-admin-guide/attachments/virus-scanning/README.md +++ b/docs/system-admin-guide/attachments/virus-scanning/README.md @@ -9,6 +9,7 @@ keywords: Virus scanning, clamav --- # Virus scanning (Enterprise add-on) +> > **Note**: This functionality is an Enterprise add-on. It is currently not available on the Hosted Enterprise Cloud. You can configure OpenProject to automatically scan uploaded attachments for viruses using the [ClamAV antivirus](https://www.clamav.net/) engine. @@ -27,32 +28,26 @@ On a packaged installation, you can simply install ClamAV locally on your distri When installed as a package on the same server, you can configure OpenProject to use the `ClamAV socket` mode of operation, which uses a local unix socket to communicate with ClamAV. - - **Debian, Ubuntu distributions** ClamAV is part of the standard packages and can be installed as a daemon just like this: -```bash +```shell apt-get install clamav clamav-daemon ``` The installer will launch a `clamd` daemon that can be used to transmit files to the daemon for scanning. A `freshclam` daemon is also started to ensure the definitions are kept up-to-date. In any case, double-check the configuration and ensure they are running. - - **RHEL Linux, Centos** On RedHad Enterprise Linux and Centos, you need to install the epel-release packages first, followed by ClamaV -``` +```shell dnf install -y epel-release dnf install -y clamav clamd clamav-update ``` -For these distributions, you need to manually create the configuration files for `freshclam` and `clamd`. For more information, see https://docs.clamav.net/manual/Installing.html#rpm-packages-for-centos-redhat-fedora-suse-etc - - +For these distributions, you need to manually create the configuration files for `freshclam` and `clamd`. For more information, see https://docs.clamav.net/manual/Installing.html#rpm-packages-for-centos-redhat-fedora-suse-etc ### Docker @@ -60,7 +55,7 @@ To run ClamAV in Docker, follow this guide: https://docs.clamav.net/manual/Insta As a quick-start, you can use this command to start clamav with local volume mounts for the virus database: -```bash +```shell docker run -it --rm \ --name clamav \ --publish 3310 \ @@ -68,16 +63,14 @@ docker run -it --rm \ clamav/clamav:stable_base ``` -This will publish the `clamd` TCP connection on port `3310`. - +This will publish the `clamd` TCP connection on port `3310`. - -**Docker-Compose** +**Docker-Compose** On docker compose, you can register clamav as a separate service to have hostname resolution: -``` -... other configuration +```yaml +# ... other configuration services: clamav: image: "clamav/clamav:stable_base" @@ -92,8 +85,6 @@ services: In both these cases, use the `ClamAV (Host)` option with `clamav:3310` as the host value. - - ## Configuration in OpenProject To enable the virus scanning functionality, visit *Administration > Attachments > Virus scanning*. @@ -108,9 +99,9 @@ You will see the following options: - This value is only shown when Scan mode is enabled. - Enter the path to the local socket or `hostname:port` for the host mode according to the ClamAV installation documentation. 3. **Infected file action** - - Here you can select the action to take place when a virus was found: - + + Here you can select the action to take place when a virus was found: + - **Quarantine the file**: quarantined files will be displayed under *Administration > Attachments > Quarantined attachments* for review or deletion. - **Delete the file directly**. @@ -132,8 +123,7 @@ If the virus scanning mode has been enabled, all uploaded attachments will be sc > **Note**: While attachments are in the process of being scanned, they are only accessible to the original author. As soon as they are scanned without any findings, they are made accessible to all other users. -If viruses are found, they are treated according to the *Infected file action* setting. +If viruses are found, they are treated according to the *Infected file action* setting. - Quarantine: The files are still visible in the container (e.g., in the work package they were uploaded in), but are no longer accessible. A comment is made to inform users about it. - Delete: The file is deleted straight away. A comment is made to inform the users about it. - diff --git a/docs/system-admin-guide/attribute-help-texts/README.md b/docs/system-admin-guide/attribute-help-texts/README.md index 5e51f257e30c..1598db6006db 100644 --- a/docs/system-admin-guide/attribute-help-texts/README.md +++ b/docs/system-admin-guide/attribute-help-texts/README.md @@ -10,7 +10,7 @@ keywords: attribute help texts, help texts for projects and work packages # Attribute help texts
-**Attribute help texts** provide additional information for attributes in work packages and projects. After setting them up they are displayed when users click on the question mark symbol next to custom fields in projects and work packages. +**Attribute help texts** provide additional information for attributes in work packages and projects. After setting them up they are displayed when users click on the question mark symbol next to custom fields in projects and work packages. This way you will reduce wrong entries for attributes. This is especially relevant for company specific custom fields.
@@ -28,11 +28,9 @@ Navigate to -> *Administration* -> *Attribute help texts* to set up help texts f ![image-20201006165832885](image-20201006165832885.png) - - ## Add Attribute help texts -To add an Attribute help texts for custom fields click on the green **+ Attribute help text** button. +To add an Attribute help texts for custom fields click on the green **+ Attribute help text** button. 1. **Choose the attribute** you'd like to explain. Custom fields are also displayed here, which may require further explanation. 2. Add a **description**. You can add in-line pictures, links or videos, too. This **help text description** which will be shown in work package or project forms for the users. @@ -41,18 +39,14 @@ To add an Attribute help texts for custom fields click on the green **+ Attribut ![image-20201006171019961](image-20201006171019961.png) - - Be aware that the help text will be visible in all projects. -Once you configured the help text for an attribute, project members can see the explanation. The will see a question mark item next to the attribute. +Once you configured the help text for an attribute, project members can see the explanation. The will see a question mark item next to the attribute. When the users click on it, they see the description for this attribute. ![attribute help text description](image-20200122102249268.png) - - ## Edit or delete Attribute help texts Navigate to -> *Administration* -> *Work packages* -> *Attribute help texts* in order to edit or remove an attribute help text. @@ -68,8 +62,6 @@ The Attribute help texts for work packages will be displayed in the [details vie ![Sys-admin-attribute-help-texts-open](Sys-admin-attribute-help-texts-open.png) - - ## Projects The Attribute help texts for projects will be displayed in the Project details widget in the [Project overview](../../user-guide/project-overview/) (as in the first screenshot below) and in the [Project settings](../../user-guide/projects/project-settings/project-information/) (as in the second screenshot below). @@ -78,12 +70,8 @@ They will help the users (e.g. the project managers) understand what kind of inf ![Attribute help texts project overview](image-20201007112035870.png) - - ![Attribute help texts project information](image-20201007112741049.png) - - ## WYSIWYG editor -The Attribute help texts can also be displayed in the WYSIWYG text editor by using a certain syntax. Find out more [here](../../user-guide/wysiwyg/#embedding-of-work-package-attributes-and-project-attributes). +The Attribute help texts can also be displayed in the WYSIWYG text editor by using a certain syntax. Find out more [here](../../user-guide/wysiwyg/#embedding-of-work-package-attributes-and-project-attributes). diff --git a/docs/system-admin-guide/authentication/README.md b/docs/system-admin-guide/authentication/README.md index 15b012db23dd..82254bffe7c2 100644 --- a/docs/system-admin-guide/authentication/README.md +++ b/docs/system-admin-guide/authentication/README.md @@ -22,4 +22,3 @@ Configure **authentication** settings and authentication providers in OpenProjec | [reCAPTCHA](recaptcha) | How to activate reCAPTCHA in OpenProject. | | [LDAP authentication](ldap-authentication) | How to set up LDAP authentication in OpenProject. | | [LDAP group synchronization](ldap-authentication/ldap-group-synchronization) | How to configure LDAP group synchronization in OpenProject. (Enterprise add-on) | - diff --git a/docs/system-admin-guide/authentication/authentication-faq/README.md b/docs/system-admin-guide/authentication/authentication-faq/README.md index b0b1115bf656..16fbfff15f77 100644 --- a/docs/system-admin-guide/authentication/authentication-faq/README.md +++ b/docs/system-admin-guide/authentication/authentication-faq/README.md @@ -7,19 +7,19 @@ keywords: authentication FAQ, LDAP, SAML, SSO --- # Frequently asked questions (FAQ) for authentication + Additional information regarding the use of LDAP from a user management perspective can be found [in this FAQ section](../../users-permissions/users-permissions-faq). ## How do I set up OAuth / Google authentication in the Enterprise cloud? -The authentication via Google is already activated in the Enterprise cloud. Users who are invited to OpenProject, should be able to choose authentication via Google. There should be a Google button under the normal user name / password when you try to login. +The authentication via Google is already activated in the Enterprise cloud. Users who are invited to OpenProject, should be able to choose authentication via Google. There should be a Google button under the normal user name / password when you try to login. ## How can I disable the Google authentication? -Disabling the Google based authentication is currently not possible for cloud based installations. +Disabling the Google based authentication is currently not possible for cloud based installations. For on premises installations the functionality can be deactivated the same way it was activated. - ## Can we ensure that passwords are secure / have a high strength? Password parameters for OpenProject can be configured on each OpenProject environment. Typically passwords require 10+ characters, as well as special characters. Please find the respective instruction [here](../authentication-settings/#configure-password-settings). @@ -30,7 +30,7 @@ Users who want to change their authentication method can just be re-invited. Go ## I am an administrator of an on-premises installation of OpenProject. Our users can't login and when I send them a link to login they don't receive it. What can I do? -Probably it has something to do with the configuration of the email server if messages do not arrive. As a workaround, you can first [manually set a password](../../users-permissions/users/#manage-user-settings) for the users and send it to them by protected channels (then the users can log in in any case). +Probably it has something to do with the configuration of the email server if messages do not arrive. As a workaround, you can first [manually set a password](../../users-permissions/users/#manage-user-settings) for the users and send it to them by protected channels (then the users can log in in any case). In addition, we ask you to check if there are general difficulties with sending emails. There is a possibility to send a [test email](../../../installation-and-operations/configuration/outbound-emails). If the test email arrives, then the email dispatch from OpenProject works. Otherwise you would have to look in the [server logs](../../../installation-and-operations/operation/monitoring), whether there is an error displayed when a user is invited again. ## Is it possible to only allow authentication via SSO (not via user name / password)? @@ -48,14 +48,14 @@ For context: The connection of custom SSO providers is also described [here](../ ## I want to connect AD and LDAP to OpenProject. Which attribute for authentication sources does OpenProject use? -You can freely define the attributes that are taken from LDAP sources [in the LDAP auth source configuration screen](../ldap-authentication/). +You can freely define the attributes that are taken from LDAP sources [in the LDAP auth source configuration screen](../ldap-authentication/). For group synchronization, OpenProject supports the AD/LDAP standard for groups via "member / memberOf". The attribute cannot be configured at this time. ## Is there an option to mass-create users in OpenProject via the LDAP? There's no such option at the moment. However, you can activate the on-the-fly user creation for LDAP authentication. This means: An OpenProject user account will be created automatically when a user logs in to OpenProject via LDAP the first time. -## I would like to assign work packages to users from different authentication sources (AD and OpenLDAP). Is this possible without the admin creating groups manually? +## I would like to assign work packages to users from different authentication sources (AD and OpenLDAP). Is this possible without the admin creating groups manually? OpenProject supports creating groups and staffing them with users based on information found in an LDAP (or AD). This is called [LDAP group synchronization](../ldap-authentication/ldap-group-synchronization/#synchronize-ldap-and-openproject-groups-enterprise-add-on). The groups are created based on the name. So theoretically, it should be possible to have a single group that gets staffed by the information found in multiple LDAPs. This scenario has not been tested yet. Therefore, we cannot promise that it will work for sure. There is currently no other option. diff --git a/docs/system-admin-guide/authentication/authentication-settings/README.md b/docs/system-admin-guide/authentication/authentication-settings/README.md index 6f5ee3b9d080..37dcc9444d48 100644 --- a/docs/system-admin-guide/authentication/authentication-settings/README.md +++ b/docs/system-admin-guide/authentication/authentication-settings/README.md @@ -15,7 +15,7 @@ You can adapt the following under the authentication settings: 1. Select if the **authentication is required** to access OpenProject. For versions 13.1 and higher of OpenProject, this setting will be checked by default - **Important note**: If you un-tick this box your OpenProject instance will be visible to the general public without logging in. The visibility of individual projects depends on [this setting](../../../user-guide/projects/#set-a-project-to-public). + **Important note**: If you un-tick this box your OpenProject instance will be visible to the general public without logging in. The visibility of individual projects depends on [this setting](../../../user-guide/projects/#set-a-project-to-public). 2. Select an option for **self-registration**. Self-registration can either be **disabled**, or it can be allowed with the following criteria: diff --git a/docs/system-admin-guide/authentication/kerberos/README.md b/docs/system-admin-guide/authentication/kerberos/README.md index a864937ba143..4513ae82b5d8 100644 --- a/docs/system-admin-guide/authentication/kerberos/README.md +++ b/docs/system-admin-guide/authentication/kerberos/README.md @@ -15,18 +15,12 @@ keywords: Kerberos, authentication This guide will also apply for Docker-based installation, if you have an outer proxying server such as Apache2 that you can configure to use Kerberos. This guide however focuses on the packaged installation of OpenProject. - - ## Step 1: Create Kerberos service and keytab for OpenProject Assuming you have Kerberos set up with a realm, you need to create a Kerberos service Principal for the OpenProject HTTP service. In the course of this guide, we're going to assume your realm is `EXAMPLE.COM` and your OpenProject installation is running at `openproject.example.com`. - - Create the service principal (e.g. using `kadmin`) and a keytab for OpenProject used for Apache with the following commands: - - ```shell # Assuming you're in the `kadmin.local` interactive command @@ -34,8 +28,6 @@ addprinc -randkey HTTP/openproject.example.com ktadd -k /etc/apache2/openproject.keytab HTTP/openproject.example.com ``` - - This will output a keytab file for the realm selected by `kadmin` (in the above example, this would create all users from the default_realm) to `/etc/openproject/openproject.keytab` You still need to make this file readable for Apache. For Debian/Ubuntu based systems, the Apache user and group is `www-data`. This will vary depending on your installation @@ -45,8 +37,6 @@ sudo chown www-data:www-data /etc/apache2/openproject.keytab sudo chmod 400 /etc/apache2/openproject.keytab ``` - - ## Step 2: Configure Apache web server First, ensure that you install the `mod_auth_kerb` apache module. The command will vary depending on your installation. On Debian/Ubuntu based systems, use the following command to install: @@ -61,52 +51,50 @@ We are going to create a new file `/etc/openproject/addons/apache2/custom/vhost/ > **Please note**: The following kerberos configuration is only an example. We cannot provide any support or help with regards to the Kerberos side of configuration. OpenProject will simply handle the incoming header containing the logged in user. -``` - - AuthType GSSAPI - # The Basic Auth dialog name shown to the user - # change this freely - AuthName "EXAMPLE.COM realm login" - - # The credential store used by GSSAPI - GssapiCredStore keytab:/etc/apache2/openproject.keytab - - # Allow basic auth negotiation fallback - GssapiBasicAuth On +```apache + + AuthType GSSAPI + # The Basic Auth dialog name shown to the user + # change this freely + AuthName "EXAMPLE.COM realm login" + + # The credential store used by GSSAPI + GssapiCredStore keytab:/etc/apache2/openproject.keytab - # Uncomment this if you want to allow NON-TLS connections for kerberos - # GssapiSSLonly Off - - # Use the local user name without the realm. - # When off: OpenProject gets sent logins like "user1@EXAMPLE.com" - # When on: OpenProject gets sent logins like "user1" - GssapiLocalName On - - # Allow kerberos5 login mechanism - GssapiAllowedMech krb5 - - - # After authentication, Apache will set a header - # "X-Authenticated-User" to the logged in username - # appended with a configurable secret value - RequestHeader set X-Authenticated-User expr=%{REMOTE_USER}:MyPassword - - # Ensure the Authorization header is not passed to OpenProject - # as this will result in trying to perform basic auth with the API - RequestHeader unset Authorization - - # Apache directive to ensure a user is authenticated - Require valid-user - -``` + # Allow basic auth negotiation fallback + GssapiBasicAuth On + + # Uncomment this if you want to allow NON-TLS connections for kerberos + # GssapiSSLonly Off + + # Use the local user name without the realm. + # When off: OpenProject gets sent logins like "user1@EXAMPLE.com" + # When on: OpenProject gets sent logins like "user1" + GssapiLocalName On + + # Allow kerberos5 login mechanism + GssapiAllowedMech krb5 + # After authentication, Apache will set a header + # "X-Authenticated-User" to the logged in username + # appended with a configurable secret value + RequestHeader set X-Authenticated-User expr=%{REMOTE_USER}:MyPassword + + # Ensure the Authorization header is not passed to OpenProject + # as this will result in trying to perform basic auth with the API + RequestHeader unset Authorization + + # Apache directive to ensure a user is authenticated + Require valid-user + +``` ## Step 3: Configure OpenProject to use Apache header As the last step, you need to tell OpenProject to look for the `X-Authenticated-User` header and the `MyPassword` secret value. The easiest way to do that is using ENV variables -#### Configure using environment variables +### Configure using environment variables As with all the rest of the OpenProject configuration settings, the Kerberos header configuration can be provided via environment variables. For example: @@ -123,89 +111,71 @@ openproject config:set OPENPROJECT_AUTH__SOURCE__SSO_OPTIONAL=true Please note the differences between single underscores (`_`) and double underscores (`__`) in these environment variables, as the single underscore denotes namespaces. - - ## Step 4: Restart the server Once the configuration is completed, restart your OpenProject and Apache2 server with `service openproject restart` and `service apache2 restart` . Again these commands might differ depending on your Linux distribution. - - ## Step 5: Log in From there on, you will be forced to the Kerberos login flow whenever accessing OpenProject. For existing users that will be found by their login attribute provided in the `X-Authenticated-User`, they will be automatically logged in. For non-existing users, if you have an LDAP configured with automatic user registration activated (check out our [LDAP authentication guide](../../../system-admin-guide/authentication/ldap-authentication/) for that), users will be created automatically with the attributes retrieved from the LDAP. +## Known issues - -# Known issues - - - -## Using the OpenProject REST API +### Using the OpenProject REST API As Kerberos provides its own Basic Auth challenges if configured as shown above, it will prevent you from using the OpenProject API using an Authorization header such as API key authentication or OAuth2. **Note:** A precondition to use this workaround is to run OpenProject under its own path (server prefix) such as `https://YOUR DOMAIN/openproject/`. If you are not using this, you need to first reconfigure the wizard with `openproject reconfigure` to use such a path prefix. Alternatively, you might have success by using a separate domain or subdomain, but this is untested. - To work around this, you will have to configure a separate route to access the API, bypassing the Kerberos configuration. You can do that by modifying the `/etc/openproject/addons/apache2/custom/vhost/kerberos.conf`as follows: - - - -``` - # Add a Proxy for a separate route - # Replace /openproject/ with your own relative URL root / path prefix - ProxyPass /openproject-api/ http://127.0.0.1:6000/openproject/ retry=0 - ProxyPassReverse /openproject-api/ http://127.0.0.1:6000/openproject/ - - # Require kerberos flow for anything BUT /openproject-api - - AuthType GSSAPI - # The Basic Auth dialog name shown to the user - # change this freely - AuthName "EXAMPLE.COM realm login" +To work around this, you will have to configure a separate route to access the API, bypassing the Kerberos configuration. You can do that by modifying the `/etc/openproject/addons/apache2/custom/vhost/kerberos.conf`as follows: - # The credential store used by GSSAPI - GssapiCredStore keytab:/etc/apache2/openproject.keytab - - # Allow basic auth negotiation fallback - GssapiBasicAuth On +```apache +# Add a Proxy for a separate route +# Replace /openproject/ with your own relative URL root / path prefix +ProxyPass /openproject-api/ http://127.0.0.1:6000/openproject/ retry=0 +ProxyPassReverse /openproject-api/ http://127.0.0.1:6000/openproject/ - # Uncomment this if you want to allow NON-TLS connections for kerberos - # GssapiSSLonly Off - - # Use the local user name without the realm. - # When off: OpenProject gets sent logins like "user1@EXAMPLE.com" - # When on: OpenProject gets sent logins like "user1" - GssapiLocalName On - - # Allow kerberos5 login mechanism - GssapiAllowedMech krb5 - - - # After authentication, Apache will set a header - # "X-Authenticated-User" to the logged in username - # appended with a configurable secret value - RequestHeader set X-Authenticated-User expr=%{REMOTE_USER}:MyPassword - - # Ensure the Authorization header is not passed to OpenProject - # as this will result in trying to perform basic auth with the API - RequestHeader unset Authorization - - # Apache directive to ensure a user is authenticated - Require valid-user - -``` - - - - +# Require kerberos flow for anything BUT /openproject-api + + AuthType GSSAPI + # The Basic Auth dialog name shown to the user + # change this freely + AuthName "EXAMPLE.COM realm login" + + # The credential store used by GSSAPI + GssapiCredStore keytab:/etc/apache2/openproject.keytab + + # Allow basic auth negotiation fallback + GssapiBasicAuth On + # Uncomment this if you want to allow NON-TLS connections for kerberos + # GssapiSSLonly Off + + # Use the local user name without the realm. + # When off: OpenProject gets sent logins like "user1@EXAMPLE.com" + # When on: OpenProject gets sent logins like "user1" + GssapiLocalName On + + # Allow kerberos5 login mechanism + GssapiAllowedMech krb5 + # After authentication, Apache will set a header + # "X-Authenticated-User" to the logged in username + # appended with a configurable secret value + RequestHeader set X-Authenticated-User expr=%{REMOTE_USER}:MyPassword + + # Ensure the Authorization header is not passed to OpenProject + # as this will result in trying to perform basic auth with the API + RequestHeader unset Authorization + # Apache directive to ensure a user is authenticated + Require valid-user + +``` -# Additional resources +## Additional resources - [Kerberos documentation by Ubuntu](https://help.ubuntu.com/community/Kerberos) diff --git a/docs/system-admin-guide/authentication/ldap-authentication/README.md b/docs/system-admin-guide/authentication/ldap-authentication/README.md index 5cc1fa494a63..abe7497a632b 100644 --- a/docs/system-admin-guide/authentication/ldap-authentication/README.md +++ b/docs/system-admin-guide/authentication/ldap-authentication/README.md @@ -22,18 +22,12 @@ You will then be able to specify the LDAP configuration. This can be any direct The following screenshots contain an exemplary configuration for a new LDAP authentication mode. In the following, we will go through all available options. - - -#### LDAP connection details and security +### LDAP connection details and security ![Adding a new LDAP authentication server](ldap-host-and-security.png) - - In the upper section, you have to specify the connection details of your LDAP server as well as the connection encryption to use. - - - **Name:** Arbitrary identifier used to show which authentication source a user is coming from (e.g., in the [Administration > Users view](../../users-permissions/users/)) - **Host:** Full hostname to the LDAP server - **Port :** LDAP port. Will usually be 389 for LDAP and StartTLS and 636 for LDAP over SSL connections. @@ -41,7 +35,7 @@ In the upper section, you have to specify the connection details of your LDAP se - **Recommended option**: `STARTTLS` will issue an TLS connection upgrade to encrypt the connection after connecting to the LDAP server on the unencrypted PORT (`389` by default). - For LDAPS connections (LDAP over SSL), use `LDAPS` , this is an SSL encryption pattern that uses SSL certificates and connects to a separate port on the LDAP server. Some older LDAP servers only support this option, but this option is deprecated in most ldap servers favoring the STARTTLS method of operation. - For unencrypted connections, select `none` . No TLS/SSL connection will be established, your connection will be insecure and no verification will be made. - - [Click here to read more details into what these options mean for connection security.](https://www.rubydoc.info/gems/ruby-net-ldap/Net/LDAP) + - [Click here to read more details into what these options mean for connection security.](https://www.rubydoc.info/gems/ruby-net-ldap/Net/LDAP) - **SSL encryption options**: Provides additional options for LDAPS and STARTTLS connections. Be aware that these options do not apply for the connection encryption `none` option. @@ -49,41 +43,32 @@ In the upper section, you have to specify the connection details of your LDAP se - **LDAP server SSL certificate**: If the LDAP server's certificate is not trusted on the system that the OpenProject server runs on, you have the option to specify one or multiple PEM-encoded X509 certificates. This certificate might be the LDAP server's own certificate, or an intermediate or root CA that you trust for the sake of this connection. - -#### LDAP system user credentials +### LDAP system user credentials ![Defining the system user of the connection](ldap-system-user.png) - - Next, you will need to enter a system user that has READ access to the users for identification and synchronization purposes. Note that most operations to the LDAP during authentication will not be using these credentials, but the user-provided credentials in the login form in order to perform a regular user bind to the LDAP. - - - **Account:** The full DN of a system users used for looking up user details in the LDAP. It must have read permissions under the Base DN. This will not be used for the user bind upon authentication. - **Password:** The bind password of the system user’s DN above. - - -#### LDAP details +### LDAP details ![Defining the details of the connection](ldap-details.png) Next you can define what sections OpenProject will look for in the LDAP and also if users should be created automatically in OpenProject when they are accessing it. Let's look at the available options: - - - **Base DN**: Enter the Base DN to search within for users and groups in the LDAP tree - **Filter string**: Enter an optional [LDAP RFC4515 filter string](https://datatracker.ietf.org/doc/html/rfc4515) to further reduce the returned set of users. This allows you to restrict access to OpenProject with a very flexible filter. For group synchronization, only users matching this filter will be added as well. - **Automatic user creation:** Check to automatically create users in OpenProject when they first login in OpenProject. It will use the LDAP attribute mapping below to fill out required attributes. The user will be forwarded to a registration screen to complete required attributes if they are missing in the LDAP. -##### Filter Examples +#### Filter Examples -``` +```text (memberof=CN=OpenProject,OU=Rollen,OU=Gruppen,DC=intern) ``` -#### Attribute mapping +### Attribute mapping ![Defining the attribute map for users](ldap-attribute-mapping.png) @@ -95,25 +80,18 @@ The attribute mapping is used to identify attributes of OpenProject with attribu - **Email:** The attribute name in the LDAP that maps to the user’s mail address. This will usually be *mail.* If left empty, user will be prompted to enter upon registration if **automatic user creation** is true. - **Admin:** Specify an attribute that if it has a truthy value, results in the user in OpenProject becoming an admin account. Leave empty to never set admin status from LDAP attributes. - - Lastly, click on *Create* to save the LDAP authentication mode. You will be redirected to the index page with the created authentication mode. Click the *test* button to create a test connection using the system user’s bind credentials. ![LDAP authentication mode created](ldap-index-page.png) - - With the [OpenProject Enterprise edition](https://www.openproject.org/enterprise-edition/) it is possible to [synchronize LDAP and OpenProject groups](./ldap-group-synchronization). - ## Multiple LDAP connections OpenProject supports multiple LDAP connections to source users from. The user's authentication source is remembered the first time it is created (but can be switched in the administration backend). This ensures that the correct connection / LDAP source will be used for the user. Duplicates in the unique attributes (login, email) are not allowed and a second user with the same attributes will not be able to login. Please ensure that amongst all LDAP connections, a unique attribute is used that does not result in conflicting logins. - - ## LDAP connections through seeding / Environment variables OpenProject allows you to define an LDAP connection (and optionally, synchronized group filters for enterprise editions) through a configuration or environment variable. @@ -122,7 +100,7 @@ Please see the [advanced configuration guide](../../../installation-and-operatio ## LDAP user synchronization -By default, OpenProject will synchronize user account details (name, e-mail, login) and their account status from the LDAP through a background worker job every 24 hours. +By default, OpenProject will synchronize user account details (name, e-mail, login) and their account status from the LDAP through a background worker job every 24 hours. ### **Enable status synchronization** @@ -137,5 +115,5 @@ The user will be ensured to be active if it can be found in LDAP. Likewise, if t If for any reason, you do not wish to perform the synchronization at all, you can also remove the synchronization job from being run at all with the following variable: -- `ldap_users_disable_sync_job: true` -- (or the ENV variable `OPENPROJECT_LDAP__USERS__DISABLE__SYNC__JOB=true`) +- `ldap_users_disable_sync_job: true` +- (or the ENV variable `OPENPROJECT_LDAP__USERS__DISABLE__SYNC__JOB=true`) diff --git a/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md b/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md index 82bb9e446aa6..be22ba16c968 100644 --- a/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md +++ b/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md @@ -32,7 +32,6 @@ LDAP group synchronization augments the memberships defined by administrators i - Group synchronization have to be enabled by an administrator by creating a *synchronized LDAP group* that ties the OpenProject group to an LDAP entry. - Only synchronized memberships will be removed from the OpenProject group. If you want to add a user outside your LDAP authentication to an OpenProject group, you can safely do so without the membership being removed. - ## Configure LDAP group synchronization filters Instead of manually synchronizing groups from a given DN, you can also create filter objects that will query the LDAP not only for group members, but the groups themselves. @@ -56,8 +55,6 @@ Click on *Create* to finish the creation of the synchronized filter. This filte **Note:** If you manually create a synchronized group that is also found by a filter, its properties (such as the *Sync users* setting) is being overridden by the filter setting. - - ## Configure synchronized LDAP groups In order to get to the LDAP group sync administration pane, expand the LDAP authentication menu item in your administration. @@ -77,8 +74,6 @@ To create a new synchronized group, use the button on the top right of the page - **Sync users:** Check this option if you want members of this group to be automatically created in OpenProject. When unchecked, only members of the group that also are existing users in OpenProject can be synchronized. - **Group:** Select an OpenProject group you want the members of the LDAP group to synchronize to. - - Click on *Create* to finish the creation of the synchronized group. The LDAP memberships of each user will be synchronized hourly through a background job on your packaged installation. Changes and output will be logged to */var/log/openproject/cron-hourly.log*. If you want to trigger the synchronization *manually* you can do so by running the respective rake task directly. @@ -88,13 +83,10 @@ In the packaged installation, for instance, this would work like this: sudo openproject run bundle exec rake ldap_groups:synchronize ``` - - This method of creating synchronized groups is well-suited for a small number of groups, or a very individual set of groups that you need to synchronize. It is very flexible by allowing individual groups to synchronize users into OpenProject. If you need to synchronize a large number of groups that follow a common pattern, consider using the following filter functionality. - ## FAQ ### Are nested / recursive LDAP groups supported? @@ -104,18 +96,12 @@ However, there is a feature ticket for this in the wish list: https://community. If you'd like to voice your interest in this feature, please comment it with your use-case to provide visibility. - - ## Troubleshooting - - ### LDAP groups are not being synchronized Please double check the DN of the groups and the LDAP connection. The base DN of the LDAP connection and the DN must share a common hierarchy. Otherwise, the group DN will not be found by the connection, as the base DN is used for all subsequent queries for the lifetime of the connection. - - ### Users are not being synchronized For users to be automatically synchronized, the following conditions need to be met: diff --git a/docs/system-admin-guide/authentication/oauth-applications/README.md b/docs/system-admin-guide/authentication/oauth-applications/README.md index 9eba0bdc283c..30da9379863d 100644 --- a/docs/system-admin-guide/authentication/oauth-applications/README.md +++ b/docs/system-admin-guide/authentication/oauth-applications/README.md @@ -52,16 +52,16 @@ The authentication endpoints of OpenProject OAuth2 server are: * Auth URL: `https://example.com/oauth/authorize` * Access Token URL: `https://example.com/oauth/token` -## **Authorization code flow** example +## *Authorization code flow* example ### Request authorization code Request an authorization code. Please adopt the following URL replacing: - * `example.com` with the IP/host name of your OpenProject instance, - * `` with your OAuth2 client ID, and - * `` with the redirect URI as configured above. - * You can leave the `scope` value untouched unless you are running the OpenProject BIM edition and also plan to access to the BCF version 2.1 REST API. Then simply replace `api_v3` with `api_v3%20bcf_v2_1`. +* `example.com` with the IP/host name of your OpenProject instance, +* `` with your OAuth2 client ID, and +* `` with the redirect URI as configured above. +* You can leave the `scope` value untouched unless you are running the OpenProject BIM edition and also plan to access to the BCF version 2.1 REST API. Then simply replace `api_v3` with `api_v3%20bcf_v2_1`. `https://example.com/oauth/authorize?response_type=code&client_id=&redirect_uri=&scope=api_v3&prompt=consent` @@ -83,11 +83,11 @@ request an API token. We do this manually in the command line using cURL. Please replace: - * `example.com` with the IP/host name of your OpenProject instance, - * `` with your OAuth2 client ID, - * `` with your OAuth2 client secret, - * `` with the code you obtained above, - * and `` with the redirect URI as configured above. +* `example.com` with the IP/host name of your OpenProject instance, +* `` with your OAuth2 client ID, +* `` with your OAuth2 client secret, +* `` with the code you obtained above, +* and `` with the redirect URI as configured above. ```shell $ curl --request POST \ @@ -116,15 +116,14 @@ The response will look like this: The response contains the bearer token ("access_token") and a refresh token that you will need when working with the API. Please copy the tokens for reference. - ### Perform a request to the OpenProject API with OAuth token With the token that you obtained above you can now make API calls to the OpenProject instance on behalf of the current user. For example, the following cURL command fetches all projects from the API V3. Please replace: - * `example.com` with the IP/host name of your OpenProject instance, and - * `` with the bearer token you obtained above. +* `example.com` with the IP/host name of your OpenProject instance, and +* `` with the bearer token you obtained above. ```shell $ curl --request GET 'https://example.com/api/v3/projects' \ @@ -136,7 +135,7 @@ $ curl --request GET 'https://example.com/api/v3/projects' \ You can exercise the authentication flow above using Postman. Just create a new request: -``` +```text GET {{protocolHostPort}}/api/v3/projects ``` diff --git a/docs/system-admin-guide/authentication/openid-providers/README.md b/docs/system-admin-guide/authentication/openid-providers/README.md index 77624e5e4d09..6fb9fc175f67 100644 --- a/docs/system-admin-guide/authentication/openid-providers/README.md +++ b/docs/system-admin-guide/authentication/openid-providers/README.md @@ -7,7 +7,6 @@ keywords: OpenID providers --- # OpenID providers - | Topic | Content | | ------------------------------------------------------------ | ------------------------------------------------------------ | | [Google Workspace](#google-workspace) | How to use Google Workspace as an SSO provider for OpenProject? | @@ -33,11 +32,8 @@ You can configure the following options. When checked, users will be created according to the [self-registration setting](../authentication-settings). 6. Press the blue **create** button. - ## Google Workspace - - ### Step 1: Create the OAuth consent screen 1. Navigate to your GCP console. (https://console.cloud.google.com/) @@ -45,8 +41,6 @@ When checked, users will be created according to the [self-registration setting] ![g1-apis-and-services-oauth-consent-screen](g1-apis-and-services-oauth-consent-screen.png) - - 3. Create a new project and a new app or edit an existing project and an existing app, setting the following fields (shall be Internal): 1. **App name** (e.g. EXAMPLE.COM SSO) 2. **User support email** (e.g. user-support@example.com) @@ -60,8 +54,6 @@ When checked, users will be created according to the [self-registration setting] 4. **Scopes** - Press **SAVE AND CONTINUE** 5. **Summary** - Press **SAVE AND CONTINUE** - - ### Step 2: Create the OAuth Client 1. Under **APIs & Services**, go to **Credentials**. @@ -87,8 +79,6 @@ After pressing **CREATE** you will get a pop-up window like the following ![g5-oauth-client-created](g5-oauth-client-created.png) - - ### Step 3: Add Google as an OpenID Provider to OpenProject 1. Login as OpenProject Administrator @@ -105,10 +95,6 @@ After pressing **CREATE** you will get a pop-up window like the following ![g7-successful-creation-google](g7-successful-creation-google.png) - - - - ## Azure Active Directory ### Step 1: Register an App in Azure Active Directory @@ -119,23 +105,19 @@ The steps are as follows: Log into your Microsoft account, and go to the Azure Active Directory administration page. -![](01-menu.png) - - +![Azure Active Directory administration page](01-menu.png) In the sidebar, click on "All services". -![](02-admin-dashboard.png) +![Azure Active Directory All services](02-admin-dashboard.png) Click on the link named "App registrations". -![](03-app-registrations.png) - - +![Azure Active Directory App registrations](03-app-registrations.png) Click on "New registration". -![](04-register-app.png) +![Azure Active Directory New registration](04-register-app.png) You are now asked for a few settings: @@ -145,21 +127,19 @@ You are now asked for a few settings: When you are done, click on the "Register" button at the end of the page. You are redirected to your new App registration, be sure to save the "Application (client) ID" that is now displayed. You will need it later. -![](02-admin-dashboard-1580821056307.png) - - +![Azure Active Directory Admin Dashboard](02-admin-dashboard-1580821056307.png) You can now click on "Certificates & secret". -![](06-certificates.png) +![Azure Active Directory Certificates](06-certificates.png) Then click on "New client secret", set the description to "client_secret", and the expiration to "never". Then click on "Add". -![](07-client-secret.png) +![Azure Active Directory New Client Secret](07-client-secret.png) A secret should have been generated and is now displayed on the page. Be sure to save it somewhere because it will only be displayed once. -![](08-add-secret.png) +![Azure Active Directory Add Secret](08-add-secret.png) At the end of this step, you should have a copy of the Application client ID as well as the client Secret you just generated. @@ -214,5 +194,4 @@ exit Then, existing users should be able to log in using their Azure identity. Note that this works only if the user is using password-based authentication, and is not linked to any other authentication source (e.g. LDAP) or OpenID provider. - Note that this setting is set to true by default for new installations already. diff --git a/docs/system-admin-guide/authentication/saml/README.md b/docs/system-admin-guide/authentication/saml/README.md index bb3e15fef3ed..67d3e33962dc 100644 --- a/docs/system-admin-guide/authentication/saml/README.md +++ b/docs/system-admin-guide/authentication/saml/README.md @@ -40,8 +40,6 @@ The configuration can be provided in one of two ways: * for OpenProject version 11 and older in `config/configuration.yml` file (1.3) - - Whatever means are chosen, the plugin simply passes all options to omniauth-saml. See [their configuration documentation](https://github.com/omniauth/omniauth-saml#usage) for further details. The options are mutually exclusive. If you decide to save settings in the database, they will override any ENV variables you might have set. (*For OpenProject version 11 and older:* If settings are already provided via ENV variables, they will overwrite settings in a `configuration.yml` file.) @@ -129,8 +127,8 @@ Setting.plugin_openproject_auth_saml = Hash(Setting.plugin_openproject_auth_saml ### awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "idp_cert" => "-----BEGIN CERTIFICATE-----\nMI................IEr\n-----END CERTIFICATE-----\n", # Otherwise, the certificate fingerprint must be added - # Either `idp_cert` or `idp_cert_fingerprint` must be present! - "idp_cert_fingerprint" => "E7:91:B2:E1:...", + # Either `idp_cert` or `idp_cert_fingerprint` must be present! + "idp_cert_fingerprint" => "E7:91:B2:E1:...", # Replace with your SAML 2.0 redirect flow single sign on URL # For example: "https://sso.example.com/saml/singleSignOn" @@ -156,13 +154,11 @@ Setting.plugin_openproject_auth_saml = Hash(Setting.plugin_openproject_auth_saml }) ``` - - #### 1.3 config/configuration.yml file > **NOTE**: ONLY for OpenProject version 11 and older -In your OpenProject packaged installation, you can modify the `/opt/openproject/config/configuration.yml` file. +In your OpenProject packaged installation, you can modify the `/opt/openproject/config/configuration.yml` file. Edit the file in your favorite editor ```shell @@ -239,9 +235,9 @@ SAML responses by identity providers are required to be signed. You can configur #### 2.2 Mandatory: Attribute mapping -Use the key `attribute_statements` to provide mappings for attributes returned by the SAML identity provider's response to OpenProject internal attributes. +Use the key `attribute_statements` to provide mappings for attributes returned by the SAML identity provider's response to OpenProject internal attributes. -You may provide attribute names or namespace URIs as follows: `email: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress']`. +You may provide attribute names or namespace URIs as follows: `email: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress']`. The OpenProject username is taken by default from the `email` attribute if no explicit login attribute is present. @@ -289,7 +285,6 @@ default: last_name: ['sn'] ``` - #### 2.3 Optional: Set the attribute format By default, the attributes above will be requested with the format `urn:oasis:names:tc:SAML:2.0:attrname-format:basic`. @@ -326,8 +321,6 @@ default: last_name: ['urn:oid:2.5.4.4'] ``` - - #### 2.4 Optional: Request signature and Assertion Encryption Your identity provider may optionally encrypt the assertion response, however note that with the required use of TLS transport security, in many cases this is not necessary. You may wish to use Assertion Encryption if TLS is terminated before the OpenProject application server (e.g., on the load balancer level). @@ -371,8 +364,6 @@ default: With request signing enabled, the certificate will be added to the identity provider to validate the signature of the service provider's request. - - #### 2.5. Optional: Restrict who can automatically self-register You can configure OpenProject to restrict which users can register on the system with the [authentication self-registration setting](../authentication-settings) @@ -387,14 +378,13 @@ default: limit_self_registration: true ``` - #### 2.6. Optional: Set name_identifier_format There are a number of name identifier formats that are relevant, so if you have specific requirements or configuration on the identity provider side, you might need to set the name_identifier_format property. The default behavior would be to use the email Address like so: -``` +```yaml default: # <-- other configuration --> mysaml1: @@ -426,14 +416,10 @@ When you return from the authentication provider, you might be shown one of thes 3. You are being redirected to the account registration modal as user name or email is already taken. In this case, the account you want to authenticate already has an internal OpenProject account. You need to follow the [Troubleshooting](#troubleshooting) guide below to enable taking over that existing account. 4. You are getting an internal or authentication error message. This is often a permission or invalid certificate/fingerprint configuration. Please consult the server logs for any hints OpenProject might log there. - - ## Instructions for common SAML providers In the following, we will provide configuration values for common SAML providers. Please note that the exact values might differ depending on your idP's version and configuration. If you have additions to these variables, please use the "Edit this file" functionality in the "Docs feedback" section of this documentation. - - ### ADFS For ADFS, you need add OpenProject as a "relying part trust" entry within the ADFS management screen. Please follow this guide to be guided through the steps: https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust @@ -470,8 +456,6 @@ Add the following Claim rules: | Surname | `sn` | | Given-name | `givenName` | - - #### Export the ADFS public certificate OpenProject needs the certificate or fingerprint of the ADFS to validate the signature of incoming tokens. Here are the steps on how to do that: @@ -483,12 +467,8 @@ OpenProject needs the certificate or fingerprint of the ADFS to validate the sig - Export the file and move it to the OpenProject instance or open a shell - Run the command `awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' ` - - #### Set up OpenProject for ADFS integration - - In OpenProject, these are the variables you will need to set. Please refer to the above documentation for the different ways you can configure these variables OpenProject ```shell @@ -505,8 +485,6 @@ OPENPROJECT_SAML_SAML_ISSUER="https://" OPENPROJECT_SAML_SAML_IDP__CERT="" ``` - - ### Keycloak In Keycloak, use the following steps to set up a SAML integration OpenProject: @@ -514,23 +492,21 @@ In Keycloak, use the following steps to set up a SAML integration OpenProject: - Select or create a realm you want to authenticate OpenProject with. Remember that realm identifier. - Under "Clients" menu, click on "Create" - **Add client**: Enter the following details - - **Client ID**: `https://` + - **Client ID**: `https://` - **Client protocol**: Set to "saml" - - **Client SAML Endpoint**: `https:///auth/saml` + - **Client SAML Endpoint**: `https:///auth/saml` You will be forwarded to the settings tab of the new client. Change these settings: - Enable **Sign Documents** -- **Master SAML Processing URL**: Set to `https:///auth/saml` +- **Master SAML Processing URL**: Set to `https:///auth/saml` - **Name ID Format** Set to username - Expand section "Fine Grain SAML Endpoint Configuration" - - **Assertion Consumer Service POST Binding URL**: Set to `https:///auth/saml/callback` - - **Assertion Consumer Service Redirect Binding URL**: Set to `https:///auth/saml/callback` + - **Assertion Consumer Service POST Binding URL**: Set to `https:///auth/saml/callback` + - **Assertion Consumer Service Redirect Binding URL**: Set to `https:///auth/saml/callback` Go the "Mappers" tab and create the following mappers. Note that the "User attribute" values might differ depending on your LDAP or Keycloak configuration. - - | Mapper Type | User Attribute | Friendly Name | SAML Attribute Name | SAML Attribute NameFormat | | -------------- | -------------- | ------------- | ------------------- | ------------------------- | | User Attribute | uid | uid | uid | Basic | @@ -538,13 +514,9 @@ Go the "Mappers" tab and create the following mappers. Note that the "User attri | User Attribute | firstName | givenName | givenName | Basic | | User Attribute | email | mail | mail | Basic | - - #### Export the Keycloak public certificate -To view the certificate in Base64 encoding, go to the menu "Realm settings" and click on "Endpoints -> SAML 2.0 Identity Provider Metadata". This will open an XML file, and the certificate is stored in the `ds:X509Certificate `node under the signing key. Copy the content of the certificate (`MII.....`) - - +To view the certificate in Base64 encoding, go to the menu "Realm settings" and click on "Endpoints -> SAML 2.0 Identity Provider Metadata". This will open an XML file, and the certificate is stored in the `ds:X509Certificate` node under the signing key. Copy the content of the certificate (`MII.....`) #### Set up OpenProject for Keycloak integration @@ -567,8 +539,6 @@ OPENPROJECT_SAML_SAML_IDP__CERT=" SAML 2.0 Identity Provider Metadata". This will include URLs for the `SingleSignOnService` and `SingleLogoutService`. - - ## Troubleshooting **Q: After clicking on a provider badge, I am redirected to a signup form that says a user already exists with that login.** @@ -588,7 +558,6 @@ Then, existing users should be able to log in using their SAML identity. Note th Note that this setting is set to true by default for new installations already. - **Q: Could the users be automatically logged in to OpenProject if they are already authenticated at the SAML Identity Provider?** A: You are able to chose a default direct-login-provider in the by using environment variables @@ -599,11 +568,8 @@ OPENPROJECT_OMNIAUTH__DIRECT__LOGIN__PROVIDER="saml" [Read more](../../../installation-and-operations/configuration/#omniauth-direct-login-provider) - - **Q:** `"certificate"` **and** `"private key"` **are used in the SAML configuration and openproject logs show a FATAL error after GET "/auth/saml"** `**FATAL** -- : OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error):` -A1: The given private_key is encrypted. The key is needed without the password (cf., https://github.com/onelogin/ruby-saml/issues/473) +A1: The given private_key is encrypted. The key is needed without the password (cf., [see](https://github.com/onelogin/ruby-saml/issues/473)) A2: The provided key pair is not an RSA key. ruby-saml might expect an RSA key. - diff --git a/docs/system-admin-guide/backup/README.md b/docs/system-admin-guide/backup/README.md index 83e5e7908b39..c4350e223da9 100644 --- a/docs/system-admin-guide/backup/README.md +++ b/docs/system-admin-guide/backup/README.md @@ -29,8 +29,6 @@ The system generates the token which you then fill in where requested in the fie Each time you request a backup this token has to be provided. This also applies when requesting a backup via the API where on top of the API token the _backup token_ will have to be provided as well. - - ## Notifications Each time a _backup token_ is created or reset an email notification will be sent to all administrators take make everyone aware that there is a new user with access to backups. @@ -52,7 +50,7 @@ As a system administrator you can skip this period by running the following rake sudo openproject run rake backup:allow_now ``` -__In a docker setup you can open a terminal on any of the web or worker processes and run the rake task there.__ +**In a docker setup you can open a terminal on any of the web or worker processes and run the rake task there.** ## Pull a backup via APIv3 diff --git a/docs/system-admin-guide/calendars-and-dates/README.md b/docs/system-admin-guide/calendars-and-dates/README.md index 90e851163159..2b8c91f12f0b 100644 --- a/docs/system-admin-guide/calendars-and-dates/README.md +++ b/docs/system-admin-guide/calendars-and-dates/README.md @@ -45,15 +45,15 @@ Click on **Apply changes** at the end of the page for the changes to take effect ### Effect on scheduling -As an instance-level setting, any change here will affect the scheduling of *all work packages* in *all projects* in that instance. It is currently not possible to define working days at a project-level. +As an instance-level setting, any change here will affect the scheduling of *all work packages* in *all projects* in that instance. It is currently not possible to define working days at a project-level. However, it *is* possible to override this setting at the level of individual work packages via the date picker. For more information on how to schedule work packages on non-working days, refer to [Duration and Non-working days in the user guide](../../user-guide/work-packages/set-change-dates/#working-days-and-duration). -> **Important:** Changing this setting will reschedule work packages automatically to the next available working day after clicking on **Save**. For example, removing Friday as a working day by unchecking it will mean that work packages that included Friday will now end one day in the future, and ones that started or ended on Friday will now start and end on Monday. +> **Important:** Changing this setting will reschedule work packages automatically to the next available working day after clicking on **Save**. For example, removing Friday as a working day by unchecking it will mean that work packages that included Friday will now end one day in the future, and ones that started or ended on Friday will now start and end on Monday. > -> Depending on the number of projects and work packages in your instance, this process can take from a couple of minutes to hours. +> Depending on the number of projects and work packages in your instance, this process can take from a couple of minutes to hours. -Changing this setting is likely to cause changes to scheduling in unexpected ways, and generate a significant number of notifications for assignees, responsibles and watchers for work packages whose dates change as a result. +Changing this setting is likely to cause changes to scheduling in unexpected ways, and generate a significant number of notifications for assignees, responsibles and watchers for work packages whose dates change as a result. We only recommend changing this setting if you are absolutely sure and you are aware of the potential consequences. @@ -74,7 +74,7 @@ To change this setting, navigate to **Date format** inside of the **Calendar and 3. **Week starts on**: configure what date the week starts on (e.g. in the calendar view). Default is `Based on user's language`. You can also choose to start a week always on Mondays, Sundays or Saturdays. If you set **Week starts on**, you must also set the **First week in year contains** or you will probably get inconsistencies in week numbering in calendars and the Gantt chart. -4. **First week in year contains**: select the day that needs to be contained in the first week of the year. This value is used together with _Week starts on_ to determine the first week of the year. +4. **First week in year contains**: select the day that needs to be contained in the first week of the year. This value is used together with _Week starts on_ to determine the first week of the year. - For European ISO-8601 standard, set **Week starts on** to `Monday` and First week in year to `Thursday`. - For US and Canada, set **First week in year contains** to `Sunday` and Day of Year to `6`. - If you leave both on `Based on user's language`, the information provided by moment.js will be used: For more information, please also see [this document from moment.js](https://momentjscom.readthedocs.io/en/latest/moment/07-customization/16-dow-doy/). diff --git a/docs/system-admin-guide/colors/README.md b/docs/system-admin-guide/colors/README.md index 2e7e0439da7c..64bd93bebd48 100644 --- a/docs/system-admin-guide/colors/README.md +++ b/docs/system-admin-guide/colors/README.md @@ -7,7 +7,7 @@ keywords: colors --- # Colors -To define a set of colors in OpenProject, navigate to -> *Administration* -> *Colors*. +To define a set of colors in OpenProject, navigate to -> *Administration* -> *Colors*. You can configure a set of predefined colors in OpenProject which you can choose for e.g. [set colors for work package types](../manage-work-packages/work-package-types/) or attribute highlighting, e.g. for [status](../manage-work-packages/work-package-status/). diff --git a/docs/system-admin-guide/custom-fields/README.md b/docs/system-admin-guide/custom-fields/README.md index 4963ce43de11..65753b750435 100644 --- a/docs/system-admin-guide/custom-fields/README.md +++ b/docs/system-admin-guide/custom-fields/README.md @@ -34,20 +34,19 @@ Depending on the module, for which the new custom field is being created, sligh 3. Specify the **minimal and maximal length**. If a 0 is chosen, no restriction will be imposed on the length of the custom field. 4. **Regular expression** specifying which values are allowed for the custom field. -5. **Default value** will be used as a default value for the custom field. +5. **Default value** will be used as a default value for the custom field. 6. Set if the new custom field should be a **required** field. 7. Specify if the new custom field should be **used for all projects**. This means the custom field will be active for all projects and does not need to be activated separately per project. 8. Specify if the new custom field should be **used as a filter for work packages**. See [here](../../user-guide/work-packages/work-package-table-configuration/#filter-work-packages) how to filter work packages. 9. Specify if the new custom field should be **searchable** via the global search. 10. **Save** the new custom field. - - ## Assign a custom field to a work package type and project > **Note**: Custom fields need to be activated per work package type and per project. Work package custom fields are only visible when two conditions are met: -> 1. Custom field has been added to the work package type (form configuration). -> 2. Custom field is activated for the project. +> +> 1. Custom field has been added to the work package type (form configuration). +> 2. Custom field is activated for the project. 1. [Assign a custom field to a work package type](../manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on) (Form configuration). You can do this directly via the link in the custom field overview. @@ -65,8 +64,6 @@ To **delete** a custom field, click on the delete icon next to the respective cu ![Edit or delete a custom field in OpenProject administration](system-admin-edit-delete-custom-field.png) - - ## Create a multi-select custom field For work package custom fields of type **List** and **User** you may also select **multi-select custom fields** to select more than one value at once. diff --git a/docs/system-admin-guide/custom-fields/custom-fields-faq/README.md b/docs/system-admin-guide/custom-fields/custom-fields-faq/README.md index 9c66628f74da..06dc360b71c3 100644 --- a/docs/system-admin-guide/custom-fields/custom-fields-faq/README.md +++ b/docs/system-admin-guide/custom-fields/custom-fields-faq/README.md @@ -10,9 +10,9 @@ keywords: custom field FAQ, project custom field, create own attribute ## Is there a limit to how many values can be added to a work package custom field of the type list? -A hard limit does not exist. Nevertheless, there are factors that can represent a restriction in usability: +A hard limit does not exist. Nevertheless, there are factors that can represent a restriction in usability: -- Performance: So far, the allowed field values are all entered into the work package form retrieved before processing a work package. It is only a guess, but no problems should arise when rendering in the frontend (displaying in the select field), as an autocompleter is already used here. The performance on the administration page of the user-defined field, where the possible values are maintained, could also be a factor. +- Performance: So far, the allowed field values are all entered into the work package form retrieved before processing a work package. It is only a guess, but no problems should arise when rendering in the frontend (displaying in the select field), as an autocompleter is already used here. The performance on the administration page of the user-defined field, where the possible values are maintained, could also be a factor. - On the same administration page, editing could be difficult from a UI point of view. Especially if the user wants to sort. For example, there is currently no way to sort the values automatically. If 4000 values have to be entered and sorted, it could be a lengthy process. ## Is it possible to set a custom field as "required" when it's already in use? What will happen to the existing work packages for which the custom field is activated? diff --git a/docs/system-admin-guide/custom-fields/custom-fields-projects/README.md b/docs/system-admin-guide/custom-fields/custom-fields-projects/README.md index abc9b2aa0a2d..f27f06de32f3 100644 --- a/docs/system-admin-guide/custom-fields/custom-fields-projects/README.md +++ b/docs/system-admin-guide/custom-fields/custom-fields-projects/README.md @@ -9,6 +9,6 @@ keywords: custom fields for projects, show custom fields As a user of [OpenProject Enterprise on-premises](https://www.openproject.org/enterprise-edition/) or [OpenProject Enterprise cloud](https://www.openproject.org/enterprise-edition/#hosting-options) you can customize work package lists and show additional project information by adding custom attributes to project lists, e.g. adding accountable, project due date, progress, and more. ->**Important**: Starting with version 14.0, project custom fields are called "project attributes". Please refer to our [user guide on project attributes](../../../user-guide/project-overview) for more information. +>**Important**: Starting with version 14.0, project custom fields are called "project attributes". Please refer to our [user guide on project attributes](../../../user-guide/project-overview) for more information. > ->If you are an administrator and wish to configure project attributes, please refer to our [admin guide on project attributes](../../projects/project-attributes). \ No newline at end of file +>If you are an administrator and wish to configure project attributes, please refer to our [admin guide on project attributes](../../projects/project-attributes). diff --git a/docs/system-admin-guide/design/README.md b/docs/system-admin-guide/design/README.md index 304522980305..3da56ca75e90 100644 --- a/docs/system-admin-guide/design/README.md +++ b/docs/system-admin-guide/design/README.md @@ -26,7 +26,7 @@ The design page provides several options to customize your OpenProject Enterpris You can choose between the three default color themes for OpenProject: -* OpenProject +* OpenProject * OpenProject Light * OpenProject Dark @@ -34,8 +34,6 @@ Press the Save button to apply your changes. The theme will then be changed. ![System-admin-guide_color-theme](System-admin-guide_color-theme.png) - - ## Upload a custom logo To replace the default OpenProject logo with your own logo, make sure that your logo has the dimensions 460 by 60 pixels. Select the *Browse* button and select the file from your hard drive to upload it. @@ -64,7 +62,7 @@ When you bookmark your OpenProject environment’s URL, you will see that the up ## Advanced settings -Aside from uploading logos and icons, you can also customize the colors used within your OpenProject environment. +Aside from uploading logos and icons, you can also customize the colors used within your OpenProject environment. To do this change the color values (entered as color hex code) in the *Advanced settings* section. In order to find the right hex code for a color, you can use a website, such as [color-hex.com](https://www.color-hex.com/). You can see the selected color in the preview area next to the color hex code. Therefore, it is possible to see the selected color before saving the changes. @@ -72,4 +70,3 @@ To do this change the color values (entered as color hex code) in the *Advanced ![Advanced color settings in OpenProject](openproject_system_guide_design_advanced_settings_primer.png) As soon as you press the **Save** button your changes are applied and the colors of your OpenProject environment are adjusted accordingly. - diff --git a/docs/system-admin-guide/design/pdf-export-styles/README.md b/docs/system-admin-guide/design/pdf-export-styles/README.md index 308466235fe2..0ab461f0659b 100644 --- a/docs/system-admin-guide/design/pdf-export-styles/README.md +++ b/docs/system-admin-guide/design/pdf-export-styles/README.md @@ -22,6 +22,7 @@ Properties to set borders Key: `border` Example: + ```yaml border_color: F000FF border_color_top: 000FFF @@ -58,6 +59,7 @@ Styling for the cover page of the PDF report export Key: `cover` Example: + ```yaml cover: header: {} @@ -78,6 +80,7 @@ Styling for the cover page footer of the PDF report export Key: `cover_footer` Example: + ```yaml footer: offset: 20 @@ -97,6 +100,7 @@ Styling for the cover page header of the PDF report export Key: `cover_header` Example: + ```yaml header: logo_height: 25 @@ -118,6 +122,7 @@ Styling for the cover page header border of the PDF report export Key: `cover_header_border` Example: + ```yaml border: color: d3dee3 @@ -140,6 +145,7 @@ Styling for the hero banner at the bottom at the cover page Key: `cover_hero` Example: + ```yaml header: padding_right: 150 @@ -164,6 +170,7 @@ Properties to set the font style Key: `font` Example: + ```yaml font: OpenSans size: 10 @@ -201,6 +208,7 @@ Properties to set margins Key: `margin` Example: + ```yaml margin: 10mm margin_top: 15mm @@ -221,6 +229,7 @@ Styling a clickable link Key: `link` Example: + ```yaml link: color: '000088' @@ -237,6 +246,7 @@ Styling for content of work package description and long text custom fields Key: `markdown` Example: + ```yaml markdown: font: {} @@ -290,6 +300,7 @@ Styling to denote a paragraph as quote Key: `blockquote` Example: + ```yaml blockquote: background_color: f4f9ff @@ -320,6 +331,7 @@ Styling to denote a word or phrase as code Key: `code` Example: + ```yaml code: font: Consolas @@ -337,6 +349,7 @@ Styling to denote a paragraph as code Key: `codeblock` Example: + ```yaml codeblock: background_color: F5F5F5 @@ -360,6 +373,7 @@ codeblock: Key: `header` Example: + ```yaml header: styles: @@ -389,6 +403,7 @@ Tables without or empty header rows can be styled differently. Key: `headless_table` Example: + ```yaml headless_table: auto_width: true @@ -411,6 +426,7 @@ Styling for horizontal lines Key: `hrule` Example: + ```yaml hrule: line_width: 1 @@ -428,6 +444,7 @@ Styling of images Key: `image` Example: + ```yaml image: max_width: 50mm @@ -451,6 +468,7 @@ image: Key: `ordered_list` Example: + ```yaml ordered_list: spacing: 2mm @@ -469,6 +487,7 @@ ordered_list: Key: `ordered_list_point` Example: + ```yaml ordered_list_point: template: "." @@ -492,6 +511,7 @@ A block of text Key: `paragraph` Example: + ```yaml paragraph: align: justify @@ -509,6 +529,7 @@ paragraph: Key: `table` Example: + ```yaml table: auto_width: true @@ -534,6 +555,7 @@ table: Key: `task_list_point` Example: + ```yaml task_list_point: checked: "☑" @@ -553,6 +575,7 @@ task_list_point: Key: `unordered_list` Example: + ```yaml unordered_list: spacing: 1.5mm @@ -571,6 +594,7 @@ unordered_list: Key: `unordered_list_point` Example: + ```yaml unordered_list_point: sign: "•" @@ -590,6 +614,7 @@ Styling for the PDF table export Key: `overview` Example: + ```yaml overview: group_heading: {} @@ -608,6 +633,7 @@ Styling for the group label if grouping is activated Key: `group_heading` Example: + ```yaml group_heading: size: 11 @@ -626,6 +652,7 @@ group_heading: Key: `table` Example: + ```yaml table: subject_indent: 0 @@ -659,6 +686,7 @@ Properties to set paddings Key: `padding` Example: + ```yaml padding: 10mm padding_top: 15mm @@ -677,6 +705,7 @@ padding_top: 15mm Key: `page_footer` Example: + ```yaml page_footer: offset: -30 @@ -694,6 +723,7 @@ page_footer: Key: `page_header` Example: + ```yaml page_header: align: left @@ -714,6 +744,7 @@ The main page title heading Key: `page_heading` Example: + ```yaml page_heading: size: 14 @@ -734,6 +765,7 @@ Styling for logo image in the page header. Key: `page_logo` Example: + ```yaml page_logo: height: 20 @@ -753,6 +785,7 @@ Properties to set the basic page settings Key: `page` Example: + ```yaml page: page_size: EXECUTIVE @@ -780,6 +813,7 @@ Styling for a table cell Key: `table_cell` Example: + ```yaml table_cell: size: 9 @@ -801,6 +835,7 @@ Styling for a table header cell Key: `table_header` Example: + ```yaml table_header: size: 9 @@ -821,6 +856,7 @@ Styling for the table of content of the PDF report export Key: `toc` Example: + ```yaml toc: subject_indent: 4 @@ -856,6 +892,7 @@ Default styling for TOC items on all levels.
use item_level_x` as key for TO Key: `item` Example: + ```yaml item: size: 9 @@ -882,6 +919,7 @@ Key: `item_level_x` Key: `title` Example: + ```yaml title: max_height: 30 @@ -902,6 +940,7 @@ title: Key: `subheading` Example: + ```yaml subheading: max_height: 30 @@ -921,6 +960,7 @@ subheading: Key: `heading` Example: + ```yaml heading: spacing: 10 @@ -942,6 +982,7 @@ Styling for the Work package section Key: `work_package` Example: + ```yaml work_package: margin_bottom: 20 @@ -972,6 +1013,7 @@ Styling for the Work package attributes table Key: `attributes_table` Example: + ```yaml attributes_table: margin_bottom: 10 @@ -1002,6 +1044,7 @@ Label headline for work package description and long text custom fields Key: `markdown_label` Example: + ```yaml markdown_label: size: 12 @@ -1023,6 +1066,7 @@ Margins for work package description and long text custom fields Key: `markdown_margin` Example: + ```yaml markdown_margin: margin_bottom: 16 @@ -1039,6 +1083,7 @@ Styling for the Work package subject headline Key: `subject` Example: + ```yaml subject: size: 10 @@ -1047,16 +1092,17 @@ subject: margin_bottom: 10 ``` -| Key | Description | Data type | -| - | - | - | -| … | See [Font properties](#font-properties) | | -| … | See [Margin properties](#margin-properties) | | +| Key | Description | Data type | +|-----|---------------------------------------------|-----------| +| … | See [Font properties](#font-properties) | | +| … | See [Margin properties](#margin-properties) | | ## Work package subject level Key: `subject_level_x` Example: + ```yaml subject_level_1: size: 14 @@ -1076,6 +1122,7 @@ subject_level_3: | - | - | - | | … | See [Font properties](#font-properties) | | | … | See [Margin properties](#margin-properties) | | + ## Units available units are diff --git a/docs/system-admin-guide/emails-and-notifications/README.md b/docs/system-admin-guide/emails-and-notifications/README.md index 39b9198c2090..1f83d42c286f 100644 --- a/docs/system-admin-guide/emails-and-notifications/README.md +++ b/docs/system-admin-guide/emails-and-notifications/README.md @@ -41,7 +41,7 @@ Configure your notification email header and footer which will be sent out for e 1. **Formulate header and/or footer** for the email notifications. These are used for all the email notifications from OpenProject (e.g. when creating a work package). 2. **Choose a language** for which the email header and footer will apply. -3. **Send a test email**. Please note: This test email does *not* test the notifications for work package changes etc. Find out more in [this FAQ](../../installation-and-operations/installation-faq/#i-dont-receive-emails-test-email-works-fine-but-not-the-one-for-work-package-updates). +3. **Send a test email**. Please note: This test email does *not* test the notifications for work package changes etc. Find out more in [this FAQ](../../installation-and-operations/installation-faq/#i-dont-receive-emails-test-email-works-fine-but-not-the-one-for-work-package-updates-what-can-i-do). 4. Do not forget to **save** your changes. ## Incoming emails settings diff --git a/docs/system-admin-guide/enumerations/README.md b/docs/system-admin-guide/enumerations/README.md index c756bcd7c82f..055591a30db0 100644 --- a/docs/system-admin-guide/enumerations/README.md +++ b/docs/system-admin-guide/enumerations/README.md @@ -8,12 +8,9 @@ keywords: enumerations, time tracking, priority, document categories # Manage Enumerations
-**Enumerations** is a menu item in admin settings that allows the configuration of Activities (for time tracking), project status and work package priorities. +**Enumerations** is a menu item in admin settings that allows the configuration of Activities (for time tracking), project status and work package priorities.
- - - To get an overview of existing enumeration values for all of these categories, navigate to *Administration -> Enumerations*. You will see the enumerations overview, divided into respective sections. ![enumerations](image-20200122161732016.png) @@ -40,6 +37,4 @@ You will then be able to name the value, activate it and choose if it should be To **change the color of work package priorities** choose the respective priority in the section Work package priorities. - - -> **Note**: To activate the [Activities for time tracking](../../user-guide/projects/project-settings/activities-time-tracking) in a certain project, navigate to *Project settings -> Time tracking activities*. +> **Note**: To activate the [Activities for time tracking](../../user-guide/projects/project-settings/activities-time-tracking) in a certain project, navigate to *Project settings -> Time tracking activities*. diff --git a/docs/system-admin-guide/file-storages/README.md b/docs/system-admin-guide/file-storages/README.md index 0f6d50e0fb3f..57cdb6a5eaf2 100644 --- a/docs/system-admin-guide/file-storages/README.md +++ b/docs/system-admin-guide/file-storages/README.md @@ -8,7 +8,7 @@ keywords: file storages, Nextcloud setup, Nextcloud integration, OneDrive setup, # File storages -You can connect your OpenProject installation to Nextcloud or OneDrive/SharePoint. To do that navigate to **Administration** -> **Settings** -> **File storages** and select the respective option. +You can connect your OpenProject installation to Nextcloud or OneDrive/SharePoint. To do that navigate to **Administration** -> **Settings** -> **File storages** and select the respective option. You need to have administrator rights to be able to setup the integration. @@ -35,4 +35,3 @@ For instructions on using the integration after the setup has been complete plea ## File storage troubleshooting For troubleshooting guidance related to file storages, visit the [File storage troubleshooting](./file-storage-troubleshooting) page. Here you will find possible explanations and suggested solutions. If you encounter any challenges not addressed here, do not hesitate to reach out to the [OpenProject community](https://community.openproject.org/projects/openproject/forums) or [support team](https://www.openproject.org/contact/) for further assistance. - diff --git a/docs/system-admin-guide/initial-setup/README.md b/docs/system-admin-guide/initial-setup/README.md index 985e43933da4..65ec20b338d2 100644 --- a/docs/system-admin-guide/initial-setup/README.md +++ b/docs/system-admin-guide/initial-setup/README.md @@ -11,8 +11,6 @@ keywords: initial setup, initial configuration in frontend This section will guide you through some basic recommendations for setting up your OpenProject instance as a system administrator and for preparing it for its users. For the backend setup and initial technical configurations for on-premise editions please have a look at the [respective section](../../installation-and-operations/installation/packaged/#initial-configuration) in the installation guide. - - Before adding users we recommend to check and configure the following topics: | Topic | What to set up | diff --git a/docs/system-admin-guide/integrations/README.md b/docs/system-admin-guide/integrations/README.md index 7e066f0639fe..5221d4653968 100644 --- a/docs/system-admin-guide/integrations/README.md +++ b/docs/system-admin-guide/integrations/README.md @@ -53,9 +53,9 @@ OpenProject offers an integration with OneDrive/Sharepoint for file storage and ## Slack There is a rudimentary OpenProject Slack integration from the community. It messages a configured Slack channel, every time a Work Package or Wiki site is modified. This integration is not officially supported by OpenProject. -To activate it in the Enterprise cloud please [get in touch](https://www.openproject.org/contact/). For the Enterprise on-premises edition and the Community edition you can find the plugin and its documentation on GitHub: [OpenProject Slack plugin](https://github.com/opf/openproject-slack) +To activate it in the Enterprise cloud please [get in touch](https://www.openproject.org/contact/). For the Enterprise on-premises edition and the Community edition you can find the plugin and its documentation on GitHub: [OpenProject Slack plugin](https://github.com/opf/openproject-slack) -## Testuff +## Testuff There is an OpenProject integration with Testuff. Please note that it was developed directly by Testuff and we do not provide any support for it. You can find it [here](https://testuff.com/product/help/openproject/). @@ -65,7 +65,7 @@ There is an OpenProject integration with Thunderbird from the Community. Please ## 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. +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 @@ -73,7 +73,7 @@ Currently, there is no direct integration between OpenProject and Timesheet. If ## Time Tracker for OpenProject -[Time Tracker](https://open-time-tracker.com/) is a mobile app that records time spent on tasks and logs it to your OpenProject instance. We provide a [short instruction](../../user-guide/time-and-costs/time-tracking/time-tracker-integration/) how to set it up and use it. Please keep in mind that it is not developed by OpenProject and is not supported by us. +[Time Tracker](https://open-time-tracker.com/) is a mobile app that records time spent on tasks and logs it to your OpenProject instance. We provide a [short instruction](../../user-guide/time-and-costs/time-tracking/time-tracker-integration/) how to set it up and use it. Please keep in mind that it is not developed by OpenProject and is not supported by us. ## Toggl diff --git a/docs/system-admin-guide/integrations/excel-synchronization/README.md b/docs/system-admin-guide/integrations/excel-synchronization/README.md index e9576ea99dc8..d78bbbbc1a06 100644 --- a/docs/system-admin-guide/integrations/excel-synchronization/README.md +++ b/docs/system-admin-guide/integrations/excel-synchronization/README.md @@ -50,7 +50,6 @@ Unfortunately, there is no way to create relation with translated terms via API - ## Step-by-step guide ### Setting-up the Excel list @@ -73,14 +72,10 @@ Unfortunately, there is no way to create relation with translated terms via API ![Enable-content-and-macros](Enable-content-and-macros-1594297486714.png) - - 7. Enter settings (URL and API-Token) and choose a project (and optional a work package query) which you want to synchronize your data with. ![Choose-project-900x479@2x](Choose-project-900x479@2x.png) - - **URL**: the URL of your OpenProject instance. **API-Token**: can be generated within your OpenProject installation ->*My Account* -> *Access token*. Generate a new API token and copy & paste it to this form. **Project**: this is the project identifier which can be found within the project you want to synchronize -> *Project settings* -> *Information*. It is also shown in the URL if you open a project. @@ -105,14 +100,10 @@ Copy and paste all data accordingly from your existing Excel list to this sheet. ![Select-columns](Select-columns.png) - - 11. Important: **Ctrl + B** will open the synchronization module to choose between the following options: ![Ctrl-B](Ctrl-B.png) - - **Download work packages**: initially downloads all work packages from the selected project (and query). **Upload / update work packages**: makes changes to the work packages, e.g. adding new work packages or changing any information. This option needs to be chosen in order to initially import and existing Excel list. **Show chosen project**: Opens the settings to adapt URL, API key, project or query ID. @@ -121,8 +112,6 @@ Congratulations! You can now synchronize your data between Excel and OpenProject ![Excel-OpenProject-synch-900x630@2x](Excel-OpenProject-synch-900x630@2x.png) - - 12. To synchronize hierarchies (Parent and child relations), insert the column **Parent** within the header of the Excel Sheet as described above (screen 10). To add or edit a new parent-child relation, you have two possibilities: @@ -139,8 +128,6 @@ Click *OK* when the screen for the Search characters (screen 13) appears. The ID ![Search-character-parent](Search-character-parent.png) - - Pressing **Cancel** will ignore the Hierarchy – no matter what has been inserted. This is relevant for option B: **B)** you can edit the IDs in the parent column manually. If you have edited the IDs manually in the parent column, just click *Cancel* when the above Search character option (screen 13) appears. Then, the hierarchy will be updated according to the IDs in the column *Parent*. @@ -149,6 +136,4 @@ Pressing **Cancel** will ignore the Hierarchy – no matter what has been insert ![Parent-child-OpenProject](Parent-child-OpenProject.png) - - Hopefully, this will save you lots of time to import all your old Excel To-Do lists and get started with OpenProject for project management. diff --git a/docs/system-admin-guide/integrations/github-integration/README.md b/docs/system-admin-guide/integrations/github-integration/README.md index fff564826bc6..acc4ece9428b 100644 --- a/docs/system-admin-guide/integrations/github-integration/README.md +++ b/docs/system-admin-guide/integrations/github-integration/README.md @@ -126,9 +126,8 @@ The **Payload URL** must point to your OpenProject server's GitHub webhook endpo Now you need the API key you copied earlier. Append it to the *Payload URL* as a simple GET parameter named `key`. In the end the URL should look something like this: -``` -https://myopenproject.com/webhooks/github?key=42 -``` +`https://myopenproject.com/webhooks/github?key=42` + _Earlier version may have used the `api_key` parameter. In OpenProject 10.4, it is `key`._ Now the integration is set up on both sides and you can use it. diff --git a/docs/system-admin-guide/integrations/gitlab-integration/README.md b/docs/system-admin-guide/integrations/gitlab-integration/README.md index 5b172b334151..2dd08e73e522 100644 --- a/docs/system-admin-guide/integrations/gitlab-integration/README.md +++ b/docs/system-admin-guide/integrations/gitlab-integration/README.md @@ -30,14 +30,16 @@ Merge request activities will also show up in the Activity tab when the merge re ![GitLab comments on work package activity tab](openproject-system-guide-gitlab-integration-activity-tab.png) ## Configuration + You will first have to configure both OpenProject and GitLab for the integration to work. ### OpenProject + First you will need to create a user in OpenProject that has the permission to make comments. This role only requires two permissions, *View work packages* and *Add notes*, which you will find in the **Work packages and Gantt charts** section under [**Roles and Permissions**](../../users-permissions/roles-permissions/). ![GitLab role with required permissions in OpenProject](openproject-system-guide-gitlab-integration-role.png) -This user will then have to be **added to each project** with a role that allows them to see work packages and comment on them. +This user will then have to be **added to each project** with a role that allows them to see work packages and comment on them. ![GitLab user added as member to project with respective role](openproject-system-guide-gitlab-integration-project-member.png) @@ -48,7 +50,7 @@ Once the user is created you need to generate an OpenProject API token for this 3. Go to [*Access Tokens*](../../../getting-started/my-account/#access-tokens) 4. Click on **+ API token** -> Make sure you copy the generated key and securely save it, as you will not be able to retrieve it later. +> Make sure you copy the generated key and securely save it, as you will not be able to retrieve it later. You can then configure the necessary webhook in [GitLab](#gitlab). @@ -56,7 +58,7 @@ Finally you will need to activate the GitLab module under [Project settings](../ ![Activate a GitLab module in OpenProject](openproject-system-guide-gitlab-integration-project-modules.png) -Seeing the **GitLab** tab requires **Show GitLab content** permission, so this permission needs to be granted to all roles in a project allowed to see the tab. +Seeing the **GitLab** tab requires **Show GitLab content** permission, so this permission needs to be granted to all roles in a project allowed to see the tab. ![Grant permission to show GitLab content to user roles in OpenProject](openproject-system-guide-gitlab-integration-gitlab-content-role-permission.png) @@ -70,9 +72,7 @@ You need to configure the **URL** . It must point to your OpenProject server's G You will need the API key you copied earlier in OpenProject. Append it to the *URL* as a simple GET parameter named `key`. In the end the URL should look something like this: -``` -https://myopenproject.com/webhooks/gitlab?key=4221687468163843 -``` +`https://myopenproject.com/webhooks/gitlab?key=4221687468163843` > **Note**: For the events that should be triggered by the webhook, please select the following > @@ -82,15 +82,17 @@ https://myopenproject.com/webhooks/gitlab?key=4221687468163843 > - Merge request events > - Pipeline events ->**Note**: If you are in a local network you might need to allow requests to the local network in your GitLab instance. ->You can find this settings in the **Outbound requests** section when you navigate to **Admin area -> Settings -> Network**. +> **Note**: If you are in a local network you might need to allow requests to the local network in your GitLab instance. +> You can find this settings in the **Outbound requests** section when you navigate to **Admin area -> Settings -> Network**. We recommend that you enable the **SSL verification** before you **Add webhook**. Now the integration is set up on both sides and you can use it. ## Using GitLab integration + ### Create merge requests + As merge requests are based on branches, a new branch needs to be created first. For that, open the GitLab tab in your OpenProject work package detailed view. Click on **Git snippets** to extend the menu. First, copy the branch name by clicking the corresponding button. ![Copy the branch name for GitLab in OpenProject](openproject-system-guide-gitlab-integration-branch-name.png) @@ -111,7 +113,7 @@ Once you are satisfied with the changes you can create a commit. Within the 'Git ![Copy a Git commit message in OpenProject](openproject-system-guide-gitlab-integration-git-snippets-commit-message.png) -A URL pointing to a work package in the merge request description or a comment will link the two. The link needs to be in the MR and not in a commit, but GitLab will use the first commit message as the proposed branch description (as long as there is only one commit). Alternatively you can also use 'OP#' as a work package reference in an issue or a MR title, in this case "OP#388", where 388 is the ID of the work package. +A URL pointing to a work package in the merge request description or a comment will link the two. The link needs to be in the MR and not in a commit, but GitLab will use the first commit message as the proposed branch description (as long as there is only one commit). Alternatively you can also use 'OP#' as a work package reference in an issue or a MR title, in this case "OP#388", where 388 is the ID of the work package. ![Commit message in a Git client](openproject-system-guide-gitlab-integration-commit-message-in-client.png) @@ -143,16 +145,16 @@ If the status of a merge request changes, it will be reflected in the OpenProjec ### Link issues -OpenProject GitLab integration allows linking GitLab issues directly with OpenProject work packages. +OpenProject GitLab integration allows linking GitLab issues directly with OpenProject work packages. -Initially when no issues were linked yet you will see the following message under **GitLab** tab. +Initially when no issues were linked yet you will see the following message under **GitLab** tab. -![](openproject-system-guide-gitlab-integration-no-issues.png) +![Gitlab no link issues](openproject-system-guide-gitlab-integration-no-issues.png) -You can either create a new issue in GitLab, or edit an already existing one. Enter the code **OP#388** into the issue title or description to create the link between the GitLab issue and the OpenProject work package. In this case 388 is the work package ID. +You can either create a new issue in GitLab, or edit an already existing one. Enter the code **OP#388** into the issue title or description to create the link between the GitLab issue and the OpenProject work package. In this case 388 is the work package ID. ![Link a GitLab issue to OpenProject work package](openproject-system-guide-gitlab-integration-gitlab-issue.png) -Once you save your changes or create a GitLab issue, it will become visible under the **GitLab** tab in OpenProject. +Once you save your changes or create a GitLab issue, it will become visible under the **GitLab** tab in OpenProject. ![New GitLab issues shown in OpenProject work packages](openproject-system-guide-gitlab-integration-new-issues.png) diff --git a/docs/system-admin-guide/integrations/integrations-faq/README.md b/docs/system-admin-guide/integrations/integrations-faq/README.md index 1bb7a2d27abd..3b3f509ad816 100644 --- a/docs/system-admin-guide/integrations/integrations-faq/README.md +++ b/docs/system-admin-guide/integrations/integrations-faq/README.md @@ -24,4 +24,4 @@ For Enterprise cloud please contact support to have it activated in your instanc ## Can I migrate or synchronize boards from e.g. MS Project to OpenProject? -You can synchronize the work packages in your board using the [Excel synchronization](../excel-synchronization). However, the boards themselves (the structure you built) can't be synced. \ No newline at end of file +You can synchronize the work packages in your board using the [Excel synchronization](../excel-synchronization). However, the boards themselves (the structure you built) can't be synced. diff --git a/docs/system-admin-guide/integrations/nextcloud/README.md b/docs/system-admin-guide/integrations/nextcloud/README.md index aa4ea7617d89..8a8354e94757 100644 --- a/docs/system-admin-guide/integrations/nextcloud/README.md +++ b/docs/system-admin-guide/integrations/nextcloud/README.md @@ -33,11 +33,11 @@ OpenProject makes significant efforts to ensure that the integration works with - OpenProject [latest release](https://www.openproject.org/docs/release-notes/). - The latest version of the [OpenProject Integration Nextcloud app](https://apps.nextcloud.com/apps/integration_openproject) from the Nextcloud App Store. -- Nextcloud version in the latest `stable` version. - - If you run Nextcloud in the community edition be careful to not +- Nextcloud version in the latest `stable` version. + - If you run Nextcloud in the community edition be careful to not blindly follow the update hints in the administration area of a Nextcloud instance, as they nudge you to use the `latest` version, which might not be the latest `stable` version. We recommend to check the [tags of Nextcloud's official - Docker image](https://hub.docker.com/_/nextcloud). There you can see which version is currently the stable one. + Docker image](https://hub.docker.com/_/nextcloud). There you can see which version is currently the stable one. - If you installed Nextcloud via Docker then we advise you to pin it to a `stable` tag. ## Set up the integration @@ -47,16 +47,15 @@ OpenProject makes significant efforts to ensure that the integration works with Watch this video to find out how to set up the Nextcloud integration as an Administrator and as a user. - -#### 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. -Navigate to the Nextcloud app store by clicking on *your avatar in the top right corner → Apps*. +Navigate to the Nextcloud app store by clicking on *your avatar in the top right corner → Apps*. ![Go to the Nextcloud app store ](apps-in-top-right-menu.png) -On the left menu, click on **Integration** and look for the "[OpenProject Integration](https://apps.nextcloud.com/apps/integration_openproject)" app. +On the left menu, click on **Integration** and look for the "[OpenProject Integration](https://apps.nextcloud.com/apps/integration_openproject)" app. You can also use the search field in the top right corner and type "OpenProject" to find it. Once you have found the app, click the **Download and enable** button. @@ -68,13 +67,13 @@ In the configuration page that appears, you'll see a blank text field titled **O ![Enter your OpenProject instance URL in the OpenProject host field](3_2_01-NC_Step_1.png) -Click on the **Save** button. +Click on the **Save** button. > **Note:** If the OpenProject host cannot be added, you may check the [Troubleshooting](#troubleshooting) section at the bottom of this page -The next part of the setup will require you to enter OpenProject OAuth values here, but before we do that, you will need to generate them in OpenProject. To do so, navigate to your OpenProject instance in a new browser tab. +The next part of the setup will require you to enter OpenProject OAuth values here, but before we do that, you will need to generate them in OpenProject. To do so, navigate to your OpenProject instance in a new browser tab. -#### 2. Create a Nextcloud file storage in your OpenProject instance +### 2. Create a Nextcloud file storage in your OpenProject instance Navigate to your administration settings page by clicking on *your avatar in the top right corner → Administration*. From the side menu on the left, click on **File storages**. @@ -84,9 +83,9 @@ Click on **+ Storage** to add a new file storage. A new page titled **New storage** will appear, where you will be able to configure your new Nextcloud storage. -By default, **Provider type** is set to Nextcloud. This does not need to be modified. +By default, **Provider type** is set to Nextcloud. This does not need to be modified. -Give a **name** to this new storage. This will be visible to all users in all projects using this file storage. We highly recommended choosing a distinct name that allows users to differentiate it from any other file storages you may add in the future. +Give a **name** to this new storage. This will be visible to all users in all projects using this file storage. We highly recommended choosing a distinct name that allows users to differentiate it from any other file storages you may add in the future. Next, enter the **Host URL** of your Nextcloud instance. This is simply the address of your Nextcloud instance, including the "https://". @@ -94,7 +93,7 @@ Next, enter the **Host URL** of your Nextcloud instance. This is simply the addr Click on **Save and continue setup**. Your new storage is now created, but before you can use it, you will need to exchange OAUth IDs and secrets between your Nextcloud and OpenProject instances. You will do this in the next step. -#### 3. Enter OpenProject OAuth values in Nextcloud settings +### 3. Enter OpenProject OAuth values in Nextcloud settings At this point, you will see a page titled **OpenProject OAuth application details**. @@ -102,19 +101,17 @@ Note that OpenProject has automatically generated an OAuth **client ID** and a * > **Important**: These generated values are not accessible again after you close the window. Please do not navigate away from this page before copying them over to Nextcloud, as instructed below. Treat these values with care, as you would an important password. Please do not reveal them to anyone else. - - ![OpenProject generates OAuth values to copy over to Nextcloud](OP-OAuth-values.png) Go back to the browser tab where you were configuring the **OpenProject Integration** app. (We recommend you have two browser tabs open: the current one with OpenProject and the former one with Nextcloud). -Copy the two generated values (client ID and secret) from the OpenProject tab to the respective fields in Nextcloud, namely **OpenProject OAuth client ID** and **OpenProject OAuth client secret**. +Copy the two generated values (client ID and secret) from the OpenProject tab to the respective fields in Nextcloud, namely **OpenProject OAuth client ID** and **OpenProject OAuth client secret**. ![OAuth values generated by OpenProject are entered into Nextcloud app configuration](3_2_03-NC_Step_2.png) Once you have copied the values, click on **Save** to proceed to the next step. -#### 4. Enter Nextcloud OAuth values in OpenProject +### 4. Enter Nextcloud OAuth values in OpenProject In the page that appears, you will see new OAuth values that are once again generated automatically, but this time by Nextcloud. @@ -124,13 +121,13 @@ Much like in the previous step, you will need to copy these two generated values ![Nextcloud also generates OAuth values that need to be copied to OpenProject](3_2_04-NC_Step_3.png) -Navigate back to your OpenProject tab and click on the **Done. Continue setup** button on the screen you previously left it at. You will now see a screen where you will be able to enter the Nextcloud values. +Navigate back to your OpenProject tab and click on the **Done. Continue setup** button on the screen you previously left it at. You will now see a screen where you will be able to enter the Nextcloud values. ![OpenProject_NC_OAuth_values](openproject-oauth.png) Once you have entered the client ID and client secrets on this page, click on **Save and continue setup**. -#### 5. Automatically managed folders +### 5. Automatically managed folders As a last step, you will be asked if you want to use automatically managed folders. If you choose this option, OpenProject will automatically create project folders in Nextcloud and manage permissions such that all project members always have the necessary access privileges. Unless you already have a particular folder structure in place, we recommend choosing this option. @@ -152,17 +149,16 @@ The **OpenProject Integration** page on your Nextcloud tab should also indicate ![Integration successfully set up on the Nextcloud end, three green checks visible](nc-complete_setup.png) -The integration is now complete, and your OpenProject and Nextcloud instances are ready to share information. +The integration is now complete, and your OpenProject and Nextcloud instances are ready to share information. Additional settings on this page also allow you, as an administrator, to define default settings for options that are available to each user. These can of course be overridden by a user to their liking: ![Admin settings to configure default settings for all users](NC_admin-defaults-user-options.png) -- **Enable navigation link** displays a link to the OpenProject instance in the Nextcloud header -- **Enable unified search for tickets** allows users to search for OpenProject work packages via the universal search bar in Nextcloud +- **Enable navigation link** displays a link to the OpenProject instance in the Nextcloud header +- **Enable unified search for tickets** allows users to search for OpenProject work packages via the universal search bar in Nextcloud - -#### 6. Add your new Nextcloud file storage to a project +### 6. Add your new Nextcloud file storage to a project Now that the integration is set up, the next step is to make the Nextcloud file storage you just created available to individual projects. @@ -180,10 +176,9 @@ If you wish to reset OAuth values for any reason, you can do so on either side b ![A dialogue asking the user to confirm they want to replace OpenProject OAuth values](3_4_03-OP_Replace_Alert.png) - ## Delete a Nextcloud file storage -You can delete a Nextcloud file storage either at a project level or at an instance-level. +You can delete a Nextcloud file storage either at a project level or at an instance-level. Deleting a file storage at a project level simply makes it unavailable to that particular project, without affecting the integration for other projects. Project admins can do so by navigating to *Project settings → File storages* and clicking the **delete** icon next to the file storage you would like to remove. @@ -195,14 +190,10 @@ Deleting a file storage at an instance level deletes the Nextcloud integration c > **Important:** Deleting a file storage as an instance administrator will also delete all settings and links between work packages and Nextcloud files/folders. This means that should you want to reconnect your Nextcloud instance with OpenProject, will need complete the entire setup process once again. - - ## 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 to link Nextcloud files to work packages in OpenProject and access linked work packages in Nextcloud, please refer to the [Nextcloud integration guide](../../../user-guide/file-management/nextcloud-integration/). - - ## Troubleshooting ### Setting up OpenProject in Nextcloud @@ -211,10 +202,9 @@ Once the file storage is added and enabled for projects, your users are able to On Nextcloud inside the _OpenProject Integration_ App, when adding the OpenProject host, it shows the error **"Please enter a valid OpenProject hostname"**. There are multiple reasons that can cause the error; -- The host address could be wrong. Please check in a separate browser tab that the URL that you have provided is correct. OpenProject should load. +- The host address could be wrong. Please check in a separate browser tab that the URL that you have provided is correct. OpenProject should load. - If your Nextcloud and OpenProject servers are both in a local network, it might be necessary to explicitly [allow local remote servers in Nextcloud](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html) by setting a system configuration via your Nextcloud command line. This allows Nextcloud to connect to other local servers. Use the command `sudo -u www-data php occ config:system:set allow_local_remote_servers --value 1` in order to enable the setting for Nextcloud. - Your Nextcloud server does not have access to the OpenProject server. To test the connection between Nextcloud and OpenProject, you can use the following command on your Nextcloud server's command line: - ```shell curl https://openproject.example.com ``` @@ -257,8 +247,7 @@ If you are facing any of the aforementioned errors while trying to set up the `P - Enable the _OpenProject Integration_ App - Set up the project folders again - -If you do care about the `OpenProject` user/group/folder data then the conditions that bring the project folder setup to error state, and its possible solutions are as listed below: +If you do care about the `OpenProject` user/group/folder data then the conditions that bring the project folder setup to error state, and its possible solutions are as listed below: - User `OpenProject` doesn't exist. Please check if the user exists, if not create a user named `OpenProject` with username and display name `OpenProject`, some secure random password, email is not necessary. - Group `OpenProject` doesn't exist. Please check if the group exists, if not create a group named `OpenProject`. @@ -275,11 +264,11 @@ If you do care about the `OpenProject` user/group/folder data then the condition If you face an error while trying to delete or disable user/group "OpenProject" then that's because user/group is protected by the _OpenProject Integration_ App. If you really need to delete the user or group follow these steps: -1. Disable the _OpenProject Integration_ App +1. Disable the _OpenProject Integration_ App **Note**: Disabling and enabling the app is safe. No app data will be deleted. 2. Remove user `OpenProject` 3. Remove group `OpenProject` -4. Inside the _Group folders_ App (*Administration settings → Administration → Group folders*), remove group folder `OpenProject`. +4. Inside the _Group folders_ App (*Administration settings → Administration → Group folders*), remove group folder `OpenProject`. **Caution: this step will delete all files in that folder. Make sure to make a copy if you want to keep these files!** 5. Enable the _OpenProject Integration_ App @@ -302,6 +291,7 @@ On OpenProject inside the storage administration (*Administration → File stora ```json {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"version":{"major":24,"minor":0,"micro":6,"string":"24.0.6","edition":"","extendedSupport":false},"capabilities":{"bruteforce":{"delay":0},"metadataAvailable":{"size":["\/image\\\/.*\/"]},"theming":{"name":"Nextcloud","url":"https:\/\/nextcloud.com","slogan":"a safe home for all your data","color":"#0082c9","color-text":"#ffffff","color-element":"#0082c9","color-element-bright":"#0082c9","color-element-dark":"#0082c9","logo":"https:\/\/nextcloud.example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0","background":"https:\/\/nextcloud.example.com\/nextcloud\/core\/img\/background.png?v=0","background-plain":false,"background-default":true,"logoheader":"https:\/\/nextcloud.example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0","favicon":"https:\/\/nextcloud.example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0"}}}}} ``` + If you do not get such a response check out what the `curl` command above is telling you. Typical reasons for connection issues are misconfigured firewalls, proxies, or a bad TLS/SSL setup. ##### While using a self signed TLS/SSL certificate you receive "certificate verify failed" @@ -310,36 +300,34 @@ Some administrators setup Nextcloud using a self signed TLS/SSL certificate with Attention: Please do not confuse the CA for the Nextcloud server's certificate with the CA of the OpenProject server's certificate which you might have provided in the OpenProject installation wizard. They do not necessarily need to be the same. - #### Error message "Host is not fully set up" ![Host is not fully set up](nextcloud_not_fully_set_up.png) The integration OpenProject with Nextcloud makes use of authorized HTTP requests between the two servers. The HTTP requests contain a `Authorization` header, containing a `Bearer` access token. Sometimes Nextcloud installations are not fully setup and the HTTP server strips the `Authorization` header, with the consequence that Nextcloud does not know which Nextcloud user is requesting. Run the following command on the command line of your OpenProject server to check that your installation is complete - ```shell - curl --location --request GET 'https://nextcloud.example.com/index.php/apps/integration_openproject/check-config' --header 'Authorization: foo' - ``` +```shell +curl --location --request GET 'https://nextcloud.example.com/index.php/apps/integration_openproject/check-config' --header 'Authorization: foo' +``` - If Nextcloud setup correctly the response should look like the following +If Nextcloud setup correctly the response should look like the following - ```json - {"user_id":"","authorization_header":foo} - ``` +```json +{"user_id":"","authorization_header":foo} +``` - If not, first verify that the app **OpenProject Integration** is installed. +If not, first verify that the app **OpenProject Integration** is installed. - If that is the case verify that the mod_rewrite is activated on the Nextcloud server. - To activate mod_rewrite the following commands can be used on the Nextcloud server: - ```shell - sudo a2enmod rewrite - sudo systemctl restart apache2 - ``` +If that is the case verify that the mod_rewrite is activated on the Nextcloud server. +To activate mod_rewrite the following commands can be used on the Nextcloud server: - If that also not work please check the [instructions for setting up pretty URLs in Nextcloud](https://docs.nextcloud.com/server/22/admin_manual/installation/source_installation.html#pretty-urls). This usually also resolves the issue of stripped `Authorization` headers. +```shell +sudo a2enmod rewrite +sudo systemctl restart apache2 +``` +If that also not work please check the [instructions for setting up pretty URLs in Nextcloud](https://docs.nextcloud.com/server/22/admin_manual/installation/source_installation.html#pretty-urls). This usually also resolves the issue of stripped `Authorization` headers. - #### Project folders are not created or you do not have access You have setup the *Project folder* in both environments (Nextcloud and OpenProject), but you cannot see any folder named `OpenProject` in the root directory of **Files** app in Nextcloud. @@ -355,14 +343,14 @@ You have setup the *Project folder* in both environments (Nextcloud and OpenProj 2. Ensure that your project is setup correctly: 1. In your browser navigate to the project for which you want the **Project folders** feature to be working. - 2. In the *Project settings*, make sure that: + 2. In the *Project settings*, make sure that: - the **File storages** module is enabled - - the correct storage is enabled for that project + - the correct storage is enabled for that project - that **Project folders** setting is set to "New folder with automatically managed permissions" -3. Ensure that your user is fully set up: OpenProject needs to know your Nextcloud user ID so that it can give your Nextcloud account the correct access rights to the project folder. That ID is obtained when you log into Nextcloud from within OpenProject. +3. Ensure that your user is fully set up: OpenProject needs to know your Nextcloud user ID so that it can give your Nextcloud account the correct access rights to the project folder. That ID is obtained when you log into Nextcloud from within OpenProject. - To check: navigate to any work package in that project , open the **Files** tab and make sure that you are logged into the Nextcloud storage. If you are not logged in, you should see a *Log in* button. Click that button and follow the instructions on the screen. @@ -373,13 +361,13 @@ You have setup the *Project folder* in both environments (Nextcloud and OpenProj 6. If none of the aforementioned steps worked, check whether your network connection is fine: 1. Login into your OpenProject server via the command line interface. If you have multiple servers, chose the one that has the background workers running. - 2. Test the network connection from this server to your Nextcloud server. All you need is the Nextcloud host name and the **Application password**. You received the application password at the end of the setup of the app **OpenProject integration** in Nextcloud. + 2. Test the network connection from this server to your Nextcloud server. All you need is the Nextcloud host name and the **Application password**. You received the application password at the end of the setup of the app **OpenProject integration** in Nextcloud. If you do not posses the application password anymore, you can reset it. Make sure not to forget updating the settings of the file storage in OpenProject accordingly. The following cURL command should respond with an XML containing details for the **OpenProject** user (**Please make sure to use the right application-password and Nextcloud host name**): - ```shell - curl -u 'OpenProject:' https:///ocs/v1.php/cloud/users/OpenProject -H 'OCS-APIRequest: true' -v` - ``` + ```shell + curl -u 'OpenProject:' https:///ocs/v1.php/cloud/users/OpenProject -H 'OCS-APIRequest: true' -v` + ``` ## Getting support diff --git a/docs/system-admin-guide/integrations/one-drive/README.md b/docs/system-admin-guide/integrations/one-drive/README.md index 671c1161101d..ad57dc82063d 100644 --- a/docs/system-admin-guide/integrations/one-drive/README.md +++ b/docs/system-admin-guide/integrations/one-drive/README.md @@ -28,7 +28,7 @@ OpenProject offers an integration with OneDrive/SharePoint to allow users to: - Link files and folders stored in OneDrive/SharePoint with OpenProject work packages - View, open and download files and folder linked to a work package via the Files tab -The goal here is to provide a *Document Library*, embedded in a SharePoint site, as a file storage system for OpenProject. +The goal here is to provide a *Document Library*, embedded in a SharePoint site, as a file storage system for OpenProject. > Note: This guide only covers the integration setup. Please go to > our [OneDrive/SharePoint integration user guide](../../../user-guide/file-management/nextcloud-integration/) to learn @@ -44,8 +44,6 @@ Please note these minimum version requirements for the integration to work with We recommend using the latest versions of both OneDrive/SharePoint and OpenProject to be able to use the latest features. - - ## Set up the integration > **Important**: You need administrator privileges in the Azure portal for your Microsoft Entra ID and in your @@ -81,7 +79,7 @@ Finally, copy the *Redirect URl* and click the green *Done, complete setup* butt ![Redirect URI details in OneDrive/SharePoint file storage setup in OpenProject](openproject_system_guide_new_onedrive_storage_redirect_URL.png) -You will see the following message confirming the successful setup on top of the page. +You will see the following message confirming the successful setup on top of the page. ![System message on successful OneDrive/SharePoint file storages setup in OpenProject](openproject_system_guide_new_onedrive_message_successful_setup.png) @@ -104,7 +102,7 @@ information the redirect URI will get generated again and thus needs to be copie by clicking on the **Copy-to-Clipboard** element next to the information text, or by entering the form by clicking the **View** icon. -**Note**: if you have selected that automatically managed access and folders you will also see the *Health status* message on the right side. If the file storage set-up is incomplete or faulty, an error message will be displayed in that section. Read more about errors and troubleshooting [here](../../file-storages/file-storage-troubleshooting). +**Note**: if you have selected that automatically managed access and folders you will also see the *Health status* message on the right side. If the file storage set-up is incomplete or faulty, an error message will be displayed in that section. Read more about errors and troubleshooting [here](../../file-storages/file-storage-troubleshooting). ![Edit OneDrive/SharePoint in OpenProject](openproject_system_guide_edit_icon_onedrive_storage.png) diff --git a/docs/system-admin-guide/manage-work-packages/README.md b/docs/system-admin-guide/manage-work-packages/README.md index 9dee66c4ad7d..eb5eba3a9afa 100644 --- a/docs/system-admin-guide/manage-work-packages/README.md +++ b/docs/system-admin-guide/manage-work-packages/README.md @@ -18,4 +18,3 @@ Manage work packages in OpenProject. | [Status](work-package-status) | Create and manage work package status. | | [Workflows](work-package-workflows) | Create and manage workflows for work packages in OpenProject. | | [Custom actions](custom-actions) | Create custom actions for work packages (Enterprise add-on) | - diff --git a/docs/system-admin-guide/manage-work-packages/custom-actions/README.md b/docs/system-admin-guide/manage-work-packages/custom-actions/README.md index 8f5e6bab6755..e3aa20e29bc2 100644 --- a/docs/system-admin-guide/manage-work-packages/custom-actions/README.md +++ b/docs/system-admin-guide/manage-work-packages/custom-actions/README.md @@ -17,7 +17,7 @@ The workflows with custom actions are an Enterprise add-on and only available fo Watch the following video to see how you can configure your custom actions: -![](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Custom-Actions.mp4) +![Video](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Custom-Actions.mp4) ## Create custom actions diff --git a/docs/system-admin-guide/manage-work-packages/work-package-settings/README.md b/docs/system-admin-guide/manage-work-packages/work-package-settings/README.md index 718b6352273e..f862c3d25144 100644 --- a/docs/system-admin-guide/manage-work-packages/work-package-settings/README.md +++ b/docs/system-admin-guide/manage-work-packages/work-package-settings/README.md @@ -18,8 +18,8 @@ You can adjust the following: 3. **Use current date as start date for new work packages**. This way the current date will always be set as a start date if your create new work packages. Also, if you copy projects, the new work packages will get the current date as start date. 4. **Progress calculation** lets you pick between two modes for how the **%&nsbp;Complete** field is calculated for work packages. - - **Work-based**: % Complete is automatically calculated based on Work and Remaining work values for that work package, both of which are then necessary to have a value for % Complete. - - **Status-based**: you will have to define fixed % Complete values for each [work package status](../work-package-status), which will update automatically when team members update the status of their work packages. + - **Work-based**: % Complete is automatically calculated based on Work and Remaining work values for that work package, both of which are then necessary to have a value for % Complete. + - **Status-based**: you will have to define fixed % Complete values for each [work package status](../work-package-status), which will update automatically when team members update the status of their work packages. 5. **Default highlighting mode** (Enterprise add-on) defines which should be the default [attribute highlighting](../../../user-guide/work-packages/work-package-table-configuration/#attribute-highlighting-enterprise-add-on) mode, e.g. to highlight the following criteria in the work package table. This setting is only available for Enterprise on-premises and Enterprise cloud users. diff --git a/docs/system-admin-guide/manage-work-packages/work-package-status/README.md b/docs/system-admin-guide/manage-work-packages/work-package-status/README.md index 209b72070d43..1894a91ab8ae 100644 --- a/docs/system-admin-guide/manage-work-packages/work-package-status/README.md +++ b/docs/system-admin-guide/manage-work-packages/work-package-status/README.md @@ -12,12 +12,12 @@ Work packages can have various status depending on their types, e.g. tasks can h The status can be set at the top of the work package details view or in the table view in the corresponding column. -![Work packages status dropdown menu in OpenProject](openproject_system_guide_create_wp_stati_dropdown.png)The status field can be configured under *Administration ->* *Work packages* -> *Status*. You will see the list of all the existing work package status in the system. You can add new status or change the name and order of existing status. +![Work packages status dropdown menu in OpenProject](openproject_system_guide_create_wp_stati_dropdown.png)The status field can be configured under *Administration ->* *Work packages* -> *Status*. You will see the list of all the existing work package status in the system. You can add new status or change the name and order of existing status. To learn about the options for configuring the transition from one status to another navigate to [Manage work package workflows](../work-package-workflows). ## Create a new work package status -To create a new work package status click the green ***+ Status*** icon. +To create a new work package status click the green ***+ Status*** icon. A new window will open, where you will be able to specify the following: @@ -44,7 +44,7 @@ When you decide to set the new status as default status please note the followin ## Edit, re-order or remove a work package status -1. To **edit** an existing work package type click on the work package name. +1. To **edit** an existing work package type click on the work package name. 2. To **sort** the status, e.g. in the status drop-down list of the work packages, click on the arrows to move the status up or down in the list. 3. To **delete** the work package type click on the delete icon. diff --git a/docs/system-admin-guide/manage-work-packages/work-package-types/README.md b/docs/system-admin-guide/manage-work-packages/work-package-types/README.md index dea7624719bc..be3cfd1bf912 100644 --- a/docs/system-admin-guide/manage-work-packages/work-package-types/README.md +++ b/docs/system-admin-guide/manage-work-packages/work-package-types/README.md @@ -15,7 +15,7 @@ In the **Administration -> Work packages -> Types** you can add or edit the work You will see a list of all work package types in the system. 1. Click the work package type name to **edit an existing work package type**. -2. Click the arrows (up or down) to change the order how work package types should be displayed, e.g. in the list when creating new work packages or when changing the type. +2. Click the arrows (up or down) to change the order how work package types should be displayed, e.g. in the list when creating new work packages or when changing the type. The work package type you moved to the top of the list is the current default type and will be selected when you create a new work package. 3. Delete work package types. @@ -86,15 +86,15 @@ Click the blue **Apply** button to add this work package list to your form. ![Sys-admin-work-package-table-config](op_sys_admin_filter_wp.png) -The embedded related work package table in the work package form will look like this. Here, the work packages with the chosen relation will be shown automatically (based on the filtered criteria in the embedded list) or new work packages with this relation can be added. +The embedded related work package table in the work package form will look like this. Here, the work packages with the chosen relation will be shown automatically (based on the filtered criteria in the embedded list) or new work packages with this relation can be added. ![Sys-admin-related-work-package-table](open_project_admin_related_wp_table.png) ## Activate work package types for projects -Under **Administration -> Work packages -> Types** on the tab **Projects** you can select for which projects this work package type should be activated. +Under **Administration -> Work packages -> Types** on the tab **Projects** you can select for which projects this work package type should be activated. -The **Activated for new projects by default** setting in the Types will only activate this type for new projects. For existing projects, the type needs to be activated manually. +The **Activated for new projects by default** setting in the Types will only activate this type for new projects. For existing projects, the type needs to be activated manually. This can be also configured in the [project settings](../../../user-guide/projects/project-settings). ![activate projects for work package types](image-20200116150513323.png) diff --git a/docs/system-admin-guide/manage-work-packages/work-packages-faq/README.md b/docs/system-admin-guide/manage-work-packages/work-packages-faq/README.md index 0cb79176c016..87405f53560b 100644 --- a/docs/system-admin-guide/manage-work-packages/work-packages-faq/README.md +++ b/docs/system-admin-guide/manage-work-packages/work-packages-faq/README.md @@ -24,6 +24,3 @@ The work package type that is at the top of the [list](../work-package-types) is ## Why can I not find the option to set a progress percentage for a work package status? You have to activate the progress calculation by status first. Find out [here](../work-package-settings) how to do it. - - - diff --git a/docs/system-admin-guide/plugins/README.md b/docs/system-admin-guide/plugins/README.md index 6da13f86e520..16b983c51c74 100644 --- a/docs/system-admin-guide/plugins/README.md +++ b/docs/system-admin-guide/plugins/README.md @@ -13,4 +13,4 @@ We recommend to use the plugins as suggested in our deployment packages. You wil ![OpenProject plugins](image-20200124100220714.png) -If you want to write your own plugin, please follow our respective [development guide](../../development/create-openproject-plugin). +If you want to write your own plugin, please follow our respective [development guide](../../development/create-openproject-plugin). diff --git a/docs/system-admin-guide/projects/new-project/README.md b/docs/system-admin-guide/projects/new-project/README.md index 97d4bd6a01e1..233f2ac08cc9 100644 --- a/docs/system-admin-guide/projects/new-project/README.md +++ b/docs/system-admin-guide/projects/new-project/README.md @@ -8,7 +8,7 @@ keywords: new project, settings, default, modules # New project -To set defaults for new projects, navigate to **Administration settings** → **Projects** → **New project**. +To set defaults for new projects, navigate to **Administration settings** → **Projects** → **New project**. ![New project settings in OpenProject adminstration](open_project_system_guide_new_project_settings.png) @@ -19,4 +19,4 @@ You will find the following options on this page: - **Default enabled modules for new projects:** The checked modules will be enabled by default when a new project is created. Project admins can enable or disable specific modules later. - **Role given to a non-admin users who creates project**: The default role you want to assign *in the project* to the user that created it (if this user is not an instance admin). By default, the default role is 'Project admin'. -Once you make your modifications, click on **Save** to apply the settings instance-wide. \ No newline at end of file +Once you make your modifications, click on **Save** to apply the settings instance-wide. diff --git a/docs/system-admin-guide/projects/project-attributes/README.md b/docs/system-admin-guide/projects/project-attributes/README.md index 15b7a6677877..3d35913e0032 100644 --- a/docs/system-admin-guide/projects/project-attributes/README.md +++ b/docs/system-admin-guide/projects/project-attributes/README.md @@ -10,13 +10,13 @@ keywords: project attributes, create, project settings Project attributes are custom fields that allow you to communicate key information relevant to a project in the [Project Overview](../../../user-guide/project-overview) page. ->**Note**: Prior to version 14.0, these were called "project custom fields" and described under the [Custom fields](../../custom-fields/custom-fields-projects/) page. Starting with 14.0, there is now a new entry in the administration section called 'Project attributes' under 'Projects'. +>**Note**: Prior to version 14.0, these were called "project custom fields" and described under the [Custom fields](../../custom-fields/custom-fields-projects/) page. Starting with 14.0, there is now a new entry in the administration section called 'Project attributes' under 'Projects'. This page describes how to create, order and group project attributes and is directed at instance administrators. If you want know how to enable and set the values for project attributes at a project level, please refer to the [Project Overview](../../../user-guide/project-overview) page of the user guide. ## View project attributes -To view all existing project attributes, navigate to **Administration settings** → **Projects** → **Project attributes**. +To view all existing project attributes, navigate to **Administration settings** → **Projects** → **Project attributes**. ![List of existing project attributes in OpenProject administration](open_project_system_admin_guide_project_attributes_list.png) @@ -30,10 +30,11 @@ Each project attribute will be displayed in individual rows, which contain: 4. Number of projects using the attribute 5. More button -Attributes may also be contained in [sections](#sections). +Attributes may also be contained in [sections](#sections). ## Create a project attribute -To create a new project attribute, click on the **+ Project attribute** button in the top right corner. + +To create a new project attribute, click on the **+ Project attribute** button in the top right corner. This will display the "New attribute" form with these options: @@ -43,7 +44,7 @@ This will display the "New attribute" form with these options: - **Section:** If there are sections, you can pick where this new project attribute should appear. [Learn about sections](#sections) for more information. -- **Format**: You can pick from nine different types of fields: text, long text, integer, float, list, date, boolean, user and version. +- **Format**: You can pick from nine different types of fields: text, long text, integer, float, list, date, boolean, user and version. > **Note**: You cannot change this once the project attribute is created. @@ -51,31 +52,29 @@ This will display the "New attribute" form with these options: - **Required**: Checking this makes this project attribute a required field in projects where it is enabled, i.e. it cannot be left empty. -- **Visible**: Checking this field makes the attribute visible to non-admins. +- **Visible**: Checking this field makes the attribute visible to non-admins. > **Note**: This is enabled by default. Only disable this if you want this field to be invisible to non-admin users. - **Searchable**: Checking this makes this project attribute (and its value) available to the search engine and filters. - -## Modify project attributes +## Modify project attributes You can edit existing attributes under **Administration settings** → **Projects** → **Project attributes**. ![Edit or move a project attribute in the OpenProject administration](open_project_system_admin_guide_project_attributes_more_icon_menu.png) -Click on the More icon to the right of each project attribute to edit, re-order or delete a project attribute. +Click on the More icon to the right of each project attribute to edit, re-order or delete a project attribute. >**Note:** Deleting a project attribute will delete it and the corresponding values for it from all projects. -You can also use the drag handles to the left of each project attribute to drag and drop it to a new position. +You can also use the drag handles to the left of each project attribute to drag and drop it to a new position. >**Note**: Project admins can chose to enable or disable a project attribute from their project, but they cannot change the order. The order set in this page is the order in which they will appear in all projects. - ## Sections -You can group project attributes into sections to better organise them. +You can group project attributes into sections to better organise them. You can click on more icon to the right of each section to rename it, delete it or change its order. @@ -83,7 +82,6 @@ You can click on more icon to the right of each section to rename it, delete it You can drag any existing project attribute into a section to move it there. You may also drag and drop entire sections up and down to re-order them. ->**Note:** If a project attribute belongs to a section, it will be displayed within that section in _all_ projects. +>**Note:** If a project attribute belongs to a section, it will be displayed within that section in _all_ projects. ![Edit project attribute sections in OpenProject administration](open_project_system_admin_guide_project_attributes_section_more_icon_menu.png) - diff --git a/docs/system-admin-guide/projects/project-lists/README.md b/docs/system-admin-guide/projects/project-lists/README.md index 3f414f561c5b..3037d381306a 100644 --- a/docs/system-admin-guide/projects/project-lists/README.md +++ b/docs/system-admin-guide/projects/project-lists/README.md @@ -8,9 +8,9 @@ keywords: project attributes, project lists, columns, gantt # Project lists -OpenProject lets users access Project lists, which allow them to get an overview of all projects to which they have access. This page describes how to modify the columns displayed in each project list. For more information on using project lists, read our [user guide on Project lists](../../../user-guide/projects/project-lists). +OpenProject lets users access Project lists, which allow them to get an overview of all projects to which they have access. This page describes how to modify the columns displayed in each project list. For more information on using project lists, read our [user guide on Project lists](../../../user-guide/projects/project-lists). -To configure project lists, navigate to **Administration settings** → **Projects** → **Project lists**. +To configure project lists, navigate to **Administration settings** → **Projects** → **Project lists**. ![Project lists in OpenProject administration](open_project_system_guide_projects_project_lists.png) @@ -18,7 +18,7 @@ To configure project lists, navigate to **Administration settings** → **Projec > **Please note:** The ability to configure which project attributes are visible as columns in project lists is an Enterprise add-on and will only be displayed here for Enterprise on-premises and Enterprise cloud. -Here, you can view a list of *chips*, or little rectangles with names of project attributes. Each one represents a column in the Project list tables. You can drag and drop these around to change the order in which they appear. +Here, you can view a list of *chips*, or little rectangles with names of project attributes. Each one represents a column in the Project list tables. You can drag and drop these around to change the order in which they appear. To add a new project attribute as a column, click on the field with the label **Add columns** (where it says *Select a column*). You will be shown a list of existing project attributes. You can type in a keyword to search through this list and find the project attribute you would like to add. @@ -26,4 +26,4 @@ To add a new project attribute as a column, click on the field with the label ** OpenProject lets users view a list of projects as a Gantt chart. You can edit the default query that is used to display this Gantt chart by clicking on the **Edit query** link. This displays a modal that lets you modify the visible the columns, filters, sort order and other view configuration options. -![Work package table configuration in OpenProject administration](open_project_system_guide_projects_project_lists_gannt_query.png) \ No newline at end of file +![Work package table configuration in OpenProject administration](open_project_system_guide_projects_project_lists_gannt_query.png) diff --git a/docs/system-admin-guide/system-admin-guide-faq/README.md b/docs/system-admin-guide/system-admin-guide-faq/README.md index a39a1261c0d2..dff4faf8bf9f 100644 --- a/docs/system-admin-guide/system-admin-guide-faq/README.md +++ b/docs/system-admin-guide/system-admin-guide-faq/README.md @@ -28,7 +28,6 @@ Please have a look at [these instructions](../../installation-and-operations/ope The OpenProject installations do not configure a default timeout for the outer Apache2 web server. Please increase the Apache `Timeout` directive. Please see the Apache web server documentation for more information: [https://httpd.apache.org/docs/2.4/mod/core.html#timeout](https://httpd.apache.org/docs/2.4/mod/core.html#timeout) - ## Further information More FAQ can be found in the respective sections of this System admin guide. diff --git a/docs/system-admin-guide/system-settings/README.md b/docs/system-admin-guide/system-settings/README.md index 85de5a399e35..f862271fe316 100644 --- a/docs/system-admin-guide/system-settings/README.md +++ b/docs/system-admin-guide/system-settings/README.md @@ -13,7 +13,6 @@ To modify these settings, navigate to **Administration → System settings**. ![Administration system settings](system-settings.png) - ## Overview | Topic | Content | @@ -22,4 +21,3 @@ To modify these settings, navigate to **Administration → System settings**. | [Languages](languages) | How to configure languages. | | [Project](../projects) | Settings for new projects. | | [Repositories](repositories) | How to integrate SVN or GIT repositories. | - diff --git a/docs/system-admin-guide/system-settings/general-settings/README.md b/docs/system-admin-guide/system-settings/general-settings/README.md index 21b8c93ee9b4..e3f85afc52a0 100644 --- a/docs/system-admin-guide/system-settings/general-settings/README.md +++ b/docs/system-admin-guide/system-settings/general-settings/README.md @@ -48,4 +48,3 @@ Create a welcome text block to display the most important information to users o 4. Do not forget to **save** your changes. ![image-20211209162118090](image-20211209162118090.png) - diff --git a/docs/system-admin-guide/system-settings/repositories/README.md b/docs/system-admin-guide/system-settings/repositories/README.md index cfe8f9a0e2ba..f4cd6746c793 100644 --- a/docs/system-admin-guide/system-settings/repositories/README.md +++ b/docs/system-admin-guide/system-settings/repositories/README.md @@ -24,8 +24,6 @@ To adapt repositories settings, go to System settings on the tab **Repositories* ![image-20211209174118702](image-20211209174118702.png) - - ## Checkout instructions for Subversion and GIT Show checkout instructions for Subversion and GIT. @@ -47,4 +45,4 @@ Show checkout instructions for Subversion and GIT. ![Sys-admin-system-settings-repositories-fixing-commit-messages](Sys-admin-system-settings-repositories-fixing-commit-messages.png) -7. Do not forger to **Save** all your changes. \ No newline at end of file +7. Do not forger to **Save** all your changes. diff --git a/docs/system-admin-guide/users-permissions/README.md b/docs/system-admin-guide/users-permissions/README.md index a6956221c0ee..5fb501a3f7ff 100644 --- a/docs/system-admin-guide/users-permissions/README.md +++ b/docs/system-admin-guide/users-permissions/README.md @@ -19,4 +19,3 @@ In this section of the System Administration guide you can learn how to manage u | [Groups](groups) | View groups, create new groups, add users to groups. | | [Roles and permissions](roles-permissions) | See / manage roles and permissions and add new roles. | | [Avatars](avatars) | Activate / deactivate user avatars (profile pictures). | - diff --git a/docs/system-admin-guide/users-permissions/avatars/README.md b/docs/system-admin-guide/users-permissions/avatars/README.md index c2f303eba4da..519e85078ab0 100644 --- a/docs/system-admin-guide/users-permissions/avatars/README.md +++ b/docs/system-admin-guide/users-permissions/avatars/README.md @@ -14,4 +14,3 @@ You can choose whether to allow user gravatars or enable to upload custom avatar The Avatars can be configured via the [user profile](../users). ![OpenProject avatars](system-guide-avatar.png) - diff --git a/docs/system-admin-guide/users-permissions/groups/README.md b/docs/system-admin-guide/users-permissions/groups/README.md index 0a6ce0cc5992..acd32384ddbd 100644 --- a/docs/system-admin-guide/users-permissions/groups/README.md +++ b/docs/system-admin-guide/users-permissions/groups/README.md @@ -12,7 +12,6 @@ keywords: manage groups A **Group** is defined as a list of users which can be assigned to a project with a selected role. New groups can be defined in **Administration -> Users and permissions -> Groups**.
- OpenProject allows creating tailored project member **groups**, which grant additional permissions to individual users within a project. Instead of adding individual users to a project you can add a user group, e.g. Marketing. You can edit existing groups, create new ones, add and remove users or delete groups. ## Add a new group @@ -39,8 +38,6 @@ After clicking on a group's name, you can **change the group name**, **add or re ![edit-groups](image-20210505162541644.png) - - ### Add users to a group Click the **Users** tab. Select the users you want to add to this group from the **New user** drop-down list. Click the blue **Add** button. Users already in the group are not shown in the list. Click the **X** next to a user to remove that user from the group. diff --git a/docs/system-admin-guide/users-permissions/placeholder-users/README.md b/docs/system-admin-guide/users-permissions/placeholder-users/README.md index 38469a1f484f..418c5b3e78e1 100644 --- a/docs/system-admin-guide/users-permissions/placeholder-users/README.md +++ b/docs/system-admin-guide/users-permissions/placeholder-users/README.md @@ -15,15 +15,12 @@ Another use case would be to include customers, vendors or partners in your plan Placeholder users can be managed by system admins and by users with the [role](../roles-permissions/#global-role) "Create, edit and delete placeholder users". - | Topic | Content | |-----------------------------------------------------------------------|------------------------------------------------------| | [Placeholder user list](#placeholder-user-list) | Manage placeholder users in OpenProject. | | [Create placeholder users](#create-placeholder-users) | Add new placeholder users. | | [Manage placeholder user settings](#manage-placeholder-user-settings) | Change names and add placeholders users to projects. | - - ## Placeholder user list To manage placeholder users navigate to **Administration -> Users and permissions -> Placeholder users**. The placeholder user list gives you an overview of all placeholder users with their names and creation dates. From here you can also [add](#create-placeholder-users) placeholder users, [edit](#manage-placeholder-user-settings) them and [delete](#delete-placeholder-users) them. @@ -32,13 +29,12 @@ The column headers can be clicked to toggle sort direction. Arrows indicate sort ![placeholder-users-overview](image-20210305150925563.png) - ### Filter placeholder users -The placeholder user list can be filtered by name. +The placeholder user list can be filtered by name. At the top of the user list is a filter box. Enter a name, then click the blue **Apply** button to filter the list. Click the **Clear** button to reset the filter field and refresh the list. -You can enter any parts of a placeholder user name; this can also contain a **%** wild card for zero or more characters. +You can enter any parts of a placeholder user name; this can also contain a **%** wild card for zero or more characters. ### Delete placeholder users @@ -51,6 +47,7 @@ You will then be asked to type in the placeholder user name to confirm the delet > **Note**: Deleting a placeholder user account is an irreversible action and cannot be revoked. The previous activities from this user will still be displayed in the system but reassigned to **Deleted user**. ## Create placeholder users + To add a new placeholder, user click on **+ Placeholder user** in the upper right corner of the [placeholder user list](#placeholder-user-list). Enter a name and click on **Create** to save or on **Create and continue** to save and create another placeholder user. @@ -58,10 +55,9 @@ Enter a name and click on **Create** to save or on **Create and continue** to sa It is not possible to create two placeholder users with the exact same name. - ## Manage placeholder user settings -You can change a placeholder user's name and add it to a project if you click on its name in the [placeholder user list](#placeholder-user-list). +You can change a placeholder user's name and add it to a project if you click on its name in the [placeholder user list](#placeholder-user-list). On the **General** tab you can change the placeholder user's name. @@ -87,9 +83,9 @@ In the future, additional changes and features for placeholder users will be imp ## Placeholder user profile -Similar to users, placeholder users have a profile page which shows their name and project memberships. +Similar to users, placeholder users have a profile page which shows their name and project memberships. -The projects are only visible for users who are allowed to see the project (e.g. user has permission to see this placeholder user in a common project or has a sufficient global role (e.g. system administrator)). +The projects are only visible for users who are allowed to see the project (e.g. user has permission to see this placeholder user in a common project or has a sufficient global role (e.g. system administrator)). ![image-20210305180853254](image-20210305180853254.png) diff --git a/docs/system-admin-guide/users-permissions/roles-permissions/README.md b/docs/system-admin-guide/users-permissions/roles-permissions/README.md index 477b1a13192d..9d5d360a7ecf 100644 --- a/docs/system-admin-guide/users-permissions/roles-permissions/README.md +++ b/docs/system-admin-guide/users-permissions/roles-permissions/README.md @@ -17,7 +17,7 @@ Permissions control what users can see and do within OpenProject. Permission are ### File storages permissions -File storages permissions include the following: +File storages permissions include the following: ![Files storages permissions in OpenProject](openproject_user_guide_file_storages_permissions.png) @@ -47,7 +47,6 @@ A user can have one or more roles which grant permissions on different levels. **Administrators** have full access to all settings and all projects in an OpenProject environment. The permissions of the Administrator role can not be changed. - | Scope of the role | Permission examples | Customization options | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | Application-level: Full control of all aspects of the application | - Assign administration privileges to other users
- Create and restore backups in the web interface
- Create and configure an OAuth app
- Configure custom fields
- Archive projects/restore projects
- Configure global roles
- Configure project roles | Cannot be changed | @@ -76,12 +75,10 @@ A user can have one or more roles which grant permissions on different levels. **Note:** The *Non-member* role cannot be deleted. - | Scope of the role | Permission examples | Customization options | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | Project-level: Permissions scoped to individual projects for users which are logged in | - View work packages for users that are logged in | Assign different permissions to the role *Non-member* | - ### Anonymous OpenProject allows to share project information with **anonymous** users which are not logged in. This is helpful to communicate projects goals and activities with a public community.
@@ -127,7 +124,7 @@ Administrators can create new global roles in *Administration* > *Users and perm - [Edit users](../users/) - > **Note:** This allows the *Administrator* to delegate the administration of users to other people that should not have full control of the entire OpenProject installation (Administrator). These users can edit attributes of any users, except administrators. This means they are able to impersonate another user by changing email address to match theirs. This is a security risk and should be considered with caution. + > **Note:** This allows the *Administrator* to delegate the administration of users to other people that should not have full control of the entire OpenProject installation (Administrator). These users can edit attributes of any users, except administrators. This means they are able to impersonate another user by changing email address to match theirs. This is a security risk and should be considered with caution. - [Create, edit, and delete placeholder users](../placeholder-users/) diff --git a/docs/system-admin-guide/users-permissions/users-permissions-faq/README.md b/docs/system-admin-guide/users-permissions/users-permissions-faq/README.md index 094eb99268ce..ebeb42b320de 100644 --- a/docs/system-admin-guide/users-permissions/users-permissions-faq/README.md +++ b/docs/system-admin-guide/users-permissions/users-permissions-faq/README.md @@ -8,7 +8,7 @@ keywords: manage users FAQ, permissions, groups, roles, user settings # Frequently asked questions (FAQ) for users and permissions -## I want to delete a user but it fails. +## I want to delete a user but it fails. What can I do? If you are using the Enterprise cloud and the user you are trying to delete is the user that initially set up OpenProject, you will need to contact us to delete this user. For other users please make sure the box **User accounts deletable by admins** in **Administration -> Users and permissions -> Settings** is checked. @@ -23,14 +23,13 @@ There are two possibilities: There is no built in way to do that. -The best way of achieving the result is via the API v3 by [fetching users](../../../api/endpoints/users/#list-users) based on their creation date and for every newly created user, [assign the roles](../../../api/endpoints/memberships/#create-a-membership) that a new user should have. +The best way of achieving the result is via the API v3 by [fetching users](../../../api/endpoints/users/#list-users) based on their creation date and for every newly created user, [assign the roles](../../../api/endpoints/memberships/#create-a-membership) that a new user should have. Starting with OpenProject 11.2 this is also possible for global roles. ## What happens to a user's contributions (e.g. work packages) if I delete their account? When a user is deleted his/her change history is preserved. All actions made by him/her are attributed to a user called **Deleted user**. E.g. a work package created by that user or a wiki page updated by him/her will remain unchanged. This means that you can continue to work with all work packages etc.. If you delete at least two users, you will no longer be able to identify which change was made by whom, as everything will be aggregated under the **Deleted user** user. Only information that is stored for the sake of the user alone, e.g. private queries or user preferences, will be deleted. - ## Can I give users the ability to change work package status only? -It is possible to give users the ability to change status without that user having the rights to edit the rest of the work package. To do that you need to grant the **Change work package status** permission to the role this user is assigned. \ No newline at end of file +It is possible to give users the ability to change status without that user having the rights to edit the rest of the work package. To do that you need to grant the **Change work package status** permission to the role this user is assigned. diff --git a/docs/system-admin-guide/users-permissions/users/README.md b/docs/system-admin-guide/users-permissions/users/README.md index 4eb0a1a8f065..1ae8e263f00f 100644 --- a/docs/system-admin-guide/users-permissions/users/README.md +++ b/docs/system-admin-guide/users-permissions/users/README.md @@ -8,14 +8,14 @@ keywords: manage users, lock, unlock, invite, default language # Manage users -The user list provides an overview of all users in OpenProject. You can create new users, make changes to existing user accounts and block or delete users from the system. +The user list provides an overview of all users in OpenProject. You can create new users, make changes to existing user accounts and block or delete users from the system.
**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.
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. +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. | Topic | Content | | ----------------------------------------------- | -------------------------------------------------------- | @@ -59,7 +59,7 @@ If a user has repeated failed logins the user will be locked temporarily and a * ## Create users -New users can be created and configured by an administrator or by the users themselves (if activated). +New users can be created and configured by an administrator or by the users themselves (if activated). ### Invite user (as administrator) @@ -76,13 +76,13 @@ When adding the last of multiple users you can click on **Create** or click the ### 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 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. 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. +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) @@ -93,7 +93,7 @@ There is also an **Activate** button at the top of the user's details page. ### Set initial details You can edit the details of a newly created user. Useful fields might be **Username**, **Language** and **Time zone**. You might also fill Projects, Groups and Rates, or leave these to the **Project creator**. -Also consider the [authentication](#authentication) settings. +Also consider the [authentication](#authentication) settings. See [Manage user settings](#manage-user-settings) for full details. @@ -105,9 +105,9 @@ In the top right, click the **Send invitation** button in order to send the emai ![Send user invitation in OpenProject](openproject_system_guide_send_user_invitation.png) - ### 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. + +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. ## Manage user settings @@ -148,7 +148,7 @@ On the **Projects** tab, select the new project from the drop-down list, choose ### 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. +On the **Groups** tab you can see the groups the user belongs to. If a group is shown, click the group name link. ![User groups](system_guide_user_groups.png) @@ -184,7 +184,7 @@ If you want to set a different hourly rate for the user on different projects, y 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](system_guide_rate_history.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). @@ -204,7 +204,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. @@ -223,6 +223,7 @@ 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. diff --git a/docs/use-cases/README.md b/docs/use-cases/README.md index c437381a8c11..0b9e21a41e1e 100644 --- a/docs/use-cases/README.md +++ b/docs/use-cases/README.md @@ -13,4 +13,3 @@ keywords: use-cases | [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. | | [Implementing Scaled Agile Framework (SAFe) in OpenProject](safe-framework) | Learn how to set up and configure OpenProject to support the Scaled Agile Framework (SAFe) to successfully deliver value to customers using agile practices at scale. | - diff --git a/docs/use-cases/portfolio-management/README.md b/docs/use-cases/portfolio-management/README.md index fb76ea586f5a..bc6b9d44b7d0 100644 --- a/docs/use-cases/portfolio-management/README.md +++ b/docs/use-cases/portfolio-management/README.md @@ -8,17 +8,17 @@ keywords: use-case, portfolio management # 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. +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. ![OpenProject projects portfolio overview](openproject_projects_overview.png) ## 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) @@ -26,13 +26,13 @@ You can then sort the project list by clicking on a column heading, for example ![OpenProject sort project list by status](sort_by_status.png) -You can add a visual component to the overview by clicking on the **Open as Gantt view** button. +You can add a visual component to the overview by clicking on the **Open as Gantt view** button. ![OpenProject projects Gantt overview](open_as_gantt_view.png) ![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) @@ -40,26 +40,25 @@ You will then be led to the **System settings** of the global Administration. If ![Settings for project overview list](openproject_settings_for_project_overview_list.png) -If you click on **Edit query** you can adjust the project overview when using the Gantt chart option. +If you click on **Edit query** you can adjust the project overview when using the Gantt chart option. ## Creating custom reports ### Exporting reports -For creating custom project reports you can use the export function in the work packages view. - -![Reports export](openproject_export.png) +For creating custom project reports you can use the export function in the work packages view. +![Reports export](openproject_export.png) -You can export the work packages in one of the following formats. +You can export the work packages in one of the following formats. ![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). - ### Project status reporting -You can [display and configure the individual project status](../../user-guide/projects/project-status/) on the project overview page. + +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. diff --git a/docs/use-cases/resource-management/README.md b/docs/use-cases/resource-management/README.md index 07d5a12144c0..405bc89937cc 100644 --- a/docs/use-cases/resource-management/README.md +++ b/docs/use-cases/resource-management/README.md @@ -8,25 +8,25 @@ keywords: 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. +**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. +These are the steps you can follow to adjust a work package overview to suit your goals. ![resource management](configure_wp_view.png) -Step 1: Select a project and go to the work package overview by clicking **Work packages** in the project menu on the left. If you would like to create an overview over multiple projects, select the respective projects and/or subprojects in the **Include projects** menu between the **+ Create** and the **Filter** buttons. +Step 1: Select a project and go to the work package overview by clicking **Work packages** in the project menu on the left. If you would like to create an overview over multiple projects, select the respective projects and/or subprojects in the **Include projects** menu between the **+ Create** and the **Filter** buttons. Alternatively, you can also chose the **Global work package overview** by selecting the **Waffle icon** in the top right corner: ![OpenProject global work packages overview](openproject_global_wp_view.png) -Step 2: You can add existing fields, such as **Work** (earlier called **Estimated time**), **Spent time** and **Remaining work** (earlier called **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: You can add existing fields, such as **Work** (earlier called **Estimated time**), **Spent time** and **Remaining work** (earlier called **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 3: You can add these fields via the **Insert columns** option on the drop-down menu. +Step 3: You can add these fields via the **Insert columns** option on the drop-down menu. -Step 4: You can add any filters necessary and sort or group the work packages by assignee. +Step 4: You can add any filters necessary and sort or group the work packages by assignee. ![OpenProject sort work packages by assignee](openproject_sort_by_assignee.png) @@ -42,7 +42,7 @@ You can also use the sum function. Select **\[⋮\]** -> ***Configure view*** -> ![OpenProject work package configure view](openproject_configure_view.png) -![OpenProject display sums](openproject_display_sums.png) +![OpenProject display sums](openproject_display_sums.png) You will see the **Work** (previously called estimated time), **Spent time** and **Remaining work** (called remaining hours) summed up by user, as well as the overall sum. @@ -54,6 +54,6 @@ You could also add the Gantt view to add an additional dimension to your overvie ![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. +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/). diff --git a/docs/use-cases/safe-framework/README.md b/docs/use-cases/safe-framework/README.md index 080c428ab65f..5216fc294fb1 100644 --- a/docs/use-cases/safe-framework/README.md +++ b/docs/use-cases/safe-framework/README.md @@ -22,8 +22,6 @@ This guide contains the following sections: | [Organizing work using table view, Gantt view](#organizing-work-using-table-view-gantt-view) | Using table and Gantt views to visualize, sort, filter and group work packages and save custom views at all levels (agile team, Agile Release Train or Solution Train) | | [Backlogs, Kanban and Team planner](#backlogs-kanban-and-team-planner) | Organizing work and facilitating planning using Backlogs, Kanban boards and Team planner | - - ## Structure and terminology Preparing OpenProject for SAFe involves configuration and access at two levels: @@ -31,7 +29,7 @@ Preparing OpenProject for SAFe involves configuration and access at two levels: - **Individual projects** are self-contained and consist of a set of modules, members, work packages and project-level settings. Each can further contain sub-projects for additional hierarchy. They represent **Agile Release Trains** in SAFe. - **Global modules** encompass content from all projects (and sub-projects) and instance-level settings that affect all modules for all users; these settings can sometimes be overridden at a project-level. The global level serves as a **Solution Train-level** view in SAFe. -Individual users will generally work within one or a set of different projects to deliver value. +Individual users will generally work within one or a set of different projects to deliver value. It is important to note that OpenProject terminology can vary somewhat form SAFe terminology: @@ -57,7 +55,7 @@ In OpenProject, each **Agile Release Train** (ART) is set up as an individual pr A project consists of a number of different elements: -- **Members**: individual members can be created at an instance-level and then added to individual projects, or external users +- **Members**: individual members can be created at an instance-level and then added to individual projects, or external users - can directly be "invited" to a project. Each member can have different roles in different projects. - **Modules** like Work packages, Gantt, Backlog, Team planner, Wiki, Forums, Meetings. - **Work packages** that can be of different types, including epics, features, enablers, user stories, and bugs. @@ -69,7 +67,7 @@ To learn how to use the Work packages module to configure epics, features and us > **Demo:** View an [overview of an ART set up as a project](https://safe.openproject.com/projects/art-2-design/work_packages?query_id=58). -### Project templates +### Project templates You can also use [project templates](../../user-guide/projects/project-templates/) and to make it easier to create news ARTs with the same structure, set of enabled modules, project structure or work package templates. Once a new ART is created using a template, it can then be modified in any way. @@ -82,11 +80,11 @@ Project portfolios allow you to view, organize, sort and filter through all proj ![All Features and User Stories across all teams](all_features_across_all_teams.png) > In a near future release, OpenProject will have dedicated project portfolio features. [View mockups.](https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=470%3A13037&mode=design&t=g1EZesuy0Jj0VZFD-1) -> +> > For the moment, [global modules](../../user-guide/home/global-modules/) give you an overview of content from all projects, including the ability to view and filter though a **project list**, and view, sort and filter **work packages at a global level**. > **Demo:** [Solution train (project list)](https://safe.openproject.com/projects) -> +> > **Demo:** [Global work package view (epics, features and stories from all ARTs)](https://safe.openproject.com/projects/safe-solution-train-1/work_packages?query_id=120) ## Using versions to set Program Increments @@ -137,7 +135,7 @@ Similarly, a template can be defined for **User stories** so that they can be ex > **As a** *{role}* > > **I want to** *{activity}* -> +> > **so that** *{business or user value}* > **Demo**: Defining a [type template for user stories](https://safe.openproject.com/types/6/edit/settings) (requires admin privileges). @@ -176,7 +174,6 @@ Progress can be viewed at a team label, at an ART-level or at a solution train l > **Demo:** [Progress overview at a PI level](https://safe.openproject.com/projects/safe-demo/work_packages?query_id=78) - ## Organizing work using table view, Gantt view OpenProject is a powerful tool that allows you to view work packages in a variety of different ways. @@ -203,7 +200,6 @@ The [Gantt chart](../../user-guide/gantt-chart/) module allows you to quickly vi > **Demo:** [A Gantt view of a sprint within an ART](https://safe.openproject.com/projects/art-0-test-release-train/work_packages?query_id=39) - ## Backlogs, Kanban and Team planner The **Backlog** and **Kanban** are key tools in a scaled agile environment, not only during PI Planning but during the course of the entire project. @@ -256,4 +252,4 @@ At a Solution train level, it also allows you to view the work of members across OpenProject is a powerful and highly-configurable tool that can be customized to fit the needs of your particular scaled agile implementation. Beyond the basics covered in this guide, OpenProject has many additional features and modules (such as [budgets](../../user-guide/budgets/), [time and cost tracking](../../user-guide/time-and-costs/), [wiki](../../user-guide/wiki/), [meetings](../../user-guide/meetings/) and [file storage integrations](../../development/file-storage-integration/)) that further enable your agile teams to work efficiently and deliver value. -If you have questions about how to [use](../../getting-started/) and [configure](../../system-admin-guide/) OpenProject to work for you, please [get in touch](https://www.openproject.org/contact/) or [start a free trial](https://start.openproject.com/) to see for yourself. +If you have questions about how to [use](../../getting-started/) and [configure](../../system-admin-guide/) OpenProject to work for you, please [get in touch](https://www.openproject.org/contact/) or [start a free trial](https://start.openproject.com/) to see for yourself. diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md index c70f346b3d43..7eda2b792dd7 100644 --- a/docs/user-guide/README.md +++ b/docs/user-guide/README.md @@ -25,7 +25,7 @@ Both the Community edition and Enterprise edition allow you to create an unlimit
-Within a project Modules can be activated and deactivated under "Modules" in the project settings menu by project members who have sufficient permissions to adjust project settings. Which modules or single functionalities will be available within projects is controlled in the global Administration settings (please see [System admin guide](../system-admin-guide/projects) to see how this is done). +Within a project Modules can be activated and deactivated under "Modules" in the project settings menu by project members who have sufficient permissions to adjust project settings. Which modules or single functionalities will be available within projects is controlled in the global Administration settings (please see [System admin guide](../system-admin-guide/projects) to see how this is done). Please choose the module or feature you want to learn more about. @@ -54,4 +54,3 @@ Please choose the module or feature you want to learn more about. | [Time and costs](time-and-costs) | How to track time and costs in OpenProject and report spent time and costs. | | [Wiki](wiki) | How to create and manage a wiki to collaboratively document and share information. | | [Work packages](work-packages) | How to manage your work in a project. | - diff --git a/docs/user-guide/activity/README.md b/docs/user-guide/activity/README.md index cffa1a4f38da..b5759220829b 100644 --- a/docs/user-guide/activity/README.md +++ b/docs/user-guide/activity/README.md @@ -26,7 +26,7 @@ Within a project, navigate to the **Project settings > Modules** page. Make sure ### View project activity -Click on the **Activity** option that is now visible in the sidebar of a project. This will show you recent activity in the project, with the most recent changes at the top. +Click on the **Activity** option that is now visible in the sidebar of a project. This will show you recent activity in the project, with the most recent changes at the top. For each update concerning a work package, you will see: @@ -58,7 +58,7 @@ To filter the project activity list, use the filters on the sidebar. You may fil - Work packages - Project attributes -Additionally, you can choose to include or exclude updates concerning sub-projects. +Additionally, you can choose to include or exclude updates concerning sub-projects. ![Project activity filters](project-activity-filter-list.png) @@ -75,14 +75,8 @@ When you open a work package, e.g. by clicking on the ID of the work package in ![work package activity](work-package-activity.png) - -There, all changes and activities concerning the work package are documented, e.g. if a user changes the status of the work package, this activity is recorded with the information who, when and what in the Activity area and is visible for other users who have the corresponding authorization. +There, all changes and activities concerning the work package are documented, e.g. if a user changes the status of the work package, this activity is recorded with the information who, when and what in the Activity area and is visible for other users who have the corresponding authorization. You can also use the Activity area as a chat portal and share messages with other team members there.![Work package activity flag someone](Work-package-activity-flag-someone.png) - - If you want to notify a specific user about something in the Activity section, you can also flag them with an "@" symbol in front of their username so that they receive a notification within OpenProject. - - - diff --git a/docs/user-guide/agile-boards/README.md b/docs/user-guide/agile-boards/README.md index b7c4d85110e1..02c05e6f7848 100644 --- a/docs/user-guide/agile-boards/README.md +++ b/docs/user-guide/agile-boards/README.md @@ -6,7 +6,7 @@ description: How to get started with Agile boards for Kanban, Scrum and Agile Pr keywords: agile boards, Kanban, Scrum, agile project management, action boards --- -# Boards for Agile Project Management +# Boards for Agile Project Management Boards support agile project management methodologies, such as Scrum or Kanban. @@ -14,7 +14,6 @@ Our Agile boards can be for anything you would like to keep track of within your > **Note**: The basic board is included in the OpenProject Community edition. OpenProject Action boards are an Enterprise add-on and can only be used with [Enterprise cloud](../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easily possible. - | Topic | Content | |-----------------------------------------------------------|----------------------------------------------------------------------------------| | [Create new boards](#create-a-new-board) | How to create a new Agile board. | @@ -28,7 +27,7 @@ Our Agile boards can be for anything you would like to keep track of within your | [Manage boards](#manage-boards) | How to manage permissions for boards. | | [Examples for agile boards](#agile-boards-examples) | Best practices for using the basic board and status, assignee and version board. | - + ## Agile boards in OpenProject @@ -38,11 +37,11 @@ The new Boards are tightly integrated with all other project management function ## Create a new board -You can create as many Agile boards in a project as you need and configure them to your needs. First, you need to create a new Boards view. +You can create as many Agile boards in a project as you need and configure them to your needs. First, you need to create a new Boards view. If you haven't done so yet, [activate the Boards module](../projects/project-settings/modules) within your project. Also, we recommend to verify [Roles and Permissions](../../system-admin-guide/users-permissions/roles-permissions/) within your system's Administration. -Click on the green **+Board** button to create a new Board view. +Click on the green **+Board** button to create a new Board view. ![create a new board in the boards module](create-a-new-board-in-the-boards-module.png) @@ -51,7 +50,8 @@ Click on the green **+Board** button to create a new Board view. Next, you need to choose which kind of Agile board you want to create. ## Basic board (Community edition) -The Basic board is included in the OpenProject Community edition. You can freely create lists, name them and order your work packages within. If you move work packages between the lists, there will be **NO changes** to the work package itself. This allows you to create flexible boards for any kind of activity you would like to track, e.g. Management of Ideas. + +The Basic board is included in the OpenProject Community edition. You can freely create lists, name them and order your work packages within. If you move work packages between the lists, there will be **NO changes** to the work package itself. This allows you to create flexible boards for any kind of activity you would like to track, e.g. Management of Ideas. ![Board types basic board](Board-types-basic-board.png) @@ -64,29 +64,34 @@ After [adding lists to your board](#add-lists-to-your-board) they will automatic There are several **types of Action boards** available: ### Status board -Each list represents a status. That means that e.g. all work packages with the status "New" will be automatically displayed in the column "New". + +Each list represents a status. That means that e.g. all work packages with the status "New" will be automatically displayed in the column "New". When creating a new Status board a list with all work packages in the default status (usually this is the status "New") will be added automatically, while additional lists need to be added manually. Please note: You can't move work packages from or to every status. Please find out more about the work-flow logics restricting this here: [Allowed transitions between status](../../system-admin-guide/manage-work-packages/work-package-workflows/) ![create status board](create-status-board.png) ### Assignee board + Every list represents one assignee. You can choose regular users, [placeholder users](../../system-admin-guide/users-permissions/placeholder-users) and groups as assignees. When you move a card from one list to another, the assigned user is changed to the user that is selected for the list you moved the card to. ![create assignee board](create-assignee-board.png) ### Version board + Every list represents a version. This board is ideal for product development or planning software releases. When creating a new Version board a list with all work packages in the version(s) belonging to the current project will be added automatically, while additional lists need to be added manually. By moving a card from one list to another, the version for the work package is changed to the version of the corresponding list. ![create version board](create-version-board.png) ### Subproject board + Every list represents a subproject. Within the list you will find the subproject's work packages. By moving a card within a list you can change the order of the cards and if you move a card to another list you change the (sub)project of this work package. ![create subproject board](create-subproject-board.png) ### Parent-child board -Every list represents a parent work package. Within the list you will find the work package's children. + +Every list represents a parent work package. Within the list you will find the work package's children. Only work packages from the current project can be selected as a list, i.e. can be chosen as the name of the list. The Parent-child board is ideal for depicting a **work breakdown structure (WBS)**. By moving cards to another list you can reorder the work package as a child to another work package. Please note: This will only display one hierarchy level below the displayed work package, i.e. only immediate children and no grandchildren. @@ -108,8 +113,6 @@ Choose a meaningful title for your Board so that it is clear, e.g. for other tea ![this-is-a-list-in-a-board](this-is-a-list-in-a-board.png) - - Click **+ add list** to add lists to your board. ![add-list-to-a-board](add-list-to-a-board.png) @@ -117,7 +120,7 @@ Click **+ add list** to add lists to your board. **Basic board lists:** Give the list any meaningful name. **Action board lists:** The list's name will depend on the type of Action board you chose, e.g. "New", "In Progress", etc. for the Status board. -![image-20201006111714525](image-20201006111714525.png) +![image-20201006111714525](image-20201006111714525.png) ## Remove lists @@ -148,13 +151,11 @@ You can update cards in the following ways: ![OpenProject-Boards_update-cards](OpenProject-Boards_update-cards.png) - - -Apart from the Status board you can **update a work package's status** directly in the card. +Apart from the Status board you can **update a work package's status** directly in the card. ![boards-select-status-from-card](boards-select-status-from-card.png) -A **double click on a card** will open the work package's **fullscreen view.** The **arrow** on top will bring you back to the boards view. +A **double click on a card** will open the work package's **fullscreen view.** The **arrow** on top will bring you back to the boards view. ![back-to-boards-view-button](back-to-boards-view-button.png) @@ -182,11 +183,9 @@ Verify and **update roles and permissions for boards** in the [system's administ ![roles and permissions](image-20201006120925442.png) - - ## Agile boards examples -We would like to show you some examples so that you get an idea on how to use Agile boards. +We would like to show you some examples so that you get an idea on how to use Agile boards. Also, once you have set up your custom boards, you can easily copy them along with your (whole) project to use them as a basis for new ones. Please note: The subprojects in the Subproject board won't be copied. ### Basic board diff --git a/docs/user-guide/agile-boards/agile-boards-faq/README.md b/docs/user-guide/agile-boards/agile-boards-faq/README.md index ddbec3032102..09377d7f0f48 100644 --- a/docs/user-guide/agile-boards/agile-boards-faq/README.md +++ b/docs/user-guide/agile-boards/agile-boards-faq/README.md @@ -12,16 +12,16 @@ keywords: kanban faq, boards, agile board, basic board, swimlane To do this, you can (provided you have set the end dates for the work packages) add the filter "finish date" to the Kanban board and select "In less than 15 days" there. Then you will see the tasks that have a finish date in less than 15 (i.e. 14 days or less). -## How can I activate Boards in OpenProject? +## How can I activate Boards in OpenProject? The Boards module is an Enterprise add-on of OpenProject Enterprise on-premises and OpenProject Enterprise cloud. You can upgrade your Community edition installation by entering a valid subscription token in the application administration. You can purchase the token on our [website](https://www.openproject.org/enterprise-edition/). In addition, you need to activate the Boards module in the project settings. -## Is it possible that we can have a board over all OpenProject tasks and users? +## Is it possible that we can have a board over all OpenProject tasks and users? Yes, to achieve the desired result you can navigate to the main project and on the Kanban view add the filter "subproject" "all". This will display the work packages in the main project and all subprojects. As a precondition, you will need a central parent project within your project hierarchy. ## What does the error message "Parent is invalid because the work package (...) is a backlog task and therefore cannot have a parent outside of the current project" mean? -This message appears when the Backlogs module is activated and you try to set a work package belonging to project A as a child of another work package belonging to project B. +This message appears when the Backlogs module is activated and you try to set a work package belonging to project A as a child of another work package belonging to project B. In the Backlogs module work packages can only have children of the same version and the same project. To avoid displaying different information in the backlog and in the boards view this restriction is in place. You can solve it by disabling the Backlogs module or by changing the project (and if necessary version) of the work package you'd like to move. diff --git a/docs/user-guide/backlogs-scrum/README.md b/docs/user-guide/backlogs-scrum/README.md index fdfe78f8bf13..5c96535b1c49 100644 --- a/docs/user-guide/backlogs-scrum/README.md +++ b/docs/user-guide/backlogs-scrum/README.md @@ -16,7 +16,6 @@ OpenProject supports your work with the Scrum methodology by providing a variety A **Backlog** is defined as a plugin that allows to use the backlogs feature in OpenProject. In order to use backlogs in a project, the backlogs module has to be activated in the project settings of a project. - Please note that this user guide does not represent an introduction into scrum methodology, but merely explains the scrum-related functionalities and user instructions in OpenProject. | Topic | Content | diff --git a/docs/user-guide/backlogs-scrum/backlogs-faq/README.md b/docs/user-guide/backlogs-scrum/backlogs-faq/README.md index d7e9862acf40..3593788c9aab 100644 --- a/docs/user-guide/backlogs-scrum/backlogs-faq/README.md +++ b/docs/user-guide/backlogs-scrum/backlogs-faq/README.md @@ -10,7 +10,7 @@ keywords: backlogs FAQ, back-logs. task board, version, sprint, scrum ## What can I do to show the tasks of shared sub-projects in the backlog? -This is not possible. "Work packages from sub-projects are not displayed in the backlog of a main project" is the currently implemented behavior. +This is not possible. "Work packages from sub-projects are not displayed in the backlog of a main project" is the currently implemented behavior. ## I assigned a version to work packages. Why can't I see them in the respective backlog? @@ -30,4 +30,4 @@ Please try these approaches: ## How can I change the user's colors in the task board? -The colors can be changed in each user's personal settings: Please click on your avatar, then navigate to *My account ->Settings ->Backlogs*. There you can change the task color. \ No newline at end of file +The colors can be changed in each user's personal settings: Please click on your avatar, then navigate to *My account ->Settings ->Backlogs*. There you can change the task color. diff --git a/docs/user-guide/backlogs-scrum/manage-sprints/README.md b/docs/user-guide/backlogs-scrum/manage-sprints/README.md index 3aea7cc840d1..edb0be61de50 100644 --- a/docs/user-guide/backlogs-scrum/manage-sprints/README.md +++ b/docs/user-guide/backlogs-scrum/manage-sprints/README.md @@ -23,10 +23,10 @@ Click on the green **+ Version** button to add a new sprint. Click on the arrow > **Note**: The columns of the version are actually sorted differently. The left column for sprints is sorted chronologically, i.e. according to the time of creation, since sprints usually also run chronologically in project management planning. > The right column (for backlogs) is sorted alphabetically, so that you can determine the sequence of the backlogs yourself. -On the new page, you can specify details of the version such as description, status, (sprint) wiki page, start and end date, as well as sharing options across projects. Moreover, you can create a custom field and decide where the version is to be displayed in the backlog. +On the new page, you can specify details of the version such as description, status, (sprint) wiki page, start and end date, as well as sharing options across projects. Moreover, you can create a custom field and decide where the version is to be displayed in the backlog. The Column in backlog settings define whether the version should be displayed in the backlogs view on the left side (recommended for sprints) or on the right side (recommended for product backlog, bug backlog, wishlist, etc.) > **Note**: Sprints (versions displayed on the left side of the backlogs page) offer more options – such as opening the task board and displaying the burndown chart. -![User-guide-backlogs-manage-versions](User-guide-backlogs-manage-versions.png) \ No newline at end of file +![User-guide-backlogs-manage-versions](User-guide-backlogs-manage-versions.png) diff --git a/docs/user-guide/backlogs-scrum/taskboard/README.md b/docs/user-guide/backlogs-scrum/taskboard/README.md index db237aaac4e3..4b7228df40ea 100644 --- a/docs/user-guide/backlogs-scrum/taskboard/README.md +++ b/docs/user-guide/backlogs-scrum/taskboard/README.md @@ -14,8 +14,6 @@ To open the task board view, click on the small arrow next to the respective spr ![User-guide-taskboard](User-guide-taskboard.png) - - You will find user stories in the left column, followed by their individual tasks (as child work packages) which are sorted by status. Therefore, you can immediately see the status of a user story and its associated tasks. Clicking on the ***+***-icon next to a user story opens a window to create a new task. ![User-guide-new-task](User-guide-new-task.png) @@ -35,14 +33,12 @@ On the very top of the table, sprint impediments are documented and assigned to ![sprint impediments](User-guide-add-impediment.png) - - The task colors are different for every team member, making it easy to associate tasks with their respective assignees. ## Configure Backlogs settings under My Account If needed, the coloring can be adjusted in the personal user account settings (-> *My Account*). Use hex codes to specify the desired color. -![User-guide-task-color](User-guide-task-color.png) +![User-guide-task-color](User-guide-task-color.png) -Here, you can also specify whether the versions in the Backlogs view should be displayed folded. You can choose whether backlogs are to be displayed folded or collapsed by default. In *My account*, select *Settings* from the side menu and check or uncheck the respective box next to the field *Show versions folded*. +Here, you can also specify whether the versions in the Backlogs view should be displayed folded. You can choose whether backlogs are to be displayed folded or collapsed by default. In *My account*, select *Settings* from the side menu and check or uncheck the respective box next to the field *Show versions folded*. diff --git a/docs/user-guide/backlogs-scrum/work-with-backlogs/README.md b/docs/user-guide/backlogs-scrum/work-with-backlogs/README.md index c4f9d8f09307..06fbad75b4cb 100644 --- a/docs/user-guide/backlogs-scrum/work-with-backlogs/README.md +++ b/docs/user-guide/backlogs-scrum/work-with-backlogs/README.md @@ -60,7 +60,6 @@ This will take you to the filtered work package view of all user stories and tas > **Note**: All tasks created for a user story via the task board view are automatically configured as child work packages of a user story. The task is thus always automatically assigned to the target version of the parent work package (i.e. the user story). - ## Prioritize user stories You can prioritize different work packages within the product backlog using drag & drop and you can assign them to a specific sprint backlog or re-order them within a sprint. @@ -95,7 +94,6 @@ Moreover, you can adjust the start and end date of a backlog in the backlogs vie > **Note**: A backlog version will be shown under [Roadmap](../../roadmap/), but not in a [Gantt chart](../../gantt-chart). If you want to display a sprint in a timeline, you can create a new work package, select a phase as a work package type, give it the same name as to a specific version (for example Sprint 1) and assign the same start and end date. - ## Burndown chart **Burndown charts** are a helpful tool to visualize a sprint’s progress. With OpenProject, you can generate sprint and task burndown charts automatically. As a precondition, the sprint’s start and end date must be entered in the title and the information on story points is well maintained. diff --git a/docs/user-guide/budgets/README.md b/docs/user-guide/budgets/README.md index f31ff7ba44e6..85fc38f059c9 100644 --- a/docs/user-guide/budgets/README.md +++ b/docs/user-guide/budgets/README.md @@ -46,9 +46,9 @@ You can add planned unit costs to a budget in your project. These [unit costs fi 5. Enter the number of **units** of the cost type to add to your project budgets. -6. Choose the **cost type** you would like to plan for your budget from the drop-down list. -The **unit name** will be set automatically according to the configuration of the cost types in your system administration. - +6. Choose the **cost type** you would like to plan for your budget from the drop-down list. +The **unit name** will be set automatically according to the configuration of the cost types in your system administration. + 7. Add a **comment** to specify the unit costs. 8. The **planned costs** for this cost type will be calculated automatically based on the configuration of the cost per unit for this cost type. The cost rate will be taken from the fixed date you have configured for your budget. @@ -104,10 +104,8 @@ You will get and overview of planned as well as spent costs and the available co 6. The **planned labor costs** are displayed for this budget. 7. The **actual labor costs** list all work packages that are [assigned to this budget](#assign-a-work-package-to-a-budget) and have logged time on it. - ![Budgets-details-view](Budgets-details-view.png) - > **Note**: The costs are calculated based on the [configuration for cost types](../../system-admin-guide) and the [configured hourly rate](../time-and-costs/time-tracking/#define-hourly-rate-for-labor-costs) in the user profile. ## Frequently asked questions (FAQ) diff --git a/docs/user-guide/calendar/README.md b/docs/user-guide/calendar/README.md index 3489d73ae41a..945ee4e00b5c 100644 --- a/docs/user-guide/calendar/README.md +++ b/docs/user-guide/calendar/README.md @@ -19,7 +19,6 @@ You must first enable the Calendar module in your [project settings](../projects | [Use the calendar](#use-the-calendar) | How to view, modify, create and filter work packages in the calendar. | | [Subscribe to a calendar](#subscribe-to-a-calendar) | How to subscribe to and access a calendar from an external client. | - ## Create a new calendar Once enabled, clicking on the **Calendars** entry on the left sidebar takes you to the Calendar module with a list of all existing calendars. Initially, it will be empty. @@ -27,17 +26,11 @@ Once enabled, clicking on the **Calendars** entry on the left sidebar takes you ![Calendar overview](calendar-overview.png) - You can create a new calendar by clicking on either the **+ Calendar** button at the top right corner near your avatar or at the bottom of the sidebar on the left. - - Click on an existing (saved) calendar to view it. - - You can change the visibility settings of any calendar by clicking on **\[⋮\] (more)** -> **Visibility settings.** - - - Any calendar that has the **Favored** option checked will be displayed under the **Favorite** heading in the sidebar to the left. - - - Any calendar that has the **Public** option checked will be visible to all members of the current project and listed under the **Public** heading in the sidebar to the left. - - - Any calendar that has the **Public** option unchecked will be considered **private** and displayed under the **Private** heading in the menu bar to the left. - + - Any calendar that has the **Favored** option checked will be displayed under the **Favorite** heading in the sidebar to the left. + - Any calendar that has the **Public** option checked will be visible to all members of the current project and listed under the **Public** heading in the sidebar to the left. + - Any calendar that has the **Public** option unchecked will be considered **private** and displayed under the **Private** heading in the menu bar to the left. ## Use the calendar @@ -47,13 +40,13 @@ Once enabled, clicking on the **Calendars** entry on the left sidebar takes you When you open a new calendar, all work packages within the current project are displayed as horizontal strips that span all dates between the start and finish dates (inclusive). The color represents the [work package type](../../system-admin-guide/manage-work-packages/work-package-types). The subject or title displayed on the strip (insomuch as the length allows). -The current month is automatically selected. +The current month is automatically selected. ![Calendar time controls](Calendar-timeControls.png) -1. You can use the previews/next arrow controls (←, →) in the top left corner to move forwards or backwards in time. +1. You can use the previews/next arrow controls (←, →) in the top left corner to move forwards or backwards in time. 2. The **today** button brings you back to the current date. -3. You can use the month/week toggle on the top right corner to switch between either a month view or a week view. +3. You can use the month/week toggle on the top right corner to switch between either a month view or a week view. If multiple work packages are scheduled on the same day, they are displayed in a vertical stack. @@ -115,10 +108,10 @@ This makes it possible for you to keep an eye on your project schedule from any To subscribe to a calendar: -1. Click on the **\[⋮\] (more) button** on the toolbar and select **Subscribe to calendar**. -2. In the modal that appears, give this calendar a unique name (you can only use it once). We recommend naming it based on where you will be subscribing to this calendar from ("personal phone" or "work tablet" for example). -3. Click on **Copy URL**. This creates the a [calendar token](../../getting-started/my-account/#access-tokens) and copies the calendar URL to your clipboard. -4. Paste this URL in your desired calendar client to subscribe. +1. Click on the **\[⋮\] (more) button** on the toolbar and select **Subscribe to calendar**. +2. In the modal that appears, give this calendar a unique name (you can only use it once). We recommend naming it based on where you will be subscribing to this calendar from ("personal phone" or "work tablet" for example). +3. Click on **Copy URL**. This creates the a [calendar token](../../getting-started/my-account/#access-tokens) and copies the calendar URL to your clipboard. +4. Paste this URL in your desired calendar client to subscribe. ![Subscribe to calendar modal](subscribeToCalendar-modal.png) diff --git a/docs/user-guide/documents/README.md b/docs/user-guide/documents/README.md index c8d52d495124..6edb5cf8249e 100644 --- a/docs/user-guide/documents/README.md +++ b/docs/user-guide/documents/README.md @@ -29,7 +29,7 @@ The uploaded documents are visible to all project members who have the necessary You can edit or delete documents anytime. To do that, navigate to the Documents overview and select the document you want to edit. By selecting *Edit* or *Delete* respectively you can either adjust the document file and related information or remove the file permanently. You can add the file again at a later point. -![edit or delete document](image-20200130111121885.png) +![edit or delete document](image-20200130111121885.png) ## Frequently asked questions (FAQ) diff --git a/docs/user-guide/file-management/README.md b/docs/user-guide/file-management/README.md index 9283527bd02c..83e4f50b5903 100644 --- a/docs/user-guide/file-management/README.md +++ b/docs/user-guide/file-management/README.md @@ -21,7 +21,7 @@ There are several ways of adding or linking files to work packages in OpenProjec ## Manual upload -For the manual upload please refer to documentation on [attaching files to work packages](../work-packages/create-work-package/#add-attachments-to-work-packages). +For the manual upload please refer to documentation on [attaching files to work packages](../work-packages/create-work-package/#add-attachments-to-work-packages). ## Nextcloud integration @@ -40,4 +40,3 @@ You can also use OneDrive/SharePoint integration to link OpenProject work packag Please refer to [OneDrive/SharePoint integration user guide](./one-drive-integration) for further instructions on using the integration. For the initial setup please refer to the [OneDrive/SharePoint integration setup guide](../../system-admin-guide/integrations/one-drive/). - diff --git a/docs/user-guide/file-management/file-management-faq/README.md b/docs/user-guide/file-management/file-management-faq/README.md index 5c9354f5e2bb..808a427408c6 100644 --- a/docs/user-guide/file-management/file-management-faq/README.md +++ b/docs/user-guide/file-management/file-management-faq/README.md @@ -10,20 +10,20 @@ keywords: files, attachment, Nextcloud, OneDrive, SharePoint, FAQ ## Why am I not allowed to see/read a certain file in OneDrive/SharePoint or Nextcloud? -It is possible that you lack the necessary permissions to view a certain file. In this case please contact your administrator. +It is possible that you lack the necessary permissions to view a certain file. In this case please contact your administrator. Another explanation may be that you have been removed from a project in OpenProject, which will also mean that you lost your viewing or reading privileges in OneDrive/SharePoint or Nextcloud project folders. It can also be that case, that a project admin revoked your permission to view files on file storages within a project in OpenProject. ## Can I rename a project with an established file storage (Nextcloud or OneDrive/SharePoint) connection? + Yes, that is possible. If you work with automatically managed folders, the corresponding project folder will also be renamed automatically after a few minutes. ## Can I copy a project, including the OneDrive/SharePoint file storage? Yes, you can. If the OneDrive/SharePoint file storage in your project had the automatically managed folders selected during the set-up, the folder with all files will be copied. If the file storage was added with manual managed folders, the new copy of the project will have the same file storage setup and reference the original folder without copying it. Read more about copying projects [here](../../projects/#copy-a-project). - ## Is there a virus scanner for the files attachments in OpenProject? -Yes, there is a virus scanner for attachments in OpenProject. At the moment it is only available for on-premises installations and is an Enterprise add-on. Your system administrator will need to [configure it first](../../../system-admin-guide/attachments/virus-scanning). +Yes, there is a virus scanner for attachments in OpenProject. At the moment it is only available for on-premises installations and is an Enterprise add-on. Your system administrator will need to [configure it first](../../../system-admin-guide/attachments/virus-scanning). diff --git a/docs/user-guide/file-management/nextcloud-integration/README.md b/docs/user-guide/file-management/nextcloud-integration/README.md index 29c0770f89da..ffef5758572d 100644 --- a/docs/user-guide/file-management/nextcloud-integration/README.md +++ b/docs/user-guide/file-management/nextcloud-integration/README.md @@ -24,11 +24,10 @@ Additionally you can: - Pick and preview links to work packages in Nextcloud - Search for work packages using Nextcloud's search bar -It is also possible to automatically create dedicated [project folders](../../projects/project-settings/file-storages/#project-folders), which makes documentation structure clearer and makes navigation more intuitive. +It is also possible to automatically create dedicated [project folders](../../projects/project-settings/file-storages/#project-folders), which makes documentation structure clearer and makes navigation more intuitive. > **Important note**: 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). Then a project administrator can activate Nextcloud in the [File storages](../../projects/project-settings/file-storages/) for a project. - | Topic | Description | |-----------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------| | [Connect your OpenProject and Nextcloud accounts](#connect-your-openproject-and-nextcloud-accounts) | How to connect your Nextcloud and OpenProject accounts to be able to use this integration | @@ -50,7 +49,7 @@ To begin using this integration, you will need to first connect your OpenProject 2. You will see a Nextcloud screen asking you to log in before granting OpenProject access to your Nextcloud account. You will also see a security warning, but since you are indeed trying to connect the two accounts, you can safely ignore it. Click on **Log in** and enter your Nextcloud credentials. ![Nextcloud login step 2](login_nc_step2-1.png) - + ![Nextcloud login step 3](login_nc_step2-2.png) 3. Once you are logged in to Nextcloud, click on **Grant access** to confirm you want to give OpenProject access to your Nextcloud account. @@ -63,7 +62,6 @@ 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 → OpenProject_. There, click *Disconnect from OpenProject* button. To re-link the two accounts, simply follow [the above instructions](#connect-your-openproject-and-nextcloud-accounts) again. ## Link files and folders to work packages @@ -91,11 +89,11 @@ To link a Nextcloud file to the current work package, you can either: #### Upload and link new files -If the file you want to link has not yet been uploaded to Nextcloud, you can do so by clicking on the **Upload files** link. +If the file you want to link has not yet been uploaded to Nextcloud, you can do so by clicking on the **Upload files** link. ![Upload new files to Nextcloud](NC_12.5-uploadFilesLink.png) -You will then be prompted to select a file (or multiple files) on your computer that you want to upload to Nextcloud. +You will then be prompted to select a file (or multiple files) on your computer that you want to upload to Nextcloud. ![Pick a file from your computer](NC_12.5-selctFileToUpload.png) @@ -107,9 +105,9 @@ Once you have selected or dropped the files you would like to upload, you will n ![Select the destination folder on Nextcloud](NC_12.5-selectLocationToUploadTo.png) -You can click on folders you see to navigate to them. A helpful breadcrumb shows you where you are in the folder hierarchy. +You can click on folders you see to navigate to them. A helpful breadcrumb shows you where you are in the folder hierarchy. -To navigate one level up or to go back to the root, simply click on the relevant parent in the breadcrumb. +To navigate one level up or to go back to the root, simply click on the relevant parent in the breadcrumb. > **Info**: If you have navigated particularly deep (over 4 levels), intermediate levels might be collapsed to save space, but you'll always be able to navigate back to the immediate parent or the root to go backwards. @@ -125,11 +123,11 @@ If a file has been deleted from a Nextcloud storage, it will still be visible un #### Download, open folders and remove links -If you wish to unlink any linked file or folder, hover to it in the list of linked Files and click on the **Unlink** icon. +If you wish to unlink any linked file or folder, hover to it in the list of linked Files and click on the **Unlink** icon. ![Unlinking linked file in OpenProject](op_unlink_download_openfolder.png) -Respectively in order to download a file, hover over the **Download** icon in the list of the linked files. +Respectively in order to download a file, hover over the **Download** icon in the list of the linked files. If you click the **Folder** icon, the Nextcloud folder containing this file will open in a separate tab. @@ -145,7 +143,7 @@ On the file or folder that you want to link to a work package, click on the *thr ![Open files details in Nextcloud](Nextcloud_open_file_details.png) -In the **Details** side panel, click on the **OpenProject** tab. This tab lets you link work packages in OpenProject to the current file, and will list all linked work packages. When nothing is yet linked, the list will be empty. +In the **Details** side panel, click on the **OpenProject** tab. This tab lets you link work packages in OpenProject to the current file, and will list all linked work packages. When nothing is yet linked, the list will be empty. ![Nextcloud no file relation defined](NC_0_00-FileNoRelation.png) @@ -162,7 +160,7 @@ This linked file will then appear underneath the search bar. Doing so will also You can also **link multiple files** to a single OpenProject work package. To do that, select the files you want to link, click the *Actions* menu and select the respective option. ![Select multiple files in Nextcloud to link to a single work package in OpenProject](nc_select_multiple_files.png) -A dialogue will open, allowing you to search for and then select an OpenProject work package to add all of the files to. The newly added files will become visible under the **Files** tab in the work package. +A dialogue will open, allowing you to search for and then select an OpenProject work package to add all of the files to. The newly added files will become visible under the **Files** tab in the work package. ![Select an OpenProject work package in Nextcloud](nc_select_wp_to_link.png) @@ -186,6 +184,7 @@ You will be asked to confirm that you want to unlink. Click on **Remove link** t > **Info**: Unlinking a file or folder simply removes the connection with this work package; the original file or folder will _not_ be deleted or affected in any way. The only change is it will no longer appear in the Files tab on OpenProject, and the work package will no longer be listed in the "OpenProject" tab for that file on Nextcloud. ## Nextcloud dashboard + In addition to actions related to individual files, you can also choose to display the OpenProject widget on your Nextcloud dashboard in order to keep an eye on your OpenProject notifications. ![Add widget in Nextcloud](nc_widget_choice.png) @@ -195,7 +194,7 @@ In addition to actions related to individual files, you can also choose to displ There are two additional features related to the integration that you can enable in Nextcloud. In your personal settings page, under **OpenProject**, you will find these options: -- **Enable navigation link** displays a link to your OpenProject instance in the Nextcloud header +- **Enable navigation link** displays a link to your OpenProject instance in the Nextcloud header - **Enable unified search for tickets** allows you to search OpenProject work packages via the universal search bar in Nextcloud ![Nextcloud settings for OpenProject](nextcloud_openproject_account.png) @@ -206,7 +205,7 @@ There are two additional features related to the integration that you can enable Starting with **OpenProject Nextcloud Integration App 2.4** a work package link preview will be shown if you use Nextcloud Talk or Text apps. Please note that you will need Nextcloud 26 or higher to be able to use this feature. -You can [copy a work package link](../../work-packages/copy-move-delete/#copy-link-to-clipboard) and paste it into a text field, e.g in Nextcloud Talk or Nextcloud Collectives. Whenever you paste a a URL to a work package in a text field, a card for previewing the work package will get rendered. +You can [copy a work package link](../../work-packages/copy-move-delete/#copy-link-to-clipboard) and paste it into a text field, e.g in Nextcloud Talk or Nextcloud Collectives. Whenever you paste a a URL to a work package in a text field, a card for previewing the work package will get rendered. Alternatively you can use **/** to activate the **smart picker** and find the work package by searching. @@ -214,7 +213,7 @@ Alternatively you can use **/** to activate the **smart picker** and find the wo ![smart picker search in nextcloud](nc_smartpicker_search.png) -Once you have selected a work package to share in the talk or text app, a preview of this work package will be displayed. +Once you have selected a work package to share in the talk or text app, a preview of this work package will be displayed. ![work package preview in nextcloud](nc_smartpicker_preview.png) @@ -228,10 +227,9 @@ When a Nextcloud file or folder is linked to a work package, an OpenProject user However, all available actions depend on permissions the OpenProject user (or more precisely, the Nextcloud account tied to that user) has in Nextcloud. In other words, a user who does not have the permission to access the file in Nextcloud will also *not* be able to open, download, modify or unlink the file in OpenProject. - ## Possible errors and troubleshooting -### No permission to see this file +### 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 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. @@ -239,7 +237,7 @@ If you are unable to see the details of a file or are unable to open some of the ### User not logged in to Nextcloud -If you see the words "Login to Nextcloud" where you would normally see a list of linked files in the Files tab in OpenProject, it is because you have logged out of (or have been automatically logged out of) Nextcloud. Alternatively, you could be logged in with a different account than the one you set up to use with OpenProject. +If you see the words "Login to Nextcloud" where you would normally see a list of linked files in the Files tab in OpenProject, it is because you have logged out of (or have been automatically logged out of) Nextcloud. Alternatively, you could be logged in with a different account than the one you set up to use with OpenProject. In this case, you will still be able to see the list of linked files, but not perform any actions. To restore full functionality, simply log back in to your Nextcloud account. diff --git a/docs/user-guide/file-management/one-drive-integration/README.md b/docs/user-guide/file-management/one-drive-integration/README.md index 9b29dce4242e..54230a5d08e6 100644 --- a/docs/user-guide/file-management/one-drive-integration/README.md +++ b/docs/user-guide/file-management/one-drive-integration/README.md @@ -15,7 +15,7 @@ You can use **OneDrive/SharePoint** as an integrated file storage in OpenProject This integration makes it possible for you to: - Link files and folders stored in OneDrive/SharePoint with work packages in OpenProject -- View, open and download files and folders linked to a work package via the **Files** tab +- View, open and download files and folders linked to a work package via the **Files** tab > **Important note**: To be able to use OneDrive/SharePoint as a file storage in your project, the administrator of your instance should first have completed the [OneDrive/SharePoint integration setup](../../../system-admin-guide/integrations/one-drive). Then a project administrator can activate the integrated storage in the [File storages](../../projects/project-settings/file-storages/) for a project. @@ -32,12 +32,12 @@ This integration makes it possible for you to: To begin using this integration, you will need to first connect your OpenProject and Microsoft accounts. To do this, open any work package in a project where a OneDrive/SharePoint file storage has been added and enabled by an administrator and follow these steps: 1. Select any work package. Go to the **Files tab** and, within the correct file storage section, click on **Storage login** button. - + ![Login to Sharepoint storage from an OpenProject work package](openproject_onedrive_login_to_storage.png) - -2. You will see a Microsoft login prompt asking you to log in. Enter your credentials and log in. + +2. You will see a Microsoft login prompt asking you to log in. Enter your credentials and log in. 3. Once you have logged in, you will automatically return to the work package in OpenProject and see that you can now start uploading and linking files. - + ![OneDrive storage is available in an OpenProject work package](openproject_onedrive_available.png) ## Link files and folders to work packages @@ -55,7 +55,7 @@ To link a SharePoint file to the current work package, you can either: ![Select a SharePoint file or folder to link to an OpenProject work package](openproject_onedrive_link_files.png) -## Upload files from OpenProject +## Upload files from OpenProject If the file you want to link has not yet been uploaded to SharePoint, you can do so by clicking on the **Upload files** link. @@ -89,8 +89,6 @@ If a file has been deleted on the OneDrive/SharePoint file storage it will still ![A file has been deleted from the OneDrive/SharePoint file storage](oneproject_onedrive_deleted_file.png) - - ## Download, open folders and remove links If you wish to unlink any linked file or folder, hover it in the list of linked files and click on the **Unlink** icon. @@ -101,7 +99,7 @@ Respectively in order to download a file, click on the **Download icon** in the If you click the **Folder icon**, the OneDrive/SharePoint folder containing this file will open in a separate tab. -## Permissions and access control +## Permissions and access control When a file or folder from OneDrive/SharePoint is linked to a work package, an OpenProject user who has access to that work package will be able to: diff --git a/docs/user-guide/forums/README.md b/docs/user-guide/forums/README.md index a91a9d3a3c38..97af4c6e1450 100644 --- a/docs/user-guide/forums/README.md +++ b/docs/user-guide/forums/README.md @@ -10,7 +10,7 @@ keywords: forum, forums In the forum in OpenProject you can discuss topics in a project with the team: post questions, comment on it and document answers. -
+
**Forum** is defined as a module used to display forums and forum entries. The module has to be activated in the project settings and a forum has to be created in the forums tab in the project settings to be displayed in the side navigation.
@@ -63,8 +63,6 @@ To add a **reply to an existing message** in a forum, click on the Subject in or Click the blue **Reply** button underneath the forum message. - - ![Forum-message-reply](Forum-message-reply.png)Enter your **Message content** what you want to add as a reply to the existing message. You can choose to also **add a file** if needed. diff --git a/docs/user-guide/gantt-chart/README.md b/docs/user-guide/gantt-chart/README.md index a12ea02c31dc..8c979da5cbf0 100644 --- a/docs/user-guide/gantt-chart/README.md +++ b/docs/user-guide/gantt-chart/README.md @@ -12,7 +12,6 @@ keywords: gantt chart, timeline, project plan The **Gantt charts** module in OpenProject displays the work packages in a timeline. You can collaboratively create and manage your project plan, have your project timelines available to all team members and share up-to-date information with stakeholders. You can add start and finish dates and adapt it via drag and drop directly in the Gantt chart. Also, you can add dependencies, predecessors or followers within the Gantt chart.
- | Topic | Content | |-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| | [Activate the Gantt chart](#activate-the-gantt-chart) | How to activate the Gantt chart in OpenProject. | @@ -24,18 +23,17 @@ The **Gantt charts** module in OpenProject displays the work packages in a timel | [Multi project views](#multi-project-views) | Create project overarching timelines. | | [Aggregation by project](#aggregation-by-project) | How to display an aggregated view of all milestones of multiple projects. | - ## Activate the Gantt chart -A Gantt chart view can be activated either for a specific project, or on the project overarching level if you need to view the timeline for multiple projects. +A Gantt chart view can be activated either for a specific project, or on the project overarching level if you need to view the timeline for multiple projects. -For a specific project, select the **Gantt charts** module from the project module menu on the left side. +For a specific project, select the **Gantt charts** module from the project module menu on the left side. ![activate-gantt](openproject-user-guide-select-gantt-charts.png) -To view multiple projects in a single timeline, select **Gantt charts** from the **Global Modules** menu. +To view multiple projects in a single timeline, select **Gantt charts** from the **Global Modules** menu. ![Select Gantt charts from the global modules menu in OpenProject](openproject-user-guide-select-gantt-charts-global.png) @@ -43,9 +41,9 @@ Alternatively, you can also use the **Include projects** filter. ## Gantt charts views -Once you opened the Gantt charts module, the default view will show all open work packages. You can adjust the view using the filters or select one the following view options: +Once you opened the Gantt charts module, the default view will show all open work packages. You can adjust the view using the filters or select one the following view options: -![View options in OpenProject Gantt charts](openproject-user-guide-gantt-charts-views.png) +![View options in OpenProject Gantt charts](openproject-user-guide-gantt-charts-views.png) **Favorite**: lists all saved Gantt charts view that are marked as favorite @@ -60,24 +58,23 @@ Once you opened the Gantt charts module, the default view will show all open wor ## Quick context menu in Gantt chart view -Once you have selected the Gantt chart view, you can use the quick context menu. To do that, right-click on any of the work packages. +Once you have selected the Gantt chart view, you can use the quick context menu. To do that, right-click on any of the work packages. > **Note**: if you use the [work packages view](../work-packages/edit-work-package#update-a-work-package-in-a-work-package-table-view) in the **Work packages** module, the options in the quick context menu will differ slightly from the ones in the Gantt chart view. - ![Quick context menu in OpenProject Gantt chart work packages view](gantt-context-menu.png) -You can use any of the following options. +You can use any of the following options. - **Open details view** - opens the details view of a work package on the right side of the screen. - **Open fullscreen view** - opens the detailed view of a work package across the entire screen. - **Change project** - allows moving the selected work package to a different project. -- **Copy link to clipboard** - copies a short link to the selected work package to your clipboard. +- **Copy link to clipboard** - copies a short link to the selected work package to your clipboard. - **Delete** - deletes a work package. You will need to confirm the deletion. - **Indent hierarchy** - creates a child-parent relationship with the work package directly above. The work package you selected become the child work package. The work package directly above becomes the parent work package. - **Add predecessor** - adds a predecessor (it will prompt you to select a work package in Gantt view). - **Add follower** - adds a follower (it will prompt you to select a work package in Gantt view). - **Show relations** - open the details view of a work package and displays the **Relations** tab. -- **Create new child** - opens a new work package on the right side of the screen. This new work package already has a child relationship to the work package you selected. **This option will not be available if the work package type is a milestone**. +- **Create new child** - opens a new work package on the right side of the screen. This new work package already has a child relationship to the work package you selected. **This option will not be available if the work package type is a milestone**. ## Create a new element in the Gantt chart @@ -111,7 +108,6 @@ Select the item to which you want to create a dependency. The precede and follow The quickest way to remove a relation is to select **Show relations** from the quick context menu and removing the relation in the work package details view. - ![dependencies-gantt-chart](gantt-chart.gif) When work packages have a precedes/follows relationship: @@ -134,8 +130,6 @@ Scheduling modes can also affect work package relations. Read about [automatic a - A **diamond symbol** stands for a milestone. - A **bar** stands for work packages like phases and tasks. - - ## Gantt chart configuration To open the Gantt chart configuration, please open the **settings** icon with the three dots on the upper right of the work package module. @@ -189,25 +183,20 @@ To zoom in and zoom out in the Gantt chart view, click on the button with the ** ![Zooming into a Gantt chart in OpenProject](openproject-user-guide-gantt-charts-zoom.png) - - ### Auto zoom -Select the **auto zoom button** on top of the Gantt chart to have the best view of your Gantt chart. +Select the **auto zoom button** on top of the Gantt chart to have the best view of your Gantt chart. Please note that the **auto zoom button** may not be selectable if it has been pre-selected in the [Gantt charts configuration](#gantt-chart-configuration) ![auto-zoom-Gantt](openproject-user-guide-gantt-charts-auto-zoom.png) - - ### Zen mode The zen mode gives you more space to focus on the tasks at hand. It's almost like activating the full screen view in your browser. To exit press the *Esc* key or click on the **zen mode** symbol again. ![zen-mode-Gantt-chart](openproject-user-guide-gantt-charts-zen-mode.png) - ## Multi project views With the Gantt charts in OpenProject you can create project overarching timelines. @@ -233,7 +222,7 @@ Use the minus next to the project's name or the **collapse button** in the upper ![collapse-button](openproject-user-guide-gantt-charts-collapse-all.png) -This will give you an **aggregated view of the projects' work packages**. You can further adjust this view by using the Filter functionality, for example display work package type Bugs. +This will give you an **aggregated view of the projects' work packages**. You can further adjust this view by using the Filter functionality, for example display work package type Bugs. ![Filtering project aggregated projects Gantt chart view in OpenProject](openproject-user-guide-gantt-charts-filters.png) diff --git a/docs/user-guide/gantt-chart/gantt-chart-faq/README.md b/docs/user-guide/gantt-chart/gantt-chart-faq/README.md index e1414bb04ad2..f1522de66344 100644 --- a/docs/user-guide/gantt-chart/gantt-chart-faq/README.md +++ b/docs/user-guide/gantt-chart/gantt-chart-faq/README.md @@ -12,18 +12,18 @@ keywords: Gantt chart FAQ, time line, scheduling Make sure that you remove the relations of the milestone to other work packages. Then its date won't change when you change the timings of other work packages. For releases from 11.0.0 onwards (October 2020) you can use the [manual scheduling mode](../scheduling) for this. -## When I am working in the Gantt chart, every change seems to take quite long. +## When I am working in the Gantt chart, every change seems to take quite long. What can I do? -We understand that the loading time when working in Gantt Chart is too long for you. The reason for this is that every single action is saved. So everything is fine with your installation. We have already taken up the point with us and already have first ideas for a technical solution. The respective feature request can be found [here](https://community.openproject.org/wp/34176). +We understand that the loading time when working in Gantt Chart is too long for you. The reason for this is that every single action is saved. So everything is fine with your installation. We have already taken up the point with us and already have first ideas for a technical solution. The respective feature request can be found [here](https://community.openproject.org/wp/34176). ## Can I export the Gantt? -At the moment that's not possible, but you can use the print feature of your browser to print it as PDF (we optimized this for Google Chrome). Please find out more [here](../#how-to-print-a-gantt-chart). +At the moment that's not possible, but you can use the print feature of your browser to print it as PDF (we optimized this for Google Chrome). Please find out more [here](../#how-to-print-a-gantt-chart). The respective feature request can be found [here](https://community.openproject.org/wp/15444). ## I can no longer see my Gantt chart filters, what can I do? -Gantt charts became a separate module in OpenProject 13.3. To see the filters you created and saved earlier please select the **Gantt charts** module either from the global modules menu or from the project menu on the left. +Gantt charts became a separate module in OpenProject 13.3. To see the filters you created and saved earlier please select the **Gantt charts** module either from the global modules menu or from the project menu on the left. ## How can I build in a "buffer" (e.g. two weeks gap) between two consecutive work packages, so that even if the first one is postponed the second one always starts e.g. two weeks later? @@ -32,4 +32,4 @@ As a workaround you could create a separate work package (type) which acts as a ## Is there a critical path feature? -Unfortunately, we don't have the critical path feature yet. We have a feature request for it though and will check how to integrate it into our road map. A workaround could be to [create predecessor-successor relations](../../work-packages/work-package-relations-hierarchies/#work-package-relations) for only the work packages that are in the critical path. +Unfortunately, we don't have the critical path feature yet. We have a feature request for it though and will check how to integrate it into our road map. A workaround could be to [create predecessor-successor relations](../../work-packages/work-package-relations-hierarchies/#work-package-relations) for only the work packages that are in the critical path. diff --git a/docs/user-guide/gantt-chart/scheduling/README.md b/docs/user-guide/gantt-chart/scheduling/README.md index c4492753205d..52155496e00e 100644 --- a/docs/user-guide/gantt-chart/scheduling/README.md +++ b/docs/user-guide/gantt-chart/scheduling/README.md @@ -16,14 +16,12 @@ To schedule work packages in the Gantt chart there is an **automatic scheduling As the scheduling mode only affects individual work packages you can combine manual scheduling mode (top-down planning) and automatic scheduling mode (bottom-up planning) within the same project. - | Topic | Content | | ------------------------------------------------------- | ------------------------------------------------------------ | | [Automatic scheduling mode](#automatic-scheduling-mode) | What happens to work packages, when you connect them in automatic scheduling mode? | | [Manual scheduling mode](#manual-scheduling-mode) | What happens to work packages, when you connect them in manual scheduling mode? | | [Changing mode](#changing-mode) | How can I change between manual and automatic scheduling mode? | - ## Automatic scheduling mode The automatic scheduling mode is generally set as **the default mode** for new work packages. For [dependencies](../#relations-in-the-gantt-chart) between two work packages this means: @@ -49,7 +47,6 @@ Moving a child work package in the manual scheduling mode will not move the date - ## Changing mode You can **activate the manual scheduling mode** by clicking on the date of a work package and selecting the box next to "Manual scheduling". This will activate the manual scheduling mode only for the respective work package. diff --git a/docs/user-guide/home/README.md b/docs/user-guide/home/README.md index 2bafebe87e88..9b73684a28b2 100644 --- a/docs/user-guide/home/README.md +++ b/docs/user-guide/home/README.md @@ -8,7 +8,7 @@ keywords: application start page # Application Home page -On the **application home page** (start page) you will get an overview about important information. From here you can access all [global modules](./global-modules) in the left hand navigation. +On the **application home page** (start page) you will get an overview about important information. From here you can access all [global modules](./global-modules) in the left hand navigation. To get to the application home page, click on the logo in the header of the application. diff --git a/docs/user-guide/home/global-modules/README.md b/docs/user-guide/home/global-modules/README.md index 7eaf8bda69b0..09754ce320d7 100644 --- a/docs/user-guide/home/global-modules/README.md +++ b/docs/user-guide/home/global-modules/README.md @@ -9,7 +9,7 @@ keywords: global modules, project overarching modules, global index pages Global modules present an overview of the projects of which you are a member or have permissions to see. On this page, you will find a summary of all the sidebar menu entries for module across all your projects, such as **Activity, Work packages, Calendars, Boards**, etc. -To access the **Global modules** side menu, simply click on the logo in the header. +To access the **Global modules** side menu, simply click on the logo in the header. ![Navigating to global modules menu in OpenProject](open_project_user_guide_global_modules_menu.png) @@ -17,11 +17,10 @@ You can also use the grid icon in the top right corner to access the **Global mo ![Navigating to global modules menu in OpenProject via grid icon](open_project_user_guide_global_modules_menu_grid_icon.png) -> It is possible that some of the global modules are not visible to you. This will be the case if said module is not activated in the [Project settings](../../projects/project-settings/) in any of the active projects in you instance. If, for example, the **News** module is not enabled in any of the active projects, you will not see it in the **Global modules** menu. +> It is possible that some of the global modules are not visible to you. This will be the case if said module is not activated in the [Project settings](../../projects/project-settings/) in any of the active projects in you instance. If, for example, the **News** module is not enabled in any of the active projects, you will not see it in the **Global modules** menu. You can also use the grid icon in the top right corner to access the **Global modules** side menu. - ## Projects The **Projects** global module will display all projects in your OpenProject instance of which you are a member and/or have the right to see (for example as an administrator), including public projects. @@ -44,12 +43,10 @@ The **Activity** global module provides an overview of all project activities ac The timeframe for tracing and displaying activities starts with the current date. You can adjust how far back the activities should be traced by adjusting [System settings](../../../system-admin-guide/system-settings/general-settings/). -You can adjust the view by using the filters on the left menu and clicking the **Apply** button. +You can adjust the view by using the filters on the left menu and clicking the **Apply** button. >Note: **Changesets** filter comes from repositories that are managed by OpenProject. For example, if you make a commit to a GIT or SVN repository, these changes will be displayed here. At the moment this filter is only relevant for self-hosted editions. - - ## Work packages The **Work packages** global module will show a work packages table from the projects of which you are a member or have the right to view, including public projects. You can select your **Favorite** and **Default** work package filters in the left side menu. Please note that if a view is marked as favorite it will be shown in the **Favorite** section, whether it is also saved as public or private or not. @@ -74,15 +71,15 @@ The **Calendars** global module displays all calendars to which you have access, ![The Calendars global module](openproject_global_modules_calendars.png) -You can also create a new calendar directly from the global modules menu by clicking the green **+ Calendar** button. +You can also create a new calendar directly from the global modules menu by clicking the green **+ Calendar** button. ![Creating a new calendar from the Calendars global module](openproject_global_modules_add_calendar.png) -Here you can name the calendar, select a project to which the calendar should belong and set it to be public or favored. Find out more about editing calendars [here](../../calendar). +Here you can name the calendar, select a project to which the calendar should belong and set it to be public or favored. Find out more about editing calendars [here](../../calendar). ## Team planners -The **Team planners** global module will display all team planners from the projects you are a member of, have administrative privileges to see and the public ones. +The **Team planners** global module will display all team planners from the projects you are a member of, have administrative privileges to see and the public ones. ![The Team planners global module](openproject_global_modules_team_planner.png) @@ -90,11 +87,11 @@ You can also create a new team planner directly from the global modules menu by ![Creating a new team planner from the Team planners global module](openproject_global_modules_add_team_planner.png) -You can name the new team planner, select a project to which it should belong and set to be public or favored. Find out more about editing team planners [here](../../team-planner). +You can name the new team planner, select a project to which it should belong and set to be public or favored. Find out more about editing team planners [here](../../team-planner). ## Boards -The **Boards** global module will list all boards to which you have access across all projects, including public projects. +The **Boards** global module will list all boards to which you have access across all projects, including public projects. ![The Boards global module](openproject_global_modules_boards.png) @@ -102,11 +99,11 @@ You can also create a board directly from the global modules menu by clicking th ![Creating a new board the Boards global module](openproject_global_modules_add_board.png) -You can name the board, select a project to which the new board should belong and choose the board type. Find out more about editing boards [here](../../agile-boards). +You can name the board, select a project to which the new board should belong and choose the board type. Find out more about editing boards [here](../../agile-boards). ## News -The **News** global module will display all news that have been published in projects of which you are a member, have the administrative privileges to view and public projects. +The **News** global module will display all news that have been published in projects of which you are a member, have the administrative privileges to view and public projects. ![The News global module](openproject_global_modules_news.png) @@ -116,7 +113,7 @@ Read more about writing, editing and commenting on **News** in OpenProject [here The **Time and costs** global module will list time and cost reports created by you and the ones set to be public in the left hand menu. The filters you see initially will be pre-filled based on the values you used for filtering during your last session, or the default ones if you have never used them. -You can create new time and cost reports by adjusting filters, grouping criteria and units accordingly and clicking the **Apply** button. Do not forget to **Save** your report. +You can create new time and cost reports by adjusting filters, grouping criteria and units accordingly and clicking the **Apply** button. Do not forget to **Save** your report. ![The Time and costs global module](openproject_global_modules_time_costs.png) @@ -128,7 +125,7 @@ Read more about creating and editing **Time and cost reports** [here](../../time ![The Meetings global module](openproject_global_modules_meetings.png) -You can also choose to view all **Past meetings** or apply one of the filters based on your **Involvement** in a meeting. +You can also choose to view all **Past meetings** or apply one of the filters based on your **Involvement** in a meeting. You can create a new meeting directly from within the global modules menu by clicking a green **+ Meeting** button either in the top right corner at the bottom of the sidebar: diff --git a/docs/user-guide/meetings/README.md b/docs/user-guide/meetings/README.md index c850d1259be3..fc2eb976d089 100644 --- a/docs/user-guide/meetings/README.md +++ b/docs/user-guide/meetings/README.md @@ -11,8 +11,8 @@ keywords: meetings Meetings in OpenProject allow you to manage and document your project meetings, prepare a meeting agenda together with your team and document and share minutes with attendees, all in one central place.
-**Meetings** is defined as a module that allows the organization of meetings. -**Note:** In order to be able to use the meetings plugin, the **Meetings module needs to be activated** in the [Project Settings](../projects/project-settings/modules/). +**Meetings** is defined as a module that allows the organization of meetings. +**Note:** In order to be able to use the meetings plugin, the **Meetings module needs to be activated** in the [Project Settings](../projects/project-settings/modules/).
| Topic | Content | @@ -23,9 +23,6 @@ Meetings in OpenProject allow you to manage and document your project meetings, ## Meetings in OpenProject -You can view existing meetings within a project or create a new meeting by selecting the **Meetings** module on the left-hand project menu. Alternatively, you can access the transversal cross-project **Meetings** module from the [global modules](../home/global-modules/) menu. +You can view existing meetings within a project or create a new meeting by selecting the **Meetings** module on the left-hand project menu. Alternatively, you can access the transversal cross-project **Meetings** module from the [global modules](../home/global-modules/) menu. >With OpenProject 13.1.0 there will be two types of meetings that you can create: [dynamic](dynamic-meetings/) and [classic](classic-meetings). Please keep in mind that the ability to create classic meetings will eventually be removed from OpenProject. - - - diff --git a/docs/user-guide/meetings/classic-meetings/README.md b/docs/user-guide/meetings/classic-meetings/README.md index 84e5fcd212d9..3ffe529a6464 100644 --- a/docs/user-guide/meetings/classic-meetings/README.md +++ b/docs/user-guide/meetings/classic-meetings/README.md @@ -15,7 +15,6 @@ Meetings in OpenProject allow you to manage and document your project meetings, > *Note:* [Dynamic meetings](../dynamic-meetings) were introduced in OpenProject 13.1. At the moment, the Meetings module lets you create classic or dynamic meetings but please keep in mind that the ability to create classic meetings will eventually be removed from OpenProject. - | Topic | Content | |---------------------------------------------------------------------------|---------------------------------------------| | [Meetings in OpenProject](#meetings-in-openproject) | How to open meetings in OpenProject. | @@ -56,8 +55,6 @@ An edit screen is displayed and the meeting information can be adjusted. Do not forget to save the changes by clicking the blue **Save** button. Cancel will bring you back to the details view. - - ## Add meeting participants You can **add participants** (Invitees and Attendees) to a meeting while being in the [edit mode](#edit-a-meeting). The process is the same whether you are creating a new meeting or editing an existing one. Additionally you can record after the meeting who actually took part in it. @@ -80,7 +77,6 @@ After creating a meeting, you can set up a **meeting agenda**. 4. All changes made to the agenda are tracked. You can click the **History** button to get an overview of all the changes including the persons who made the changes. 7. At the beginning of the meeting, **Close** the agenda to prevent any other changes and provide the same basis for all meeting participants. After closing the agenda, the meeting minutes are displayed to capture the results of the meeting. - ![edit-meeting-agenda](edit-meeting-agenda.png) ## Create or edit meeting minutes @@ -101,7 +97,7 @@ To quickly notify participants about the meeting and send them a link to the mee ## Download iCalendar event -To add a meeting to a calendar, select the dropdown menu behind the three dots and select **Download iCalendar event**. You can then quickly add the meeting to your calendar or forward it other meeting participants. +To add a meeting to a calendar, select the dropdown menu behind the three dots and select **Download iCalendar event**. You can then quickly add the meeting to your calendar or forward it other meeting participants. ![Download a classic meeting as an iCalendar event in OpenProject](download-a-meeting.png) @@ -115,8 +111,6 @@ You can now edit the copied meeting and add the new details. Click the **Save** > **Note**: all the settings will be copied, except for the minutes, participants and meeting history. So if you want to keep the minutes as well, you have to copy it separately. - - ## Delete a meeting You can delete a meeting. To do so, click on the three dots in the top right corner, select **Delete meeting** and confirm your choice. diff --git a/docs/user-guide/meetings/dynamic-meetings/README.md b/docs/user-guide/meetings/dynamic-meetings/README.md index d3f099b4b097..48ca3bdcbefd 100644 --- a/docs/user-guide/meetings/dynamic-meetings/README.md +++ b/docs/user-guide/meetings/dynamic-meetings/README.md @@ -8,11 +8,10 @@ keywords: meetings, dynamic meetings, agenda, minutes # Dynamic meetings management -Introduced in OpenProject 13.1, dynamic meetings offer easier meeting management, improved agenda creation and the ability to link work packages to meetings and vice-versa. +Introduced in OpenProject 13.1, dynamic meetings offer easier meeting management, improved agenda creation and the ability to link work packages to meetings and vice-versa. > **Note:** The **Meetings module needs to be activated** in the [Project Settings](../../projects/project-settings/modules/) to be able to create and edit meetings. - | Topic | Content | | ------------------------------------------------------------ | ---------------------------------------------------------- | | [Meetings in OpenProject](#meetings-in-openproject) | How to open meetings in OpenProject. | @@ -37,14 +36,15 @@ To get an overview of the meetings across multiple projects, you can select **Me ![Select meetings module from openproject global modules ](openproject_userguide_meetings_module_select.png) -The menu on the left will allow you to filter for upcoming or past meetings. You can also filter the list of the meetings based on your involvement. +The menu on the left will allow you to filter for upcoming or past meetings. You can also filter the list of the meetings based on your involvement. ![Meetings overview in openproject global modules](openproject_userguide_dynamic_meetings_overview.png) ## Create and edit dynamic meetings + ### Create a new meeting -You can either create a meeting from within a project or from the global **Meetings** module. +You can either create a meeting from within a project or from the global **Meetings** module. > *Note:* Dynamic meetings were introduced in OpenProject 13.1. At the moment, the Meetings module lets you create [classic](../classic-meetings) or dynamic meetings but please keep in mind that the ability to create [classic meetings](../classic-meetings) will eventually be removed from OpenProject. @@ -60,13 +60,12 @@ Click the blue **Create** button to save your changes. ### Edit a meeting -If you want to change the details of a meeting, for example its time or location, open the meetings details view by clicking on pencil icon next to the **Meeting details**. +If you want to change the details of a meeting, for example its time or location, open the meetings details view by clicking on pencil icon next to the **Meeting details**. ![edit-meeting](openproject_userguide_edit_dynamic_meeting.png) An edit screen will be displayed, where you can adjust the date, time, duration and location of the meeting. - ![edit-meeting](openproject_userguide_edit_screen.png) Do not forget to save the changes by clicking the green **Save** button. Cancel will bring you back to the details view. @@ -75,24 +74,23 @@ In order to edit the title of the meeting select the dropdown menu behind the th ![Edit a meeting title in OpenProject](openproject_userguid_dynamic_meeting_edit_title.png) - ### Create or edit the meeting agenda After creating a meeting, you can set up a **meeting agenda**. -You can add items to an agenda or directly link to existing work packages by selecting the desired option under the green **Add** button. You can add notes and [attachments](#meeting-attachments) to every agenda item. +You can add items to an agenda or directly link to existing work packages by selecting the desired option under the green **Add** button. You can add notes and [attachments](#meeting-attachments) to every agenda item. ![The add button with two choices: agenda item or work package](openproject_dynamic_meetings_add_agenda_item.png) -If you select the **Agenda item** option, you can name that item, set the anticipated duration in minutes and select a user to be displayed next to the agenda item. This could for example be a meeting or a project member that is accountable for or a presenter of this particular agenda item. By default the name of the user adding the agenda item will be pre-selected, but it can either be removed or replaced by one of the other meeting invitees. +If you select the **Agenda item** option, you can name that item, set the anticipated duration in minutes and select a user to be displayed next to the agenda item. This could for example be a meeting or a project member that is accountable for or a presenter of this particular agenda item. By default the name of the user adding the agenda item will be pre-selected, but it can either be removed or replaced by one of the other meeting invitees. -![](openproject_userguide_add_agenda_item.png) +![Add agenda item](openproject_userguide_add_agenda_item.png) -If you select the **Work package** option, you can link a work package by entering either a work package ID, or starting to type in a keyword, which will open a list of possible options. +If you select the **Work package** option, you can link a work package by entering either a work package ID, or starting to type in a keyword, which will open a list of possible options. -![](openproject_userguide_add_work_package.png) +![Add work package](openproject_userguide_add_work_package.png) -After you have finalized the agenda, you can always edit the agenda items, add notes, move an item up or down or delete it. Clicking on the three dots on the right edge of each agenda item will display a menu of available options, including editing, copying link to clipboard, moving the agenda item within the agenda or deleting it. +After you have finalized the agenda, you can always edit the agenda items, add notes, move an item up or down or delete it. Clicking on the three dots on the right edge of each agenda item will display a menu of available options, including editing, copying link to clipboard, moving the agenda item within the agenda or deleting it. ![Edit agenda in OpenProject dynamic meetings](openproject_dynamic_meetings_edit_agenda.png) @@ -106,23 +104,24 @@ The durations of each agenda item are automatically summed up. If that sum excee ### Add a work package to the agenda -There are two ways to add a work package to a meeting agenda. +There are two ways to add a work package to a meeting agenda. - **From the Meetings module**: using the **+ Add** button [add a work package agenda item](#create-or-edit-the-meeting-agenda) or - **From a particular work package**: using the **+ Add to meeting** button on the [Meetings tab](../../work-packages/add-work-packages-to-meetings) -You can add a work package to both upcoming or past meetings as long as the work package is marked **open**. +You can add a work package to both upcoming or past meetings as long as the work package is marked **open**. ![OpenProject work packages in meetings agenda](openproject_dynamic_meetings_wp_agenda.png) ## Meeting participants + ### Add meeting participants -You will see the list of all the invited project members under **Participants**. You can **add participants** (Invitees and Attendees) to a meeting in [edit mode](#edit-a-meeting). The process is the same whether you are creating a new meeting or editing an existing one. +You will see the list of all the invited project members under **Participants**. You can **add participants** (Invitees and Attendees) to a meeting in [edit mode](#edit-a-meeting). The process is the same whether you are creating a new meeting or editing an existing one. ![adding meeting participants](openproject_dynamic_meetings_add_participants.png) -You will see the list of all the project members and be able to tell, based on the check marks next to the name under the *Invited* column, who was invited. After the meeting, you can record who actually took part using the checkmarks under the Attended column. +You will see the list of all the project members and be able to tell, based on the check marks next to the name under the *Invited* column, who was invited. After the meeting, you can record who actually took part using the checkmarks under the Attended column. ![invite meeting participants](openproject_dynamic_meetings_add_new_participants.png) @@ -134,19 +133,17 @@ Click on the **Save** button to confirm the changes. You can send an email reminder to all the meeting participants. Select the dropdown by clicking on the three dots in the top right corner and select **Send email to all participants**. An email reminder with the meeting details (including a link to the meeting) is immediately sent to all invitees and attendees. -## Meeting attachments +## Meeting attachments -You can attachments in the meetings in the **Attachments** section in the right bottom corner. You can either user the **+Attach files** link to select files from your computer or drag and drop them. +You can attachments in the meetings in the **Attachments** section in the right bottom corner. You can either user the **+Attach files** link to select files from your computer or drag and drop them. -Added attachments can be added to the Notes section of agenda packages by dragging and dropping them from the Attachments section. +Added attachments can be added to the Notes section of agenda packages by dragging and dropping them from the Attachments section. ![Attachments in OpenProject dynamic meetings](openproject_dynamic_meetings_attachments.png) +## Meeting history - -## Meeting history - -You can track what changes were made to a meeting and by which user. Select the dropdown by clicking on the three dots in the top right corner and select **Meeting history**. +You can track what changes were made to a meeting and by which user. Select the dropdown by clicking on the three dots in the top right corner and select **Meeting history**. ![Select Meeting history option in OpenProject dynamic meetings](openproject_dynamic_meetings_select_meeting_history.png) @@ -162,7 +159,7 @@ Read more about [subscribing to a calendar](../../calendar/#subscribe-to-a-calen ## Close a meeting -Clicking on the **Close meeting** after the meeting is completed with lock the current state and make render it read-only. +Clicking on the **Close meeting** after the meeting is completed with lock the current state and make render it read-only. ![Close a meeting in OpenProject](openproject_userguide_close_meeting.png) @@ -174,7 +171,7 @@ Once a meeting has been closed, it can no longer be edited. Project members with ## Copy a meeting -You can copy an existing meeting. This is useful if you have recurring meetings. To copy a meeting, click on the three dots in the top right corner and select **Copy**. +You can copy an existing meeting. This is useful if you have recurring meetings. To copy a meeting, click on the three dots in the top right corner and select **Copy**. ![Copy a dynamic meeting in OpenProject](openproject_dynamic_meetings_copy_meeting.png) @@ -182,8 +179,6 @@ A screen will open, which will allow you adjust the name, time, location and fur ![Edit details of a copied dynamic meeting in OpenProject](openproject_dynamic_meetings_copy_meeting_details.png) - - ## Delete a meeting You can delete a meeting. To do so, click on the three dots in the top right corner, select **Delete meeting** and confirm your choice. diff --git a/docs/user-guide/meetings/meetings-faq/README.md b/docs/user-guide/meetings/meetings-faq/README.md index a9271acaeba1..551aabe11f43 100644 --- a/docs/user-guide/meetings/meetings-faq/README.md +++ b/docs/user-guide/meetings/meetings-faq/README.md @@ -14,7 +14,7 @@ keywords: meetings, meetings faq, tickets, how to, task ## How long will the classic meetings be available? -[Classic meetings](../classic-meetings) will be deprecated with one of the future releases after 13.1. We will communicate this in advance to ensure a smooth transition for all our users. +[Classic meetings](../classic-meetings) will be deprecated with one of the future releases after 13.1. We will communicate this in advance to ensure a smooth transition for all our users. ## Can I add a meeting to a calendar? diff --git a/docs/user-guide/members/README.md b/docs/user-guide/members/README.md index d4e81a5488e4..c7e30c2f6349 100644 --- a/docs/user-guide/members/README.md +++ b/docs/user-guide/members/README.md @@ -17,7 +17,7 @@ keywords: members, project participants | [Roles and permissions](#roles-and-permissions) | How to manage roles and permissions for members. | | [Groups](#groups) | How to add members to a group and add groups to a project. | - +![Video](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Invite-and-Manage-Members.mp4) ## Project members overview @@ -25,7 +25,7 @@ On the left side menu you will see **Members**. When selected, it will show a li ![Project members overview in OpenProject](members-overview.png) -Standard filters on the left side menu include the following: +Standard filters on the left side menu include the following: - **All** - returns all members and groups of the project, as well as non-members, with whom one or more work packages from this project have been shared @@ -33,22 +33,21 @@ Standard filters on the left side menu include the following: - **Invited** - returns all users that have been invited, but have not yet registered -- **Project roles** provides filters based on all the member roles that have been assigned to users in that specific project. +- **Project roles** provides filters based on all the member roles that have been assigned to users in that specific project. - **Work package shares** provides filters based on all the roles available for sharing work packages. They include: - - **All shares** - returns all users that a work package in this project has been shared with + - **All shares** - returns all users that a work package in this project has been shared with - **View** - returns all users that can view, but not edit or comment on a work package that has been shared with them - **Comment** - returns all users that are allowed to add comments to a work package that has been shared with them - **Edit** - returns all users that are permitted to edit a work package that has been shared with them - > Note: users, with whom work packages from a given project have been shared, can not be edited or deleted under **Members**. To edit or revoke their viewing rights you can click on the "Number of work package(s) in the column "Shared" (3 work packages in the example above). This will open an already filtered work package list of all work packages shared with that user. > > Another way is to navigate to **Work packages**, select the **Shared with users** filter and adjust the privileges accordingly. [Read more here](../work-packages/share-work-packages/#remove-sharing-privileges). -- **Groups** lists all the groups that have been added to this project (this filter will only be visible if a group has been added to the project). +- **Groups** lists all the groups that have been added to this project (this filter will only be visible if a group has been added to the project). > Note: members that are part of a group will also be displayed as members individually. In that case you can only edit the roles assigned to the users, but not delete him or her. If you want to delete a user that is a member of a group (also added to this project) you will have to delete the entire group and add group members individually if needed. @@ -74,19 +73,17 @@ Find out [here](../../getting-started/invite-members/#add-existing-users) how to To change the role of a member within a project, select the corresponding project and open the Members module. -To edit an existing member of a project, click the **More** icon in the list next to the member on the right and select **Manage roles**. Add and remove roles, then press the green **Change ** button so save your changes. +To edit an existing member of a project, click the **More** icon in the list next to the member on the right and select **Manage roles**. Add and remove roles, then press the green **Change** button so save your changes. ![Edit project members in OpenProject](edit-project-member.png) - - ## Remove members To remove members from a project, [select the project](../../getting-started/projects/#open-an-existing-project) for which you want to remove the members. In the project menu on the left, select the **Members** module. In the members list, click the **More** icon at the right end of the row with the corresponding member name and select Remove member. ![Remove project members in OpenProject](delete-project-member.png) -You will be asked to confirm your decision. +You will be asked to confirm your decision. ![Confirm removing a user from a project in OpenProject](confirm-user-deletion.png) @@ -96,7 +93,7 @@ If the project member you are removing has shared work packages, you will also b > Note: please keep in mind that removing project members can only be done if you have correct permissions. -> Note: a project member can be a part of the project either individually, as a member of a group, or both. The role removal will only affect the member's individual roles. All those roles obtained via a group will not be removed. To remove those group roles you can either remove the member from the group or remove the entire group from the project. +> Note: a project member can be a part of the project either individually, as a member of a group, or both. The role removal will only affect the member's individual roles. All those roles obtained via a group will not be removed. To remove those group roles you can either remove the member from the group or remove the entire group from the project. ## Revoke sharing privileges @@ -104,7 +101,7 @@ If a work package has been [shared](../work-packages/share-work-packages), you m ![Remove sharing privileges in OpenProject](openproject_user_guide_members_remove_work_package_shares.png) -> Note: a project member can be a part of the project either individually, as a member of a group, or both. The revoking action will only affect the individual work packages shares. All work package shares with the user as part of a group will not be revoked. To revoke those group shares you can either remove the member from the group or revoke the privileges from the entire group. +> Note: a project member can be a part of the project either individually, as a member of a group, or both. The revoking action will only affect the individual work packages shares. All work package shares with the user as part of a group will not be revoked. To revoke those group shares you can either remove the member from the group or revoke the privileges from the entire group. ## Roles and permissions @@ -116,8 +113,7 @@ A **role** is defined as a set of permissions defined by a unique name. Project To assign work packages to a project member, the respective user's or placeholder user's role needs to be able to be assigned work packages. This is the default setting for default roles. You can check this setting in the [Roles and Permissions section](../../system-admin-guide/users-permissions/roles-permissions/) of the system administration. - ## Groups -Users can be added to groups. A group can be added to a project. With this, all users within a group will have the corresponding role in this project. +Users can be added to groups. A group can be added to a project. With this, all users within a group will have the corresponding role in this project. Find out how to create and manage groups in OpenProject [here](../../system-admin-guide/users-permissions/groups). diff --git a/docs/user-guide/news/README.md b/docs/user-guide/news/README.md index 7c6765578301..bc513184390c 100644 --- a/docs/user-guide/news/README.md +++ b/docs/user-guide/news/README.md @@ -80,4 +80,3 @@ You can also include your latest news from a project on the Project overview pag Find out how to [configure your Project overview](../project-overview/#news-widget) page. ![latest-news-project-overview](latest-news-project-overview.png) - diff --git a/docs/user-guide/notifications/notification-settings/README.md b/docs/user-guide/notifications/notification-settings/README.md index 1c8ae5964499..ed9e5c8461ba 100644 --- a/docs/user-guide/notifications/notification-settings/README.md +++ b/docs/user-guide/notifications/notification-settings/README.md @@ -20,12 +20,11 @@ Notification settings are divided into four sections: | [Non-participating](#non-participating) | Be notified of activities on work packages in which you are not participating. | | [Project-specific](#project-specific-notifications) | Fine-tune your notification settings at the level of individual projects. | - ![A screenshot of the notification settings page](Notification-settings-12.4-overall.png) ## Participating -You participate in a work package by either being [mentioned](../../work-packages/edit-work-package/#-notification-mention), by watching it (being on the _Watchers_ list) or by being designated assignee or accountable. +You participate in a work package by either being [mentioned](../../work-packages/edit-work-package/#-notification-mention), by watching it (being on the _Watchers_ list) or by being designated assignee or accountable. By default, you will be notified of all activities in work packages in which you participate. However, you can choose to change these settings for work packages for which you are an assignee or accountable by checking or unchecking these options: @@ -41,11 +40,11 @@ Starting with 12.4, OpenProject offers notification for date alerts. > **Note**: Date alerts are an Enterprise add-on and can only be used with [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easy and helps support OpenProject. -Date alerts allow you to receive a notification when a start date or a finish date is approaching for a work package you are participating in (that is, for which you are assignee, accountable or a watcher). +Date alerts allow you to receive a notification when a start date or a finish date is approaching for a work package you are participating in (that is, for which you are assignee, accountable or a watcher). ![A screenshot of options for date alerts](Notification-settings-12.4-dateAlerts.png) -For **start** and **finish dates**, you can choose to be alerted the same day, 1 day before, 3 days before or a week before. +For **start** and **finish dates**, you can choose to be alerted the same day, 1 day before, 3 days before or a week before. > **Info:** Please note that these are natural days and not working days. For a work package starting on a Monday, "3 days before" would be Friday. > Date alerts are generated once a day at 1am local time. @@ -73,15 +72,13 @@ You can be notified of: > **Info:** Please note that these apply to _all_ work packages in _all_ of your projects. If you enable many of them, you may receive too many irrelevant notifications. Please use this feature with parsimony. - - ## Project-specific notifications In some cases, you may wish to fine-tune your notification settings at a project-level. This might be because you are more active in certain projects than others or because certain activities (like date alerts or the creation of new work packages) might be more important to you than others. -To add project-specific notification settings, first click on **+ Add setting for project** and select a project. +To add project-specific notification settings, first click on **+ Add setting for project** and select a project. Once you do so, you will see a table with a column for that project and and the same three sections (Participating, Date alerts, Non-participating) as your overall notification settings. You can now select and unselect any number of options from this list for more specific project-level notification settings. diff --git a/docs/user-guide/project-overview/README.md b/docs/user-guide/project-overview/README.md index e48939a4d2a1..25c5c4c3ab10 100644 --- a/docs/user-guide/project-overview/README.md +++ b/docs/user-guide/project-overview/README.md @@ -8,7 +8,7 @@ keywords: project overview page # Project overview -The **Project overview** page is a dashboard with important information about your respective project(s). This page displays all relevant information for your team, such as members, news, project description, work package reports, or project status. +The **Project overview** page is a dashboard with important information about your respective project(s). This page displays all relevant information for your team, such as members, news, project description, work package reports, or project status. | Topic | Content | | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -32,7 +32,7 @@ Open the project overview by navigating to **Overview** in the project menu on t ## Project attributes -**[Project attributes]**(#project-attributes) are a set of project-level custom fields that let you display certain types of information relevant to your project. +**[Project attributes]**(#project-attributes) are a set of project-level custom fields that let you display certain types of information relevant to your project. You will see a list of all available project attributes in a pane on the right side of of your Project overview page. They may be grouped in sections. @@ -54,11 +54,11 @@ To add a new widget: 1. Choose the place where to add the new widget. -To add a widget to the project overview, click on the **+ button** on the top right of the page. +To add a widget to the project overview, click on the **+ button** on the top right of the page. ![Overview-add-widget](Overview-add-widget-1573564870548.png) -2. Choose the location of the widget by clicking on one the **+** icons surrounding other widgets. +2. Choose the location of the widget by clicking on one the **+** icons surrounding other widgets. ![Choose widget location on the project overview page](openproject_user_guide_project_overview_select_widget_location.png) @@ -66,12 +66,10 @@ To add a widget to the project overview, click on the **+ button** on the top ri ![add widget](image-20191112142303373.png) - ## Project status On the project overview page, you can set your project status and give a detailed description. The project status is a widget that you add to your project overview. Find the description [below](#project-status-widget). - ## Available project overview widgets You can add various widgets to your project overview. @@ -96,7 +94,7 @@ You can add a widget which displays all project members and their corresponding ![project members](image-20191112134827557.png) -You can [add members to your project](../../getting-started/invite-members/) via the green **+ Member** button in the bottom left corner. +You can [add members to your project](../../getting-started/invite-members/) via the green **+ Member** button in the bottom left corner. The **View all members** button displays the list of project members that have been added to your project. Members can be individuals as well as entire groups. @@ -108,7 +106,7 @@ Display the latest project news in the news widget on the project overview page. ### Project description -The project description widget adds the project description to your project overview. +The project description widget adds the project description to your project overview. The description can be added or changed in the [project settings](../projects/project-settings). diff --git a/docs/user-guide/project-overview/project-overview-faq/README.md b/docs/user-guide/project-overview/project-overview-faq/README.md index 22b424056b89..b6878b2e1b02 100644 --- a/docs/user-guide/project-overview/project-overview-faq/README.md +++ b/docs/user-guide/project-overview/project-overview-faq/README.md @@ -10,5 +10,5 @@ keywords: project overview FAQ ## When I set up the overview page for a project, work packages can be arranged as a Gantt chart. I would also need this for the subprojects, how does it work? -If you have selected the "Work package table" widget in the overview page, you can select a small mini-menu at the top right of the widget and click on **Configure view**. There you can also select subprojects under *Filter*. There you can either select all subprojects, only one or several subprojects. And in the *Gantt chart* tab of the Work package table configuration, tick the box next to "Show Gantt chart". All work packages of the selected subprojects will then be shown in a common Gantt chart view. -If you want to see the individual Gantt charts of the subprojects separately, you need to add a widget to the work package table for each subproject. \ No newline at end of file +If you have selected the "Work package table" widget in the overview page, you can select a small mini-menu at the top right of the widget and click on **Configure view**. There you can also select subprojects under *Filter*. There you can either select all subprojects, only one or several subprojects. And in the *Gantt chart* tab of the Work package table configuration, tick the box next to "Show Gantt chart". All work packages of the selected subprojects will then be shown in a common Gantt chart view. +If you want to see the individual Gantt charts of the subprojects separately, you need to add a widget to the work package table for each subproject. diff --git a/docs/user-guide/projects/README.md b/docs/user-guide/projects/README.md index 6af50ca5fbd7..7da08d2a6917 100644 --- a/docs/user-guide/projects/README.md +++ b/docs/user-guide/projects/README.md @@ -26,7 +26,7 @@ Your projects can be available publicly or internally. OpenProject does not limi | [Archive a project](#archive-a-project) | Find out how to archive completed projects. | | [Delete a project](#delete-a-project) | How to delete a project. | -![](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Projects-Introduction.mp4) +![Video](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Projects-Introduction.mp4) ## Select a project @@ -44,8 +44,6 @@ Then follow the instructions to [create a new project](../../getting-started/pro ![project settings subproject](project-settings-subproject.png) - - ## Project structure Projects build a structure in OpenProject. You can have parent projects and sub-projects. A project can represent an organizational unit of a company, e.g. to have issues separated: @@ -85,7 +83,7 @@ You can specify further advanced settings for your project. Navigate to your pro - Enter a detailed description for your project. -- You see the default project **Identifier**. The identifier will be shown in the URL. +- You see the default project **Identifier**. The identifier will be shown in the URL. **Note**: Changing the project identifier while the project is already being worked on can have major effects and is therefore not recommended. For example, repositories may not be loaded correctly and deep links may no longer work (since the project URL changes when the project identifier is changed). @@ -105,13 +103,11 @@ Press the blue **Save** button to apply your changes. ![project settings information change hierarchy](project-settings-information-change-hierarchy.png) - - ### Set a project to public If you want to set a project to public, you can do so by ticking the box next to "Public" in the [project settings](project-settings) *->Information*. -Setting a project to public will make it accessible to all people within your OpenProject instance. +Setting a project to public will make it accessible to all people within your OpenProject instance. (Should your instance be [accessible without authentication](../../system-admin-guide/authentication/authentication-settings) this option will make the project visible to the general public outside your registered users, too) @@ -121,7 +117,7 @@ You can copy an existing project by navigating to the [project settings](project ![project information copy project](project-information-copy-project.png) -Give the new project a name. Under **Copy options** select which modules and settings you want to copy and whether or not you want to notify users via email during copying. +Give the new project a name. Under **Copy options** select which modules and settings you want to copy and whether or not you want to notify users via email during copying. You can copy existing [boards](../agile-boards) (apart from the Subproject board) and the [Project overview](../project-overview/#project-overview) dashboards along with your project, too. ![project settings information copy project copy options](project-settigns-copy-project.png) @@ -140,7 +136,7 @@ Under the **Copy options** section you can select what additional project data a If you select the **File Storages: Project folders** option, both the storage and the storage folders are copied into the new project if automatically managed project folders were selected for the original file storage. For storages with manually managed project folders setup the copied storage will be referencing the same folder as the original project. -If you de-select the **File Storages: Project folders** option, the storage is copied, but no specific folder is set up. +If you de-select the **File Storages: Project folders** option, the storage is copied, but no specific folder is set up. If you de-select the **File Storages** option, no storages are copied to the new project. @@ -158,14 +154,12 @@ Then, the project cannot be selected from the project selection anymore. It is s ![project list filter](project-list-filter.png) - ### Delete a project -If you want to delete a project, navigate to the [Project settings](project-settings). Click the button **Delete project** on the top right of the page. +If you want to delete a project, navigate to the [Project settings](project-settings). Click the button **Delete project** on the top right of the page. ![delete a project](delete-a-project.png) Also, you can delete a project via the [projects overview](./project-lists/). **Note**: Deleting projects is only available for System administrators. - diff --git a/docs/user-guide/projects/project-lists/README.md b/docs/user-guide/projects/project-lists/README.md index 7c69b5cb9e79..59b45e6b7b4c 100644 --- a/docs/user-guide/projects/project-lists/README.md +++ b/docs/user-guide/projects/project-lists/README.md @@ -20,10 +20,9 @@ Your projects can be available publicly or internally. OpenProject does not limi | [Export project list](#export-project-lists) | You can export the project list to XLS or CSV. | | [Project overarching reports](#project-overarching-reports) | How to create project overarching reports across multiple projects. | - ## Select project lists -There are several ways to get an overview of all your projects. You can press the **Project lists** button at the bottom of the **Select a project** menu in the top left header navigation. +There are several ways to get an overview of all your projects. You can press the **Project lists** button at the bottom of the **Select a project** menu in the top left header navigation. ![project lists button](Project-list-button.png) @@ -31,7 +30,7 @@ Alternatively, you can use the [**Global modules menu**](../../home/global-modul ![Select all projects from the global modules menu in OpenProject](view_all_projects_options.png) -You will then get a list of all your active projects in OpenProject. +You will then get a list of all your active projects in OpenProject. ![A list of all projects in OpenProject](projects-list.png) @@ -41,7 +40,7 @@ You can use the Project overview page to **create a multi-project status dashboa > **Please note:** Project attributes are an Enterprise add-on and will only be displayed here for Enterprise on-premises and Enterprise cloud. -Each project is displayed in a single line. For the the fields where the text is too long to be displayed completely, please use the **Expand** link. +Each project is displayed in a single line. For the the fields where the text is too long to be displayed completely, please use the **Expand** link. ![Open a project description in the project lists view in OpenProject](expand-link-project-description.png) @@ -49,13 +48,13 @@ With the horizontal **three dots** icon on the right side of the list you can op ![new subproject project list](new-subproject-project-list.png) -You can choose the **columns displayed by default** in the [Project lists settings](../../../system-admin-guide/projects/project-lists) in the Administration. +You can choose the **columns displayed by default** in the [Project lists settings](../../../system-admin-guide/projects/project-lists) in the Administration. You can add the columns, as well as define the order of the columns by using the **Configure view** modal. Navigate to it via the menu in the far right corner (three dots) and click **Configure view**. ![Configure view of project lists in OpenProject](configure-view-project-list.png) -A dialogue will open, allowing you to manage and reorder columns. Click **Apply** to see the changes. +A dialogue will open, allowing you to manage and reorder columns. Click **Apply** to see the changes. ![Configuration form for project lists in OpenProject](configure-view-form-project-list.png) @@ -67,13 +66,13 @@ Projects can be filtered in OpenProject. The default view will list all currentl **Active projects** - returns all projects that are active, of which you are a member or have the right to see. -**My projects** - returns all active projects that you are a member of. +**My projects** - returns all active projects that you are a member of. **Archived projects** - returns all projects that are not active, of which you were a member or have the right to see. -**My private project lists** - shows all the project filters that you have customized and saved. +**My private project lists** - shows all the project filters that you have customized and saved. -**Project status** - includes projects filters based on a project status. +**Project status** - includes projects filters based on a project status. - **On track** - returns all active projects with the project status *On track*. - **Off track** - returns all active projects with the project status *Off track*. @@ -87,7 +86,7 @@ If you want to save this filtered list use the **Save as** link next to the info ![Save a filtered project list](save-button-filtered-view.png) -You will then need to enter the name for the filtered view and click the green **Save** button. +You will then need to enter the name for the filtered view and click the green **Save** button. ![Name and save a private projects filter in OpenProject](Name-private-projects-filter.png) @@ -101,7 +100,7 @@ You can always remove your private project lists by using the **Delete** option. ### Gantt chart view -To **display the work packages** of all your projects **in a Gantt chart** click on the **Open as Gantt view** icon on the upper right. This is a shortcut to quickly get to the report described in the [section below](#project-overarching-reports). +To **display the work packages** of all your projects **in a Gantt chart** click on the **Open as Gantt view** icon on the upper right. This is a shortcut to quickly get to the report described in the [section below](#project-overarching-reports). The Gantt chart view can be configured in the [System settings](../../../system-admin-guide/projects/project-lists) in the Administration. @@ -111,7 +110,7 @@ Alternatively you can also select the [Gantt charts from the global modules menu ### Overall activity -Besides the Gantt chart view and the filter function for the project lists, you can also access the activity of all users in all active projects. +Besides the Gantt chart view and the filter function for the project lists, you can also access the activity of all users in all active projects. ![overall activity button](overall-activity-link.png) @@ -123,8 +122,6 @@ By selecting *Overall activity* you can open a view in which all the latest glob ![overall activity meeting filter](actvity-global-filter.png) - - ## Export project lists You can export a project list by clicking on the three dots in the upper right hand corner and selecting > **Export**. @@ -139,7 +136,7 @@ It can be exported as .xls or .csv. ## Project overarching reports -Often you need to see information about more than one project at once and want to create project overarching reports. +Often you need to see information about more than one project at once and want to create project overarching reports. Click on the **Modules** icon with the nine squares in the header navigation. These are the [global modules in OpenProject](../../home/global-modules/). diff --git a/docs/user-guide/projects/project-settings/README.md b/docs/user-guide/projects/project-settings/README.md index 432ef4abd4d9..2d3380ab5eaf 100644 --- a/docs/user-guide/projects/project-settings/README.md +++ b/docs/user-guide/projects/project-settings/README.md @@ -15,7 +15,6 @@ Open a project via the Select a project drop-down menu and navigate to -> *Proje > **Note**: You have to be a project administrator in order to see and access the project settings. - ## Overview | Topic | Content | @@ -31,4 +30,3 @@ Open a project via the Select a project drop-down menu and navigate to -> *Proje | [Activities (time tracking)](activities-time-tracking) | Activate or deactivate Activities (for time tracking) in a project. | | [Backlogs settings](backlogs-settings) | Manage backlogs settings for a project. | | [File storages](file-storages) | Manage the storages connected to the project and add a project folder. | - diff --git a/docs/user-guide/projects/project-settings/activities-time-tracking/README.md b/docs/user-guide/projects/project-settings/activities-time-tracking/README.md index 76b935fa4a5f..2e8cc40825e3 100644 --- a/docs/user-guide/projects/project-settings/activities-time-tracking/README.md +++ b/docs/user-guide/projects/project-settings/activities-time-tracking/README.md @@ -18,4 +18,3 @@ Navigate to *Project settings -> Time tracking activities*. Select the activities which you want to activate for time tracking in your project. Press the blue **Save** button to apply your changes. ![time tracking activities](image-20200211134150920.png) - diff --git a/docs/user-guide/projects/project-settings/backlogs-settings/README.md b/docs/user-guide/projects/project-settings/backlogs-settings/README.md index 7cb1ab2ba389..7b7a13336a2e 100644 --- a/docs/user-guide/projects/project-settings/backlogs-settings/README.md +++ b/docs/user-guide/projects/project-settings/backlogs-settings/README.md @@ -20,4 +20,3 @@ Press the blue **Save** button to apply your changes. ![manage backlogs settings](image-20200211134305495.png) The **Rebuild positions button** for the backlogs re-calculates the position of a work package in the product backlog. - diff --git a/docs/user-guide/projects/project-settings/custom-fields/README.md b/docs/user-guide/projects/project-settings/custom-fields/README.md index 7466718d418b..bc919b5addbb 100644 --- a/docs/user-guide/projects/project-settings/custom-fields/README.md +++ b/docs/user-guide/projects/project-settings/custom-fields/README.md @@ -7,7 +7,7 @@ keywords: custom fields, activate work package custom field --- # Enable custom fields in projects -**Custom fields for work packages can be activated or deactivated in a project**. +**Custom fields for work packages can be activated or deactivated in a project**.
**Custom fields** are defined as additional attribute fields which can be added to existing attribute fields. The different sections that can use custom fields are work packages, spent time, projects, versions, users, groups, activities (time tracking), and work package priorities. diff --git a/docs/user-guide/projects/project-settings/file-storages/README.md b/docs/user-guide/projects/project-settings/file-storages/README.md index e5dc87166037..13dc3c5e5bd5 100644 --- a/docs/user-guide/projects/project-settings/file-storages/README.md +++ b/docs/user-guide/projects/project-settings/file-storages/README.md @@ -49,19 +49,16 @@ Here you can choose which kind of OneDrive/SharePoint project folder will be the 1. **No specific folder**: By default, each user will start at the drive root when they upload a file or select files for linking. 2. **New folder with automatically managed permissions**: This will automatically create a folder for this project and manage the access permissions for each project member. Each project member will automatically have access to this folder according to the user permissions defined in [File storages permissions](../../../../system-admin-guide/users-permissions/roles-permissions/#permissions). This option will only be available if the system administrator has [set up the storage with automatically managed folders](../../../../system-admin-guide/integrations/one-drive/). -3. **Existing folder with manually managed permissions**: Once you selected this option, you can designate an existing folder as the project folder for this project using the button **Select folder**. The permissions are however not automatically managed, **instead the folder and its content inherits the permissions as configured in the SharePoint site or drive**. The administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. - +3. **Existing folder with manually managed permissions**: Once you selected this option, you can designate an existing folder as the project folder for this project using the button **Select folder**. The permissions are however not automatically managed, **instead the folder and its content inherits the permissions as configured in the SharePoint site or drive**. The administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. Click on **Add** to add your new OneDrive/SharePoint file storage to this project. ![SharePoint/OneDrive file storage is added to an OpenProject project](sharepoint-storage-set.png) -The SharePoint file storage is now available to all work packages in this project. +The SharePoint file storage is now available to all work packages in this project. > **Note:** Please refer to the [OneDrive/SharePoint user guide](../../../file-management/one-drive-integration) for further instructions on using the integration at a user level. - - ## Add a Nextcloud storage to a project If you have selected the Nextcloud option in the previous step of storage selection, you will now see the **Project folder** options. @@ -80,15 +77,14 @@ Click on **Add** to add your new Nextcloud file storage to this project. ![List of project storages](storage-list.png) -The Nextcloud file storage is now available to all work packages in this project. +The Nextcloud file storage is now available to all work packages in this project. -> **Note:** For information on how to use the file storage (link Nextcloud user accounts at a user level, link files to a work package, view and download linked files, unlink files), please read our [Nextcloud integration user guide](../../../file-management/nextcloud-integration/). +> **Note:** For information on how to use the file storage (link Nextcloud user accounts at a user level, link files to a work package, view and download linked files, unlink files), please read our [Nextcloud integration user guide](../../../file-management/nextcloud-integration/). If you do not yet have an access token for the file storage in a project, you will be prompted to log into your file storage. You can choose to login immediately to establish the connection or to do it later. ![OAuth for file storages in OpenProject project settings](file-storages-oauth-nudge-nextcloud.png) - ### Project folder member connection status As a project administrator you can see which of the project members have access to the automatically managed folders for Nextcloud integration. To see the list of users click on the users icon on the right side of the list. diff --git a/docs/user-guide/projects/project-settings/project-attributes/README.md b/docs/user-guide/projects/project-settings/project-attributes/README.md index f8fa2a598c3d..a956cf636de6 100644 --- a/docs/user-guide/projects/project-settings/project-attributes/README.md +++ b/docs/user-guide/projects/project-settings/project-attributes/README.md @@ -8,17 +8,17 @@ keywords: project attributes, project settings, enable, disable, project admin # Project attributes -**Project attributes**are a set of project-level custom fields that let you display certain types of information relevant to your project in the [Project overview](../../../project-overview) page. +**Project attributes**are a set of project-level custom fields that let you display certain types of information relevant to your project in the [Project overview](../../../project-overview) page. -This guide is aimed at project administrators who want to enable or disable certain project attributes for their project. +This guide is aimed at project administrators who want to enable or disable certain project attributes for their project. >**Note:** If you are an instance admin and would like to create, modify or add project attributes, please read our [admin guide to project attributes](../../../../system-admin-guide/projects/project-attributes). -Navigate to **Project settings** → **Project attributes**. +Navigate to **Project settings** → **Project attributes**. ![Project attribute list in Project settings](open_project_user_guide_project_settings_project_attributes_list.png) -Here, you will see a list of all existing project attributes and sections. +Here, you will see a list of all existing project attributes and sections. You can use the **On/Off toggle** of each project attribute to enable or disable it in your project. Disabled project attributes are not visible in the [Project Overview](../../../project-overview) page. @@ -26,4 +26,4 @@ You can also use the **Enable all** and **Disable all** buttons visible to the r If your instance has a particularly long list of project attributes, you can use the search bar at the top to find specific ones. ->**Note**: The project settings page for project attributes only lets you enable or disable certain attributes. It does *not* let you set the values for each. To do this, go to the [Project Overview](../../../project-overview) page. \ No newline at end of file +>**Note**: The project settings page for project attributes only lets you enable or disable certain attributes. It does *not* let you set the values for each. To do this, go to the [Project Overview](../../../project-overview) page. diff --git a/docs/user-guide/projects/project-settings/required-disk-storage/README.md b/docs/user-guide/projects/project-settings/required-disk-storage/README.md index 450cfe5200e7..b840c60aa92a 100644 --- a/docs/user-guide/projects/project-settings/required-disk-storage/README.md +++ b/docs/user-guide/projects/project-settings/required-disk-storage/README.md @@ -7,6 +7,6 @@ keywords: required storage, project folder, storages --- # Required disk storage -**Required disk storage** shows the storage space on your servers currently used by the selected project. +**Required disk storage** shows the storage space on your servers currently used by the selected project. ![Required disk storage in OpenProject settings](openproject-user-guide-project-settings-required-disk-storage.png) diff --git a/docs/user-guide/projects/project-settings/versions/README.md b/docs/user-guide/projects/project-settings/versions/README.md index a8e005675754..aa1d9c23e016 100644 --- a/docs/user-guide/projects/project-settings/versions/README.md +++ b/docs/user-guide/projects/project-settings/versions/README.md @@ -43,8 +43,6 @@ Please note: You can only edit versions (i.e. edit icon visible) in their origin ![User-guide-project-settings-edit-versions](User-guide-project-settings-edit-versions.png) - - ## Close a version To close a version, open the details view of a version and set the **Status** to *Closed*. @@ -59,4 +57,4 @@ There are (of course) a few differences between open, locked and closed versions - **Locked version**: No work packages can be added or removed. The version is not visible in the Backlogs module anymore. The version is still visible in the Roadmap module. Use case: E.g. the scope of a new software release or a sprint has been decided and should not be changed anymore. It is currently being worked on. - **Closed version**: No work packages can be added or removed. The version is not visible in the Backlogs module any more. It will also not be shown in the Roadmap module unless you explicitly filter for it. - Use case: A closed version is meant as a completed version, e.g. the new software release mentioned earlier has been finished and you're working on the next one. \ No newline at end of file + Use case: A closed version is meant as a completed version, e.g. the new software release mentioned earlier has been finished and you're working on the next one. diff --git a/docs/user-guide/projects/project-settings/work-package-categories/README.md b/docs/user-guide/projects/project-settings/work-package-categories/README.md index 6424499f841c..2dd827f09360 100644 --- a/docs/user-guide/projects/project-settings/work-package-categories/README.md +++ b/docs/user-guide/projects/project-settings/work-package-categories/README.md @@ -33,4 +33,4 @@ From the list of categories you can choose a category to edit or delete. 2. Press the **delete** button to delete a category. - ![User-guide-project-settings-edit-category](User-guide-project-settings-edit-category.png) \ No newline at end of file + ![User-guide-project-settings-edit-category](User-guide-project-settings-edit-category.png) diff --git a/docs/user-guide/projects/project-settings/work-package-types/README.md b/docs/user-guide/projects/project-settings/work-package-types/README.md index 482376a4257e..a225254b4289 100644 --- a/docs/user-guide/projects/project-settings/work-package-types/README.md +++ b/docs/user-guide/projects/project-settings/work-package-types/README.md @@ -7,7 +7,7 @@ keywords: work package types --- # Work package types -**Activate or deactivate work package types for a project**. +**Activate or deactivate work package types for a project**. Select the respective project via the project drop-down menu at the top left in the header navigation and choose -> *Project settings* -> *Work package types* in the project menu. ![project settings work package types](image-20200211133405469.png) @@ -16,4 +16,4 @@ Check the different types which you want to enable for your project. In the tabl Press the blue **Save** button to confirm your changes. -[Work package types can be managed](../../../../system-admin-guide/manage-work-packages/work-package-types) in the System *Administration* -> *Work packages* -> *Types*. \ No newline at end of file +[Work package types can be managed](../../../../system-admin-guide/manage-work-packages/work-package-types) in the System *Administration* -> *Work packages* -> *Types*. diff --git a/docs/user-guide/projects/project-templates/README.md b/docs/user-guide/projects/project-templates/README.md index 384896f23d7f..1683c8ffbf65 100644 --- a/docs/user-guide/projects/project-templates/README.md +++ b/docs/user-guide/projects/project-templates/README.md @@ -9,7 +9,7 @@ keywords: project templates Project templates can be used for several projects that are similar in structure and members. Creating project templates can save time when creating new projects. -## Create a project template +## Create a project template You can create a project template in OpenProject by [creating a new project](../../../getting-started/projects/#create-a-new-project) and configuring your project to your needs. Name the project so you can identify it as a template, e.g. "Project XY [template]". @@ -20,15 +20,15 @@ Set up everything that you want to have available for future projects. - Setting up a default project structure in the Gantt chart. - Creating your work package templates. -Navigate to the [project settings](../project-settings) and click **Set as template** in the upper right corner. You can remove a project from the template collection on the same spot. +Navigate to the [project settings](../project-settings) and click **Set as template** in the upper right corner. You can remove a project from the template collection on the same spot. > **Please note**: The option to set a project as template or to remove it from templates is only available for Administrators. ![set-as-template](image-20210204170739796-0115761.png) -## Use a project template +## Use a project template -You can create a new project by using an existing template. This causes the properties of the project template to be copied to the new project. Find out in our Getting started guide how to [create a new project](../../../getting-started/projects/#create-a-new-project) in OpenProject. +You can create a new project by using an existing template. This causes the properties of the project template to be copied to the new project. Find out in our Getting started guide how to [create a new project](../../../getting-started/projects/#create-a-new-project) in OpenProject. Another way for using a template project would be to [copy it](../#copy-a-project). diff --git a/docs/user-guide/projects/projects-faq/README.md b/docs/user-guide/projects/projects-faq/README.md index c86a3ee77a42..081aebade114 100644 --- a/docs/user-guide/projects/projects-faq/README.md +++ b/docs/user-guide/projects/projects-faq/README.md @@ -17,7 +17,7 @@ There are several possibilities: 3. Select a project with subprojects, go to the Project overview, add the widget "Work package table" and set the filter "Including subproject". Find more information on this topic [here](../../project-overview/#widgets). Additionally you could add the column "Progress" to compare your different Project progress. 4. Add the widget "Work package table" to your My page and set the filter mentioned above. Find more information on this topic [here](../../../getting-started/my-page/#configure-the-my-page). Additionally you could add the column "Progress". -We will introduce further similar functions in the course of implementing multi-project management. +We will introduce further similar functions in the course of implementing multi-project management. ## What is the difference between creating a project from a template and copying the template project? @@ -33,7 +33,7 @@ Yes, that is in most cases the best solution. In OpenProject, you can work agilely according to Scrum ([backlogs](../../backlogs-scrum)) or Kanban ([boards](../../agile-boards)). Versions in OpenProject represent a "container" that contains the work packages to be processed. Versions serve a double function: On the one hand, you can use them to plan your product releases, and on the other hand, you can use them to map the product backlog(s) and sprints required for Scrum. As soon as you have created at least one version in a project, the module "[Roadmap](../../roadmap)" is displayed on the left side in your project, which you can use to get an overview of the versions (intended primarily for releases). -The [Backlogs module](../../backlogs-scrum) uses versions to map the product backlog or sprints. By using the backlog, however, some special rules occur: For example, tasks must be assigned to the same version as the associated (parent) work packages. +The [Backlogs module](../../backlogs-scrum) uses versions to map the product backlog or sprints. By using the backlog, however, some special rules occur: For example, tasks must be assigned to the same version as the associated (parent) work packages. If you do not work according to Scrum we would recommend to deactivate the Backlogs module and use the [Boards module](../../agile-boards) instead. If you have activated the boards module you can create a version board. You can find an example [here](https://community.openproject.org/projects/openproject/boards/2077). ## Can I assign work packages in subprojects to versions of the parent project? @@ -56,6 +56,6 @@ Afterwards, you could adjust the hierarchy of the child project (which you origi ## Does OpenProject offer portfolio management? -For portfolio management or custom reporting, you can use either the project list, or the global work package table. Both views can be used to create optimal reports via filtering, sorting and other configuration options. +For portfolio management or custom reporting, you can use either the project list, or the global work package table. Both views can be used to create optimal reports via filtering, sorting and other configuration options. For more information on portfolio management options in OpenProject please refer to this [Use Case](../../../use-cases/resource-management). diff --git a/docs/user-guide/repository/README.md b/docs/user-guide/repository/README.md index fa91fea23ba7..6610307bf4ec 100644 --- a/docs/user-guide/repository/README.md +++ b/docs/user-guide/repository/README.md @@ -14,7 +14,6 @@ keywords: svn, git, repository management > **Note**: Repositories are currently only available for the packaged-based on-premises installations. In order to use Repository functionality please make sure that the Repository module is [activated in the project settings](../projects/project-settings/modules/). - ## Repository browser view An important part of working on a project as a team is sharing files and source code. Keeping track of the latest versions can sometimes be a challenge. Therefore, OpenProject provides two types of version control systems (Git and Subversion) which – after being properly configured – can be used to store relevant data in the different projects. @@ -31,8 +30,6 @@ You can create a comparison of two versions to see the changes made for specific ![User-guide-repository3](User-guide-repository3.png) - - ## Working with an SVN or Git client The data contained in a project repository can be downloaded to your computer using one of several clients, for example [Tortoise SVN](https://tortoisesvn.net/) for Subversion, and the [git client](https://git-scm.com/) or [one of the recommended GUI clients](https://git-scm.com/downloads/guis) for Git. @@ -47,13 +44,10 @@ In the commit message you can reference a work package ID (e.g. #1234). In the r In any textile field you can reference revisions by putting an "r" in front of the revision number (e.g. r123). - ## Configure Repositories in OpenProject Please see our system admin guide [how to configure repositories in OpenProject](../../system-admin-guide/system-settings/repositories/). - - ## Repository integration See our Installation and operations guide how to [integrate repositories in OpenProject](../../installation-and-operations/configuration/repositories/#repository-integration-in-openproject). diff --git a/docs/user-guide/search/README.md b/docs/user-guide/search/README.md index 3b6120bc966e..ac6ff317156c 100644 --- a/docs/user-guide/search/README.md +++ b/docs/user-guide/search/README.md @@ -8,7 +8,7 @@ keywords: search, find, filter, search bar # Search features -There are two ways to search for work packages, documents, projects, etc. in OpenProject: The search bar and the advanced search. +There are two ways to search for work packages, documents, projects, etc. in OpenProject: The search bar and the advanced search. ## Search bar diff --git a/docs/user-guide/team-planner/README.md b/docs/user-guide/team-planner/README.md index d867c665013b..ff00bd9c9db0 100644 --- a/docs/user-guide/team-planner/README.md +++ b/docs/user-guide/team-planner/README.md @@ -7,6 +7,7 @@ keywords: team planner, planning, calendar, resource management, assign, team vi --- # Team planner + The team planner module helps you get a complete overview of what each member of your team is working on. You can use it to track the current progress of work packages your team is working on, schedule new tasks, reschedule them or even reassign them to different members. ![Example team planner showing a two-week view of work packages assigned to team members](TeamPlanner-12.4-twoWeeks.png) @@ -25,7 +26,7 @@ To use this module, you must have the work packages module enabled. | [Work package detail view](#work-package-details-view) | View or edit a specific work package | | [Removing a work package](#remove-a-work-package) | Removing (unscheduling) visible work packages | - +![Video](https://openproject-docs.s3.eu-central-1.amazonaws.com/videos/OpenProject-Team-Planner.mp4) ## Module overview @@ -41,7 +42,6 @@ Clicking on the **Team planners** entry on the left sidebar takes you to the tea > **Info**: Both *public* and *private* team planners can be added as **favored** planners; they will then appear under the **Favorite** heading in the menu bar. - ## Team planner basics ![A screenshot of an example team planner with different functions highlighted](TeamPlanner-12.4-oneWeek.png) @@ -93,7 +93,6 @@ A **new work package dialog** will open. The assignee, start and finish dates wi ![An example of the new work package split screen view](TeamPlanner-12.4-newTask-splitScreen.png) - #### Add an existing work package If you would like to take an existing work package and assign it to your team member for a certain start date, the team planner makes it easy to do so. diff --git a/docs/user-guide/time-and-costs/README.md b/docs/user-guide/time-and-costs/README.md index 2a8733ad36a6..bf02fd54a8dc 100644 --- a/docs/user-guide/time-and-costs/README.md +++ b/docs/user-guide/time-and-costs/README.md @@ -24,6 +24,7 @@ Create budgets, log time and costs on specific work packages and create time and Watch this short video to get a first overview about time and cost reporting in OpenProject. + ## Frequently asked questions (FAQ) ### Does OpenProject provide resource management? diff --git a/docs/user-guide/time-and-costs/cost-tracking/README.md b/docs/user-guide/time-and-costs/cost-tracking/README.md index b92acce7ba07..b94b23c6e6ec 100644 --- a/docs/user-guide/time-and-costs/cost-tracking/README.md +++ b/docs/user-guide/time-and-costs/cost-tracking/README.md @@ -16,12 +16,11 @@ You can log unit costs on a work package within a project to keep track on certa | [Edit logged costs](#edit-logged-costs) | How to edit spent costs logged to a work package. | | [Delete logged costs](#delete-logged-costs) | How to delete spent costs logged to a work package. | - ## Log costs to a work package In order to log unit costs, you must first activate the **Time and costs** module and the **Budget** module in the project settings. Then select a budget from the drop-down menu of the work package details and link it to the selected work package![select-budget-work-package-details](select-budget-work-package-details.png) -To log costs to a work package you can either press the button on the top right in the work package detail view or double-click on the line of the work package in the work package table. In both cases a function menu appears in which you can select **log unit costs**. +To log costs to a work package you can either press the button on the top right in the work package detail view or double-click on the line of the work package in the work package table. In both cases a function menu appears in which you can select **log unit costs**. ![log-unit-costs](log-unit-costs.png) @@ -52,12 +51,8 @@ A new form is opened, where you can log unit costs. You can edit the following i The **spent unit costs** as well as the total amount of **overall costs** are displayed on the work packages details view. - - ![Cost tracking overview](Cost-tracking-overview.png) - - ## Edit logged costs To display and edit the logged costs to a work package, navigate to the work package details view. Here, the total amount of spent costs are displayed. Click on the sum of logged costs on a work package to display the details. diff --git a/docs/user-guide/time-and-costs/progress-tracking/README.md b/docs/user-guide/time-and-costs/progress-tracking/README.md index 92225f712534..03d719001ebd 100644 --- a/docs/user-guide/time-and-costs/progress-tracking/README.md +++ b/docs/user-guide/time-and-costs/progress-tracking/README.md @@ -8,7 +8,7 @@ keywords: Progress tracking, estimated time, remaining time, work, % complete, p # Progress tracking -OpenProject lets you track and monitor the progress of your work packages. +OpenProject lets you track and monitor the progress of your work packages. > **Note:** Since OpenProject 14.0, the way progress is reported and calculated has changed significantly. Please read the documentation below to understand how OpenProject handles work and progress estimates. @@ -16,11 +16,11 @@ OpenProject lets you track and monitor the progress of your work packages. [OpenProject 13.2](https://www.openproject.org/docs/release-notes/13-2-0/) introduced important changes in the names of three work package fields: -| **Old term** | **New term** | +| **Old term** | **New term** | |--------------------|------------------------| -| Progress | % Complete | -| Estimated time | Work | -| Remaining time | Remaining work | +| Progress | % Complete | +| Estimated time | Work | +| Remaining time | Remaining work | >**Note**: You will still find the new attributes if you search using their older names (in the list of filters, for example). @@ -37,7 +37,7 @@ OpenProject offers two modes for reporting progress: % Complete is an automatically calculated value that is a function of Work and Remaining work, unless % Complete is configured to be [set by status](#status-based-progress-reporting). ->**% Complete** is work done (**Work** - **Remaining work**) divided by **Work**, expressed as a percentage. For example, if Work is set at 50h and Remaining work is 30h, this means that % Complete is _(50h-30h)/50h))_ = **40%**. Please note that these calculations are independent and unrelated to the value of **Spent time** (which is based on actual time logged). +>**% Complete** is work done (**Work** - **Remaining work**) divided by **Work**, expressed as a percentage. For example, if Work is set at 50h and Remaining work is 30h, this means that % Complete is _(50h-30h)/50h))_ = **40%**. Please note that these calculations are independent and unrelated to the value of **Spent time** (which is based on actual time logged). This means that for a work package to have a value for % Complete, both Work and Remaining work are required to be set. To make this link clear and transparent, clicking on any of the three values to modify them will display the following pop-over: @@ -47,11 +47,11 @@ This allows you to edit Work or Remaining work and get a preview of the updated >**Note:** If you enter a value for Remaining work that is higher than Work, you will see an error message telling you that this is not possible. You will have to enter a value lower than Work to be able to save the new value. > ->Additionally, the value for Remaining work cannot be removed if a value for Work exists. If you wish to unset Remaining work, you need to also unset Work. +>Additionally, the value for Remaining work cannot be removed if a value for Work exists. If you wish to unset Remaining work, you need to also unset Work. ### Status-based progress reporting -Administrators can also switch to [status-based progress reporting mode](../../../system-admin-guide/manage-work-packages/work-package-settings/) for their instance. +Administrators can also switch to [status-based progress reporting mode](../../../system-admin-guide/manage-work-packages/work-package-settings/) for their instance. In this mode, each status is associated with a fixed % Complete value in the [admin settings for each one](../../../system-admin-guide/manage-work-packages/work-package-status/), which can be freely updated by changing the status of a work package. This allows teams to report progress simply by changing the status of their work packages over time. @@ -69,14 +69,13 @@ This allows you to edit % Complete (by changing status) or Work and get a p >**Note:** In the upcoming version, statuses cannot have an empty % Complete value in status-based progress reporting mode.When upgrading, all statuses that do not have a value will take the default value of 0%. - ## Hierarchy totals OpenProject will automatically show totals for Work, Remaining work and % Complete in a work package hierarchy (any parent with children). These appear in a work package table as a number with a Σ sign next to it, indicating that it is a total of the values of the parent _and_ children. ![Hierarchy totals for Work, Remaining work and % Complete](hierarchy-totals.png) -> **Note**: The total % Complete value of a hierarchy is a weighted average tied to Work. For example, a feature with Work set to 50h that is 30% done will influence the total of % Complete of the parent more than a feature with Work set to 5h that is 70% done. +> **Note**: The total % Complete value of a hierarchy is a weighted average tied to Work. For example, a feature with Work set to 50h that is 30% done will influence the total of % Complete of the parent more than a feature with Work set to 5h that is 70% done. -## Changing modes +## Changing modes When an administrator changes the progress calculation mode from Work-based to Status-based, the % Complete values might be in a transitional stage. @@ -101,11 +100,8 @@ When switching from Work-based to Status-based mode, the previous value for %&nb ## Status- to work-based -In Status-based mode, it is possible for work packages to have a % Complete value (defined by the status) without having values for Work or Remaining work. In other words, the Work and Remaining work can be empty. +In Status-based mode, it is possible for work packages to have a % Complete value (defined by the status) without having values for Work or Remaining work. In other words, the Work and Remaining work can be empty. When switching to Work-based mode, OpenProject will retain the value for % Complete that was set with status. It can then be modified by inputing Work and Remaining work, thereby overwriting the previous value with a new computed value: ![Work estimates and progress pop-over with only the previous % Complete value](progress-popover-percentage-complete-only.png) - - - diff --git a/docs/user-guide/time-and-costs/reporting/README.md b/docs/user-guide/time-and-costs/reporting/README.md index b8cd7b76b029..5e95ac37ae67 100644 --- a/docs/user-guide/time-and-costs/reporting/README.md +++ b/docs/user-guide/time-and-costs/reporting/README.md @@ -12,7 +12,6 @@ You can easily report spent time and costs in OpenProject and filter, group and > **Note**: To use the time tracking functionality, the **Time and costs module** needs to be activated in the [project settings](../../projects/project-settings/modules/). - | Topic | Content | |---------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | [Time and costs report](#time-and-costs-reports) | How to open time and costs reports in OpenProject. | @@ -39,7 +38,7 @@ You can change the view of a cost reports and adapt it to your needs. You can select and apply various filters, such as work package, author, start date or target version. -Multiple projects can be selected by adding a **Projects** filter. +Multiple projects can be selected by adding a **Projects** filter. Depending on your rights in the project, multiple users can also be selected. This way you can filter the time and cost entries exactly to your need, depending on the time, work or user you want to see. The results will then be displayed in the time and cost report below. @@ -54,7 +53,7 @@ To add grouping criteria to the columns or rows of the report, select the drop-d ![Time-costs-group-by](Time-cots-group-by.png) -The grouping criteria will then be added to the columns or rows of the report. +The grouping criteria will then be added to the columns or rows of the report. Click the blue **Apply button** to display your changes. diff --git a/docs/user-guide/time-and-costs/time-and-costs-faq/README.md b/docs/user-guide/time-and-costs/time-and-costs-faq/README.md index 12ef158494fa..cd5ca410abd4 100644 --- a/docs/user-guide/time-and-costs/time-and-costs-faq/README.md +++ b/docs/user-guide/time-and-costs/time-and-costs-faq/README.md @@ -16,7 +16,7 @@ It is not possible to prevent time logging on phases or restrict it to certain w Since [12.2 release](../../../release-notes/12/12-2-0/) it is possible to log time for a user other than yourself. This right has to be granted by an admin to users with certain roles. You can find out more [here](../../../user-guide/time-and-costs/time-tracking/#log-and-edit-time-for-other-users). -## Is it possible to view all hours assigned to each member in total? If I work on various projects I'd like to know how many hours I accumulated for all tasks assigned to me. +## If I work on various projects I'd like to know how many hours I accumulated for all tasks assigned to me. Is it possible to view all hours assigned to each member in total? Yes, it is possible to see all hours assigned to each user in total. In your cost report you would just need to [select](../reporting/#filter-cost-reports) all projects that you would want to look at. Click on the **+** next to the project filter, select all projects or the ones that you would like to select (use Ctrl or Shift key), choose all other filters and then click **Apply** to generate the cost report. diff --git a/docs/user-guide/time-and-costs/time-tracking/README.md b/docs/user-guide/time-and-costs/time-tracking/README.md index 042869a99869..24336f7c6ba5 100644 --- a/docs/user-guide/time-and-costs/time-tracking/README.md +++ b/docs/user-guide/time-and-costs/time-tracking/README.md @@ -12,7 +12,6 @@ Users can book their time or units spent on an activity within a project directl > **Note**: To use the time tracking functionality, the **Time and costs module** needs to be activated in the [project settings](../../projects/project-settings/modules/). - | Topic | Content | | ------------------------------------------------------------ | ------------------------------------------------------------ | | [Log time in the work package view](#log-time-in-the-work-package-view) | How to log time to a work package. | @@ -27,10 +26,9 @@ Users can book their time or units spent on an activity within a project directl | [TimeCamp integration](./timecamp-integration) | How to track spent time using TimeCamp. | | [Time Tracker integration](./time-tracker-integration) | How to record and log spent time using Time Tracker. | - ## Log time in the work package view -In order to log spent hours for a certain activity, open the details of the corresponding work package. Select **Log time** from the **More functions** drop down menu, the icon with the three dots in the top right of the work packages details. Or use the **Log time** icon next to **Spent time**. +In order to log spent hours for a certain activity, open the details of the corresponding work package. Select **Log time** from the **More functions** drop down menu, the icon with the three dots in the top right of the work packages details. Or use the **Log time** icon next to **Spent time**. Alternatively, you can also log time via the work package table. To do this, simply click with the right mouse pointer on the line of the work package, which you want to track times for and then select "log time" from the entries in the list. You will then also be led to the form for logging time. @@ -50,7 +48,7 @@ The aggregated time spent on a work package is shown in the work package details ## Log time via the time tracking button -Starting with OpenProject 13.0, you can also track time in real time using the start/stop time tracking button. To do this, navigate to a work package you are working on and click on the **Start time tracking button**. +Starting with OpenProject 13.0, you can also track time in real time using the start/stop time tracking button. To do this, navigate to a work package you are working on and click on the **Start time tracking button**. ![OpenProject start time tracking button](openproject_user_guide_time_tracking_button.png) @@ -60,7 +58,7 @@ This will start the time tracking timer for the current work package. A timer ic Once you are done working, you can stop tracking time by clicking the **Stop time tracking button**. This will open a pop up window with the recorded time spent based on the timer. You may correct or adjust this time manually if you wish. -If you want to continue tracking time, click **Cancel** and the timer will continue running. If you do not want to log time, click **Delete**. Clicking **Save** will log the time the same as if you had manually logged it. +If you want to continue tracking time, click **Cancel** and the timer will continue running. If you do not want to log time, click **Delete**. Clicking **Save** will log the time the same as if you had manually logged it. ![OpenProject stop time tracking button](openproject_user_guide_time_tracking_button_stop.png) @@ -70,9 +68,9 @@ If you navigate away from the work package in which you have a timer running, yo ## Log time via commit message -> **Note**: this is a power user feature that is currently only available for on-premises installations. +> **Note**: this is a power user feature that is currently only available for on-premises installations. > -> **Enable time logging** option must be [activated under system settings](../../../system-admin-guide/system-settings/repositories/) in order to log time via a commit message. +> **Enable time logging** option must be [activated under system settings](../../../system-admin-guide/system-settings/repositories/) in order to log time via a commit message. To log time via commit message **Repository** module must be activated and an SVN or Git repository needs to be configured. Once it is configured you can enter the following syntax into a commit message of your client (for example GitHub desktop client or a command line client) to log time: *refs #work package number @amount of hours*. For example refs #123 @2h will log 2 hours of spent time for the work package number 123.![openproject_user_guide_log_time_commit_message](openproject_user_guide_log_time_commit_message.png) @@ -108,7 +106,7 @@ In the list of time entries, click on the **Delete** icon next to a time entry t ## Log and edit time for other users -Starting with OpenProject 12.2, users with certain roles are able to log and edit time for other users. +Starting with OpenProject 12.2, users with certain roles are able to log and edit time for other users. > To enable this functionality, an administrator has to grant this privilege to a particular role in the **Roles and Permissions** section under **Users and Permissions** in the administrator settings. > @@ -135,7 +133,6 @@ A user with permissions to edit time logged by other users can edit each entry a In order to track labor costs, you need to [define an hourly rate](#define-hourly-rate-for-labor-costs) in your user profile first. The labor costs will then be calculated automatically based on your hours booked and your hourly rate. - ## Define hourly rate for labor costs You can define an hourly rate to track labor costs per user. You will need system admin permissions for this. Please navigate to the user profile, e.g. by clicking on a hyper link of the user name on a work package. @@ -150,4 +147,4 @@ Here, you can click the **Edit button** on the top right corner of the user prof Alternatively, you can navigate to *Administration -> Users and permissions -> Users* and click on the respective user name. -Click on the **Rate history** tab. Find out [here](../../../system-admin-guide/users-permissions/users/#rate-history) how to continue. +Click on the **Rate history** tab. Find out [here](../../../system-admin-guide/users-permissions/users/#rate-history) how to continue. diff --git a/docs/user-guide/time-and-costs/time-tracking/time-tracker-integration/README.md b/docs/user-guide/time-and-costs/time-tracking/time-tracker-integration/README.md index 9bf0a2d39599..25335fc1fb8c 100644 --- a/docs/user-guide/time-and-costs/time-tracking/time-tracker-integration/README.md +++ b/docs/user-guide/time-and-costs/time-tracking/time-tracker-integration/README.md @@ -12,7 +12,7 @@ Please note that the Time Tracker integration is not developed, nor officially s ![Screenshot of the Time Tracker app](time_tracker_app.png) -[Time Tracker for OpenProject](https://open-time-tracker.com/) is a mobile app that records time spent on tasks and logs it to your Open Project instance. +[Time Tracker for OpenProject](https://open-time-tracker.com/) is a mobile app that records time spent on tasks and logs it to your Open Project instance. ## Installation @@ -22,7 +22,6 @@ Time Tracker app is available in the Apple [AppStore](https://apps.apple.com/us/ 1. Log in to the Time Tracker app with your administrator account. - 2. Once logged in, open the Administration panel, navigate to the Authentication page and when go to the OAuth applications tab. ![OAuth applications](openProject_OAuth_applications.png) @@ -31,12 +30,12 @@ Time Tracker app is available in the Apple [AppStore](https://apps.apple.com/us/ ![Add a new OAth application](openproject_new_OAth.png) -4. In the new application window, enter the desired name for the application (for example, Time Tracker) in the Name field. -5. Set the Redirect URI to `openprojecttimetracker://oauth-callback`. This link will be used to redirect users back to the app after they authorize the OAuth application. -6. Set the Scopes to api_v3. This will allow the application to access the necessary APIs. -7. Set the Confidential Property to unchecked. -8. Leave the Client Credentials User field empty. -9. Once you have completed all the fields, press the Create button. +4. In the new application window, enter the desired name for the application (for example, Time Tracker) in the Name field. +5. Set the Redirect URI to `openprojecttimetracker://oauth-callback`. This link will be used to redirect users back to the app after they authorize the OAuth application. +6. Set the Scopes to api_v3. This will allow the application to access the necessary APIs. +7. Set the Confidential Property to unchecked. +8. Leave the Client Credentials User field empty. +9. Once you have completed all the fields, press the Create button. 10. After creating the application, copy the Client ID and Base URL values for future reference and keep them secure. Copy Base URL from Auth URL field, it may look like this: `https://example.com` ![openproject time tracker configured](openproject_timetracker_configured.png) diff --git a/docs/user-guide/time-and-costs/time-tracking/timecamp-integration/README.md b/docs/user-guide/time-and-costs/time-tracking/timecamp-integration/README.md index 538576ab5a22..1ac0ba77209a 100644 --- a/docs/user-guide/time-and-costs/time-tracking/timecamp-integration/README.md +++ b/docs/user-guide/time-and-costs/time-tracking/timecamp-integration/README.md @@ -36,13 +36,13 @@ This integration can be added for Google Chrome as [TimeCamp extension](https:// 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. +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. +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. @@ -50,7 +50,7 @@ This integration can be added for Google Chrome as [TimeCamp extension](https:// 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. +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) diff --git a/docs/user-guide/time-and-costs/time-tracking/toggl-integration/README.md b/docs/user-guide/time-and-costs/time-tracking/toggl-integration/README.md index 5aa3efdd4c6e..847e06699240 100644 --- a/docs/user-guide/time-and-costs/time-tracking/toggl-integration/README.md +++ b/docs/user-guide/time-and-costs/time-tracking/toggl-integration/README.md @@ -28,16 +28,12 @@ For any other OpenProject Domains you need to exactly add the **Fully Qualified ![toggl-configuration-integrations-openproject](toggl-configuration-integrations-openproject.png) - - ## Track time from OpenProject to Toggl Track If this add-in is installed and the **Integration URL** is configured, a **Start/Stop Timer button** is displayed on the work package details view, which can be used to record times from OpenProject into Toggl: ![toggl button openproject work package detail view](toggl-button-openproject-workpackage-detail-view.png) - - ## Copy time entries from Toggl Track to OpenProject If you would like to use the times tracked in Toggl Track inside of OpenProject, and you are a programmer, you are able to transfer the recorded times back to OpenProject via the API if needed. diff --git a/docs/user-guide/wiki/README.md b/docs/user-guide/wiki/README.md index 873e262ddf5b..ae7615b4d922 100644 --- a/docs/user-guide/wiki/README.md +++ b/docs/user-guide/wiki/README.md @@ -58,19 +58,21 @@ As CKEditor5 currently does not provide support for code blocks, OpenProject can The GFM extension of the CommonMark specs adds a definition for table syntax which the CKEditor build of OpenProject supports. This definition requires all tables to have a heading row. For tables created with CKEditor without heading rows, a HTML table is output instead. This matches the behavior of, e.g., GitHub. ### Emojis + Starting with OpenProject 13.0 you can add emojis to all text editors. Type a colon and a letter, e.g. **:a** into the wiki editor and get a suggested list of emojis you can use. ![openproject_user_guide_wiki_emoji](openproject_user_guide_wiki_emoji.png) - ### Autoformatting CKEditor5 allows certain CommonMark-like autoformatting keyboard strokes: - Create bold or italic styles by typing **will become bold**, _will become italic_, - Create headings of different indentation with #, ##, ###, … - Create a bulleted list by starting the line with * or - and a space - Create a numbered list by starting the line with 1. or 1) and a space +```markdown +Create bold or italic styles by typing **will become bold**, _will become italic_, +Create headings of different indentation with #, ##, ###, … +Create a bulleted list by starting the line with * or - and a space +Create a numbered list by starting the line with 1. or 1) and a space +``` ## Image handling @@ -100,7 +102,7 @@ The rendered page will then fetch the work package table results dynamically, re Use it to embed views in other pages, create reporting of multiple results, or to embed a Gantt chart view. -### Work package button +### Work package button Configure a button or link to target the work package creation screen in the current project. You can preselect a work package type that should be selected, making it easy to guide the users to the work package creation form. @@ -116,30 +118,36 @@ In some resources such as work packages or comments, the editor does not exhibit As with the textile formatting syntax, you can link to other resources within OpenProject using the same shortcuts as before. Create links to: - a wiki page: [[Wiki page]] - a wiki page with separate link name: [[Wiki page|The text of the link]] - a wiki page in the Sandbox project: [[Sandbox:Wiki page]] - - a work package with ID12: #12 - a work package with ID234: view#12 - the default work package view: view:default - - a version by ID or name: version#3, version:"Release 1.0.0" - a project by ID/name: project#12 , project:"My project name" - an attachment by filename: attachment:filename.zip - a user by id or login: user#4 , user:"johndoe" - a forum message by ID: message#1218 - a repository revision 43: r43 - a commit by hash: commit:f30e13e4 - a source file in the repository: source:"some/file" +```wiki +a wiki page: [[Wiki page]] +a wiki page with separate link name: [[Wiki page|The text of the link]] +a wiki page in the Sandbox project: [[Sandbox:Wiki page]] + +a work package with ID12: #12 +a work package with ID234: view#12 +the default work package view: view:default + +a version by ID or name: version#3, version:"Release 1.0.0" +a project by ID/name: project#12 , project:"My project name" +an attachment by filename: attachment:filename.zip +a user by id or login: user#4 , user:"johndoe" +a forum message by ID: message#1218 +a repository revision 43: r43 +a commit by hash: commit:f30e13e4 +a source file in the repository: source:"some/file" +``` You can always prefix these links with a project identifier followed by a colon in order to reference resources from projects other than the one of the current wiki page: - my-project:view:default +```text +my-project:view:default +``` To avoid processing these items, precede them with a bang ! character such as !#12 will prevent linking to a work package with ID 12: - Wiki systems contain all the answers !#42 +```text +Wiki systems contain all the answers !#42 +``` ### Autocompletion for work packages diff --git a/docs/user-guide/wiki/create-edit-wiki/README.md b/docs/user-guide/wiki/create-edit-wiki/README.md index d4ec33b0d89e..01c4458bc423 100644 --- a/docs/user-guide/wiki/create-edit-wiki/README.md +++ b/docs/user-guide/wiki/create-edit-wiki/README.md @@ -77,4 +77,3 @@ If you want to keep updated about any changes to a wiki page, you can make use o ![watch-wiki](watch-wiki.png) With this function being activated, you will receive an e-mail notification (according to your email preferences) after every page update, including a link to the respective changes. - diff --git a/docs/user-guide/wiki/more-wiki-functions/README.md b/docs/user-guide/wiki/more-wiki-functions/README.md index 93b701d436cf..30b9f21802e6 100644 --- a/docs/user-guide/wiki/more-wiki-functions/README.md +++ b/docs/user-guide/wiki/more-wiki-functions/README.md @@ -18,29 +18,24 @@ In the wiki you have more functions to edit or configure your wiki page, e.g. to | [Show wiki page history](#show-wiki-page-history) | How to display changes to a wiki page. | | [Export a wiki page](#export-a-wiki-page) | How to export a wiki page. | - To open further configuration settings, navigate to a wiki page and click on the **More** button on top of the wiki page. In the drop down menu, select the corresponding menu item. ![more-wiki-functions](image-20210429094259782.png) - - ## Lock a wiki page To lock an existing wiki page and prevent others from editing the page, select the **More** button on top of the wiki page. Select the item **Lock** in the drop down menu. -The page is now locked and cannot be edited by any other user. +The page is now locked and cannot be edited by any other user. To unlock a wiki page and make it possible for users to edit it again, select the **Unlock** item under the **More** button on top of a wiki page. ![unlock-wiki-page](image-20210429101715608.png) - - It is now possible to edit the wiki page again. ## Delete a wiki page @@ -66,7 +61,7 @@ First, you will get an overview on author and date of the latest updates. Potent ![view-differences-wiki](1568213985327.png) > **Note**: The more distance between two versions, the more difficult it becomes to compare them, since only the selected versions are compared (ignoring the changes that were made in the meantime). The most comprehensible information is thus provided by comparing two consecutive versions. -> The wiki will merge changes, if changes are entered within less then 5 minutes by the same person. This helps to avoid clutter in the wiki history. +> The wiki will merge changes, if changes are entered within less then 5 minutes by the same person. This helps to avoid clutter in the wiki history. ## Export a wiki page diff --git a/docs/user-guide/wiki/wiki-faq/README.md b/docs/user-guide/wiki/wiki-faq/README.md index 6da137fd3325..479924713210 100644 --- a/docs/user-guide/wiki/wiki-faq/README.md +++ b/docs/user-guide/wiki/wiki-faq/README.md @@ -8,46 +8,46 @@ keywords: wiki faq # Frequently asked questions (FAQ) for wiki -### Is it possible to copy a wiki or a wiki page from one project into another project? +## Is it possible to copy a wiki or a wiki page from one project into another project? -Yes, you can do both, you have to export the wiki or the wiki page as a Markdown (or Atom), than copy the Markdown from the text editor. Now you have to create a new wiki in the project you want to copy the old one (or the page). In the section paragraph you have to change into the markdown modus, then paste the text from you have copied. Unfortunately pictures cannot be copied this way. You have to add them manually. +Yes, you can do both, you have to export the wiki or the wiki page as a Markdown (or Atom), than copy the Markdown from the text editor. Now you have to create a new wiki in the project you want to copy the old one (or the page). In the section paragraph you have to change into the markdown modus, then paste the text from you have copied. Unfortunately pictures cannot be copied this way. You have to add them manually. -### Which image formats can be used to include them on a wiki page? +## Which image formats can be used to include them on a wiki page? Currently supported are PNG and JPEG. -### Can I include a wiki page in another wiki? +## Can I include a wiki page in another wiki? You can paste the content of one wiki into another wiki. To do this, you need to copy the content of your wiki pages and paste the text into a wiki page in another wiki. There exists a macro {{include(wikipage title)}} which includes another page from the same project. If the page is located in a different project the command needs to be changed to the following: {{include(project title: wikipage title)}} -### Can I include wiki pages in the left menu bar? What does "Configure menu item" mean? +## Can I include wiki pages in the left menu bar? What does "Configure menu item" mean? The option configure menu item was designed to ease the handling of page structures. After the initial creation of the page you can select the function. If you select Do not show this wiki page in project navigation the page will be excluded from the menu. Otherwise the page will appear in the project navigation and you can select, whether it shall be a subitem of an existing wiki page. -### I created a wiki page but cannot find it anywhere in the menu - how can I access it? +## I created a wiki page but cannot find it anywhere in the menu - how can I access it? After saving a wiki page, you can create a referencing link for the page to easily access it - either by making it a wiki menu item (s.a.) or by referencing it with a link on the main wiki page. If this chance was missed you can reaccess the page at any time, by typing in the page’s URL in the browser: -The example URL would be: openproject.org/projects/your-projects-name/wiki/your-wiki-page’s-name +The example URL would be: `openproject.org/projects/your-projects-name/wiki/your-wiki-page’s-name` Also, you have the possibility to display the wiki’s Table of Contents, which you also can activate for each wiki page with “configure menu item” (s.a.). Here you see all wiki pages for the project. -### I activated the wiki module in the project settings but cannot see any wiki in the project menu. What happened? +## I activated the wiki module in the project settings but cannot see any wiki in the project menu. What happened? You have probably unchecked the option “show as menu item in project navigation” within the wiki settings “configure menu item” (s.a.). Type in the URL of any wiki page in the browser: `https://www.openproject.org/projects/“project_name”/wiki` to open the wiki. Open “configure menu item” for this page and choose the way you want this wiki to be displayed in the menu bar. -### What is the markup language of the wiki in OpenProject? +## What is the markup language of the wiki in OpenProject? The wiki syntax used in OpenProject is Textile. -### I am not used to Textile - is there any documentation where I can get help? +## I am not used to Textile - is there any documentation where I can get help? Next to the field to enter the page content, some of the basic formatting commands are included. Above you see the commands for text styles, headline options and lists, as well as the command to include an image. On the right, there is also a help link which displays all commands which can be used for formatting. -### How to create a table of content +## How to create a table of content? -The macro to create a table of content is {{toc}}. +The macro to create a table of content is `{{toc}}`. diff --git a/docs/user-guide/wiki/wiki-menu/README.md b/docs/user-guide/wiki/wiki-menu/README.md index 92d90548b159..10373378cd18 100644 --- a/docs/user-guide/wiki/wiki-menu/README.md +++ b/docs/user-guide/wiki/wiki-menu/README.md @@ -14,8 +14,6 @@ Wiki menu items are marked with the wiki icon to clearly identify the pages in t ![wiki-menu](wiki-menu.png) - - ## Add a wiki page to the project menu To add a wiki page as a menu item to the project menu, select the **More** functions button on top of a wiki page and choose the **Configure menu item** topic. @@ -31,8 +29,6 @@ To add a wiki page as a menu item to the project menu, select the **More** funct 3. **Save** your changes to the wiki page menu. - - ![wiki-menu-item-settings](wiki-menu-item-settings.png) **Visibility** show as menu item in the project navigation: @@ -43,4 +39,4 @@ To add a wiki page as a menu item to the project menu, select the **More** funct ![wiki-show-submenu-item](wiki-show-submenu-item.png) -The default option is **Do not show this wiki page in project navigation**. Check this option if you want to undo earlier changes and hide the wiki page from the project menu. \ No newline at end of file +The default option is **Do not show this wiki page in project navigation**. Check this option if you want to undo earlier changes and hide the wiki page from the project menu. diff --git a/docs/user-guide/work-packages/README.md b/docs/user-guide/work-packages/README.md index 5e51d47f6845..2a6259a40a9e 100644 --- a/docs/user-guide/work-packages/README.md +++ b/docs/user-guide/work-packages/README.md @@ -9,20 +9,19 @@ keywords: work packages, tickets # Work packages
-**Work packages** are items in a project (such as tasks, features, risks, user stories, bugs, change requests). A work package captures important information and can be assigned to project members for execution. +**Work packages** are items in a project (such as tasks, features, risks, user stories, bugs, change requests). A work package captures important information and can be assigned to project members for execution.
Work packages have a **type**, an **ID**, a **subject** and may have various additional attributes, such as **status**, **assignee**, **priority**, **due date**.
-**Work package ID** is defined as a unique integer assigned to a newly created work package. Work package IDs cannot be changed and are numbered across all projects of an OpenProject instance (therefore, the numbering within a project may not be sequential). +**Work package ID** is defined as a unique integer assigned to a newly created work package. Work package IDs cannot be changed and are numbered across all projects of an OpenProject instance (therefore, the numbering within a project may not be sequential).
-**Types** are the different items a work package can represent, such as task, feature, bug, phase, milestone. The work package types can be configured in the system administration. +**Types** are the different items a work package can represent, such as task, feature, bug, phase, milestone. The work package types can be configured in the system administration.
- Work packages can be displayed in a projects timeline, e.g. as a milestone or a phase. In order to use the work packages, the work package module has to be activated in the project settings. ## Overview @@ -41,4 +40,3 @@ Work packages can be displayed in a projects timeline, e.g. as a milestone or a | [Work package relations and hierarchies](work-package-relations-hierarchies) | How to create work package relations and hierarchies. | - diff --git a/docs/user-guide/work-packages/add-work-packages-to-meetings/README.md b/docs/user-guide/work-packages/add-work-packages-to-meetings/README.md index e754bb10e031..694ebded75ac 100644 --- a/docs/user-guide/work-packages/add-work-packages-to-meetings/README.md +++ b/docs/user-guide/work-packages/add-work-packages-to-meetings/README.md @@ -18,10 +18,10 @@ In the dialog that appears, select a meeting from the list of open upcoming meet ![Add a work package to a new meeting](openproject_user_guide_meeting_dialogue.png) -The newly-created work package agenda item can be [re-ordered and edited](../../meetings/dynamic-meetings/#edit-a-meeting). +The newly-created work package agenda item can be [re-ordered and edited](../../meetings/dynamic-meetings/#edit-a-meeting). ## View existing linked meetings -The **Meetings** tab will also list all meetings, past and upcoming, to which the current work package has already been linked to. +The **Meetings** tab will also list all meetings, past and upcoming, to which the current work package has already been linked to. Each linked meeting will also also include any notes associated with that work package agenda item. This can be useful to recall specific discussion points, open questions or decisions taken during a meeting that concerns the current work package. diff --git a/docs/user-guide/work-packages/baseline-comparison/README.md b/docs/user-guide/work-packages/baseline-comparison/README.md index 51137d31cda6..bd990ba84fd8 100644 --- a/docs/user-guide/work-packages/baseline-comparison/README.md +++ b/docs/user-guide/work-packages/baseline-comparison/README.md @@ -50,7 +50,6 @@ By default, Baseline will compare to 8 AM local time of the relevant day. You ca >**Note:** These are relative comparison points, which means that _Yesterday_ will always refer to the day before the current day, and not a specific date. You can use these to set up "running" baselines that show you all changes within the past day or week. - ### A specific date ![You can compare the present state to a specific date in the past](13-0_Baseline_specificDate.png) @@ -80,8 +79,7 @@ When Baseline is enabled, you will see a legend at the top of the page which sho - The comparison point or comparison period - The number of work packages that now meet the filter criteria (and were thus added to view) - The number of work packages that no longer meet the filter criteria (and were thus removed from view) -- The number of work packages that maintained but were modified - +- The number of work packages that maintained but were modified ### Change icons @@ -89,7 +87,7 @@ When Baseline is enabled, you will see a legend at the top of the page which sho ![Icon](13-0_Baseline_nowMeets.png) -Work packages that meet the filter criteria now but did not in the past are marked with an "Added" icon. These work packages were added to the current query after the selected comparison point, either because they were newly created since then or certain attributes changed such that they meet the filter criteria. +Work packages that meet the filter criteria now but did not in the past are marked with an "Added" icon. These work packages were added to the current query after the selected comparison point, either because they were newly created since then or certain attributes changed such that they meet the filter criteria. > **Note**: These do not necessarily represent _newly created_ work packages; simply those that are new to this particular view because they now meet the filter criteria. @@ -113,7 +111,7 @@ When there are no changes to a work package in the comparison period, no icon is ### Old values -When changes in the comparison period concern attributes that are visible as columns in the work package table, Baseline will show both old and current values. If the attribute you are interested in is not visible, you will need to [add it as a column](../work-package-table-configuration). +When changes in the comparison period concern attributes that are visible as columns in the work package table, Baseline will show both old and current values. If the attribute you are interested in is not visible, you will need to [add it as a column](../work-package-table-configuration). ![Old values are visible in the work package table view](13-0_Baseline_oldNewValues.png) diff --git a/docs/user-guide/work-packages/copy-move-delete/README.md b/docs/user-guide/work-packages/copy-move-delete/README.md index 6d233e9782a4..00c4ae5555fa 100644 --- a/docs/user-guide/work-packages/copy-move-delete/README.md +++ b/docs/user-guide/work-packages/copy-move-delete/README.md @@ -8,7 +8,7 @@ keywords: copy work package, delete work package, move work package # Copy, change project or delete a work package -If you right-click in a work package table, editing options will be displayed. Here, you can change project, copy the work package, or copy its URL to the clipboard, delete it or move it to another project. +If you right-click in a work package table, editing options will be displayed. Here, you can change project, copy the work package, or copy its URL to the clipboard, delete it or move it to another project. ![change copy delete work package](openproject_user_guide_copy_move_delete_wptableview.png) @@ -20,13 +20,13 @@ Alternatively, open the work packages details view by double clicking the respec ![User guide copy change project delete](openproject_user_guide_copy_move_delete_detailed_view.png) -To copy, move or delete multiple work packages at once please refer to the documentation for [bulk edit](../edit-work-package/#bulk-edit-work-packages). +To copy, move or delete multiple work packages at once please refer to the documentation for [bulk edit](../edit-work-package/#bulk-edit-work-packages). ## Copy a work package When copying a work package, a work package form with the pre-set values of the original work package is shown. -Copying a work package allows to easily create and adjust new work packages based on existing one’s. +Copying a work package allows to easily create and adjust new work packages based on existing one’s. ## Copy link to clipboard diff --git a/docs/user-guide/work-packages/create-work-package/README.md b/docs/user-guide/work-packages/create-work-package/README.md index ffb68bbc72ab..3f3c9b4fb229 100644 --- a/docs/user-guide/work-packages/create-work-package/README.md +++ b/docs/user-guide/work-packages/create-work-package/README.md @@ -8,9 +8,9 @@ keywords: create work packages # Create Work packages -| Topic | Content | -| ------------------------------------------------------------ | ---------------------------------------------- | -| [Create Work packages](#create-work-packages) | How to create a new Work package in a project. | +| Topic | Content | +|------------------------------------------------------------------------|------------------------------------------------| +| [Create Work packages](#create-work-packages) | How to create a new Work package in a project. | | [Add attachments to a Work package](#add-attachments-to-work-packages) | How to add attachments to a Work package. | ## Create Work packages @@ -24,19 +24,17 @@ Work packages always belong to a project. Therefore, you first need to [select a Then, navigate to the Work package module in the project navigation. -![work-packages-module](1566302949658.png) - - +![work packages module](1566302949658.png) ### Create a Work package in the table view To create new Work packages directly in line in the table view, click on the **+ Create new Work package** link below the table. -![create-split-screen](create-split-screen.png) +![create split screen](create-split-screen.png) The new Work package appears in a green row. Type in the subject of the Work package, change attributes, such as Type or Status directly in the table and hit Enter to save the changes. -![create-work-package-list](1566303144875.png) +![create work package list](1566303144875.png) This way, you can quickly and easily create new Work packages in the table, just like Excel. @@ -44,24 +42,20 @@ This way, you can quickly and easily create new Work packages in the table, just In order to enter detailed information to the Work package from the start, you can create a Work package in the split screen view. In the Work package module, click the green **+ Create** button and select the type of Work package you want to create. -![select-work-package-type](1566303633018.png) +![Select work package type](1566303633018.png) The new Work package form will open in the split screen view. Enter all information, such as description, assignee, status, priority, due date and more. Click the green **Save** button. -![](1566303947314.png) - - +![create a work package in the split screen view](1566303947314.png) Starting with OpenProject 13.0 you can add emojis to all text editors, including the work package description. Type a colon and a letter, e.g. **:a** into the text editor and get a suggested list of emojis you can use. -![openproject_user_guide_wp_description_emojis](openproject_user_guide_wp_description_emojis.png) +![work package description emojis](openproject_user_guide_wp_description_emojis.png) To find out **how to create a child Work package** please click [here](../work-package-relations-hierarchies/#add-a-child-work-package). - - ## Add attachments to Work packages You can directly add images, e.g. via copy and paste to the **Work package description**. You can also use the toolbar above the Work package description and click the Insert image icon: @@ -72,7 +66,7 @@ Also, at the bottom of the Work package form you can add files via drag and drop ![add-file](1566305040178.png) -> Note: it is also possible for users that are not members of the project to add attachments to work packages if they have been granted the permission by an administrator. This can be useful for example for confirming bug reports. +> Note: it is also possible for users that are not members of the project to add attachments to work packages if they have been granted the permission by an administrator. This can be useful for example for confirming bug reports. Find out how to [edit existing Work packages](../edit-work-package). diff --git a/docs/user-guide/work-packages/edit-work-package/README.md b/docs/user-guide/work-packages/edit-work-package/README.md index 161f7dc0f258..fe012ecafd2e 100644 --- a/docs/user-guide/work-packages/edit-work-package/README.md +++ b/docs/user-guide/work-packages/edit-work-package/README.md @@ -19,9 +19,9 @@ keywords: edit work packages ## Update a work package -To edit a work package, double-click a work package row in [table view](../../work-packages/work-package-views/#table-view) or open the [split screen view](../../work-packages/work-package-views/#split-screen-view) to see the details. +To edit a work package, double-click a work package row in [table view](../../work-packages/work-package-views/#table-view) or open the [split screen view](../../work-packages/work-package-views/#split-screen-view) to see the details. -In the work package details, you can click in any field to update it, e.g. change the description, status, priority, assignee, or add a comment. +In the work package details, you can click in any field to update it, e.g. change the description, status, priority, assignee, or add a comment. To save changes in the description, click the **checkmark** icon. @@ -69,11 +69,11 @@ You can mention and notify team members via [@notification](../../notifications/ ![comment-work-packages](comment-work-packages.png) ### Emojis + Starting with OpenProject 13.0 you can add emojis to all text editors. Type a colon and a letter, e.g. **:a** into the text editor and get a suggested list of emojis you can use. ![openproject_user_guide_wp_comment_emojis](openproject_user_guide_wp_comment_emojis.png) - ## Attach files to work packages You can manually upload files to work packages directly under the tab **Files** in the work package detailed view. You can either attach files by dragging and dropping or by using the **+Attach files** option. @@ -102,7 +102,7 @@ It is also possible to add oneself as watcher (if you have sufficient permission ### How to remove watchers from a work package -To remove watchers, navigate to the work package [details view](../../work-packages/work-package-views/#full-screen-view) and select the tab Watchers. Click the cross icon next to a watcher to remove the watcher from a work package. +To remove watchers, navigate to the work package [details view](../../work-packages/work-package-views/#full-screen-view) and select the tab Watchers. Click the cross icon next to a watcher to remove the watcher from a work package. The user will no longer get notifications in OpenProject about changes to this work package according to their notification settings. However, if he/she is the author, assignee or accountable of the work package there still might be notifications. Read [here](../../../getting-started/my-account/#notifications-settings) for more information. ![remove-watchers](remove-watchers.png) @@ -132,15 +132,13 @@ Then you have the possibility to: ![bulk edit right mouse click](image-20200331133245192.png) - - At the bottom of the page you can decide whether email updates regarding these changes should be sent or not. It makes sense not to tick the box for large updates to prevent users from getting flooded by emails. ![bulk-edit_email-updates](image-20201119163714831.png) -## Update a work package in a work package table view +## Update a work package in a work package table view -In the work package table view, you can not only open a single work package but also trigger direct actions such as logging time and costs, copying, downloading or deleting said work package. To access the quick context menu, simply right-click any work package in a work package table view and select the preferred action. +In the work package table view, you can not only open a single work package but also trigger direct actions such as logging time and costs, copying, downloading or deleting said work package. To access the quick context menu, simply right-click any work package in a work package table view and select the preferred action. ![Quick context menu in OpenProject work package table](quick-context-menu.png) @@ -152,16 +150,16 @@ You have the following options: - **Log unit costs** - navigates you to the cost logging screen. Once you [log the costs](../../time-and-costs/cost-tracking/) and save the entry, you will return to the work package table view. - **Change project** - allows moving the selected work package to a different project. - **Copy** - opens a details view of a new work package on the right side of the screen. This new work package is an exact copy of the work package you selected, but you can adjust any details you would like to change and then save it. -- **Copy link to clipboard** - copies a short link to the selected work package to your clipboard. -- **Copy to other project** - allows copying the selected work package to a different project. +- **Copy link to clipboard** - copies a short link to the selected work package to your clipboard. +- **Copy to other project** - allows copying the selected work package to a different project. - **Delete** - deletes a work package. You will need to confirm the deletion. -- **Download PDF** - downloads the selected work package as a PDF file. +- **Download PDF** - downloads the selected work package as a PDF file. - **Download Atom** - downloads the selected work package as an Atom file. - **Indent hierarchy** - creates a child-parent relationship with the work package directly above. The work package you selected become the child work package. The work package directly above becomes the parent work package. - **Create new child** - opens a new work package on the right side of the screen. This new work package already has a child relationship to the work package you selected. If you have opened the quick context menu for a work package that has a parent work package, you will also see: -- **Outdent hierarchy** option, which will remove the child-parent relationship. +- **Outdent hierarchy** option, which will remove the child-parent relationship. > **Note**: if you open the [Gantt charts module](../../gantt-chart/), the quick context menu will have different options than in the work package table view. diff --git a/docs/user-guide/work-packages/exporting/README.md b/docs/user-guide/work-packages/exporting/README.md index 69f9e7c22cf0..0a0be067aec7 100644 --- a/docs/user-guide/work-packages/exporting/README.md +++ b/docs/user-guide/work-packages/exporting/README.md @@ -33,18 +33,21 @@ The exported file will display the columns that are activated for the work packa Some formats such as PDF will limit the number of columns available due to limitations of the PDF rendering engine to avoid overflowing the available space. ## Export format options + OpenProject has multiple options of exporting work packages, including PDF, XLS, CSV and Atom. See below what each format entails. ## PDF export OpenProject has multiple options of exporting work packages in PDF format. -### PDF Table +### PDF Table + PDF Table exports the work package table displaying work packages as single rows with the selected columns for the work package table. Work packages IDs are linked to the respective work packages. Clicking on a work package ID will lead you directly to the work package in OpenProject. ![OpenProject PDF Table export](openproject_pdf_table_export.png) ### PDF Report + With PDF Reports you can export detailed up to date work plans for your project in a clean and practical format. It includes a title page, a table of contents (listing all of the work packages), followed by the description of single work packages in a block form. Table of contents is clickable and is linked to the respective pages within the report, making navigation much easier. For each work package a table of attributes is included (attributes correspond to the columns in the work package table). Work package ID attribute is clickable and linked directly to the respective work package in OpenProject. ![OpenProject_pdf_report_export](openproject-pdf-export-work-plans.png) @@ -55,9 +58,10 @@ With PDF Reports you can export detailed up to date work plans for your project ![OpenProject_pdf_report_sum](openproject_wp_report_total_sum.png) ### PDF Report with images -PDF Report with images is the same as PDF Report, but also includes the images from the work package description. -> **Note**: Images attached or linked in the work package Files section or in the Activity comments are not included into the PDF Report with images. +PDF Report with images is the same as PDF Report, but also includes the images from the work package description. + +> **Note**: Images attached or linked in the work package Files section or in the Activity comments are not included into the PDF Report with images. ![OpenProject_work_package_export](openproject_pdf_report_images.png) @@ -68,16 +72,19 @@ PDF Report with images is the same as PDF Report, but also includes the images f OpenProject can export the table for Microsoft Excel with the following options: ### XLS + **XLS** is a plain sheet that matches the OpenProject work packages table with its columns and work packages as rows matching the selected filter(s). ![OpenProject_work_package_export_excel](openproject_export_excel.png) ### XLS with descriptions + **XLS with descriptions** is same as above, but with an additional column for work package descriptions, which cannot be selected in the table. ![OpenProject_work_package_export_excel_description](openproject_pdf_table_export_description.png) ### XLS with relations + **XLS with relations** same as **XLS**, but with additional columns to list each work package relation in a separate row with the relation target and its ID and relation type included in the export. ![OpenProject_work_package_export_excel_relations](openproject_pdf_table_export_relations.png) @@ -86,7 +93,7 @@ OpenProject can export the table for Microsoft Excel with the following options: The OpenProject XLS export currently does not respect all options in the work package view being exported form: -- The order of work packages in a manually sorted query is not respected. This is known limitation (Ticket https://community.openproject.org/projects/openproject/work_packages/34971/activity) +- The order of work packages in a manually sorted query is not respected. This is known limitation ([Ticket](https://community.openproject.org/projects/openproject/work_packages/34971/activity)). - The hierarchy of work packages as displayed in the work package view. The exported XLS is always in "flat" mode. ## CSV export @@ -95,17 +102,15 @@ OpenProject can export the table into a comma-separated CSV. This file will be U > **Note**: To open CSV exported files into Microsoft Excel, ensure you set the encoding to UTF-8. Excel will not auto-detect the encoding or ask you to specify it, but simply open with a wrong encoding under Microsoft Windows. - ![OpenProject_work_package_export_csv](openproject_export_csv.png) ### Limitations The OpenProject CSV export currently does not respect all options in the work package view being exported form: -- The order of work packages in a manually sorted query is not respected. This is known limitation (Ticket https://community.openproject.org/projects/openproject/work_packages/34971/activity) +- The order of work packages in a manually sorted query is not respected. This is known limitation ([Ticket](https://community.openproject.org/projects/openproject/work_packages/34971/activity)). - The hierarchy of work packages as displayed in the work package view. The exported CSV is always in "flat" mode. - ## Atom (XML) export OpenProject can export the table into a XML-based atom format. This file will be UTF-8 encoded. @@ -121,4 +126,3 @@ It is also possible to export single work packages in PDF and Atom format. To do An exported PDF file will include all the work package fields that are [configured in the work package form](../../../system-admin-guide/manage-work-packages/work-package-types/#work-package-form-configuration-enterprise-add-on), regardless whether they are filled out or not. Atom Export includes a work package Title, Author, a link to the work package and work package activities. - diff --git a/docs/user-guide/work-packages/set-change-dates/README.md b/docs/user-guide/work-packages/set-change-dates/README.md index e9dd1a114451..f138f74395f0 100644 --- a/docs/user-guide/work-packages/set-change-dates/README.md +++ b/docs/user-guide/work-packages/set-change-dates/README.md @@ -17,7 +17,7 @@ keywords: date picker start finish dates duration change modify update relations ## Set start and finish dates -You can change the start and finish dates of a work package by opening the date picker. +You can change the start and finish dates of a work package by opening the date picker. ![The standard date picker with different elements highlighted](standard-date-picker-legend.png) @@ -29,16 +29,15 @@ You can change the start and finish dates of a work package by opening the date You can open the date picker for a work package from a number of different places: -- By clicking on the date field in the work package [details view](../work-package-views/#full-screen-view) +- By clicking on the date field in the work package [details view](../work-package-views/#full-screen-view) - By clicking the the date field in the work package [split screen view](../work-package-views/#split-screen-view) (from any other view, including [notification center](../../notifications), [team planner](../../team-planner/), [boards](../../agile-boards)...) - By clicking the start date, finish date or duration fields in [table view](../work-package-views/#table-view) - ### Using the date picker You can enter dates either by typing them in into the start and finish date fields or by clicking on individual dates in the mini calendar below. -> **Note**: Typed dates need to be in the standard ISO 8601 format: **YYYY-MM-DD** (so 12 October 2022 would be 2022-10-12). +> **Note**: Typed dates need to be in the standard ISO 8601 format: **YYYY-MM-DD** (so 12 October 2022 would be 2022-10-12). > > They will nevertheless be displayed in your desired format (usually depending by your region or language). @@ -60,13 +59,12 @@ Date changes are documented in the work package [Activity](../../activity/). ### Advanced functionality -- The date picker allows you to pick start and finish dates in the opposite order. Clicking on a start date and then moving backwards to click on an earlier date will then use that first date as the finish date and the second (earlier) date as the start date. +- The date picker allows you to pick start and finish dates in the opposite order. Clicking on a start date and then moving backwards to click on an earlier date will then use that first date as the finish date and the second (earlier) date as the start date. - For a work package that already has a start and finish date, it is possible to adjust just the finish date: click on the finish date field and then click on a new date. As long as this date is after the start date, the finish date will update accordingly. If the date you pick is earlier than the start date, the original start date will then be cleared and a click on a second date will define the other end of the new range. - It is possible to set only one of the two dates. To do this, click on the field you would like to set (start date is selected by default, but you can change this manually to finish date) and click on a date. Then save without selecting a second date. Alternatively, if a a range is already selected, simply remove one of the dates and save. - **Note**: The precedes-follows relation can constrain or affect the dates of work packages. For more information, see [Moving related work packages](../work-package-relations-hierarchies/#moving-related-work-packages). ### One-day events @@ -75,17 +73,15 @@ If you want the work package to start and finish on the same date, simply click ![Date picker with the same start and finish dates](one-day-event.png) -Work packages with *only* a start date or only a finish date are automatically considered one-day events. +Work packages with *only* a start date or only a finish date are automatically considered one-day events. Certain work package types (such as Milestones) can only span one day and thus have only one date field: ![Milestones have datepickers with a single date field](milestone-datepicker.png) - - ## Working days and duration -Starting with OpenProject 12.3, it is possible to manually input a duration for a work package and decide whether this duration should include working days only or all calendar days. +Starting with OpenProject 12.3, it is possible to manually input a duration for a work package and decide whether this duration should include working days only or all calendar days. > **Note:** Working dates are currently defined by the administrator of your OpenProject instance. By default, they are Monday to Friday, with Saturday and Sunday considered non-working. If you are an administrator, please read our [admin guide on working days](../../../system-admin-guide/calendars-and-dates/#working-days) > @@ -126,28 +122,27 @@ For example, if you set the start date to *Wednesday, 12 October* and enter a du #### Duration without start and finish dates -It is possible for a work package to have only duration without any start or finish dates set. +It is possible for a work package to have only duration without any start or finish dates set. -> **Note:** If you add even one date to a work package with duration, the other date is automatically derived; it is not possible to have just one date (start *or* finish) and duration set. Please note also that if a work package with only duration derives its start date via a relation, the finish date is then also derived. +> **Note:** If you add even one date to a work package with duration, the other date is automatically derived; it is not possible to have just one date (start *or* finish) and duration set. Please note also that if a work package with only duration derives its start date via a relation, the finish date is then also derived. Setting only duration without start or finish dates is especially useful when you have a general estimation of how long different tasks or phases of a project will take, but do not have exact dates defined quite yet. -> **Pro tip:** This feature makes it possible to automatically derive an estimated start or finish date for entire project. +> **Pro tip:** This feature makes it possible to automatically derive an estimated start or finish date for entire project. > > To do so, create a series of work packages that represent the main phases and set the approximate duration for each. Link them all using follow/precedes relationships. Now, when you set a start date on the first work package in the series, the start and end dates for all other work packages will be derived. - ## Scheduling mode ### Manual scheduling ![A switch on the date picker allows you to enable manual scheduling ](manual-scheduling-switch.png) -Switching "Manual scheduling" on enables [manual scheduling mode](../../gantt-chart/scheduling/#manual-scheduling-mode) for the work package. This ignores work package relations such that you're able to select any start and end dates, even ones that would normally be restricted due to follows/proceeds relationships. +Switching "Manual scheduling" on enables [manual scheduling mode](../../gantt-chart/scheduling/#manual-scheduling-mode) for the work package. This ignores work package relations such that you're able to select any start and end dates, even ones that would normally be restricted due to follows/proceeds relationships. -Manual scheduling also decouples the start and end dates of parent and children work packages. This means that the dates of parents are no longer constrained by those of the children, and children can be scheduled outside of the range of parent work packages. These relationships are completely ignored as far as scheduling is concerned, but are not removed (so they will still be visible in [Gantt view]()); the constraints are respected again if you switch manual scheduling off. +Manual scheduling also decouples the start and end dates of parent and children work packages. This means that the dates of parents are no longer constrained by those of the children, and children can be scheduled outside of the range of parent work packages. These relationships are completely ignored as far as scheduling is concerned, but are not removed (so they will still be visible in Gantt view; the constraints are respected again if you switch manual scheduling off. -Manual scheduling can be useful when you need to anchor a work package to fixed dates, for example because the dates of preceding or following work packages are not yet known. +Manual scheduling can be useful when you need to anchor a work package to fixed dates, for example because the dates of preceding or following work packages are not yet known. ## Information and warning banners @@ -157,15 +152,15 @@ Information banners have a blue background and display information that is helpf There are four possible banners: -#### Automatically scheduled +### Automatically scheduled ![A blue banner informing the user that the worked package is automatically scheduled](banner-automatically-scheduled.png) -This information banner is displayed when the dates of the current work package are derived from existing relations and can therefore not be modified. This is the case of parent work packages whose start and finish dates are derived from the earliest and latest child work packages respectively. +This information banner is displayed when the dates of the current work package are derived from existing relations and can therefore not be modified. This is the case of parent work packages whose start and finish dates are derived from the earliest and latest child work packages respectively. It is nevertheless possible to input specific start and finish dates for such work packages by enabling manual scheduling (which will ignore relations from which the dates were originally derived). -### Available start date and finish dates limited by relations. +### Available start date and finish dates limited by relations ![A blue banner informing the user that certain dates are limited by relations](banner-dates-limited.png) @@ -191,6 +186,6 @@ This warning banner is displayed on work packages whose start and end dates affe ![The Show Relations button in an information or warning banner](banner-show-relations-button.png) -The information and warning banners also feature a **Show Relations** button. Clicking on this will open a new tab that displays work packages with direct relations to the current work package in [Gantt view](../../gantt-chart), in hierarchy mode. +The information and warning banners also feature a **Show Relations** button. Clicking on this will open a new tab that displays work packages with direct relations to the current work package in [Gantt view](../../gantt-chart), in hierarchy mode. > **Info**: This preview is intended to give a quick overview of only _direct_ relations that might affect scheduling options for the current work package. It does not show second-level relations (and above). To get a full overview, please use the project work package [table view](../work-package-views/#table-view) or [Gantt view](../../gantt-chart) with your desired [filter/view configuration](../work-package-table-configuration/). diff --git a/docs/user-guide/work-packages/share-work-packages/README.md b/docs/user-guide/work-packages/share-work-packages/README.md index e8508354cc22..df6c56847340 100644 --- a/docs/user-guide/work-packages/share-work-packages/README.md +++ b/docs/user-guide/work-packages/share-work-packages/README.md @@ -18,13 +18,13 @@ To share a work package with a project non-member select the detailed view of a ![Share button in OpenProject work packages](openproject_user_guide_share_button_wp.png) -A dialogue window will open, showing the list of all users, who this work package has already been shared with. If the work package has not yet been shared, the list will be empty. +A dialogue window will open, showing the list of all users, who this work package has already been shared with. If the work package has not yet been shared, the list will be empty. > **Note**: In order to be able to share a work package with non members you need to have been assigned a [global role *create users*](../../../system-admin-guide/users-permissions/users/#create-users). If you do not see the option to share a work package, please contact your administrator. ![List of users with access to a work package in OpenProject](openproject_user_guide_shared_with_list.png) -If the list contains multiple users you can filter it by Type or Role. +If the list contains multiple users you can filter it by Type or Role. Following user types are available as filters: @@ -48,21 +48,21 @@ Following user roles are available as filters: > **Note:** Please keep in mind that users listed after you have applied a filter may have additional permissions. For example if you select the **View** filter, it is possible that a user is listed, which has inherited additional role as part of user group with permissions exceeding the viewing ones. -You can search for a user or a group via a user name, group name or an email address. You can either select an existing user from the dropdown menu or enter an email address for an entirely new user, who will receive an invitation to create an account on your instance. +You can search for a user or a group via a user name, group name or an email address. You can either select an existing user from the dropdown menu or enter an email address for an entirely new user, who will receive an invitation to create an account on your instance. It is possible to add multiple users or groups at the same time. ![search for a new user to share a work package](openproject_user_guide_shared_search.png) -A user with whom you shared the work package will be added with the role **Work Package Viewer**. However this user is **not** automatically a member of the whole project. A project member will typically have more permissions within the project than viewing a work package. +A user with whom you shared the work package will be added with the role **Work Package Viewer**. However this user is **not** automatically a member of the whole project. A project member will typically have more permissions within the project than viewing a work package. Users with whom you shared the work package will also receive an email notification alerting them that the work package has been shared. -You can always adjust the viewing rights of a user by selecting an option from the dropdown menu next to the user name. +You can always adjust the viewing rights of a user by selecting an option from the dropdown menu next to the user name. ![Shared work package roles](openproject_user_guide_shared_with_list_change_role.png) -> **Note:** granting the **edit** rights to the user will allow you to set this user a work package **Assignee** or **Accountable**. +> **Note:** granting the **edit** rights to the user will allow you to set this user a work package **Assignee** or **Accountable**. Once a work package has been shared, you will see the number of shared users in the **Share** button. @@ -70,21 +70,21 @@ Once a work package has been shared, you will see the number of shared users in ## Remove sharing privileges -You can also remove the user from the list by clicking on **Remove** next to the user name. Please note that this will not remove a user entirely, but only revoke the rights for this work package. User account will remain intact. +You can also remove the user from the list by clicking on **Remove** next to the user name. Please note that this will not remove a user entirely, but only revoke the rights for this work package. User account will remain intact. If you need to revoke all sharing rights from a specific user, please do that under [project members](../../members) or contact your project administrator. -If you need to [delete a user](../../../system-admin-guide/users-permissions/users/#delete-users), please do that in system administration or contact your administrator. +If you need to [delete a user](../../../system-admin-guide/users-permissions/users/#delete-users), please do that in system administration or contact your administrator. ## Shared work packages overview -For an overview of all work packages that have been shared with other users or groups, navigate to the [global modules](../../home/global-modules/), select the module **Work Packages** and choose the filter **Shared with users** from the list of default work package filters on the left side. +For an overview of all work packages that have been shared with other users or groups, navigate to the [global modules](../../home/global-modules/), select the module **Work Packages** and choose the filter **Shared with users** from the list of default work package filters on the left side. The default view will include the **Shared with** column, which lists all users and/or groups that a particular work package was shared with. If there are more than two shared users and/or groups, two of them will be listed and the overall number will be indicated in the badge. Clicking on that number will show the details. If you want to see all shared work packages within a specific project, navigate to that project first and then select the same filter. You can also [adjust this filter](../work-package-table-configuration/#filter-work-packages) and save it under your private work package filters. -You (with the correct permissions) can always change or remove sharing options. +You (with the correct permissions) can always change or remove sharing options. ![Filter for work packages shared with other users in OpenProject](openproject_user_guide_shared_with_users_filter_new.png) diff --git a/docs/user-guide/work-packages/work-package-relations-hierarchies/README.md b/docs/user-guide/work-packages/work-package-relations-hierarchies/README.md index f2e707a096e6..9df54f1e6f54 100644 --- a/docs/user-guide/work-packages/work-package-relations-hierarchies/README.md +++ b/docs/user-guide/work-packages/work-package-relations-hierarchies/README.md @@ -34,11 +34,11 @@ Work package relations indicate that work packages address a similar topic or cr You can select one of the following relations: -- **Related to** - This option adds a link from the work package A to work package B, so that project members can immediately see the connection, even if the work packages are not members of the same hierarchy. +- **Related to** - This option adds a link from the work package A to work package B, so that project members can immediately see the connection, even if the work packages are not members of the same hierarchy. -- **Duplicates / Duplicated by** - This option indicates that the work package B duplicates a work package A in one way or another, for example both address the same task. This can be useful if you have the same work package that needs to be a part of a closed and public projects at the same time. The connection in this case is only semantic, the changes you make in work package A will need to be adapted in work package B manually. +- **Duplicates / Duplicated by** - This option indicates that the work package B duplicates a work package A in one way or another, for example both address the same task. This can be useful if you have the same work package that needs to be a part of a closed and public projects at the same time. The connection in this case is only semantic, the changes you make in work package A will need to be adapted in work package B manually. - **Note**: some changes in statuses will de adjusted automatically for the duplicated work package. Specifically, if the status of a work package A is set to be "closed" (or set to any status that is defined to count as "closed" in the [system settings](../../../system-admin-guide/manage-work-packages/work-package-status/), for example "rejected" often counts as a "closed" status), the status of the work package B will change to "closed". Note that this is direction dependent. Only if the work package A is closed will the work package B be closed as well, not the other way around. + **Note**: some changes in statuses will de adjusted automatically for the duplicated work package. Specifically, if the status of a work package A is set to be "closed" (or set to any status that is defined to count as "closed" in the [system settings](../../../system-admin-guide/manage-work-packages/work-package-status/), for example "rejected" often counts as a "closed" status), the status of the work package B will change to "closed". Note that this is direction dependent. Only if the work package A is closed will the work package B be closed as well, not the other way around. - **Blocks / Blocked by** - This option defines status change restrictions between two work packages. If you set a work package A to be blocking work package B, the status of work package B cannot be set to closed or resolved until the work package A is closed. @@ -52,7 +52,8 @@ You can select one of the following relations: The selected relation status will be automatically displayed in the work package that you enter. For example if you select "Blocks" in the current work package A and specify work package B, work package B will automatically show that it is "Blocked by" A. ### Moving related work packages -The precedes/follows relation is the only one that can constrain or affect the dates of work packages. + +The precedes/follows relation is the only one that can constrain or affect the dates of work packages. Work packages in a precedes/follows relationship do not need to immediately follow one other; there can be a gap. In this case, you can move either forwards or backwards in time without affecting the other as long as the finish date of the predecessor is before the start date of follower. diff --git a/docs/user-guide/work-packages/work-package-table-configuration/README.md b/docs/user-guide/work-packages/work-package-table-configuration/README.md index 4bb57a8fd3dc..2837701b77a1 100644 --- a/docs/user-guide/work-packages/work-package-table-configuration/README.md +++ b/docs/user-guide/work-packages/work-package-table-configuration/README.md @@ -21,15 +21,12 @@ You can configure the work package table view in OpenProject to display the info You can change the header in the table and add or remove columns, filter and group work packages or sort them according to specific criteria. Also, you can change between a flat list view, a hierarchy view and a grouped view. -Save the view to have it available directly from your project menu. A work package view is the sum of all modifications you made to the default table (e.g. filters you set). - - +Save the view to have it available directly from your project menu. A work package view is the sum of all modifications you made to the default table (e.g. filters you set). To open the work package table configuration, open the **Settings** icon with the three dots at the top right of the work package table. ![configure-work-package-table](configure-work-package-table.png) - ## Add or remove columns in the work package table To configure the view of the work package table and have different attributes displayed in the table you can add or remove columns in the work package table. @@ -62,7 +59,7 @@ To add a filter criterion, choose one from the drop-down list next to **+ Add fi ![add-filter](add-filter.png) -You can add as many filter criteria as needed. +You can add as many filter criteria as needed. Also, you can filter by [custom fields](../../../system-admin-guide/custom-fields) if you set this in the custom field configuration. > **Good to know**: Filtering a work package table will temporarily change the default work package type and default status to the values used in the filters to make newly created work packages visible in the table. @@ -82,8 +79,8 @@ Multi-select attributes also have one extra options: Other attributes like Status might offer additional criteria like _open_ or _closed_. Required attributes might only offer two options, _is (OR)_ and _is not_, since they cannot be empty. - ### Filter by text + If you want to search for specific text in the subject, description or comments of a work package, type in the **Filter by text** the expression you want to filter for. The results will be displayed accordingly in the work package table. @@ -92,7 +89,7 @@ The results will be displayed accordingly in the work package table. ### Filter for a work package's children -If you want to only show work package with specific parents (e.g. all work packages belonging to a specific phase of your project) you can use the filter "Parent". Enter all required work packages and press Enter. This will show the selected work package(s) and its/their children. +If you want to only show work package with specific parents (e.g. all work packages belonging to a specific phase of your project) you can use the filter "Parent". Enter all required work packages and press Enter. This will show the selected work package(s) and its/their children. If you only select work packages without children, no work packages will be shown at all. ![filter-for-parent-work-package](filter-for-parent-work-package.png) @@ -108,7 +105,7 @@ To view all work packages across all projects you could select everything, or us ### Filter by ID or work package name -If you want to [create a work package view](#save-work-package-views) with only specific work packages you can use the filter "ID". By entering the ID or subject of work packages you can select them. +If you want to [create a work package view](#save-work-package-views) with only specific work packages you can use the filter "ID". By entering the ID or subject of work packages you can select them. Another use case would be to *exclude* specific work packages (e.g. you want to display all milestones but one). Therefore, use the "is not" option next to the filter's name on the left. ![filtering-by-work-package-id](filtering-by-work-package-id.png) @@ -118,7 +115,7 @@ Another use case would be to *exclude* specific work packages (e.g. you want to There are several options to filter for the assignee of a work package. You can choose one of these filters: - Assignee: Filters for work packages where the specified user or group is set as Assignee -- Assignee or belonging group: +- Assignee or belonging group: - When filtering for a single user: Work packages assigned to this user, and any group it belongs to - When filtering for a group: Work packages assigned to this group, and any users within - Assignee's group: Filters for work packages assigned to a user from this group @@ -134,11 +131,7 @@ Use the filter "Attachment content" or "Attachment file name" to filter attached ![advanced-filter-work-package-table](advanced-filter-work-package-table.png) - - -For both the file name and the content, you can then differentiate the filtering with the "contains" and "does not contain" options for selected keywords and text passages. To do this, please enter the corresponding text in the field next to it. - - +For both the file name and the content, you can then differentiate the filtering with the "contains" and "does not contain" options for selected keywords and text passages. To do this, please enter the corresponding text in the field next to it. ![advanced-filter-options](advanced-filter-options.png) @@ -149,10 +142,11 @@ It will then display the corresponding work package with the attachment. ## Sort the work package table ### Automatic sorting of the work package table -By default, the work package table will be sorted by work package ID. + +By default, the work package table will be sorted by work package ID.
-The **ID** is unique for a work package within OpenProject. It will be set automatically from the system. With the ID you can reference a specific work package in OpenProject. +The **ID** is unique for a work package within OpenProject. It will be set automatically from the system. With the ID you can reference a specific work package in OpenProject.
To sort the work package table view, open the [work package table configuration](#work-package-table-configuration) and select the tab **Sort by**. You can sort by up to three attributes, either ascending or descending. @@ -162,9 +156,7 @@ Clicking the blue **Apply** button will save your changes and display the result ![sort-work-packages](sort-work-packages.png) -> **Please note**: If you have the hierarchy mode activated, all filtered table results will be augmented with their ancestors. Hierarchies can be expanded and collapsed. - - +> **Please note**: If you have the hierarchy mode activated, all filtered table results will be augmented with their ancestors. Hierarchies can be expanded and collapsed. Therefore, the results may differ if you sort in a flat list or in a hierarchy mode. @@ -174,14 +166,13 @@ The same filter applied in the hierarchy mode. ### Manual sorting of the work package table -You can sort the work package table manually, using the icon with the 6 dots on the left of each work package to drag and drop it. +You can sort the work package table manually, using the icon with the 6 dots on the left of each work package to drag and drop it. Moving a work package will change its attributes, depending on the kind of table displayed, e.g. hierarchy changes or priority. -To keep the sorting it is necessary to [save the work package view](#save-work-package-views). +To keep the sorting it is necessary to [save the work package view](#save-work-package-views). Please note: This has no effect on the "All open" view; you have to save your sorting with another name. - ## Flat list, Hierarchy mode and Group by You have three different options to display results in the work package table. @@ -196,8 +187,6 @@ To switch between the different criteria, open the [work package table configura ![display-settings](image-20210426164224748.png) - - When you group the work package table by an attribute or by project a **button to collapse groups** shows up: ![collapse-button](collapse-all-expand-all.png) @@ -205,7 +194,7 @@ Use it to quickly collapse or expand all groups at the same time. Find out [here ### Display sums in work package table -To display the sums of eligible work package attributes, go to the work package table configuration and click on the tab **Display settings** (see screenshot above). When you tick the box next to **Display sums** the sums of **Work** (earlier called Estimated time) and **Remaining work** (earlier called Remaining hours) as well as custom fields of the type Integer or Float will be displayed at the bottom of the work package table. +To display the sums of eligible work package attributes, go to the work package table configuration and click on the tab **Display settings** (see screenshot above). When you tick the box next to **Display sums** the sums of **Work** (earlier called Estimated time) and **Remaining work** (earlier called Remaining hours) as well as custom fields of the type Integer or Float will be displayed at the bottom of the work package table. If you group the work package table, sums will be shown for each group. ## Attribute highlighting (Enterprise add-on) @@ -266,6 +255,6 @@ If you make changes to a saved view, e.g. change a filter criteria, you have to ![Work-package-change-saved-views](Work-package-change-saved-views.png) -If you want to save a completely new work package view, again click on the settings and select **Save as...** as described [above](#save-work-package-views). +If you want to save a completely new work package view, again click on the settings and select **Save as...** as described [above](#save-work-package-views). > **Please note**: You can't change the default "All open" view. Therefore pressing the disc icon won't have any effect on the default view that is displayed when navigating to the work packages module. You always have to create a new view (filter, group, etc.), set a name and save it (private or public). diff --git a/docs/user-guide/work-packages/work-package-views/README.md b/docs/user-guide/work-packages/work-package-views/README.md index cf10a0062009..30b6dab6d6e6 100644 --- a/docs/user-guide/work-packages/work-package-views/README.md +++ b/docs/user-guide/work-packages/work-package-views/README.md @@ -33,7 +33,6 @@ The containing work packages in any view can be displayed a number of different * [Gantt view](../../gantt-chart) * [Board view](../../../getting-started/boards-introduction/) - ### Table view The table view shows all work packages in a table with selected attributes in the columns. @@ -62,9 +61,8 @@ Also, you can use the full screen icon in the work package split screen view in ![full-screen-icon](openproject-user-guide-work-packages-full-screen-icon.png) -Then, the work package with all its details will be displayed. +Then, the work package with all its details will be displayed. -The arrow next to the subject will bring you back to the table view. +The arrow next to the subject will bring you back to the table view. ![back-to-list-view](openproject-user-guide-work-package-full-screen-back-arrow.png) - diff --git a/docs/user-guide/work-packages/work-packages-faq/README.md b/docs/user-guide/work-packages/work-packages-faq/README.md index fa3a7715a8db..6496608bb4bb 100644 --- a/docs/user-guide/work-packages/work-packages-faq/README.md +++ b/docs/user-guide/work-packages/work-packages-faq/README.md @@ -45,26 +45,26 @@ You can set the assignee filter in the work package table to "Assignee and belon ### How can I track the progress of my work package? -You can track the progress either manually by changing the progress -bar in the work package details yourself. Or you can track it -automatically by assigning the progress in % to each status of -a work package. Please find the guide on how to do the automatic -tracking (in bullet point 5) +You can track the progress either manually by changing the progress +bar in the work package details yourself. Or you can track it +automatically by assigning the progress in % to each status of +a work package. Please find the guide on how to do the automatic +tracking (in bullet point 5) [here](../../../system-admin-guide/manage-work-packages/work-package-settings). ### How can I track the progress of work packages with children? -OpenProject automatically calculates the progress of work packages with children. +OpenProject automatically calculates the progress of work packages with children. It sums up the progress of the children weighted by the **Work** (earlier called Estimated time) of each child. OpenProject uses 1 hour as the default value if **Work** field -is empty. When adding the progress bar to a work package hierarchy view, -please always add the **Work** column as well so that you can track +is empty. When adding the progress bar to a work package hierarchy view, +please always add the **Work** column as well so that you can track the calculation. **Work** (Estimated time) manually added to work packages with children is ignored. ### Can I set multiple parents for one work package? -No, this is not possible. +No, this is not possible. ### Why can I not log time in a work package? @@ -78,7 +78,7 @@ One possible solution: If you receive this error message when trying to create a You can change this in your account settings. Please find out more [here](../../../getting-started/my-account/#change-the-order-to-display-comments). -### Why are changes on parent work packages which are triggered by making changes to a child work package not aggregated? +### Why are changes on parent work packages which are triggered by making changes to a child work package not aggregated? OpenProject aggregates work package activities only if: @@ -95,13 +95,13 @@ If you create e.g. a Feature and assign it to a sprint, the position of the feat ### Can I restore a deleted work package? -There is no easy way to restore a deleted work package. Generally, you have the option to create and restore your own backups. +There is no easy way to restore a deleted work package. Generally, you have the option to create and restore your own backups. ## Filters and queries ### How can I keep changed columns or filters for the work package tables? -Click on the three dots in the upper right corner and choose **Save** or **Save as**. The view's name will appear in the menu bar on the left. +Click on the three dots in the upper right corner and choose **Save** or **Save as**. The view's name will appear in the menu bar on the left. Please note: You can't change the default view "All open", clicking Save will have no effect. ### How can I set certain filters and columns in the work package tables for my colleagues? @@ -120,16 +120,14 @@ It is most likely that you did not save the view of your work package table afte ### In the global work package tables, not all custom fields are available for filters. Why? -In the [global work package tables](../../projects/project-lists/#global-work-package-tables), only the custom fields that apply to all projects are displayed in the filter area (setting "for all projects" in the administration). +In the [global work package tables](../../projects/project-lists/#global-work-package-tables), only the custom fields that apply to all projects are displayed in the filter area (setting "for all projects" in the administration). There are two reasons for this: 1. Potentially, a lot of values are displayed in the global filter list - especially if a lot of custom fields are used in individual projects. This can impair usability and (in extreme cases) performance. 2. As the values in the filter area are displayed for all users, sensitive information (name of the custom fields and their values) could in principle be visible to users who do not have access to the respective project where the custom field is activated. ### I have a parent work package with multiple children. In the work package table I don't see all of the children below the parent. Why? How can I change this? -Please increase the number of displayed work packages per page [in the administration](../../../system-admin-guide/system-settings/general-settings/#general-system-settings). Then the probability of this phenomenon happening is lower. +Please increase the number of displayed work packages per page [in the administration](../../../system-admin-guide/system-settings/general-settings/#general-system-settings). Then the probability of this phenomenon happening is lower. This is a known behavior of OpenProject, but not trivial to solve. There's already a feature request for this [here](https://community.openproject.org/wp/34925). - - ## Status and type ### When I create a new work package it's always a "Task". How can I change the default work package type? @@ -159,11 +157,9 @@ The status which can be selected by users (based on the workflow) is always dete To work with different status, first create those status in *Administration ->Work packages ->Status*. Next, go to *Administration ->Work packages ->Workflow* and select the combination of Type and Role for which you would like to set the allowed workflow transition. You can e.g. create a role “Marketing – Member” and select it as well as the type (e.g. “Task”). Make sure to uncheck the option “Only display statuses that are used by this type” and click on **Edit**. Now, you can select the correct status transitions. -Repeat this step for the other (department) roles (e.g. “IT – Member”) and select the desired status transitions. This way, you can set different status for each department (only the default status is shared (i.e. “New” by default)). +Repeat this step for the other (department) roles (e.g. “IT – Member”) and select the desired status transitions. This way, you can set different status for each department (only the default status is shared (i.e. “New” by default)). Please keep in mind that it may not be possible for a member of a different department to update the status of a work package if it has been updated before by another department (since the workflow may not support this status transition). - - ## Move and copy ### Which permissions are necessary to move a work package from one project to another? @@ -178,7 +174,7 @@ To move a work package from one project to another, the following requirements m ### How can I copy work package hierarchies with their relations? You can create work package templates with hierarchies (parent and child work packages) and copy these templates, including the relations. -First, navigate to the work package table. Highlight all work packages (in the hierarchy) which you want to copy. +First, navigate to the work package table. Highlight all work packages (in the hierarchy) which you want to copy. To highlight and edit several work packages at once, keep the Ctrl key pressed and select the ones to be copied. **Right-click** on the highlighted work packages. This will open a context menu. @@ -207,7 +203,7 @@ You can create a custom field for this that you add to the work package form. Pl ### Will work package custom fields of the type "long text" be shown in the export of a work package tables? -As custom fields of the type "long text" cannot be added as a column, they cannot be exported via the page-wide export. However, individual work packages can be exported. This can be done either via the "PDF Download" or (better) via the browser print function. +As custom fields of the type "long text" cannot be added as a column, they cannot be exported via the page-wide export. However, individual work packages can be exported. This can be done either via the "PDF Download" or (better) via the browser print function. ### Can I sum up custom fields? @@ -216,8 +212,10 @@ Yes, you can display the sum of custom fields in the work package tables by chec Calculating a sum across different attributes (e.g. Estimated time + added hours) is however not possible. ## Sharing work packages + ### Is it possible to share a work packages with a user outside my project? -Yes, starting with OpenProject 13.1 you can [share a work package](../share-work-packages) with users outside your project or even with user who do not yet have an account on your instance. + +Yes, starting with OpenProject 13.1 you can [share a work package](../share-work-packages) with users outside your project or even with user who do not yet have an account on your instance. ## Export @@ -240,20 +238,18 @@ This provides an overview of "worker_backed_up" which shows the number of backgr For a documentation of how to do this, please refer to [these instructions](../../../installation-and-operations/operation/control) (see section "Scaling the number of web workers"). - - ## Versions and backlog -### I cannot change the version of a parent work package or child work package. +### I cannot change the version of a parent work package or child work package -The fastest way to resolve this issue is to deactivate the backlogs module in the project where your tasks are located. This should instantly resolve the issue that you cannot update the tasks anymore. -If you are actively working with the backlogs module in the project, you could then e.g. move the parent Epic from the parent project to the project where the tasks are located. -Alternatively, you could change the type "Task" to a different type (e.g. "User Story"). This should also resolve the issue. -For context: On the backlogs page you can switch to the "Task board". +The fastest way to resolve this issue is to deactivate the backlogs module in the project where your tasks are located. This should instantly resolve the issue that you cannot update the tasks anymore. +If you are actively working with the backlogs module in the project, you could then e.g. move the parent Epic from the parent project to the project where the tasks are located. +Alternatively, you could change the type "Task" to a different type (e.g. "User Story"). This should also resolve the issue. +For context: On the backlogs page you can switch to the "Task board". The task board shows the work packages assigned to a sprint (e.g. Epic, User Story) as well as the associated tasks. The task board however can only display tasks located in the same project as the (parent) work package (Epic, User story). Therefore, to avoid showing limited data, tasks and their parent work packages must be located in the same project and have to be assigned to the same version. ### What does the error message "Parent is invalid because the work package (...) is a backlog task and therefore cannot have a parent outside of the current project" mean? -This message appears when the Backlogs module is activated and you try to set a work package belonging to project A as a child of another work package belonging to project B. +This message appears when the Backlogs module is activated and you try to set a work package belonging to project A as a child of another work package belonging to project B. In the Backlogs module work packages can only have children of the same version and the same project. To avoid displaying different information in the backlog and in the boards view this restriction is in place. You can solve it by disabling the Backlogs module or by changing the project (and if necessary version) of the work package you'd like to move. diff --git a/docs/user-guide/wysiwyg/README.md b/docs/user-guide/wysiwyg/README.md index 61ce3afd6345..971a84c7b5f7 100644 --- a/docs/user-guide/wysiwyg/README.md +++ b/docs/user-guide/wysiwyg/README.md @@ -12,9 +12,6 @@ Starting with version 8.0.0, OpenProject features a quasi-WYSIWYG editor, powere > **Please note:** In some resources such as work packages or comments, the editor does not exhibit all functionality such as macros or image upload. > In the work package split screen view (details view) you may have to use the three vertical dots to access additional features of the editor. - - - | Topic | Content | | ------------------------------------------------------------ | -------------------------------------------------------- | | [Basic formatting](#basic-formatting) | Basic formatting elements in the WYSIWYG editor | @@ -43,7 +40,6 @@ CKEditor uses widgets to display block elements such as images, tables, and othe When you have a widget selected, you can remove or cut it. You can create a newline below it by selecting the widget and pressing `ENTER` or `↓ (ARROW DOWN)`, or a newline above it by pressing `SHIFT+enter` or `↑ (ARROW UP)`. This is especially needed when the widget is the first or last element on the page to insert a line below or above it. - ### Code Blocks As CKEditor5 currently does not provide support for code blocks, OpenProject can display, but not edit code blocks within the CKEditor instance. A code block can be edited through a modal window within a `CodeMirror` editor instance. This has the advantage of providing syntax highlighting and code sensing ([for supported languages](https://codemirror.net/mode/)). @@ -58,10 +54,9 @@ CKEditor5 allows certain CommonMark-like [autoformatting keyboard strokes](https - Create bold or italic styles by typing `**will become bold**`, `_will become italic_`, - Create heading of different indentation with `#`, `##`, `###`, … -- Create a bulleted list by starting the line with `* ` or `-` and a space +- Create a bulleted list by starting the line with `*` or `-` and a space - Create a numbered list by starting the line with `1.` or `1)` and a space - ## Image handling In supported resources of OpenProject where attachments are allowed, you can add images to the page by either @@ -74,9 +69,7 @@ The image will be automatically uploaded and stored as an attachment. You can ad ![Resize Image](resize-imagesshort.gif) - - -## Keyboard shortcuts +## Keyboard shortcuts CKEditor has a wide variety of keyboard shortcuts you can use. You can find a list of documented shortcuts here: [https://ckeditor.com/docs/ckeditor5/latest/features/keyboard-support.html](https://ckeditor.com/docs/ckeditor5/latest/features/keyboard-support.html). @@ -91,61 +84,48 @@ On top of that, OpenProject adds the following shortcut: OpenProject has supported macros on textile formatted pages and continues to do so with the WYSIWYG editor. Note that macros are not expanded while editing the page, instead a placeholder is shown. You can find the macros here in the text editor: -![Macros text editor](image-20201109183018255.png) - - +![Macros text editor](image-20201109183018255.png) ### Table of contents -Where applicable, the table of contents (TOC) macro will output a listing of all headings on the current page. - - +Where applicable, the table of contents (TOC) macro will output a listing of all headings on the current page. ### Work package button Configure a button or link to target the work package creation screen in the current project. You can preselect a work package type that should be selected, making it easy to guide the users to the work package creation form. - - ### Include wiki page Include the content of a given wiki page in the current, or another visible project. - - ### Embed work package table and Gantt chart This is the most flexible macro that provides extensive functionality regarding the inclusion of dynamic work package tables with all the potential of the regular work package table. -By adding an embedded work package table through the toolbar, you can configure the table view (such as columns, grouping, filters, and further properties) in a popup window. +By adding an embedded work package table through the toolbar, you can configure the table view (such as columns, grouping, filters, and further properties) in a popup window. The rendered page will then fetch the work package table results dynamically, respecting the visibility for each user. Use it to embed views in other pages, create reporting of multiple results, or to embed a Gantt chart view. - - - ## Links to OpenProject resources As with the textile formatting syntax, you can link to other resources within OpenProject using the same shortcuts as before. Create links to a: - - -- **wiki page**: `[[Wiki page]]` -- **wiki page with separate link name**: `[[Wiki page|The text of the link]]` -- **wiki page in the Sandbox project**: `[[Sandbox:Wiki page]]` +- **wiki page**: `[[Wiki page]]` +- **wiki page with separate link name**: `[[Wiki page|The text of the link]]` +- **wiki page in the Sandbox project**: `[[Sandbox:Wiki page]]` - **work package with ID12**: `#12` -- **work package with ID 12 with subject and type**: `##12` -- **work package with ID 12 with subject, type, status, and dates**: `###12` +- **work package with ID 12 with subject and type**: `##12` +- **work package with ID 12 with subject, type, status, and dates**: `###12` - **version by ID or name**: `version#3`, `version:"Release 1.0.0"` - **project by ID/name**: `project#12` , `project:"My project name"` - **attachment by filename**: `attachment:filename.zip` - **meeting by ID/name**: `meeting#12` , `meeting:"My meeting name"` - **document by ID/name**: `document#12` , `document:"My document name"` -- **user by id or login**: `user#4` , `user:"johndoe"` +- **user by id or login**: `user#4` , `user:"johndoe"` - **a forum message by ID**: `message#1218` -- **repository revision 43**: `r43` +- **repository revision 43**: `r43` - **commit by hash:** `commit:f30e13e4` - **To a source file in the repository**: `source:"some/file"` @@ -153,14 +133,10 @@ To avoid processing these items, preceding them with a bang `!` character such a > **Please note**: All these macros need to be written as a new word (i.e., with at least one space before it or at the beginning of a paragraph/sentence. Macros contained within a word such as `somethingmeeting#4` will not be parsed. - - ### Autocompletion for work packages and users For work packages and users, typing `#` or `@` will open an autocompleter for visible work packages and users, respectively. - - ## Embedding of work package attributes and project attributes You can embed specific attributes of work packages or projects using a certain syntax. @@ -172,16 +148,11 @@ Examples: > **Please note**: Referencing a work package by subject results in only looking for work packages with that given subject in the current project (if any). If you need to cross-reference work packages, use their ID to pinpoint the work package you want to reference. - - - ### Embedding attribute help texts -You can also embed attribute values and [their help texts](../../system-admin-guide/attribute-help-texts/) by using `workPackageLabel` instead of: `workPackageLabel:1234:status` which would output the translated label for "Status" and (if exists), the corresponding help text for it. +You can also embed attribute values and [their help texts](../../system-admin-guide/attribute-help-texts/) by using `workPackageLabel` instead of: `workPackageLabel:1234:status` which would output the translated label for "Status" and (if exists), the corresponding help text for it. - -> **Please note**: These macros will only be expanded in the frontend. For each individual user, the correct permissions will be checked and the macro will result in an error if the user is not allowed to view the respective resource. - +> **Please note**: These macros will only be expanded in the frontend. For each individual user, the correct permissions will be checked and the macro will result in an error if the user is not allowed to view the respective resource. ## Attributes @@ -231,4 +202,3 @@ The following list contains all supported attribute names for the `projectValue` | Status description | `projectValue:statusExplanation` | | Parent project | `projectValue:parent` | | Project public? (boolean) | `projectValue:public` | - diff --git a/frontend/doc/STYLING.md b/frontend/doc/STYLING.md index 03d937b0170e..de431a17cbbe 100644 --- a/frontend/doc/STYLING.md +++ b/frontend/doc/STYLING.md @@ -11,7 +11,7 @@ The styleguide itself is just a long html page demonstrating the components. It The general approach here is that for every partial of sass there is a Markdown file (`*.lsg`) describing it: -```bash +```shell $ cd app/assets/stylesheets/content $ ls -la _accounts* _accounts.lsg diff --git a/modules/gitlab_integration/README.md b/modules/gitlab_integration/README.md index dace6e34d611..0a94ead0b919 100644 --- a/modules/gitlab_integration/README.md +++ b/modules/gitlab_integration/README.md @@ -157,7 +157,7 @@ But first you must modify **Gemfile.lock** and **Gemfile.modules** so that OpenP Add the following in **Gemfile.lock**: -```yml +```yaml PATH remote: modules/gitlab_integration specs: @@ -167,7 +167,7 @@ PATH And add this other line in DEPENDENCIES section: -```yml +```yaml DEPENDENCIES ... openproject-github_integration! @@ -178,7 +178,7 @@ DEPENDENCIES Add the following in **Gemfile.modules**: -```yml +```yaml group :opf_plugins do ... gem 'openproject-gitlab_integration', path: 'modules/gitlab_integration'