note_public:'Any text and images you add to this field is publically visible to all logged in users!'
note_public:'Any text and images you add to this field is publicly visible to all logged in users!'
text_overview:'In this view, you can create custom help texts for attributes view. When defined, these texts can be shown by clicking the help icon next to its belonging attribute.'
label_plural:'Attribute help texts'
show_preview:'Preview text'
@ -222,7 +222,7 @@ en:
projects:
delete:
scheduled:"Deletion has been scheduled and is perfomed in the background. You will be notified of the result."
scheduled:"Deletion has been scheduled and is performed in the background. You will be notified of the result."
schedule_failed:"Project cannot be deleted: %{errors}"
failed:"Deletion of project %{name} has failed"
failed_text:"The request to delete project %{name} has failed. The project was left archived."
@ -1163,7 +1163,7 @@ en:
Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item
with the existing menu item "%{existing_caption}" (%{existing_identifier}).
error_external_authentication_failed:"An error occured during external authentication. Please try again."
error_external_authentication_failed:"An error occurred during external authentication. Please try again."
error_attribute_not_highlightable:"Attribute(s) not highlightable: %{attributes}"
events:
@ -2178,7 +2178,7 @@ en:
username:"Repository username"
truncated:"Sorry, we had to truncate this directory to %{limit} files. %{truncated} entries were omitted from the list."
named_repository:"%{vendor_name} repository"
update_settings_successful:"The settings have been sucessfully saved."
update_settings_successful:"The settings have been successfully saved."
url:"URL to repository"
warnings:
cannot_annotate:"This file cannot be annotated."
@ -2758,7 +2758,7 @@ en:
code_403:"You are not authorized to access this resource."
code_404:"The requested resource could not be found."
code_409:"Could not update the resource because of conflicting modifications."
en:"## Consent\n\nYou need to agree to the [privacy and security policy](https://www.openproject.org/data-privacy-and-security/) of this OpenProject instance."
# Indicates wether or not users need to consent to something such as privacy policy.
# Indicates whether or not users need to consent to something such as privacy policy.
"message": "An internal server error occured. This is not your fault."
"message": "An internal server error occurred. This is not your fault."
}
## Embedded error information
@ -98,7 +98,7 @@ To ease implementation of basic clients it is guaranteed that the response body
However it is allowed that an error object *embeds* other error objects under the key `errors`, thereby aggregating them.
The `errorIdentifier` of such an object is always `urn:openproject-org:api:v3:errors:MultipleErrors`. The message can either describe one of the
embedded errors or simply state that multiple errors occured.
embedded errors or simply state that multiple errors occurred.
#### Example
@ -139,7 +139,7 @@ embedded errors or simply state that multiple errors occured.
* `urn:openproject-org:api:v3:errors:ResourceTypeMismatch` (**HTTP 422**) - A link to a resource of a specific type was expected, but the link to another type of resource was provided
* `urn:openproject-org:api:v3:errors:PropertyFormatError` (**HTTP 422**) - A property value was provided in a format that the server does not understand or accept
* `urn:openproject-org:api:v3:errors:InternalServerError` (**HTTP 500**) - Default for HTTP 500 when no further information is available
* `urn:openproject-org:api:v3:errors:MultipleErrors` - Multiple errors occured. See the embedded `errors` array for more details.
* `urn:openproject-org:api:v3:errors:MultipleErrors` - Multiple errors occurred. See the embedded `errors` array for more details.
| members | Link ot collection of all the group's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project |
| members | Link to collection of all the group's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project |
@ -36,7 +36,7 @@ Depending on custom fields defined for projects, additional links might exist.
| identifier | | String | | READ/WRITE |
| name | | String | | READ/WRITE |
| active | Indicates whether the project is currently active or already archived | Boolean | | READ/WRITE |
| status | Denotes the status of the project, so wether the project is on track, at risk is having trouble. | String | "on track", "at risk" or "off track" | READ/WRITE |
| status | Denotes the status of the project, so whether the project is on track, at risk is having trouble. | String | "on track", "at risk" or "off track" | READ/WRITE |
| statusExplanation | A text detailing and explaining why the project has the reported status | Formattable | | READ/WRITE |
| public | Indicates whether the project is accessible for everybody | Boolean | | READ/WRITE |
@ -18,7 +18,7 @@ A query defines how work packages can be filtered and displayed. Clients can def
| self | This query | Query | not null | READ |
| user | The user that owns this query | User | not null | READ |
| project | The project on which this query operates | Project | | READ |
| columns | Ordered list of QueryColumns. The columns, when maped to WorkPackage properties determine which WorkPackage properties to display | []QueryColumn | | READ |
| columns | Ordered list of QueryColumns. The columns, when mapped to WorkPackage properties determine which WorkPackage properties to display | []QueryColumn | | READ |
| highlightedAttributes | **Only with valid Enterprise Token available:** List of QueryColumns that should get highlighted when `highlightingMode` is set to `inline`. | []QueryColumn | | READ |
| sortBy | Ordered list of QuerySortBys. Indicates the WorkPackage property the results will be ordered by as well as the direction | []QuerySortBy | | READ |
| groupBy | The WorkPackage property results of this query are grouped by | String | | READ |
@ -260,7 +260,7 @@ If the values are nonprimitive (e.g. User, Project), they will be listed as obje
## View query [GET]
Retreive an individual query as identified by the id parameter. Then end point accepts a number of parameters that can be used to override the resources' persisted parameters.
Retrieve an individual query as identified by the id parameter. Then end point accepts a number of parameters that can be used to override the resources' persisted parameters.
+ Parameters
+ id (required, integer, `1`) ... Query id
@ -2172,7 +2172,7 @@ As of now, no actions are defined.
## View Query Column [GET]
Retreive an individual QueryColumn as identified by the `id` parameter.
Retrieve an individual QueryColumn as identified by the `id` parameter.
+ Parameters
+ id (required, string, `priority`) ... QueryColumn id
@ -2248,7 +2248,7 @@ As of now, no actions are defined.
## View Query Filter [GET]
Retreive an individual QueryFilter as identified by the id parameter.
Retrieve an individual QueryFilter as identified by the id parameter.
+ Parameters
+ id (required, string, `status`) ... QueryFilter identifier.
@ -2326,7 +2326,7 @@ As of now, no actions are defined.
## View Query Operator [GET]
Retreive an individual QueryOperator as identified by the `id` parameter.
Retrieve an individual QueryOperator as identified by the `id` parameter.
+ Parameters
+ id (required, string, `!`) ... QueryOperator id
@ -2414,7 +2414,7 @@ As of now, no actions are defined.
## View Query Sort By [GET]
Retreive an individual QuerySortBy as identified by the id parameter.
Retrieve an individual QuerySortBy as identified by the id parameter.
+ Parameters
+ id (required, string, `status-asc`) ... QuerySortBy identifier. The identifier is a combination of the column identifier and the direction.
@ -2451,7 +2451,7 @@ Retreive an individual QuerySortBy as identified by the id parameter.
## Group Query Filter Instance Schema
A QueryFilterInstanceSchema is a Schema specifically for describing QueryFilterInstances. Because the behaviour of FilterInstances, with regards to the `values` property, differs from one another depending on the choosen Filter, the QueryFilterInstanceSchema explicitly lists the dependencies in its `_dependencies` property. As the property causing the difference is the selected Filter, that property is linked. Apart from that, a QueryFilterInstanceSchema has the same structure a Schema does.
A QueryFilterInstanceSchema is a Schema specifically for describing QueryFilterInstances. Because the behaviour of FilterInstances, with regards to the `values` property, differs from one another depending on the chosen Filter, the QueryFilterInstanceSchema explicitly lists the dependencies in its `_dependencies` property. As the property causing the difference is the selected Filter, that property is linked. Apart from that, a QueryFilterInstanceSchema has the same structure a Schema does.
## Linked Properties
@ -2531,7 +2531,7 @@ A QueryFilterInstanceSchema is a Schema specifically for describing QueryFilterI
## View Query Filter Instance Schema [GET]
Retreive an individual QueryFilterInstanceSchema as identified by the id parameter.
Retrieve an individual QueryFilterInstanceSchema as identified by the id parameter.
+ Parameters
+ identifier (required, string, `author`) ... QueryFilterInstanceSchema identifier. The identifier is the filter identifier.
| allowedValues | List of resources that are assignable by the current user. | Will not exist if `allowedValuesSchemas` is present. |
| allowedValuesSchemas | Link to schemas furhter describing the property. | Will not exist if `allowedValues` is present. |
| allowedValuesSchemas | Link to schemas further describing the property. | Will not exist if `allowedValues` is present. |
The `allowedValues` can either contain a list of canonical links or just a single link to a collection resource.
This is an optimization to allow efficient handling of both small resource lists (that can be enumerated inline) and large
@ -128,7 +128,7 @@ The following excerpt examplifies the objects that can be found as a value of th
Given the example above, the client has to add the property `loremIpsum` to the schema if the depending property is `1`, `2` or `3`. If it is `4` the property does not exist. The property will not be writable if the value is `3`. The values allowed to be set differ between having `1` or `2` selected for the depending property.
Because of the limitation of JSON objects, all keys will be strings, even when the depending value is actually someting different (e.g. Integer, Date). This is also true for resources in which case the url of the resource is used as the key.
Because of the limitation of JSON objects, all keys will be strings, even when the depending value is actually something different (e.g. Integer, Date). This is also true for resources in which case the url of the resource is used as the key.
| auth_source | Link to the user's auth source (endpoint not yet implemented) | AuthSource | | READ / WRITE | **Permission**: Administrator |
| members | Link ot collection of all the user's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project |
| members | Link to collection of all the user's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project |
@ -64,7 +64,7 @@ The OAuth2 based authentication requires an administrator to set up but offers s
OpenProject supports two OAuth flows: "Authorization code" and "Client credentials". In OpenProject terms, the main difference is whether a client wants to impersonate different users or wants to always access OpenProject with the same user account. An example for the former would be an application for logging time. Via the "Authorization code" flow, the logged time would be booked in the name of each user separately. The user would be the user creating the logged time. If the calling user is less important or if that user can always be the same, the "Client credentials" flow is sufficient.
Before the client can authenticate, an administrator sets up the OAuth application within the OpenProject instance. Go to the Administration and select "OAuth applictions" within the "Authentication" menu.
Before the client can authenticate, an administrator sets up the OAuth application within the OpenProject instance. Go to the Administration and select "OAuth applications" within the "Authentication" menu.
@ -42,7 +42,7 @@ A response that is fully controlled by Rails but extended by some Angular compon
1. Rails receives the request and according to its [`config/routes.rb`](https://github.com/opf/openproject/blob/dev/config/routes.rb#L257), will handle the request with the [TypesController#edit action](https://github.com/opf/openproject/blob/dev/app/controllers/types_controller.rb#L71-L82) with its tab set to `form_configuration`.
2. This controller responds with [an edit template](https://github.com/opf/openproject/blob/dev/app/views/types/edit.html.erb) that will include the [type form partial](https://github.com/opf/openproject/blob/dev/app/views/types/form/_form_configuration.html.erb#L77-L83). In this component, an Angular component is explictly output that will be bootstrapped on page load.
2. This controller responds with [an edit template](https://github.com/opf/openproject/blob/dev/app/views/types/edit.html.erb) that will include the [type form partial](https://github.com/opf/openproject/blob/dev/app/views/types/form/_form_configuration.html.erb#L77-L83). In this component, an Angular component is explicitly output that will be bootstrapped on page load.
3. The rendered response is returned to the Browser and Angular is initialized globally once in [`frontend/src/main.ts`](https://github.com/opf/openproject/blob/dev/frontend/src/main.ts#L48-L49).
@ -168,7 +168,7 @@ The `EditForm` logically groups together multiple field elements very similar to
It has multiple responsibilites:
It has multiple responsibilities:
- receives registration of fields within the form
- knows which fields are currently actively editing
@ -195,7 +195,7 @@ To easily mount an edit field over a manually rendered `DisplayField` (such as f
The `EditingPortalService` will render a `EditFormPortalComponent` with some HTML form wrapping for correct handling of submit events and labels. This portal will in turn render the actual `EditFieldComponent`. The service will wire up these components automatically.
If you were to explictly render an edit field, this would look as follows. Note that again, this is handled by the `EditForm` automatically whenever the user activates an `EditableAttributeFieldComponent` field.
If you were to explicitly render an edit field, this would look as follows. Note that again, this is handled by the `EditForm` automatically whenever the user activates an `EditableAttributeFieldComponent` field.
- [`EditableAttributeFieldComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/modules/fields/edit/field/editable-attribute-field.component.ts) Angular `<editable-attribute-field>` component for attributes within the edit form
- [`DisplayField`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/display) definitions containig all display fields and the service to instantiate them.
- [`DisplayField`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/display) definitions containing all display fields and the service to instantiate them.
- [`DisplayFieldRenderer`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/display/display-field-renderer.ts) to manually render display fields from JavaScript
- [`DisplayFieldComponent`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/display/display-field.component.ts) an Angular component to render display fields
- [`EditFieldComponent`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/edit/field-types) definitions containig all display fields and the service to instantiate them
- [`EditFieldComponent`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/edit/field-types) definitions containing all display fields and the service to instantiate them
- [`EditingPortalService`](https://github.com/opf/openproject/tree/dev/frontend/src/app/modules/fields/edit/editing-portal/editing-portal-service.ts) service to create an edit field with event handling in code
- [`WorkPackageFullViewComponent`](https://github.com/opf/openproject/blob/dev/frontend/src/app/modules/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/modules/grids/widgets/project-details/project-details.component.html) Exemplary widget template that uses the form for project attributes
@ -122,7 +122,7 @@ The resulting work packages will differ based on the visibility of the work pack
## 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 amout of services for isolating the individual behaviors.
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.
@ -152,7 +152,7 @@ These states are being initialized in the [`WorkPackagesInitializationService`](
- `WorkPackageViewColumnsService` for adding, moving, or removing columns and getting available columns for selection
- `WorkPackageViewSortByService` for getting and updating the sort criteria object of the query
- `WorkPackageViewGroupByService` for getting and updating the grouping property of the query
- `WorkPackageViewTimelineService` for identifying and modfying whether the timeline is visible in the table, and what settings it has
- `WorkPackageViewTimelineService` for identifying and modifying whether the timeline is visible in the table, and what settings it has
- `WorkPackageViewHierarchiesService` for manipulating the visible hierarchies in the table and temporarily storing what hierarchies are being shown or collapsed.
There are additional services for handling pagination and other parts of the query that can be controlled individually.
@ -178,5 +178,5 @@ The `WorkPackagesListService` can also update and save existing queries passed t
`PartionedQuerySpaceComponent` instances will be instantiated by the router and listen to URL params to load the corresponding query object. The most prominent example of such a page is the work packages module such as https://community.openproject.com/work_packages.
The partioning comes from showing a work package table (or cards view) on one side, and a details view of a single work package on another side, splitting the page in two. The width of the split areas can be customized by the user through a drag-handle.
The partitioning comes from showing a work package table (or cards view) on one side, and a details view of a single work package on another side, splitting the page in two. The width of the split areas can be customized by the user through a drag-handle.
@ -44,7 +44,7 @@ The `ResourceChangeset` class is a temporarily created class whose lifetime is d
The changeset maintains references to
* - The source HAL resource (a pristine, unchanged version) such as a work package
* - The actual `Changeset` object of changes (bascially a map of `attribute -> values` of changes)
* - 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)
@ -56,7 +56,7 @@ The ResourceChangeset is possibly subclassed for specific HAL resource types. Fo
### HalResourceEditingService
In order to *create*, *remove* or *saving* changesets for a specific resource, the `HalResourceEditingService` is provided at various hierarchies of the applicaiton. The service maintains a store of available resource changesets, whose states and changes can be observed with an RXJS observable.
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.
@ -8,7 +8,7 @@ keywords: state management, stores, input states
# Development Concept: State management
State management in complex frontend applications is a topic that has been heavily evolving over tha past years. Redux and stores, one-way data flow are all the rage nowaways. OpenProject is an old application, so its frontend exists way before these concepts were introduced and became popular.
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.
@ -163,4 +163,4 @@ This might then look like the following, with green color for added objects, and
## 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.
- As the reactivestates library was primarily developed for us, we may need to take over its code or move to a different state management concept alltogether. The recent developments in `ngxs` look very promising.
- As the reactivestates library was primarily developed for us, we may need to take over its code or move to a different state management concept altogether. The recent developments in `ngxs` look very promising.
@ -43,7 +43,7 @@ The basic overview of how to contribute code to OpenProject is as follows.
1. [Fork the OpenProject repository](#fork-openproject) and create a local development branch
2. Develop your change. Please see the sections on [development concepts](../concepts/) for further information on development topics.
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 evalute your pull review and changes.
4. We will evaluate your pull review and changes.
@ -70,7 +70,7 @@ Add the original OpenProject repository as a remote, so you can fetch changes:
@ -69,7 +69,7 @@ If you click the dots on the lower right hand corner in a widget you can change
You can configure the view of a work package widget to have the information included that you need.
<divclass="glossary">
**Work package** is a subset of a project that can be assigned to users for execution, such as Tasks, Bugs, User Storys, 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 projects timeline (unless they are filtered out in the timeline configuration) - either as milestone or as phase. In order to use the work packages, the work package module has to be activated in the project settings.
**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 projects timeline (unless they are filtered out in the timeline configuration) - either as milestone or as phase. In order to use the work packages, the work package module has to be activated in the project settings.
@ -40,7 +40,7 @@ You can also start typing in a project name to filter by the project's title.
Projects and subprojects are displayed according to their hierarchy in the drop-down menu.
<divclass="glossary">
**Subproject** is definded as a child project of another project. Subprojects can be used to display a hierarchy of projects. Several filter options (e.g. in work package list and timeline) can be applied only to the current project and its subprojects.
**Subproject** is defined as a child project of another project. Subprojects can be used to display a hierarchy of projects. Several filter options (e.g. in work package list and timeline) can be applied only to the current project and its subprojects.
In case you want to use environment variables, but you have no easy way to set them on a specific systme, you can use the [dotenv](https://github.com/bkeepers/dotenv) gem. It automatically sets environment variables written to a .env file for a Rails application.
In case you want to use environment variables, but you have no easy way to set them on a specific system, you can use the [dotenv](https://github.com/bkeepers/dotenv) gem. It automatically sets environment variables written to a .env file for a Rails application.
The docker installation has a ["cron-like" daemon](https://github.com/opf/openproject/blob/dev/docker/cron) that will immitate the above cron job. You need to specify the following ENV variables (e.g., to your env list file)
The docker installation has a ["cron-like" daemon](https://github.com/opf/openproject/blob/dev/docker/cron) that will imitate the above cron job. You need to specify the following ENV variables (e.g., to your env list file)
- `IMAP_SSL` set to true or false depending on whether the ActionMailer IMAP connection requires implicit TLS/SSL
- `IMAP_PORT``IMAP_HOST` set to the IMAP host and port of your connection
Upon creating and deleting repositories in the frontend, OpenProject will POST to this endpoint a JSON object containg information on the repository.
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",
@ -191,7 +191,7 @@ This method requires some apache modules to be enabled and installed. The follow
### 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 requsted through the user interface.
**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.
Due to the implementation of `mod_svn`, we have no way to influence the permissions determined by apache when changing repositories (i.e., by committing changes).
Without correcting the permissions, the following situation will occur:
If you are running on a Virtual Private Server, you need to make sure you have atleast 1024mb of RAM before running the `passenger-install-apache2-module`.
If you are running on a Virtual Private Server, you need to make sure you have atleast 1024mb of RAM before running the `passenger-install-apache2-module`.
Follow the instructions passenger provides.
The passenger installer will ask you the question in "Which languages are you
@ -314,7 +314,7 @@ The wizard will show you multiple additional steps in this case to enter the hos
### Skip (not recommended)
The wizard will not try to connect to any database. You will have to specify a database manually thorugh the `DATABASE_URL` environment variable. If you choose skip and did not set a `DATABASE_URL`, the configuration process will fail.
The wizard will not try to connect to any database. You will have to specify a database manually through the `DATABASE_URL` environment variable. If you choose skip and did not set a `DATABASE_URL`, the configuration process will fail.
You can set this `DATABASE_URL` parameter yourself to a PostgreSQL database URL.
@ -387,7 +387,7 @@ If you have a separate server that is terminating SSL and only forwarding/proxyi
### Skip (not recommended)
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 listeing at `localhost:6000` by proxying.
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.
Only choose this option if you have a local Apache2 installed that the OpenProject package may not control, or need to use a different web server such as Nginx. Please note that not all functionality (especially regarding Repositories) are supported on Nginx.
Using this connection string, the following command will create the database the backup will be restored to (named `openproject_backup` in this example):
@ -70,7 +70,7 @@ Example:
$ su postgres -c createdb -O openproject openproject_backup
```
### 1.3 Restore backup to auxillary database
### 1.3 Restore backup to auxiliary database
Next, that newly created database will receive the data from a backup file which typically can be found in `/var/db/openproject/backup`
That command will restore the contents of the backup file into the auxillary database.
That command will restore the contents of the backup file into the auxiliary database.
## 2. Run the script to fix the database entries
@ -127,7 +127,7 @@ Done.
## 3. Cleanup
The database containing the backup data can be removed once the script has finished (again, **ensure to reference the auxillary database for the drop command**):
The database containing the backup data can be removed once the script has finished (again, **ensure to reference the auxiliary database for the drop command**):
@ -14,7 +14,7 @@ All the script needs is docker and the mysql command installed. It will start co
### Create a backup
First, you will need to create a backup to get the MySQL database dump. Please see our seperate guide on [Backing up](https://docs.openproject.org/installation-and-operations/operation/backing-up/). In a packaged installation, the following command will output a full backup to `/var/db/openproject/backup`:
First, you will need to create a backup to get the MySQL database dump. Please see our separate guide on [Backing up](https://docs.openproject.org/installation-and-operations/operation/backing-up/). In a packaged installation, the following command will output a full backup to `/var/db/openproject/backup`:
@ -19,7 +19,7 @@ running the `openproject configure` command.
<divclass="alert alert-info"role="alert">
Please note that the package-based installation uses different release channels for each MAJOR version of OpenProject. This means that if you want to switch from (e.g.) 9.x to 10.x, you will need to perform the steps described in the [installation section](../../installation/packaged) to update your package sources to point to the newer release channel. The rest of this section is only applicable if you want to upgrade a (e.g.) 10.x version to a 10.y vesion.
Please note that the package-based installation uses different release channels for each MAJOR version of OpenProject. This means that if you want to switch from (e.g.) 9.x to 10.x, you will need to perform the steps described in the [installation section](../../installation/packaged) to update your package sources to point to the newer release channel. The rest of this section is only applicable if you want to upgrade a (e.g.) 10.x version to a 10.y version.
@ -48,7 +48,7 @@ In the upper section, you have to specify the connection details of your LDAP se
**Allowing untrusted certifcates for LDAP connections**
**Allowing untrusted certificates for LDAP connections**
If you use `start_tls` , certificate details and host names will be verified on connections as recommended for security. In case you use a custom untrusted certificate authority (CA) that your LDAP is connecting to, you can place this CA in your system's trusted CA store if possible. For some distributions, you will need to specify this CA manually to OpenProject.
@ -19,8 +19,8 @@ To adapt email notification settings, go to Email and choose *Email notification
1. **Emission email address**. This email Address will be shown as the sender for the email notifications sent by OpenProject (for example, when a work package is changed).
3. Define if the email should be formatted in **plain text** (no HTML).
4. Select the default notification options. The default notifcation can be adapted in the [user profile](../../../getting-started/my-account/#email-notifications).
5. Select for which **actions email notification should be sent**. You have the possibilty to check all or uncheck all at the top right.
4. Select the default notification options. The default notification can be adapted in the [user profile](../../../getting-started/my-account/#email-notifications).
5. Select for which **actions email notification should be sent**. You have the possibility to check all or uncheck all at the top right.
The OpenProject configurations contains a certain amount of plugins which are listed under -> *Administration* -> *Plugins*.
We recommend to use the plugins as suggested in our deployement packages. You will get more detailed information (about current changes, author, etc.) if you follow the links.
We recommend to use the plugins as suggested in our deployment packages. You will get more detailed information (about current changes, author, etc.) if you follow the links.
@ -38,7 +38,7 @@ Show checkout instructions for Subversion and GIT.
## Referencing and fixing work packages in commit messages
1. **Define referencing keywords** for work packages in commit messages. Used to reference keywords used to link revisions to work packages.
2. Define **fixing keywords for work packages** in commit messages. Fixing keywords allow status or progress changes using certain keywords in commit messages, e.g. changing a work pacakge to closed and set to 100%.
2. Define **fixing keywords for work packages** in commit messages. Fixing keywords allow status or progress changes using certain keywords in commit messages, e.g. changing a work package to closed and set to 100%.
3. Define which **status will be applied** to a work package if a fixing word is used in a commit message.
4. Define which **percentage of done is applied** to a work package if a fixing word is used in a commit message for that work package.
5. **Enable time logging**. Activating this option enables [logging time to a work package ](../../../user-guide/time-and-costs/time-tracking/)via commit message.
@ -22,7 +22,7 @@ You can configure the following options for webhooks:
1. Choose a **name** identifying the webhook.
2. **Payload URL** defines the endpoint, called when the webhook is triggered.
3. Freely choose an additonal **description** to further identify the intent of the respective webhook.
3. Freely choose an additional **description** to further identify the intent of the respective webhook.
4. By defining a **Signature secret** you guarantee that the sender of the payload request is actually OpenProject. The client will then check this signature secret.
5. **Enable** if **the webhook** should be active.
6. **Set the events** for which the webhook should be activate, i.e. webhook for updating or creating projects or work packages, or for creating time entries.
@ -87,4 +87,4 @@ It is currently not possible to export or sync the calendar. You can however [ex
### Are holidays considered in the calendar?
Currently, the calendar does not consider weekends or holidays as non-working days, i.e. the end date for a task could e.g. be set on a Sunday. This is important for businesses that are working on weekends or holidays. Please note that we are currntly working on a feature for holidays and weekends that can be adjusted as needed.
Currently, the calendar does not consider weekends or holidays as non-working days, i.e. the end date for a task could e.g. be set on a Sunday. This is important for businesses that are working on weekends or holidays. Please note that we are currently working on a feature for holidays and weekends that can be adjusted as needed.
@ -109,7 +109,7 @@ To unwatch a forum in order to not be informed via e-mail about new messages and
### Unwatch a message
The same applys to **unwatch a message**. Just select the message first which you do not want to watch any longerand click the **Unwatch** button.
The same applies to **unwatch a message**. Just select the message first which you do not want to watch any longerand click the **Unwatch** button.
## Edit a forum message
@ -139,7 +139,7 @@ Enter a name and description for the new forum. Press the blue **Create** button
## Manage forums
If you wan to change the order of the forums in your project, want to edit a forum, or delete a form, go to the -> *Forums* overview list in your project.
If you want to change the order of the forums in your project, want to edit a forum, or delete a form, go to the -> *Forums* overview list in your project.
1. Click the **arrows (up or down) to change the order** of the forums and sort them differently in the forum list in your project.
2. Click the **edit icon to change the name or description** of your form.
@ -47,7 +47,7 @@ To **change the order of an item** in the Gantt chart, click the **drag and drop
### How to change the duration of an element in the Gantt chart?
To change the duration of a work package in the Gantt chart view, hover over the work package in the Gantt chart and use the little arrows on its ends to adjust the start date or finish date. This will shorten or prolong its duration.
To move a work package on the time line just click on it and drag and drop it to the desired point of time. This will change its startd and finish date.
To move a work package on the time line just click on it and drag and drop it to the desired point of time. This will change its start and finish date.
@ -92,7 +92,7 @@ Copy and paste all data accordingly from your existing Excel list to this sheet.
**Download workpackages**: intitially downloads all work packages from the selected project (and query).
**Upload / update work packages**: makes changes to the work packges, 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.
**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.
Congratulations! You can now synchronize your data between Excel and OpenProject.
@ -103,7 +103,7 @@ Congratulations! You can now synchronize your data between Excel and OpenProject
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 possibilites:
To add or edit a new parent-child relation, you have two possibilities:
**A)** You can add a child to a work package when you enter 4 empty spaces (press 4x Shift) before typing the subject of the child work package.
<divclass="glossary">**Repository** is definded as a document management system that allows users to manage files and folders via different version control system (SVN or Git).</div>
<divclass="glossary">**Repository** is defined as a document management system that allows users to manage files and folders via different version control system (SVN or Git).</div>
You can integrate a SVN or GIT repository in a project in OpenProject and access it directly in the project via the module Repositories.
**Note**: Repositories can only be integrated for Community Edition and Enterprise Edition (self hosted) versions.
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.
In OpenProject you can view the files under *Repository*. Please keep in mind that from your OpenProject website you can only view or download the files. For commiting new files you need an SVN- or Git-client.
In OpenProject you can view the files under *Repository*. Please keep in mind that from your OpenProject website you can only view or download the files. For committing new files you need an SVN- or Git-client.
In order to be able to edit files and to upload the updated versions to repository, you need to check out your repository. The following steps assume you have configured your OpenProject repository to work with subversion (but many of the options are very similar or identical when using Git). Please check out the repository and save it locally through an SVN client of your choice.