Project identifiers in semantic mode are validated as [A-Z][A-Z0-9_]*
(see Projects::Identifier#identifier_alphanumeric_format). Tighten
ID_ROUTE_CONSTRAINT to match only uppercase identifiers, rejecting
lowercase patterns at the constrained route level.
Note: lowercase identifiers still reach the controller via the
unconstrained resource route fallback and will 404 there.
We can use this list for all kinds of OAuth clients essentially.
Nothing there needs to be Storage-specific. The main change is that
we now also indicate which kind of integration the token belongs to.
Instead of showing a huge dialog that then just shows three
links with huge icons and no further description, we just use
a submenu, that immediately shows the export options as menu items.
* Create a FullView::CopyComponent for WorkPackages which is routed from rails
* Remove angular splitCopy route and component as it was overwritten by the angular fullCopy route for quite some time already and nobody complained. So we decided to remove the splitCopy completely
* Create FullView::CreateComponent for WorkPackages which is now routed from rails instead of Angular
* First draft of implementing the FullView route for WorkPackages from rails
* Pass correct tab from the URL to the FullView::ShowComponent
* Do a hard reload to "create" route when we are not routed from Angular
* Adapt routing spec to new WorkPackage routes and to some fine-tuning with the WP routes
* Show correct tab in WP Full view and change URL when clicking a tab entry
* Adapt to new rails based routing
* Fix some routes and redirects
* Make sure, the split screen stil renders correctly
* Remove back button from WP full view
* Fix routing issues
* Start fixing specs
* Attempt to override the browser history to be able to use browser back
* Use helper function to build new WP url string
* Adapt spec that now partially renders backend toasts
* Remove ability to move to fullscreen
Theoretically, we can re-add it by posting to some form endpoint, but
not worth it for the first iteration
* Disable cache-control on angular routed pages, so back links work
* Fix double click to fullscreen
* Adapt navigation and title setting
* Let WP breadcrumb to a hard reload instead of Angular transition
* Redirect when the WP route is incomplete (this is the attempt to re-implement an angular functionality)
* Navigate with Turbo when double clicking a card
* Adapt onboarding tour to new hard reload when switching to WP full view
* Fix some specs
* Fix more tests
* Hide Overview tab on FullView
* Correct check for incomplete routes
* Do a hard refresh when coming from slpit screen to full view
* Fix notification navigation
* Adapt attachment spec as the tab switch cannot be done anymore while dragging
* Fix more tests
* Please rubocop and fix more tests
* Attempt to fix navigation_spec
* Add debian_base for pullpreview
---------
Co-authored-by: Oliver Günther <mail@oliverguenther.de>
Renames menu items, headings, routes and controller actions.
N.B. Uses **locale** in code (to encapsulate both language and region),
and **Language and Region** in user-facing text.
* Move `TypesController` to `WorkPackageTypes` namespace
* Replace the outdated template with a primer
* Also, eliminated a couple of N+1's for `TypesController`
* Clean up the code
* Remove TypesController#update action
* Cleaned up old `tab` paths
* Delete edit.html.erb
* Remove edit action from `TypesController`
* Remove the rest of the unused files
Updates the form visuals based on new mockups: the Project copy form now
only includes required (built-in and custom) fields, along with the
"Subproject of" field.
In detail:
* Introduces `Projects::CopyFormComponent`.
* Adds `Projects::CopyForm` with basic specs.
* Adds `ProjectsController#copy_form` action, permissions and route
mappings.
* Updates copy project feature specs to reflect form changes.
Updates the form visuals according to new wireframes: the Project create
form now only includes required (built-in and custom) fields, along with
the "Subproject of" field.
In detail:
* Introduces `Projects::NewComponent` and `TemplateSelectComponent`.
* Adds, extends necessary Primer forms with basic specs.
* Adds `ProjectsController#create` action, routes and permissions.
* Adds `highlight-when-value-selected` Stimulus controller.
* Updates project feature specs for new form, including rewriting some
expectations that were reliant on `data-qa-name` attribute that Primer
form components do not render by default.
* Removes now obsolete Project Status administation feature spec.
https://community.openproject.org/wp/64157
Instead of having one single token, we can now have multiple tokens.
They can have different plans, different trial/non-trial status, and
different activation dates.
This allows:
- to have a paid token for a plan, and a trial token for two weeks to
try out a higher plan.
- to have an existing token for a plan which will soon expire, and add
the token for the next period or a higher plan in parallel.
All tokens are listed on the same page in the administration.
Creates the following Primerized components:
* `AttributeHelpTextComponent` to render an icon that will invoke the
attribute help text dialog on click.
* `AttributeLabelComponent` to render an attribute label and help text
icon together with the correct spacing.
* `AttributeHelpTexts::ShowDialogComponent` to render the attribute help
text dialog itself.
Also creates accompanying Controller actions, routes and specs.
* Updates `StatusButtonComponent` to use `turbo-method: :delete` for
"Not set" menu item.
* Adds `Projects::StatusController#destroy` action, routes and
accompanying permissions.
* Introduces `Projects::StatusButtonComponent` and its Lookbook Preview.
* Defines colours, icons as (Ruby) constants nested under
`Project::Statuses` (c.f. `Meetings::Statuses`).
* Adds `Projects::StatusController` with `#update` action, routes and
accompanying permissions.
Updates the form visuals and functionality according to new wireframes:
the form on the Project Settings > Information page has been split into
multiple discrete forms.
In detail:
* Introduces `Projects::Settings::General::ShowComponent`.
* Creates Primer forms with basic specs.
* Adds `Projects::Settings::GeneralController#update` action, routes and
accompanying permissions.
* Updates "Edit Settings" feature specs for new forms, also rewriting
some expectations that were reliant on `data-qa-name` attribute that
Primer form components do not render by default.