291 Commits

Author SHA1 Message Date
Ivan Kuchin a7892ae6a4 give name to work package short path 2026-05-21 17:07:34 +02:00
David. 070c9d41f8 Merge branch 'dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-21 13:51:06 +02:00
Kabiru Mwenja 6c253446ef Tighten route constraint to uppercase-only semantic identifiers
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.
2026-04-15 15:54:49 +03:00
Kabiru Mwenja 8802ce5871 Add routing spec for semantic work package identifiers
Verifies that GET /work_packages/PROJ-42 routes to work_packages#show,
matching the widened route constraint.
2026-04-14 17:38:14 +03:00
David F 32831e08dc Merge remote-tracking branch 'origin/dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-13 17:41:13 +02:00
David F fb564e24e6 Sideload workflow matrix to safely revert on ignored changes. wp/72383 2026-04-13 16:28:07 +02:00
David F 6e2efe8eb1 Merge branch 'dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-09 09:42:46 +02:00
David F 004876b177 Merge workflow copy modes into one unified form. wp/72383 2026-04-02 14:56:01 +02:00
Henriette Darge deeb026431 Adapt tests to new reminders and notifications structure 2026-03-30 11:56:23 +02:00
David F 4ab123f066 Refactor workflow summary into new namespaced controllers scheme. wp/72383 2026-03-24 11:17:21 +01:00
David F 6d435d7289 Remove the legacy workflow copy process. wp/72383 2026-03-24 10:48:18 +01:00
David F e29c33a949 Copy workflows from a role to another role of the same type. wp/72383 2026-03-24 10:48:18 +01:00
David F 117469a0a8 Copy a type’s workflows to another one. wp/72383 2026-03-24 10:48:18 +01:00
David F 09f36d96ab WIP: List types on workflows admin index before editing one of them. #72234 2026-03-12 12:26:47 +01:00
Klaus Zanders 20060a86b6 Allow to access news#show globally 2026-02-10 18:32:36 +01:00
Klaus Zanders 361e8461d2 fix problems uncovered in routing specs 2026-02-09 15:08:11 +01:00
Klaus Zanders 59255a2e3c Fix routing specs for forums and messages 2026-02-09 15:08:11 +01:00
Klaus Zanders 82c6e34dcc Fix members specs and remove redundant specs 2026-02-09 15:07:56 +01:00
Jan Sandbrink 0d61dec724 Generalize the storage token list to OAuth clients
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.
2026-01-12 08:42:57 +01:00
Jan Sandbrink 1e2c0922b6 Simplify project export
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.
2026-01-06 12:55:18 +01:00
ulferts b9c0cea204 adjust routing specs 2025-12-04 17:01:36 +01:00
Ivan Kuchin 1bdf3df07f add workspace type specific create routes to use same logic for finding template 2025-11-20 20:30:55 +01:00
Henriette Darge 655756631f [67007] Render the WP full view from rails (#20109)
* 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>
2025-11-03 09:02:16 +01:00
Alexander Brandon Coles 3757b22880 [#65403] Rename Settings to Language and Region
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.
2025-08-27 18:28:02 +01:00
Dombi Attila 7b1fd5f09a Add program creation form and global permission. 2025-08-22 15:23:16 +03:00
Dombi Attila 97eb8f0692 Code review adjustments 2025-08-22 10:20:07 +03:00
ulferts 272a85d250 use non nested default parameter to be in line with other params 2025-08-21 10:29:58 +03:00
Klaus Zanders 22ed4c18e1 Fix specs for routes and menus 2025-08-18 13:42:49 +02:00
Yauheni Suhakou e754ef7e50 [#64621] Move Types controller to the new namespace (#19388)
* 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
2025-07-10 10:36:20 +02:00
Alexander Brandon Coles 2a30b50e6e [#63594] Primerize Project copy form
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.
2025-07-01 12:30:02 +01:00
Henriette Darge c52571c10f Primerize the MySettings form and split it into a separate menu entry 2025-06-20 08:02:50 +02:00
Alexander Brandon Coles e225422ccd [#63593] Primerize Project create form
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.
2025-06-11 16:31:30 +01:00
Oliver Günther 4dc60db27c [64157] Handle multiple tokens
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.
2025-06-11 15:05:07 +02:00
Alexander Brandon Coles 2b0e95244d [#63738] Primerize attribute help texts
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.
2025-06-03 12:33:34 +01:00
Jan Sandbrink 03c8db36bf Merge pull request #18806 from opf/frozen-specs
Freeze string literals in specs
2025-05-07 07:54:10 +02:00
Jan Sandbrink 0b87e7543f Freeze string literals in specs
Rolling out frozen string literals further by freezing all
string literals in core specs.
2025-05-05 09:29:55 +02:00
Alexander Brandon Coles 3550aade49 Use DELETE method to unset project status
* Updates `StatusButtonComponent` to use `turbo-method: :delete` for
  "Not set" menu item.
* Adds `Projects::StatusController#destroy` action, routes and
  accompanying permissions.
2025-05-02 00:43:47 +01:00
Alexander Brandon Coles 7d92ee2831 [#63482] Implement Project Status Button Component
* 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.
2025-05-01 16:06:18 +01:00
Bruno Pagno 4a1ae02615 adjust banners + settings for internal comments 2025-04-29 10:30:35 +02:00
Alexander Brandon Coles b8988b3a69 [#61889] Primerize Project Settings>Information forms
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.
2025-04-28 15:13:05 +01:00
Bruno Pagno e61b0447ee scaffold settings page for activities 2025-03-24 13:59:50 +01:00
Bruno Pagno c5a5d5260b adjust urls and permissions 2025-03-14 14:24:58 +01:00
Oliver Günther 7cfebcdb72 Remove subclass loading and use base controller 2025-02-25 20:12:01 +01:00
Oliver Günther 03a96eefb4 Primerize and separate enumerations 2025-02-25 20:12:00 +01:00
ulferts ef9b97b157 load project list configure view dialog asynchronously 2024-08-19 11:12:40 +02:00
ulferts 1b342c5554 load project list destroy confirmation dialog asynchronously 2024-08-19 11:05:08 +02:00
ulferts 570478e31b have project list export modal be loaded asynchronously 2024-08-19 10:57:21 +02:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
Ivan Kuchin 0b87ed9b6a remove newlines from context descriptions 2024-07-29 19:27:17 +02:00
Ivan Kuchin 31ddace786 Merge pull request #15985 from opf/fix-acts_as_favorable
Fix and refactor acts as favorable and acts as watchable
2024-07-03 15:39:20 +02:00