36 Commits

Author SHA1 Message Date
Alexander Brandon Coles 21bf9e8466 Replace deprecated HTTP progress option 2026-06-07 22:51:16 +01:00
Alexander Brandon Coles c32f2f2e26 [#74950] Migrate Angular DI to inject()
Migrates Angular constructor-based dependency injection to the
`inject()` function. The initial pass used the Angular schematic;
manual follow-up handled abstract classes, inheritance-sensitive
constructors, and call sites that still instantiate services
directly.

Schematic command:

  cd frontend && npx ng generate @angular/core:inject-migration \
    --path ./ \
    --migrate-abstract-classes \
    --backwards-compatible-constructors=false \
    --non-nullable-optional=false

https://community.openproject.org/wp/74950
2026-05-18 10:23:52 +02:00
Behrokh Satarnejad a93c851288 [64225] [Accessibility] Provide alternative text for images (#21183)
* add an input for the principal component to pass an alt text of avatar image

* Add avatar alt text in user menu for the user avatar

* Add alt text for assignee in wp single card

* add some description for the canvas

* add alt for images

* Show the summary of chart on it

* change the method parameters

* Hide the gantt chart from screen reader because it doesnt add any value for the screen reader user

* Use better name for inputs and improve the methods definitions

* fix eslint errors

* fix rubocup errors

* remove alt for bcf snapshot

* better structure for avatar in user menu
2025-11-26 16:07:58 +01:00
Alexander Brandon Coles 8f5be89a59 [#67394] Migrate templates to Control Flow syntax
Automated conversion with:

    ng generate @angular/core:control-flow

Old structural directives `*ngIf`, `*ngFor`, and `[ngSwitch]` are now
deprecated and will be removed in v22.

See https://angular.dev/api/common/NgIf
See https://angular.dev/api/common/NgFor
See https://angular.dev/api/common/NgSwitch
2025-09-16 10:44:16 +01:00
Alexander Brandon Coles 39b29c2789 Update Angular to v19
Force updates Angular dependencies:

    ng update @angular/core@19 @angular/cli@19 --force

And performs automated upgrade:

- Updates non-standalone Directives, Component and Pipes to
  'standalone:false' and removes 'standalone:true' from those who are
  standalone.
2025-07-22 18:22:19 +01:00
Oliver Günther 3bef4c100f Fix avatar import 2024-08-16 19:16:14 +02:00
Oliver Günther ac39406347 Replace dynamic bootstrapped components with angular elements 2024-08-16 19:16:13 +02:00
Ivan Kuchin bca7db9398 update copyrights 2024-07-31 15:02:50 +02:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
ulferts 3b2121f733 Revert "Merge remote-tracking branch 'origin/release/13.4' into dev"
This reverts commit 40b2bbeb09, reversing
changes made to b4c6cb17cc.
2024-03-21 11:31:17 +01:00
Ivan Kuchin 7787e457a3 Revert "Merge branch 'dev' into release/13.4"
This reverts commit a901541269, reversing
changes made to e573ca00b7.
2024-03-20 20:19:08 +01:00
Henriette Darge 67dcba6fbe Merge button styles "alt-highlight" and "highlight" together in one "primary" style 2024-03-08 14:10:30 +01:00
Christophe Bliard c795874f7f Update copyright year for 2024
command used: `rg -l 'Copyright \(C\) 2012-202\d the OpenProject' | xargs -n 100 sed -i -r 's/Copyright \(C\) 2012-202. the OpenProject/Copyright (C) 2012-2024 the OpenProject/'`
2024-01-02 16:23:54 +01:00
Eric Schubert 60e912bd19 [#46150] Added more upload service implementations
- https://community.openproject.org/wp/46150
- LocalUploadService
- FogUploadService
- AvatarUploadService
2023-03-21 10:02:33 +01:00
Eric Schubert 56cccb0643 [#45772] fixed avatar upload types 2023-01-24 14:35:42 +01:00
Eric Schubert cf1bfe07bd [#45772] fix PR comments
- refactored method signature of `uploadSingle`
- log unknown event type from upload progress
2023-01-24 13:08:58 +01:00
Christophe Bliard 21a696ef9b Update copyright information for 2023 2022-12-30 15:51:26 +01:00
Christophe Bliard bc8d423ec2 update copyright information for 2022 2022-03-01 17:05:59 +01:00
Benjamin Bädorf 3aaac1c7ce Rename most notification to toaster instances (#9765)
* Rename most notification to toaster instances

* Frontend builds

* Fix spec build

* Rename more notification elements to toaster

* Rename toaster-box to op-toast

* Fix op-toast-container

* Rename toasters upload progress

* Try fixing page.rb toaster check

* Fix some specs, break some others

* Correctly overwrite toast_type

* Fix more specs

* Fix one more notification to toaster rename

* Fix linting errors, harmonize naming more

* Remove byebug debugging statement

* Remove byebug debugging statement

* Rename notification in the backend, too

* Rename more instances of notifications to toastService

* Rename backend back to notification since bundle gems expect it there

* expect_toaster -> expect_toast

Co-authored-by: Henriette Darge <h.darge@openproject.com>
2021-11-04 16:25:55 +01:00
Oliver Günther ccfa29c728 Move license and copyright docs to root, fix names and references 2021-09-02 21:50:46 +02:00
Benjamin Bädorf 3a877457ad Feat/frontend linting (#9424)
* Change eslintrc config

* Try esprint fix

* Run linter fix

* Set most of the typescript linting rules to warn, run with --fix

* Fix some linting errors

* Optimize imports

* Build works again

* Remove fixes that didn't fix anything

* Make imports lint-conform again && disable trailing underscores as it is part of Angular and our convention

* Remove wrong automated fix

* Rename components with suffix "Component" for linting

* Linting, refactor reorder-delta-builder to a more functional style

* Update delta reorder specs

* Add exceptions for "++" in loops and bracket expressions in arrow functions

* Some linting fixes

* Fix some more linting

* Optimize imports

Co-authored-by: Henriette Darge <h.darge@openproject.com>
2021-07-08 15:38:01 +00:00
Aleix Suau 7e2e05c88f Feature/36390 code structure (#9319)
* core/shared/features in progress

* shared/components in progress

* Fix rebase errors

* core: added admin + apiv3

* shared: attachments + attirbute-help-text

* core: OpenprojectAugmentingModule

* shared: OpenprojectAutocompleterModule

* shared: Autocompleter

* feature: backlog

* feature: bim

* feature: boards

* shared: calendar

* core: userModule

* feature: dashboards

* shared: editor

* shared: fields

* shared: focus

* core: globalsearch

* shared: grid

* shared: grid fix

* core: hal

* shared: icon

* feature: invite user modal

* feature: job status

* shared: members autocomplete

* shared: modal

* feature: my page

* feature: overview

* shared: principal

* feature: projects

* feature: repoting

* core: routing

* shared: time entries

* shared: OpenprojectWorkPackageGraphsModule

* feature: workpackages

* core: active window

* shared: autofocus

* features: wp: back-button

* core: browser

* shared: collapseible section

* core: config

* shared: copy-to-clipboard

* shared: date-time

* shared: helpers: drag-and-drop

* shared: draggable autocompleter

* shared: dynamic bootstrapper

* shared: dynamic forms

* features: wp: edit actions bar

* shared: EditableToolbarTitleComponent

* core: BannersService

* shared: OpFormFieldComponent

* shared: hide section

* shared: highlight col

* core: I18 + Sanitizer

* shared: isClickedWithModifier

* core: LoadingIndicator

* core: Modal Heading

* core: Model auth

* shared: no results

* shared: notifications

* shared: datepicker

* shared: option-list

* core: path helper

* shared: persistent toggle

* shared: remote field

* shared: set click position

* shared: slide toggle

* shared: tabs

* shared: drag-scroll

* shared: keyCodes

* shared: OPSharedModule

* global styles: common

* core:

* import fixes

* shared: Enterprise banner

* features: wps: filters

* features: home screen

* import fixes

* core: html

* import fixes

* core: main-menu

* features: home screen

* shared: modals

* shared: op-context-menu

* core + shared: current project

* core: schema-cache

* shared: table-pagination

* features: wps: time-entries

* shared: user-link

* features: wps

* features: wps

* features: wps: all wp-* components

* core: states

* Rename: angular4-modules to app.module

* core: expression service

* Modules just with plugins

* Test fixes

* added missing content-tabs.component.sass

* Replaced with .op-ckeditor--wrapper

* Replaced by .op-ckeditor-source-element

* Replaced by the entire wysiwyg_editor.rb with dev version

* Replacements by ckeditor-augmented-textarea

* Fixes ./spec/support/components/work_packages/table_configuration_modal.rb:106

* Fixes ./modules/reporting/spec/features/update_entries_spec.rb:69

* work_packages renamed to work-packages

* TimeEntryChangeset moved to helpers

* 'filters' moved to wps/components

* 'admin' moved to features

* HAL moved to shared

* plugins moved to features

* plugins moved to features

* Test fixes

* Unit test fixes

* plugin generator into /features/plugins

* fix sass rule indentation

* Revert "plugins moved to features"

This reverts commit f65ccbfd4b.

* Import fixes

* Avoid commiting in linked plugins

Co-authored-by: ulferts <jens.ulferts@googlemail.com>
Co-authored-by: Oliver Günther <mail@oliverguenther.de>
2021-06-08 21:10:58 +02:00
Oliver Günther 3b78be087b Migrate tslint to eslint (#9064)
* tslint to eslint migration

* Autofix issues

* Fix codeclimate path to eslintrc

* Extend linter config for use with ng lint

* Change prefix to op in angular lints
2021-03-05 21:34:26 +01:00
ulferts 6140f4c7e9 update copyright to 2021 (#8925)
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.

Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
2021-01-13 17:47:45 +01:00
ulferts c9bc013cc2 remove unused ts imports 2020-04-27 13:47:49 +02:00
Oliver Günther 7a13ab87e3 Merge remote-tracking branch 'origin/dev' into bump/angular9 2020-03-05 19:23:43 +01:00
Oliver Günther d57ad09474 Fix singleton services being initialized per module
The `APP_INITIALIZER` only runs for global services on startup, but some
modules are now loaded dynamically.

This will result in services that are not `providedIn: 'root'` being
injected for each lazy loaded module that requires them.
2020-03-05 13:01:42 +01:00
Oliver Günther 8e3ba17ae5 Merge remote-tracking branch 'origin/dev' into bump/angular9 2020-03-02 20:00:41 +01:00
Oliver Günther c7c24daa01 Add more usages 2020-02-21 19:19:07 +01:00
Oliver Günther 6f41aa70fa Remove deprecated entryComponents 2020-02-12 19:50:32 +01:00
Henriette Dinger bd7f4e4814 Update copyright notice 2020-01-15 11:31:26 +01:00
Oliver Günther 64b7e72ae8 Bump angular to 8.0.0 2019-06-07 11:39:56 +02:00
Henriette Dinger 7240d422fa Use avatar component also in ruby rendered places 2019-02-08 14:59:22 +01:00
Henriette Dinger b279b2722b Show default avatar when no gravatar is defined 2019-02-08 14:59:22 +01:00
Oliver Günther e6374126bd Fix loading modules to actually lazy load calendar 2018-12-04 16:11:59 +01:00
Oliver Günther 7dbecdcf79 Prepare for core integration 2018-11-14 13:57:39 +01:00