Compare commits

...
Author SHA1 Message Date
Marco Carrozzo 0447a30b38 token fix 2023-03-09 16:54:48 +01:00
Marco Carrozzo b6e6237b45 token fix 2023-03-09 16:03:52 +01:00
Marco Carrozzo 6dd3fc61fc debug 2023-03-09 15:30:31 +01:00
tomasz hanaj a39480bc48 [AAE-12872] custom css variables replaced with theme related variables (#8332)
* AAE-12872 replaced global variables related to foreground text

* AAE-12872 replaced global css variables related to foreground

* AAE-12872 replaced global css variables related to background,palette colors
2023-03-08 23:40:48 +00:00
AleksanderSklorz 9863149a28 [ACS-4592] missing right click menu on row and left click is only allow on indicator rotate (#8327)
* ACS-4592 Displaying context menu for tree list row and allow to expand row by clicking at label

* ACS-4592 Added clicking on label for load more button

* ACS-4592 Unit tests

* ACS-4592 Added documentation for context menu for tree component and fixed lint issues

* ACS-4592 Trigger stuck check
2023-03-08 08:11:48 -05:00
Amedeo Lepore 41f9974919 [AAE-13016] Fix errors: can't resolve 'angular-oauth2-oidc' and 'angular-oauth2-oidc-jwks' (#8345) 2023-03-08 12:12:00 +01:00
dependabot[bot] 997fa81c59 Bump eslint from 8.30.0 to 8.35.0 (#8341)
Bumps [eslint](https://github.com/eslint/eslint) from 8.30.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.30.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 10:46:17 +01:00
Eugenio Romano 8db863219c [AAE-12723] Move rich text editor in Process cloud (#8283)
* move rich text editor in Process cloud

* fix import

* fix

* fix
2023-03-07 14:12:36 +01:00
Denys Vuika 29132ec5c8 Revert "cleanup"
This reverts commit 3711eecca4.
2023-03-07 11:00:04 +00:00
Denys Vuika 3711eecca4 cleanup 2023-03-07 10:58:57 +00:00
f4a8084f0c [AAE-12511] implement OIDC authentication capabilities in ADF (#7856)
* feat: add custom AlfrescoApiHttpClient [ci:force]

* feat: update configs

* feat: move api to follow second entry point structure

* feat: add auth module [ci:force]

* Fix rebasing issues

* Isolate oidc package as subfolder

* Canary mode

* [AAE-12498] Fix unit test should load external settings: resolve reponse data instead returning default config

* [AAE-12498] Set @nrwl/eslint-plugin-nx@14.5.4 version to fix lint job that failed because of the 14.8.6 version (https://github.com/Alfresco/alfresco-ng2-components/actions/runs/4165060892/jobs/7207651856\#step:5:3379)

* [AAE-12498] Fix stories:build-storybook:ci issues

* [AAE-7991] cherry-pick e935f7b0b1 from repo https://github.com/Alfresco/alfresco-ng2-components/pull/7818: send onLogin to initialize acs version to fix [C362242] on canary configuration

* [AAE-12498] Fix security hotspot: fix unsafe pseudorandom number generator

* test: add missing tests for oidc-auth.guard

* test: fix lint issues

* chore: remove assignment in return

* [AAE-12498] Remove warning comment because we already know we're doing breaking changes

* [AAE-12498] Add auth-config.service unit tests

* [AAE-12498] Remove getUserProfile from auth service

---------

Co-authored-by: Andras Popovics <popovics@ndras.hu>
Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com>
2023-03-07 09:53:11 +01:00
Ehsan Rezaei dd91f2eeb6 AAE-12245: Migrated from event cancelBubble to stopPropagation (#8311) 2023-03-06 21:57:51 +01:00
dependabot[bot] cb69f34aa7 Bump eslint-plugin-import from 2.26.0 to 2.27.5 (#8322)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.26.0 to 2.27.5.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-06 17:24:01 +01:00
Maurizio Vitale 63886d5262 Use the right path for testing (#8343) 2023-03-06 16:18:27 +00:00
Maurizio Vitale 8567b147be Use as default prod (#8342)
* Use as default prod

* remove restricted
2023-03-06 15:54:49 +00:00
Maurizio Vitale 52a733d2a2 [AAE-12870] use gh action to publish (#8317)
* use gh action to publish

* revert and rely on action

* Use token as part of workflow

* Use token as part of workflow

* remove useless file
2023-03-06 15:12:44 +00:00
Gloria Camino ad150bf610 LOC-411 - Also related to PRODDEL-6965 - updated strings for ADF 6.0 in 16 languages (#8339) 2023-03-06 10:21:52 +00:00
Ehsan Rezaei 77fde1ab65 [AAE-12840] - Fix saving preference when columns width or order changes (#8331)
* AAE-12840: Fixed saving preference when column widths change in tasks and processes list

* AAE-12840: Fixed saving preference when columns order change in tasks and processes list

* AAE-12840: Fixed lint issue

* AAE-12840: fixed lint issue
2023-03-03 18:05:29 +01:00
Ehsan Rezaei 005b26c54f AAE-12839: Improved column resize handle clickable area (#8325)
* AAE-12839: Improved column resize handle clickable area

* AAE-12839: Fixed lint issue
2023-03-03 17:44:02 +01:00
Marco Carrozzo 97253bba85 [HXOR-164] pr check job (#8337)
* HXOR-164 pr check job
2023-03-02 15:58:44 +01:00
Maurizio Cacace 1049de9825 fix release npm (#8334) 2023-03-01 15:00:35 +00:00
Maurizio Cacace 5d92a08f1e fix release npm (#8333) 2023-03-01 14:19:02 +00:00
Ardit Domi 8ab4e15daf Release of 6.0.0-A.3 (#8330) 2023-03-01 13:29:00 +00:00
Ardit Domi 99db02b9db Fix typo in ADF cli changelog command (#8328) 2023-02-28 15:52:13 +00:00
maurizio-cacace b156e866b2 quick fix username adf 2023-02-28 16:13:27 +01:00
maurizio-cacace aa6b5089bb quick fix branch 2023-02-28 15:58:04 +01:00
Maurizio Cacace fc224713f2 AAE-11918A - remove travis env var (#8312)
* AAE-11918 - travis_branch env removal

* AAE-11918 - travis_branch env removal

* event_type and travis_pull_request_branch  env removal

* e travis_build_dir, travis_build_number, travis_commit  env removal

* rename scripts path

* remove .travis file

* remove .travis file

* remove .travis file

* just a commit

* trying to fix e2e test

* fix e2e issue

* remove action load travis env

* with action travis env var load

* remove action travis load env vars

* remove action travis load env vars

* remove action travis load env vars

* last check

* test release flow in dry-run

* final check for review

* fix env variables

* fix env variables

* fix env variables

* remove devel flag

* revert renaming action facade

* git mv commit

* git mv commit
2023-02-28 15:36:22 +01:00
Ardit Domi 2bc74f012d Regenerate package lock with lock file version 1 (#8326) 2023-02-28 13:36:18 +00:00
Marco Carrozzo c890999c80 AAE-12860-build errors on cron
skip nxcache exchange between jobs, changed node modules cache key
2023-02-27 12:52:43 +01:00
Jatin Chugh 713320b01d [ACS-4270] Content overlaps other content at 400% zoom width equivalent issue fixed (#8264) 2023-02-23 21:19:12 +00:00
Aayush Rohila 2f3c9f1658 [ACS-4290] Changed filter icon to generic filter icon instead of the custom icon that was being used so far (#8237) 2023-02-23 21:18:02 +00:00
Aayush Rohila b5310f6b89 [ACS-4294] Added title to clear button and changed its icon type to clear from close (#8270)
* Added label to clear button and changed icon from close to clear

* Added the label to icon

* changed from property binding to attribute binding
2023-02-23 21:16:24 +00:00
AleksanderSklorz 7028910616 [ACS-4670] Removed View 0 More tags button when chip takes more than on… (#8307)
* ACS-4670 Removed View 0 More tags button when chip takes more than one line

* ACS-4670 Removed async and import reduction
2023-02-23 21:15:36 +00:00
Nikita Maliarchuk d26593e4d8 [ACS-4571] Move SecurityControlsService to ADF Content Lib (#8286)
* [ACS-4571] move SecurityControlsService to ADF content lib

* [ACS-4571] build fix

* [ACS-4571] build fix

* [ACS-4571] build fix

* [ACS-4571] resolved ts-ignore in unit-tests

* [ACS-4571] renamed AdminCcSecurityControlsServicesModule to SecurityControlsServiceModule

* [ACS-4571] return types added

* [ACS-4571] added docs for SecurityControlsService

* [ACS-4571] docs typo fix

* [ACS-4571] docs typo fix

* [ACS-4571] linting

* [ACS-4571] fixed failing test

* [ACS-4571] added missing unit tests

* [ACS-4571] linting

* [ACS-4571] set the default maxItems to UserPreferencesService.paginationSize

* [ACS-4571] changed createSecurityMarks() return type

* [ACS-4571] moved import line up

* [ACS-4571] finish loading status in some functions
2023-02-23 17:44:32 +00:00
Nikita Maliarchuk 25d85c7890 [ACS-4331] Add deleteTag method to tag service (#8126)
* ACS-4331 - added deleteTag method to tag service

* ACS-4331 - docs + unit test

* ACS-4331 - docs correction

* ACS-4331 - docs alignment fix

* ACS-4331 - applied small fixes

* ACS-4331 - updated docs

* [ACS-4331] removed extra spaces
2023-02-23 17:38:57 +00:00
Maurizio Vitale 2dccde9e6b publish on gh first (#8314) 2023-02-23 17:06:17 +00:00
Maurizio Vitale 7d02ea61a2 Publish the adf pkgs on gh pkg registry (#8313) 2023-02-23 16:33:48 +00:00
Alfresco BuildandVito Albano 33d7fca2cf Update branch for JS-API PR#657 (#8310)
* [ci:force][auto-commit] Update JS-API to 5.4.0-657 for branch: update-js-api originated from JS-API PR: 262

* Fixed package-lock

---------

Co-authored-by: Vito Albano <vito.albano@alfresco.com>
2023-02-23 15:20:33 +00:00
Ehsan Rezaei e7bb097be6 Updated datatable component docs (#8309) 2023-02-23 09:35:41 +01:00
Maurizio Vitaleandalfresco-build 90c8cb3add Cron - Separate cron e2e from upstream and for different repo (#8300)
* separate cron e2e from upstream and for different repo

* remove useless env

---------

Co-authored-by: alfresco-build <alfresco-build@hyland.com>
2023-02-22 14:30:29 +00:00
Aayush Rohila 8625a49df7 [ACS-4281] removed heading role from breadcrumbs. (#8278) 2023-02-22 14:20:09 +00:00
Maurizio Cacace d412579836 fix concurrency: only on PR workflow (#8306) 2023-02-22 15:05:16 +01:00
Vito Albano fbccbb5a98 Fixed error on custom style and added doc for BC (#8297) 2023-02-22 14:37:07 +01:00
dependabot[bot] bac4d786bc Bump eslint-plugin-jsdoc from 39.3.6 to 40.0.0 (#8293)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 39.3.6 to 40.0.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v39.3.6...v40.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 14:36:07 +01:00
dependabot[bot] 0d4049b333 Bump @editorjs/underline from 1.0.0 to 1.1.0 (#8292)
Bumps [@editorjs/underline](https://github.com/editor-js/underline) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/editor-js/underline/releases)
- [Commits](https://github.com/editor-js/underline/commits)

---
updated-dependencies:
- dependency-name: "@editorjs/underline"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 12:05:10 +01:00
Maurizio Cacace 69689876af HXOR-109 - add json checker in PR workflow (#8304)
* HXOR-109-json-checker version:2 test

* HXOR-109-json-checker version:2 test

* HXOR-109-json-checker version:2 test

* HXOR-109-json-checker version:1 test

* HXOR-109-json-checker version:1 test

* remove personal branch
2023-02-22 10:17:33 +01:00
Eugenio Romanoanddependabot[bot] 55ec15e174 Bump lint-staged from 13.1.0 to 13.1.2 (#8302)
* Bump lint-staged from 13.1.0 to 13.1.2

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 13.1.0 to 13.1.2.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v13.1.0...v13.1.2)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 10:14:59 +01:00
Marco Carrozzo c89714be83 AAE-12767 (#8299) 2023-02-22 10:00:08 +01:00
Alfresco Build 6e7b1808cc [ci:force][auto-commit] Update JS-API to 5.4.0-655 for branch: update-js-api originated from JS-API PR: 260 (#8276) 2023-02-21 15:49:01 +01:00
Jatin Chugh 8e3d5a9b9f [ACS-4326] Content was overlapping with other contents and some elements were missing when we zoom at 400% or 320px equivalent which is fixed (#8191)
* content was overlapping earlier and some of the elements were lost at 400% or 320px equivalent which is fixed now

* extra space removal

* content overlapping verified upto 400% zoom including all other zooms i.e 200% 300% etc

* length-zero-no-unit issue fixed - stylelint
2023-02-20 15:59:25 +00:00
AleksanderSklorz 02dcd4fb48 [ACS-4565] add search for categories tree in admin cc (#8279)
* ACS-4565 Added possibility to search categories

* ACS-4565 Fixed unit test

* ACS-4565 Fixed lint issue

* ACS-4565 Removed extra empty line

* ACS-4565 Replaced tags label with categories label in unit tests

* ACS-4565 Replaced tags label with categories label in doc
2023-02-20 15:53:22 +00:00
tomasz hanajandEhsan Rezaei 477d49eaee AAE-12578 added fn to save col width with preferences (#8296)
* AAE-12578 added fn to save col width with preferences Resolved Conflict

* AAE-12578 fixed formatting issues

* Empty-Commit

* AAE-12578 added resizing column feature to process list

* AAE-12578: Removed duplicate component entry

---------

Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com>
2023-02-20 16:11:16 +01:00
Maurizio Vitaleandalfresco-build b876102098 trigger upstream daily for hxp monorepo (#8298)
* trigger upstream daily for hxp monorepo

* add a develop test

* add a trigger

* Fix inputs

* [trigger adf]

* check value

* remove develop and merge

---------

Co-authored-by: alfresco-build <alfresco-build@hyland.com>
2023-02-20 14:36:04 +00:00
Ehsan Rezaei f76e10ff09 AAE-12274: Added support for column resizing to process and task lists (#8275)
* AAE-12274: Added support for column resizing to process and task lists

* AAE-12274: trigger travis
2023-02-20 14:42:25 +01:00
Ehsan Rezaei 4aa2e0eb87 AAE-12273: Implemented column resizing directive (#8272)
* AAE-12273: Implemented column resizing directive

* AAE-12273: Updated datatable component docs with column resizing feature

* AAE-12273: Fixed lint errors

* AAE-12273: Fixed spell check and lint errors

* AAE-12273: Fixing lint issues

* AAE-12273: Excluded failing e2e

* AAE-12273: Excluded more failing E2Es

* AAE-12273: Excluded more failing e2e

* AAE-12273: Code Improvement

* AAE-12273: Fixed datatable column flex item shrink

* AAE-12273: Fixed unit tests of column header resizing flex item shrink
2023-02-20 10:45:03 +01:00
Nikita Maliarchuk 058cd9e01c [AAE-10594] Run unit tests in headless mode (#8141)
* AAE-10594 - changed karma configs to run unit tests in headless mode

* AAE-10594 - removed commets

* [AAE-10594] fixed failing test
2023-02-17 11:08:16 +00:00
Eugenio Romano 2062d4744c add content-app option in update ADF workflow 2023-02-17 10:10:55 +00:00
alfresco-build 6cd6eefc92 export empty var 2023-02-16 15:10:16 +00:00
alfresco-build 561f8c38d4 being able to update only apps 2023-02-16 15:02:51 +00:00
Maurizio Cacace f8f6d145f3 AAE-12721-PR-closed-check (#8282) 2023-02-16 15:03:59 +01:00
tomasz hanaj c00c7643b1 AAE-12716 updated the typography documentation (#8277)
* AAE-12716 updated the typography documentation

* tests trigger
2023-02-16 13:38:34 +00:00
Eugenio Romano 05e2033633 [AAE-12675] update pdfjs version to fix sign problem (#8266)
* update pdfjs version to fix sign problem
2023-02-16 13:37:13 +00:00
Maurizio Vitaleandalfresco-build 384628197e Being able to upstream alfresco-apps or alfresco-applications (#8280)
* Being able to upstream alfresco-apps or alfresco-applications

* Use alpha as default

---------

Co-authored-by: alfresco-build <alfresco-build@hyland.com>
2023-02-16 13:18:47 +00:00
tomasz hanaj f18fd94085 [AAE-12668] refactored typography for themes (#8268)
* AAE-12668 refactored typography for themes

* AAE-12668 added missing spaces

* AAE-12668 removed parenthesis causing lint error
2023-02-16 00:46:41 +00:00
MichalKinas 41f135df0f [ACS-4634] Add ADF and JS API upstream to applications repo (#8274)
* [ACS-4634] Add ADF and JS API upstream to applications repo
2023-02-15 17:14:21 +01:00
Artur Cichoń 9014a85eda [AAE-12662] Get rid of multiplicity of "more than one element found for locator" warnings in tests caused by redundant click (#8273)
* [AAE-12662] Get rid of multiplicity of 'more than one element found for locator' warnings

* trigger travis
2023-02-15 16:11:06 +01:00
Diogo Bastos 96075ae456 [AAE-10779] User info component refactor (#8187)
* [AAE-10779] Update documentation

* [AAE-10779] Update demo-shell user-info component call

* [AAE-10779] Ecm user info component

* [AAE-10779] Identity user info component

* [AAE-10779] Bpm user info component

* [AAE-10779] Remove ecm-panel id references

* [AAE-10779] add stories and remove old component

* [AAE-10779] Update doc version and remove leftover html tag

* trigger travis

* [AAE-10779] rename ecm-user-info to content-user-info and bpm-user-info to process-user-info

* [AAE-10779] update docs

* [AAE-10779] fix demo-shell user-info

* [AAE-10779] add docs
2023-02-15 14:47:43 +00:00
Kasia Biernat c5710c0e61 [AAE-12134] unit test: Should be able to set number of columns for Header widget (#8267) 2023-02-15 11:35:15 +01:00
Alfresco Build 54bb8e24e5 [ci:force][auto-commit] Update JS-API to 5.4.0-643 for branch: update-js-api originated from JS-API PR: 643 (#8269) 2023-02-15 09:41:28 +00:00
swapnil-verma-glandsuneet-gupta 275d30b043 [ACS-4257] - Resolved a11y issue around jumping focus (#8168)
* ACS-4257 - Clicking on filter buttons on search results no longer switches focus from button to first element

* [ACS-4257] Added key listeners to open and close the menus to improve keyboard only usability

* ACS-4257 - Clicking on filter buttons on search results no longer switches focus from button to first element

* [ACS-4257] Added key listeners to open and close the menus to improve keyboard only usability

---------

Co-authored-by: suneet-gupta <suneet.gupta@hyland.com>
2023-02-14 22:01:12 +05:30
Eugenio Romano a1ec61f857 use one bucket variable to avoid: (#8263)
Can be miss configured with different buckets
We need to maintain two variables:
They seems to be used in different ways because one contain s3:// the other not
2023-02-14 15:26:26 +00:00
Alfresco Build 3b7ac02098 [ci:force][auto-commit] Update JS-API to 5.4.0-639 for branch: update-js-api originated from JS-API PR: 639 (#8255) 2023-02-14 14:48:58 +00:00
Denys Vuika 0ba076722f [ACS-3742] extra cfg support for shell navbar (#8256) 2023-02-14 14:22:56 +00:00
swapnil-verma-gl bcfa488940 [ACS-4252] Resolved accessibility issues around inherited permissions popover (#8222)
* [ACS-4252] Inherited permissions popover can now be opened and closed by enter key press. Added configurableFocusTrap to popover when it is opened.

* [ACS-4252] Removed console.log statement
2023-02-14 14:16:10 +00:00
MichalKinas b1311c6966 [ACS-4124] Display only as much tags as fits container in tag node list (#8247)
* [ACS-4124] Display only as much tags as fits container in tag node list

* [ACS-4124] CR fixes

* [ACS-4124] Add hidden, lint fixes, event propagation stopped
2023-02-14 11:04:07 +01:00
Jatin Chugh 6e99dd663a [ACS-4322] content overlap issue fixed at 400% zoom and close button which was earlier not visible at 400% zoom is visible now. (#8201)
* content overlap issue fixed at 400% zoom and close button which was earlier not visible at 400% zoom fixed

* adjusting the contents at 400% zoom by reducing the padding of mat-dialog-container

* linting change of zero-no-unit
2023-02-13 16:07:18 +05:30
Denys Vuika 5ce8553901 upgrade js-editor to drop cypress dependency (#8249)
* upgrade js-editor to drop cypress dependency

* upgrade caniuse-lite
2023-02-10 19:09:37 +00:00
Alfresco Build d2f9523053 [ci:force][auto-commit] Update JS-API to 5.4.0-620 for branch: update-js-api originated from JS-API PR: 620 (#8250) 2023-02-10 16:13:48 +00:00
Eugenio Romano 99015fee87 Update dependabot.yml (#8252) 2023-02-10 15:51:10 +00:00
Vito Albano e16bed611c [AAE-12260] - fixing form field mapping (#8243)
* [AAE-12260] - reverting form field mapping to fix wrong behaivour

* [AAE-12260] - fixed readonly radiobutton

* [AAE-12260] - fixed valid check for rest options when multiple choice is made

* [AAE-12260] - fixed name for array elements

* [ci skip]

* start ci
2023-02-10 13:16:08 +00:00
swapnil-verma-gl 5d2dddee28 [ACS-4254] Delete permissions button is now keyboard interact-able (enter key) (#8216) 2023-02-09 21:13:40 +00:00
Alfresco Build cae2d70637 [ci:force][auto-commit] Update JS-API to 5.4.0-619 for branch: update-js-api originated from JS-API PR: 619 (#8231) 2023-02-09 19:43:07 +00:00
Maurizio Cacace d873306c7c AAE-12192 - adding upload artifacts action (#8172)
* fix conflict

* AAE-12192 upload artifact action

* AAE-12192 upload artifact action

* AAE-12192 upload artifact action

* fix conflict

* skip check approved

* testing artifact upload

* testing artifact upload

* put devel flag again
2023-02-09 17:14:57 +01:00
AleksanderSklorz dd1feeec6e [ACS-4296] adding mapping in tags service (#8240)
* ACS-4296 Adding mapping in tags service

* ACS-4296 Correct lint issue

* ACS-4296 Excluded failing e2e

* ACS-4296 Trigger build

* ACS-4296 Trigger build

* ACS-4296 Reverted excluded tests
2023-02-08 22:19:16 +01:00
Eugenio Romano 08b4cc7939 Update rebase.yml 2023-02-08 16:55:20 +00:00
Amedeo Lepore 7c6ce0a5fe [AAE-12558] Fix load content-services translation resources (#8241)
* Fix load content-services tranlsation resources

* [ACS-4595] exclude failed e2es

* Reverted excluded tests
2023-02-08 17:20:44 +01:00
tomasz hanaj b9c53e586d AAE-12139 disabled start process btn when clicked and api call in pro… (#8160)
* AAE-12139 disabled start process btn when clicked and api call in progress

* AAE-12139 improved unit tests

* AAE-12139 added return type

* AAE-12139 removed ngOnInit from unit tests
2023-02-08 16:55:15 +01:00
Denys Vuika cd84be9712 Fix cli compilation (#8244)
* fix cli compilation

* [ci:force] latest libs

* [ci:force] delete old mergify config
2023-02-08 12:54:26 +01:00
Thomas Hunter 1a00249f6a [ADF-5514] Fix red dot still present after filter being cleared (#8181)
* [ADF-5514] Fix red dot still present after filter being cleared

* Add unit test

* Added statement clearing filter after each test so the ordering doesn't cause the unit test to fail
2023-02-08 09:18:14 +00:00
Amedeo Lepore 4c7e500ea8 Move search-input-text from content-services to core (#8239)
* Move search-input-text from content-services to core

* Move SearchConfigurationInterface into the content-services since is content related

* Rename search-configuration.interface file to search-component.interface

* Update import SearchConfigurationInterface from content-services

* Decouple SearchComponentInterface from js-api

* Decaplre NodeEntry instead using type any

* Remove comment

* Update component import to fix unit test

* Import SearchTextModule into core
2023-02-06 18:40:28 +01:00
Kasia Biernat c12b4284ef [AAE-12249] add description field (#8226) 2023-02-06 14:57:45 +01:00
Marco Carrozzo a0333b1d9c [AAE-12412] bot & schedule check fix 2023-02-03 16:35:29 +01:00
Marco Carrozzo 857f9bd2b4 [AAE-12532] remove pipelines from travis.yml (#8229) 2023-02-03 12:24:51 +01:00
Raviraj Bahirsheth e59176d393 [ACS-4274] Add role heading and aria level in header template (#8192)
* [ACS-4274] Add role heading and aria level in header template

* [ACS-4274] add link role

* Added header tag to title
2023-02-03 12:15:06 +05:30
Alfresco Build 49c6cb5ad3 [ci:force][auto-commit] Update JS-API to 5.4.0-566 for branch: update-js-api originated from JS-API PR: 566 (#8215) 2023-02-03 01:41:05 +00:00
Jatin Chugh 65e0c2405a [ACS-4051] Copy to clipboard button is now accessible through the keyboard (#8225) 2023-02-02 20:53:30 +00:00
Amedeo Lepore d50aa91922 Fix alfresco-apps upstream build 260285240: export search-text-input.model from content-services (#8227) 2023-02-02 18:39:22 +01:00
AleksanderSklorz e0dfc9a8e9 [ACS-4296] changes required after removing tags service from apps (#8223)
* ACS-4296 Added getCountersForTags and findTagByName functions to TagService

* ACS-4296 Import correct
2023-02-02 16:09:08 +00:00
Jatin Chugh 3f8293b64c Revert "[ACS-4051] Copy to clipboard button is now accessible through the keyboard enter earlier which was only accessible through mouse click (#8165)" (#8224)
This reverts commit 11c3a02acc.
2023-02-02 18:23:25 +05:30
Jatin Chugh e8a3d109d4 Label is not persistent as placeholder is being used as the only visual label for a text field (#8221) 2023-02-02 11:07:48 +05:30
4043d55fc4 [AAE-10778] Refactor Viewer (#7992)
* refactor version 1 many todo

* split render from viewer
move alfresco render in content pack

* refactor part 2

* test fixed

* fix doc

* [AAE-10778] Fix lint issues

* [AAE-10778] Fix lint issue: remove duplicated declaration

* [AAE-10778] Fix lint issue: use flex shorthand rule

* [AAE-10778] Fix FormService and WidgetComponent imports

* [AAE-10778] Fix import FormModel, FormService, FormFieldModel from adf-core

* [AAE-10778] Implement missing oninit, onchanges and ondestroy

* [AAE-10778] Replace adf-viewer with adf-alfresco-viewer, update escape command to close the viewer

* [AAE-10778] Fix unit test: fix the class name to match the 'adf-viewer-render.image-viewer-scaling' get from the appConfigService

* [AAE-10778] Fix image-viewer unit tests: replace ContentService with UrlService

* [AAE-10778] Fix unit test 'should if the extension change extension Change event be fired': emit file extension when the filename extension change

* [AAE-10778] Fix unit test: expect for internalFileName value instead of display-name id because the display name logic has been moved to the alfresco-viewer.component

* [AAE-10778] Fix unit test: remove display name it because the unknown display name value is no longer handled after refactoring

* [AAE-10778] Fix e2e: [C260096] Should the Viewer able to accept a customToolbar

* [AAE-10778] Update selector to fix e2e: '[C362265] Should the Viewer be able to download a previous version of a file'

* [AAE-10778] Update selector to fix e2e: '[C260038] Should display first page, toolbar and pagination when opening a .pdf file'

* fix aftrer rebase

* fix unit test

* [AAE-10778] Add adf viewer component that is node agnostic, show adf-alfresco-viewer or adf-viewer into file-view-component if blob or node are set

* [AAE-10778] Update viewer export path

* [AAE-10778] Update selectors since have been updated in the viewer component

* [AAE-10778] Call adf-viewer from alfresco-viewer, project adf-alfresco-viewer content to adf-viewer

* [AAE-10778] Remove full screen unit tests from alfresco-viewer component becase that logic is handled in the viewer.component

* [AAE-10778] Export toolbar custom actions component

* [AAE-10778] Pass mimeType as input to adf-viewer to update mime icon

* [AAE-10778] Remove e2e because the custom name behaviour has been removed from the file-view.component (https://github.com/Alfresco/alfresco-ng2-components/pull/7992/commits/9f21b6dc69e0cd044344b28c9e6c47d7a2d34f0c\#diff-4b438dc59784dce9eb7634cfeca6d8db61362966343bd3d6895a3edafdf4cfd5L129)

* [AAE-10778] Use two-way binding for showViewer change to fix C260100

* [AAE-10778] Update prefix css selectors to adf-viewer because are related to the adf-viewer component

* [AAE-10778] Update prefix css selectors to adf-viewer in the unit tests because are related to the adf-viewer component

* [AAE-10778] Update the output name to showViewerChange to navigate to primary url after closing the viewer

* [AAE-10778] Pass right and left sidebar template context to viewer component (fix C362242)

* [AAE-10778] Add allowFullScreen input to disable/enable full screen behaviour

* [AAE-10778] Handle loading visualization only inside the viewer-render component

* [AAE-10778] PDF viewer: fix mat-progress-bar is not showed during the pdf loading, center progress bar

* [AAE-10778] Remove isLoading from unit tests because no longer exists

* [AAE-10778] Remove viewerType input from adf-viewer, viewerType will be handled by viewer-render

* [AAE-10778] Remove console.log

* [AAE-10778] Remove check full screen button is not displayed on the media file because is not needed anymore, we don't need to check for the fullscreen button in the viewer component

* [AAE-10778] Check for node rendtion before to assign to urlFileContent and mimeType

* [AAE-10778] Process Services Cloud: register file-viewer widget that uses adf-alfresco-viewer component to display content from ACS

* [AAE-10778] Core: rename file-viewer widget into base-viewer, base-viewer no longer accept nodeId, but will accept urlFile and blobFile

* [AAE-10778] Process Services: register file-viewer widget that uses adf-alfresco-viewer component to display content from ACS

* [AAE-10778] Base viewer widget: show viewer only if there's a file input

* [AAE-10778] Viewer component: check for fileName when urlFile is provided as Input

* [AAE-10778] Viewer component documentation

* [AAE-10778] Update upgrade guide with viewer changes

* [AAE-10778] Fix double quote lint issue after rebase

---------

Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com>
Co-authored-by: Amedeo Lepore <amedeo.lepore85@gmail.com>
2023-02-01 17:25:43 +01:00
MichalKinas 52520bb61e [ACS-4364] Move tree component and categories service to ADF (#8156)
* [ACS-4364] Add tree component and categories service

* [ACS-4364] Add tree component to public api

* [ACS-4364] Refine tree unit tests

* [ACS-4364] Intergrate adding and deleting category

* [ACS-4364] Restyle load more button in tree component

* [ACS-4364] Missing semicolon

* [ACS-4364] Fix code styling

* [ACS-4364] Add docs for tree component and category service

* [ACS-4364] CR fixes

* [ACS-4364] Hide header row when displayName is not provided

* [ACS-4364] Docs fixes

* [ACS-4364] Add helper methods, code cleanup, unit tests for new methods

* [ACS-4364] Add missing semicolon
2023-02-01 15:42:40 +01:00
Jatin Chugh afb22bbc02 Revert "[ACS-4307] Label is not persistent as placeholder is being used as the only visual label for a text field (#8213)" (#8220)
This reverts commit a720edd2cf.
2023-02-01 16:16:50 +05:30
Maurizio Cacace ca49693bd6 AAE-12452 - Version published in NPM should have PR number id in the name not gh-run_id (#8218)
* AAE-11884 change tag sha action (#8118)

* AAE-12452 change npm id
2023-02-01 10:29:07 +01:00
Jatin Chugh a720edd2cf [ACS-4307] Label is not persistent as placeholder is being used as the only visual label for a text field (#8213)
* Label is not persistent as placeholder is being used as the only visual label for a text field so added title in from and to form fields

* review comments addressed
2023-02-01 14:28:10 +05:30
Diogo Bastos 1f450c0593 [AAE-11654] Fix default option being selectable when parent dropdown … (#8146)
* [AAE-11654] Fix default option being selectable when parent dropdown has no option selected

* [AAE-11654] Remove comment
2023-01-31 15:44:31 +00:00
Diogo Bastos 0ab39e28fd [AAE-12179] Remove process-services and content-services dependencies… (#8161)
* [AAE-12179] Remove process-services and content-services dependencies from core comment-list component

* [AAE-12179] Remove comment-list injection token

* [AAE-12179] remove token injection in task module and node module
2023-01-31 15:21:01 +00:00
Jatin Chugh 11c3a02acc [ACS-4051] Copy to clipboard button is now accessible through the keyboard enter earlier which was only accessible through mouse click (#8165)
* Copy to clipboard button is now accessible through the keyboard enter earlier which was only accessible through mouse click

* review comments addressed
2023-01-31 18:28:03 +05:30
Eugenio Romano 4f25426c25 [AAE-10777] Move in common service the real common services (#8203)
* Move in common service the real common services
remove Pagination js-api dependencies
move search-input component in content

* fix unit

* fix lint

* fix

* fix
2023-01-30 23:42:29 +00:00
Bartosz Sekula 89b79c9e45 [AAE-12146] Update getFeature typings (#8167)
* [AAE-11463] Update getFeature typings

* added tests
2023-01-30 19:51:47 +01:00
Marco Carrozzo 71e7fc0bf6 AAE-12412 alfresco-build user whitelisted (#8214) 2023-01-30 17:00:09 +00:00
Marco Carrozzo d6e8e7a3b3 AAE-12412 - dependabot actor check (#8210)
* AAE-12412

* AAE-12412
2023-01-30 15:34:38 +00:00
Alfresco Build 49237fee2d [ci:force][auto-commit] Update JS-API to 5.4.0-561 for branch: update-js-api originated from JS-API PR: 561 (#8190) 2023-01-28 17:18:16 +00:00
Marco Carrozzo 2d386c5890 AAE-12357: update unit test name (#8197) 2023-01-28 17:17:53 +00:00
Denys Vuika 2a45c1e7a3 fix the private access to the service variables (#8202)
* fix the private access to the service variables

* fix issues with unit tests
2023-01-28 17:17:09 +00:00
Nikita Maliarchuk b503773475 [ACS-4411] updateTag method added to tags service (#8200)
* [ACS-4411] added updateTag method to tags service & tests & docs

* [ACS-4411] docs formatting fix

* [ACS-4411] unit test fix
2023-01-27 18:06:33 +00:00
Jatin Chugh efb2558c3f Exclue snackbar from screen reader (#8199) 2023-01-27 21:35:26 +05:30
Rafal Szmit 266d3aa9b0 [AAE-11700] add process to simpleapp (#8198)
* [AAE-11700] add process to simpleapp

* trigger ci
2023-01-27 14:44:22 +01:00
Raviraj Bahirsheth b6cf14c844 [ACS-4263] Add 'aria-pressed' attribute for reset button on content viewer page (#8183) 2023-01-27 16:21:44 +05:30
Pablo Martinez Garcia 4a3bc568ad [AAE-11708] Fix changelog author filtering programatically (#8178) 2023-01-26 17:23:23 +01:00
Denys Vuika 42dbfe25ac fix gha warnings for outdated actions (#8194) 2023-01-26 15:58:44 +00:00
Ehsan Rezaei 2c248a611f [AAE-8306] - Managed to disable complete/claim/release buttons on first click (#8166)
* AAE-8306: Managed to disable complete/save/claim buttons on user click

* AAE-8306: reverted back save button disable

* AAE-8306: Managed to disable unclaim or release button on user click

* AAE-8306: Fixed formatting issues

* AAE-8306: Fixed formatting issues
2023-01-26 10:29:19 +01:00
Ehsan Rezaei 588ffe0fa0 AAE-10979: Added support to display html icon for mht file format (#8133)
* AAE-10979: Added support to display html icon for multipart related mime type

* AAE-10979: excluded failing e2e tests

* AAE-10979: Removed extra comma
2023-01-26 08:44:18 +01:00
Kasia Biernat 61a3e30c31 [AAE-12127] Test: The aspect added in config is displayed even if inc… (#8158)
* [AAE-12127] Test: The aspect added in config is displayed even if includeAll is set to false

* [AAE-12128][AAE-12129][AAE-12131] content metadata tests

* [AAE-12132][AAE-12133] content metadata exif tests

* [AAE-12130] Test: The aspects excluded in config are not displayed when includeAll is set to true
2023-01-25 10:11:37 +01:00
kritagya09 facc4f6b03 visible label are associated (#8176) 2023-01-25 09:04:04 +05:30
tomasz hanaj 3df6bcea26 AAE-12063 removed startCreatedProcess with relevant unit tests (#8131)
* AAE-12063 removed startCreatedProcess with relevant unit tests

* AAE-12063 removed createProcess with relevant unit tests
2023-01-24 17:26:04 +00:00
Ehsan Rezaei f02272ac68 AAE-12239: Managed to populate processInstanceId in service tasks filters when navigating from process instances view (#8174) 2023-01-24 17:25:34 +00:00
swapnil-verma-gl 1746fcf653 [ACS-4253] - Added aria-label to form element (#8170) 2023-01-24 17:07:11 +00:00
Alfresco Build 011f78ac43 [ci:force][auto-commit] Update JS-API to 5.4.0-550 for branch: update-js-api originated from JS-API PR: 550 (#8175) 2023-01-24 17:05:37 +00:00
Nikita Maliarchuk 46717cdd4b [ACS-4413] Upgrade CodeQL analysis to v2 (#8184) 2023-01-24 17:04:58 +00:00
Marco Carrozzo d71eb6291a AAE-12304 (#8186) 2023-01-23 15:48:10 +00:00
Marco Carrozzo ad9ffeb17d AAE-12304 (#8185) 2023-01-23 15:39:08 +00:00
Denys Vuika 44538015fa Release 6.0.0-A.2 (#8179)
* bump versions

* sync lib dependency versions

* audit and security reports

* release notes and changelog

* update release notes
2023-01-23 14:54:03 +01:00
Gloria Camino 4f7f5b0afb LOC-405 - Updated string in process-services-cloud in 16 languages for ADF 6.0 (#8177) 2023-01-21 15:37:34 +00:00
Artur Cichoń a5a9a1e45b [AAE-12135] Added process ui to subprocess app (#8173) 2023-01-19 17:19:47 +01:00
AleksanderSklorz 570bfb235c [ACA-4650] Use NodeCommentsService for ADF_COMMENTS_SERVICE (#8169)
* ACA-4650 Use NodeCommentsService for ADF_COMMENTS_SERVICE

* ACA-4650 Register services at component level
2023-01-19 14:48:55 +00:00
Alfresco Build 491d16f562 [ci:force][auto-commit] Update JS-API to 5.3.0-539 for branch: update-js-api originated from JS-API PR: 539 (#8163) 2023-01-19 10:22:53 +00:00
Maurizio Vitale eb8bad1f96 [AAE-12124] Use a function to remove js files (#8157)
* Use a function to remove js files

* try to check the asset
2023-01-17 14:47:50 +00:00
Alfresco Build 35721b0279 [ci:force][auto-commit] Update JS-API to 5.3.0-537 for branch: update-js-api originated from JS-API PR: 537 (#8148) 2023-01-17 14:13:57 +00:00
Rafal SzmitandMaurizio Cacace 59df5c661d enable e2e: C260040 (#8155)
* AAE-11884 change tag sha action (#8118)

* test execution

* test execution

* test execution

* test execution

* test execution

* fix buildLibs

* enable e2e: C260040

* fix C280007 to not depend on C280006

* trigger travis

Co-authored-by: Maurizio Cacace <Maurizio.Cacace@hyland.com>
2023-01-17 14:18:14 +01:00
Maurizio Cacace bd9127d960 AAE-11884 change tag sha action (#8118) 2023-01-16 17:17:22 +01:00
Denys Vuika 32e4564e14 Revert "[ACS-4051] Copy to clipboard button is now accessible through the keyboard enter earlier which was only accessible through mouse click (#8119)" (#8159)
This reverts commit 067d4e9369.
2023-01-16 15:57:47 +00:00
maurizio-cacace cc33c5dec1 adjust cron condition 2023-01-16 14:50:52 +01:00
Marco Carrozzo 6138c16f42 AAE-12123 TAG_NPM fix 2023-01-16 14:08:25 +01:00
Marco Carrozzo a412b45300 [AAE-12057] add description to unit tests 2023-01-16 14:07:37 +01:00
Maurizio Cacace b99a574f94 AAE-12046 - add pre-condition on approval (#8145)
* add pre-condition on approval

* adjustment

* add approval check

* devel check false

* devel check true

* restyling

* check with PR approved
2023-01-16 12:41:58 +01:00
AleksanderSklorz 616ae95c23 [ACS-4118] create a tag from tags list (#8143)
* ACS-4118 Update service for tags creation

* ACS-4118 Added unit tests and documentation

* ACS-4118 Added function in tag service for searching tags

* ACS-4118 Moved imported class to new line

* ACS-4118 Use UserPreferencesService for setting maxItems

* ACS-4118 Allow to specify maxItems

* ACS-4118 Added missing type

* ACS-4118 Increased js-api version
2023-01-16 09:50:30 +01:00
Marco Carrozzo bbee01a809 [AAE-12123] env var interpolation bugfix 2023-01-16 09:48:32 +01:00
jatin2008 067d4e9369 [ACS-4051] Copy to clipboard button is now accessible through the keyboard enter earlier which was only accessible through mouse click (#8119)
* 880196 CSV issue addressed

* unit test cases for clipboard directive
2023-01-13 17:18:01 +00:00
Alfresco Build db38ccda7a [ci:force][auto-commit] Update JS-API to 5.3.0-528 for branch: update-js-api originated from JS-API PR: 528 (#8142) 2023-01-13 16:32:42 +00:00
maurizio-cacace 8a2f73ec2f correct run 2023-01-13 14:53:04 +01:00
maurizio-cacace 55b146044e add pre-condition on approved PR 2023-01-13 14:49:46 +01:00
Tomasz Gnyp 73e1953418 [AAE-11989] Automate C586839 - Should be able to see the tooltip for form widget (#8138) 2023-01-12 16:44:19 +00:00
Marco Carrozzo 0b9fb82de2 force e2e only after build-libs, lint, unit-tests (#8136) 2023-01-12 16:22:55 +00:00
Maurizio Vitale f654fdf008 [AAE-1274] CI opt - Build only core/content/process storybook (#8139)
* Build only core/content/process storybook

* Use a target and run only if affected

* Do not run any storybook e2e
2023-01-12 16:18:38 +00:00
Amedeo Lepore 34e5508076 [AAE-11992] pass only the processInstanceId as Input instead of the entire taskFilter object (#8140) 2023-01-12 17:16:15 +01:00
Marco Carrozzoandalfresco-build 9d143cf945 AAE-12037 git-tag stage (#8124)
* tag release from master branch

* dry run message

Co-authored-by: alfresco-build <build@alfresco.com>
2023-01-12 11:31:08 +00:00
Maurizio Cacace fe65f7c201 AAE-11940 - fix upstream flow - update-project script and upstream trigger (#8125)
* fix conflict

* fix conflict

* fix conflict

* change pipe name

* change PR name env variable

* update PR title

* fix pr condition

* fix pr condition

* final check
2023-01-12 12:04:19 +01:00
Marco Carrozzo f6fd813a29 [AAE-12057] unit tests fix (#8130)
* [AAE-12057] unit tests & storybook rename
2023-01-12 11:23:22 +01:00
Amedeo Lepore 93edda2263 [AAE-11992] fix processInstanceId filter empty: set taskFilter as input to check for the processInstanceId changes to set the filter (#8128) 2023-01-12 09:54:10 +00:00
Alfresco Build 3ab91806c3 [ci:force][auto-commit] Update JS-API to 5.3.0-527 for branch: update-js-api originated from JS-API PR: 527 (#8129) 2023-01-12 09:42:45 +00:00
Maurizio Cacace 2bf1832fec AAE-11940 - npm err fix in trigger-adf workflow (#8122)
* fix npm err

* fix npm err

* fix conflict

* fix conflict

* check e2e execution

* fix conflict

* remove personal branch

* remove dry-run
2023-01-11 16:25:33 +00:00
Marco Carrozzo 9f77d4187b removed test tag (#8127) 2023-01-11 15:42:06 +00:00
maurizio-cacace e7624f031a enabling dry run 2023-01-11 12:19:29 +01:00
Alfresco Build c4dbda49eb [ci:force][auto-commit] Update JS-API to 5.3.0-525 for branch: update-js-api originated from JS-API PR: 525 (#8123) 2023-01-11 10:43:08 +00:00
AleksanderSklorzandtomek.hanaj 1791534ec6 [ACA-4647] Fix for e2e (#8104)
* [ci:force] ACA-4647 Fix for e2e

* ACA-4647 added missing parameters to unit test

* ACA-4647 added unit test to cover changes in startProcess

* ACA-4647 changed property name to fix build error

* ACA-4647 changed json to object to avoid lint errors

* ACA-4647 added missing semicolon

Co-authored-by: tomek.hanaj <tomek.hanaj@hyland.com>
2023-01-10 19:05:35 +00:00
Marco Carrozzo fd6f881eab [AAE-11817] release fix eval condition 2023-01-10 17:42:08 +01:00
dependabot[bot] 28b20afc16 build(deps-dev): bump dotenv from 10.0.0 to 16.0.3 (#8111)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 10.0.0 to 16.0.3.
- [Release notes](https://github.com/motdotla/dotenv/releases)
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v10.0.0...v16.0.3)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 16:34:43 +00:00
dependabot[bot] 01678a4fc7 build(deps-dev): bump @editorjs/inline-code from 1.3.1 to 1.4.0 (#8112)
Bumps [@editorjs/inline-code](https://github.com/editor-js/inline-code) from 1.3.1 to 1.4.0.
- [Release notes](https://github.com/editor-js/inline-code/releases)
- [Commits](https://github.com/editor-js/inline-code/commits)

---
updated-dependencies:
- dependency-name: "@editorjs/inline-code"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 16:31:59 +00:00
Maurizio Cacace a564176cb7 AAE-11940 - fix alpha adf test in cron workflow (#8113)
* AAE-11940 add env variable to alpha test

* fix adf test output

* fix adf test output

* fix module dependency

* fix update-project script output

* fix update-project script output

* fix update-project script output

* fix update-project script output

* fix update-project script output

* fix update-project script output

* fix update-project script output

* adding a dry-run mode for adf alpha test script

* add dry-run and set cron at 12:00

* change tag sha action

* change tag sha action

* change tag sha action

* remove check bundle from cron workflow

* adjust cron
2023-01-10 16:51:11 +01:00
Marco Carrozzo c2ff725f0c [AAE-11817]-release-fix (#8120)
* add correct release break
2023-01-10 16:30:18 +01:00
Alfresco Build 029caf9010 [ci:force][auto-commit] Update JS-API to 5.3.0-524 for branch: update-js-api originated from JS-API PR: 524 (#8117) 2023-01-10 15:17:21 +00:00
dependabot[bot] a6e35deb71 build(deps-dev): bump @editorjs/code from 2.7.0 to 2.8.0 (#8110)
Bumps [@editorjs/code](https://github.com/editor-js/code) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/editor-js/code/releases)
- [Commits](https://github.com/editor-js/code/commits)

---
updated-dependencies:
- dependency-name: "@editorjs/code"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 14:57:55 +00:00
dependabot[bot] a772c0a319 build(deps-dev): bump @playwright/test from 1.27.1 to 1.29.2 (#8109)
Bumps [@playwright/test](https://github.com/Microsoft/playwright) from 1.27.1 to 1.29.2.
- [Release notes](https://github.com/Microsoft/playwright/releases)
- [Commits](https://github.com/Microsoft/playwright/compare/v1.27.1...v1.29.2)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 14:57:35 +00:00
Marco Carrozzo 48cadfaa27 [AAE-11817] fix release pipeline
fix release pipeline
2023-01-10 15:40:08 +01:00
dependabot[bot] 8392e7cf7d build(deps-dev): bump karma from 6.4.0 to 6.4.1 (#8108)
Bumps [karma](https://github.com/karma-runner/karma) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.4.0...v6.4.1)

---
updated-dependencies:
- dependency-name: karma
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 14:34:22 +00:00
Pablo Martinez Garcia 0d294ce720 [AAE-11708] Use perl regexp instead of reverse grep in changelog (#8114) 2023-01-10 13:45:49 +01:00
Alfresco Build b14d701ca9 [ci:force][auto-commit] Update JS-API to 5.3.0-520 for branch: update-js-api originated from JS-API PR: 520 (#8106) 2023-01-09 14:46:08 +00:00
tomasz hanaj 10d49f4582 AAE-11810 added conditional class to indicate validation error (#8090) 2023-01-09 12:57:53 +01:00
maurizio-cacace 198c230086 change cron schedule for cron workflow 2023-01-05 17:29:54 +01:00
maurizio-cacace f5b78bd573 change cron schedule for cron workflow 2023-01-05 16:51:38 +01:00
Maurizio Cacace 5e11eaf609 AAE-11910 - cron schedule fix (#8105)
* fix cron workflow

* fix cron workflow

* fix cron workflow
2023-01-05 16:08:26 +01:00
Maurizio Cacace 80e4434f8a AAE-11910 - setup cron pipe to trigger alpha_adf and add a workflow_dispatch to execute manually adf tests (#8100)
* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch

* AAE-11910 - add cron and workflow dispatch
2023-01-05 11:36:11 +01:00
Eugenio RomanoandHiroshi Shirosaki ec2f349465 [#7902] Fix to enable cmaps with pdfjs (#8101)
pdfjs works fine with Japanese characters with this options.

Co-authored-by: Hiroshi Shirosaki <h.shirosaki@gmail.com>
2023-01-05 08:52:40 +00:00
Alfresco Build 14c6e6fa1f [ci:force][auto-commit] Update JS-API to 5.3.0-514 for branch: update-js-api originated from JS-API PR: 514 (#8103) 2023-01-05 08:52:29 +00:00
Eugenio Romano f48cd30756 [AE-11486] move shared link in content and deprecate unused dialog service (#8091)
* move shared link in content and deprecate unused dialog service

* Update public-api.ts

* fix

* fix demoshell
2023-01-04 22:44:05 +01:00
Eugenio Romano a0aab47090 export identity-group.service (#8099) 2023-01-04 16:04:57 +00:00
Eugenio Romano 6f6af8cd4e [AE-11486] remove unused comment services and improve doc (#8092)
* remove unused comment services and improve doc

* fix after review

* fix unit test

* fix stories
2023-01-04 14:52:32 +00:00
Maurizio Cacace aa37cad995 AAE-11910 - add a workflow_dispatch to execute manually adf tests from gha GUI (#8098)
* add workflow_dispatch on adf workflow

* add workflow_dispatch on adf workflow
2023-01-04 15:51:31 +01:00
Eugenio Romano b9e0221ca2 [AE-11486] move lock and favorite (#8089)
* [ci:force] move lock and favorite

* fix
2023-01-04 14:24:42 +00:00
Marco Carrozzo f7fdc5c92a [AAE-11916] gh secrets fix 2023-01-04 14:25:18 +01:00
Alfresco Build 8a56a6d1fb [ci:force][auto-commit] Update JS-API to 5.3.0-511 for branch: update-js-api originated from JS-API PR: 511 (#8095) 2023-01-04 10:31:27 +00:00
dependabot[bot] 71c4e718b0 Bump @typescript-eslint/typescript-estree from 5.42.1 to 5.47.1 (#8084)
Bumps [@typescript-eslint/typescript-estree](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-estree) from 5.42.1 to 5.47.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-estree/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.47.1/packages/typescript-estree)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/typescript-estree"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-04 09:06:43 +00:00
dependabot[bot] f932337b8c build(deps): bump json5 from 1.0.1 to 1.0.2 (#8094)
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-04 09:06:13 +00:00
dependabot[bot] 46d7721aaf Bump @editorjs/list from 1.7.0 to 1.8.0 (#8080)
Bumps [@editorjs/list](https://github.com/editor-js/list) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/editor-js/list/releases)
- [Commits](https://github.com/editor-js/list/commits)

---
updated-dependencies:
- dependency-name: "@editorjs/list"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-04 09:06:00 +00:00
Artur Cichoń 0d82ebccfa [AAE-11913] Fix name of simpleapp (#8096) 2023-01-04 09:57:56 +01:00
dependabot[bot] e534763475 Bump jasmine-reporters from 2.5.0 to 2.5.2 (#8079)
Bumps [jasmine-reporters](https://github.com/larrymyers/jasmine-reporters) from 2.5.0 to 2.5.2.
- [Release notes](https://github.com/larrymyers/jasmine-reporters/releases)
- [Commits](https://github.com/larrymyers/jasmine-reporters/commits)

---
updated-dependencies:
- dependency-name: jasmine-reporters
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-04 08:40:14 +00:00
Artur Cichoń 91d511dee5 [AAE-10994] Added task-executor forms and process to simpleapp (#8066)
* [AAE-10994] Added task-executor forms and process to simpleapp

* [AAE-10994] Added picker user task
2023-01-04 09:09:33 +01:00
Eugenio Romano 4da74f1c07 [AAE-10769] remove alfresco deps from datatable (#8045)
* remove alfresco dep

* [ci:force] move data-column in datatable

* new datatable service

* doc

* required changes

* fix

* fix
2023-01-04 08:08:03 +00:00
Marco Carrozzo 85429b4cf1 [AAE-11882] demoshell fix; pipeline bugfix (#8093)
* demoshell regr fix; s3 cache on s3; setup chrome; e2e headless fix
2023-01-03 17:07:39 +01:00
Alfresco Build 0560197898 [ci:force][auto-commit] Update JS-API to 5.3.0-509 for branch: update-js-api originated from JS-API PR: 509 (#8078) 2023-01-03 16:01:48 +00:00
dependabot[bot] eeda06131b Bump @typescript-eslint/eslint-plugin from 5.43.0 to 5.47.0 (#8081)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.43.0 to 5.47.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.47.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-03 13:35:29 +00:00
Eugenio Romano df340f2bb2 [AE-11486] move search service in alfresco content (#8086)
* [ci:force] move search service in alfresco content

* fix

* fix md

* fix dep

* fix demo shell

* fix lint
2023-01-03 11:20:59 +00:00
Eugenio Romano b48248fae7 move app process service in process-service (#8087) 2023-01-02 23:36:38 +01:00
Eugenio Romano 00dfd7c5d9 Update doc (#8085) 2023-01-02 14:00:01 +00:00
Eugenio Romano 093b1e8a67 [AAE-11891] move auth in auth folder (#8076)
move auth and common in a separate folder
2023-01-02 13:40:28 +00:00
Eugenio Romano ae126475f7 [AAE-11486] move NodeUdpdate in nodeapiservice (#8077)
* move NodeUdpdate in nodeapiservice

* fix

* build fix

* Update name-column.component.ts

* Update viewer.component.spec.ts
2022-12-29 17:09:02 +00:00
Alfresco Build b0561a2453 [ci:force][auto-commit] Update JS-API to 5.3.0-492 for branch: update-js-api originated from JS-API PR: 492 (#8069) 2022-12-23 09:16:36 +00:00
Denys Vuika 1855d8899d [AAE-11889] move sites service to content lib (#8073)
* move sites service to content lib

* update migration guide

* update imports
2022-12-22 15:14:35 +00:00
Rafal Szmit 0cb21d61a8 [AAE-11274] remove unnecessary var export (#8074)
* [AAE-11274] remove unnecessary var export

* trigger travis

* trigger travis [affected:*]
2022-12-22 16:00:00 +01:00
Denys Vuika 310b04919e [AAE-10315] fix karma 404 for images and certain errors in the Core unit tests (#8072)
* fix user info image warnings

* fix login errors in unit tests

* fix tooltip card warnings
2022-12-22 12:56:43 +00:00
tomasz hanaj bc7c052059 [AAE-11740] replaced api for starting process (#8052)
* AAE-11740 replaced api for starting process

* AAE-11740 adjusted tests due to replaced start process api

* AAE-11740 merged similar tests for starting process

* AAE-11740 added condition for disabled start process button
2022-12-22 09:07:54 +01:00
Denys Vuika 2207156f3f [AAE-10319] unit test fixes for content-services lib 2022-12-21 15:39:24 +00:00
Eugenio RomanoandKasia Biernat a535af667b [AAE-10773] Make Form core process agonostic (#8032)
* move form list in a component

* move things in the right place

* move last pice in the right place

* move things in the right place

* move people and group in the right place

* move radio and typehead
form service start remove responsibilities

* remove model service and editor service from formService

* move dropdwon in process-service
finish remove service from form service

* fix some wrong import

* move activiti

* fix double quote imports

* move dynamic table

* fix shell

* move unit test

* [ci:force] fix lint issues

* fix build and some unit test

* fix process spec type spy problems [ci:foce]

* fix

* fix broken tests

* fix lint issues

* fix cloud dropdown test

* cleanup process-service-cloud tests

* fix people process

* improve e2e test

Co-authored-by: Kasia Biernat <kasia.biernat@hyland.com>
2022-12-21 15:12:38 +00:00
Diogo Bastos eb27d38eba [AAE-11588] Send Process Variables as a post body in admin process instances (#8067)
* [AAE-11588] Send variable keys as a post body in admin process instances

* [AAE-11588] Add tests

* [AAE-11588] Add async/await functionality to test suite

* [AEE-11588] Improve logic in service and added test cases
2022-12-21 09:39:58 +00:00
dependabot[bot] 0c4d48e2e9 Bump webpack-cli from 4.10.0 to 5.0.1 (#8060)
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.10.0 to 5.0.1.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.10.0...webpack-cli@5.0.1)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 19:25:34 +00:00
dependabot[bot] 5af3eb821f Bump @apollo/client from 3.6.9 to 3.7.2 (#8061)
Bumps [@apollo/client](https://github.com/apollographql/apollo-client) from 3.6.9 to 3.7.2.
- [Release notes](https://github.com/apollographql/apollo-client/releases)
- [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-client/compare/v3.6.9...v3.7.2)

---
updated-dependencies:
- dependency-name: "@apollo/client"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 17:45:41 +00:00
Marco Carrozzo d29ec85b19 [AAE-11822] fix demoshell and gh act. release
* fixed release

* remove demoshell build from job:build
2022-12-20 17:03:47 +01:00
dependabot[bot] d6e97a672c Bump tslib from 2.4.0 to 2.4.1 (#8062)
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.4.0...2.4.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 16:00:52 +00:00
dependabot[bot] 169e59e4ce Bump eslint from 8.20.0 to 8.30.0 (#8063)
Bumps [eslint](https://github.com/eslint/eslint) from 8.20.0 to 8.30.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.20.0...v8.30.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 15:14:28 +00:00
Alfresco Build e3a785583c [ci:force][auto-commit] Update JS-API to 5.3.0-483 for branch: update-js-api originated from JS-API PR: 483 (#8056) 2022-12-20 13:41:30 +00:00
dependabot[bot] 57ea636d3a Bump @editorjs/editorjs from 2.25.0 to 2.26.4 (#8064)
Bumps [@editorjs/editorjs](https://github.com/codex-team/editor.js) from 2.25.0 to 2.26.4.
- [Release notes](https://github.com/codex-team/editor.js/releases)
- [Changelog](https://github.com/codex-team/editor.js/blob/next/docs/CHANGELOG.md)
- [Commits](https://github.com/codex-team/editor.js/compare/v2.25.0...v2.26.4)

---
updated-dependencies:
- dependency-name: "@editorjs/editorjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-20 13:40:36 +00:00
Kasia Biernat 266d30041a [AAE-11727] add suggested karma test explorer plugin (#8068) 2022-12-20 14:32:53 +01:00
Diogo BastosandAmedeo Lepore 3864aaf9cb [AAE-10768] Make the comments reusable (#7983)
* [AAE-10768] Refactor core comments

* [AAE-10768] Add models export in core comments refactor

* [AAE-10768] Add comments implementation inside process-services package

* [AAE-10768] Add task comments module to process module

* [AAE-10768] Add node comments module to content services

* [AAE-10768] Add id check to getComments and addComments in adf-core comments component

* [AAE-10768] Remove unused service files in process-comments module

* [AAE-10768] Remove unused service files in process-comments module

* [AAE-10768] Add testing logic to spec files

* [AAE-10768] Add comments components readme

* [AAE-10768] Add a mock service to inject into the comment stories file

* [AAE-10768] Add mock data for comments stories

* [AAE-10768] Add mock service to inject into comments stories

* [AAE-10768] Rename mock service and mock data

* [AAE-10768] change taskId with id into the comments test because taskId is never used

* [AAE-10768] Resolve pr suggestions

* [AAE-10768] Resolve task-comments pr suggestions

* [AAE-10768] Resolve comments pr suggestions

* [AAE-10768] Fix merge error in comments.component.html

* [AAE-10768] Add missing markdown files

* [AAE-10768] Remove events from md files

* [AAE-10768] Update upgrade50-60.md with renamed input property

Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com>
2022-12-20 11:51:54 +01:00
Eugenio Romano 9077572199 [AAE-10776] NodeNameTooltipPipe moved in content service pkg (#8048)
* NodeNameTooltipPipe moved in content service pkg

* [ci:force] fix lint and build
2022-12-19 16:17:02 +00:00
Marco Carrozzo 7fa5c0faa6 [AAE-11843]-fix-before_install_script (#8059)
* [AAE-11843]-fix-before_script

* [ci:force]
2022-12-19 15:10:00 +01:00
Marco Carrozzo bbf5174b1d [ci:force] 2022-12-19 14:51:13 +01:00
tomasz hanaj d5592b9e01 AAE-11714 changed max-width for cropped image (#8054) 2022-12-16 16:50:21 +00:00
Diogo Bastos 02578dcdc5 [AAE-10767] Separate core card view logic from content-services and add documentation to reflect the changes (#7952) 2022-12-16 16:28:36 +01:00
Marco Carrozzo 8d074e8b33 [AAE-11822] fix demoshell (#8057)
* fix: build demoshell

* increased timeout on release

* fix release pipe
2022-12-16 11:47:37 +01:00
Marco Carrozzo a73526ef8a [AAE-11822] fix/build-demoshell (#8055)
* [AAE-11822] fix: build demoshell
2022-12-16 09:46:52 +01:00
Denys Vuika 280684c3ab [AAE-10774] move host settings to demo shell (#8051)
* move host settings to demo shell

* [ci:force] empty commit
2022-12-16 08:46:23 +00:00
Alfresco Build d27a3476f7 [ci:force][auto-commit] Update JS-API to 5.3.0-477 for branch: update-js-api originated from JS-API PR: 477 (#8053) 2022-12-15 09:40:50 +00:00
Marco Carrozzo 70e6d642f3 [AAE-7986] Migrate ADF from Travis to Github actions (#8050)
* rebased

* [ci:force]
2022-12-15 09:27:04 +00:00
dependabot[bot] 812352ecdc Bump lint-staged from 12.5.0 to 13.1.0 (#8047)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 12.5.0 to 13.1.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v12.5.0...v13.1.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-14 11:07:03 +00:00
Alfresco Build 7f24d72ecc [ci:force][auto-commit] Update JS-API to 5.3.0-476 for branch: update-js-api originated from JS-API PR: 476 (#8049) 2022-12-14 09:34:54 +00:00
Eugenio Romano 8efbd70679 [AAE-10775] remove js-api dependency for pagination (#8046)
* remove js-api dependency for pagination

* fix lint
2022-12-13 16:24:14 +00:00
Denys Vuika d476f16a0d [AAE-11763] cleanup ADF root package config (#8044)
* cleanup ADF root package config

* remove unused scripts

* remove markdownlint from the root
2022-12-13 14:48:48 +00:00
dependabot[bot] d42f332d33 Bump tsconfig-paths from 4.1.0 to 4.1.1 (#8030)
Bumps [tsconfig-paths](https://github.com/dividab/tsconfig-paths) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/dividab/tsconfig-paths/releases)
- [Changelog](https://github.com/dividab/tsconfig-paths/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dividab/tsconfig-paths/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: tsconfig-paths
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-13 13:51:57 +00:00
Thomas Hunter 69f0419ffd [ADF-5508] Fix half hidden checkmark icon (#8039)
* [ADF-5508] Fix half hidden checkmark in demoshell

* Restricted the css scope a little more to avoid any potential breaking changes

* Added missing semi-colon
2022-12-13 13:13:12 +00:00
dependabot[bot] 17f469bef0 Bump concurrently from 7.3.0 to 7.6.0 (#8029)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.3.0 to 7.6.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.3.0...v7.6.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-13 13:00:11 +00:00
dependabot[bot] 38520c9e2b Bump @editorjs/header from 2.6.2 to 2.7.0 (#8026)
Bumps [@editorjs/header](https://github.com/editor-js/header) from 2.6.2 to 2.7.0.
- [Release notes](https://github.com/editor-js/header/releases)
- [Commits](https://github.com/editor-js/header/commits)

---
updated-dependencies:
- dependency-name: "@editorjs/header"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-13 11:53:43 +00:00
Kasia Biernat f094ace1c7 [AAE-11695] add breaking changes notes (#8043) 2022-12-13 12:03:46 +01:00
AleksanderSklorz c1cffa9cfb [ACS-3757] returning focus to element from which they were opened (#8034)
* ACS-3757 Focus first focusable element in modals and allow to autofocus specific element after modal closing

* ACS-3757 Added possibility for autofocus after closing some modals, marking datatable row as source of context menu, fixing tests

* ACS-3757 Run lint

* ACS-3757 Updated documentation

* ACS-3757 Added unit tests

* ACS-3757 Replaced toHaveBeenCalledWith with toHaveBeenCalled and removed testing all falsy
2022-12-13 10:55:46 +00:00
tomasz hanaj ef278bde79 AAE-11739 removed unnecessary api call when cancelling not started pr… (#8041)
* AAE-11739 removed unnecessary api call when cancelling not started process

* AAE-11739 added unit tests for cancelling process

* AAE-11739 fixed erroneous test

* AAE-11739 fix for test related error thrown in afterAll

* AAE-11739 added proper way to test wheter button exist
2022-12-13 11:39:31 +01:00
Alfresco Build 0cb1c502c0 [ci:force][auto-commit] Update JS-API to 5.3.0-475 for branch: update-js-api originated from JS-API PR: 475 (#8042) 2022-12-13 08:58:50 +00:00
Kasia Biernat 5edc1186a4 [AAE-11695] move version compatibility directive and service (#8038)
* [AAE-11695] move version compatibility directive

* [AAE-11695] remove spare readme section
2022-12-12 11:19:31 +01:00
dependabot[bot] 8425831c5d Bump decode-uri-component from 0.2.0 to 0.2.2 (#8031)
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-11 11:27:31 +00:00
dependabot[bot] 914fc66c5a Bump cropperjs from 1.5.12 to 1.5.13 (#8028)
Bumps [cropperjs](https://github.com/fengyuanchen/cropperjs) from 1.5.12 to 1.5.13.
- [Release notes](https://github.com/fengyuanchen/cropperjs/releases)
- [Changelog](https://github.com/fengyuanchen/cropperjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fengyuanchen/cropperjs/compare/v1.5.12...v1.5.13)

---
updated-dependencies:
- dependency-name: cropperjs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-11 11:27:22 +00:00
Tomasz Gnyp d89e3c8065 [AAE-11653] Automate part of ADF Form Widgets (#8035)
* [AAE-11653] Automate part of ADF Form Widgets

* [AAE-11653] visibility condition unit test for readonly text widget
2022-12-10 03:39:30 +01:00
Alfresco Build a84a89e8ec [ci:force][auto-commit] Update JS-API to 5.3.0-466 for branch: update-js-api originated from JS-API PR: 466 (#8024) 2022-12-09 14:08:05 +00:00
Bartosz Sekuła c567054ce5 [AAE-11418] add missing rules prop to NavBar interfaces (#8040) 2022-12-08 12:43:28 +00:00
rbahirsheth 5a557f999a [ACS-3553] Fix process page accessibility from csv(880320,880281) (#8037) 2022-12-08 11:35:20 +05:30
Denys Vuika 95880dd5f8 [AAE-11664] Release 6.0.0-A.1 (#8033)
* bump versions

* cleanup lock files

* release reports

* upgrade the release script
2022-12-06 10:38:58 +00:00
Gloria Camino f11bf262f8 LOC-402 - Updated localized UI in 16 languages for ADF 6.0 (#8023) 2022-12-01 16:23:01 +00:00
Ardit Domi e343de5c13 [AAE-11480] - Fix required error is displayed for a non required drop… (#8021)
* [AAE-11480] - Fix required error is displayed for a non required dropdown

* Use alias for async pipe instead of subscribing 2 times
2022-12-01 14:11:20 +00:00
Alfresco Build e5489363a1 [ci:force][auto-commit] Update JS-API to 5.2.0-446 for branch: update-js-api originated from JS-API PR: 446 (#8022) 2022-12-01 09:03:29 +00:00
Alfresco Build 6e9234af4f [ci:force][auto-commit] Update JS-API to 5.2.0-445 for branch: update-js-api originated from JS-API PR: 445 (#8020) 2022-11-30 09:35:25 +00:00
Pablo Martinez Garcia 70c6a1095a [AAE-11501] Fix simpleapp dropdown option ids after changing validation (#8019) 2022-11-29 17:19:42 +01:00
97e6129b6e Update branch for JS-API PR#438 (#8010)
* [ci:force][auto-commit] Update JS-API to 5.2.0-443 for branch: update-js-api originated from JS-API PR: 443

* [ADF-5507] Fix failing unit tests for auth service

* remove unnecessary method

Co-authored-by: Michal Kinas <michal.kinas@hyland.com>
Co-authored-by: eromano <eugenioromano16@gmail.com>
2022-11-29 12:39:50 +00:00
Denys Vuika 740e3cef9b Revert "[ACS-3553] Fix process page accessibility from csv(880320,880281) (#8017)" (#8018)
This reverts commit d7ad1f9ad9.
2022-11-29 11:27:07 +00:00
rbahirsheth d7ad1f9ad9 [ACS-3553] Fix process page accessibility from csv(880320,880281) (#8017)
* [ACS-3553] Fix process page accessibility from csv(880320,880281)

* [ACS-3553] Addressed comment
2022-11-29 10:38:19 +00:00
arohilaGL dea5f21894 [ACS-4050]critical issues from csv 880282, 880449, 880280 (#8005)
* title for adfSelectProcessDropdown button, issue 880282

* 880449, 880280 fix

* review comments fix

* review comments
2022-11-29 09:34:54 +00:00
MichalKinas ec6ede4fc5 [ACS-4087] Restore missing close button for manage version dialog (#8016) 2022-11-29 09:49:57 +01:00
1324 changed files with 45244 additions and 35347 deletions
-1
View File
@@ -17,7 +17,6 @@ demo-shell/resources/
/angular.json
/desktop.ini
/cspell.json
/.travis.yml
/CODE_OF_CONDUCT.md
/.stylelintignore
/ALFRESCOCORS.md
+8
View File
@@ -13,6 +13,14 @@ trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[*.yaml]
indent_style = space
indent_size = 2
[*.yml]
indent_style = space
indent_size = 2
[*.md]
max_line_length = off
trim_trailing_whitespace = false
+83
View File
@@ -0,0 +1,83 @@
name: "before-install"
description: "launch before_install.sh and then parse env vars"
inputs:
act:
description: 'enable act debug'
required: false
type: boolean
default: 'false'
runs:
using: "composite"
steps:
- name: Before install
if: ${{ ! env.ACT }}
shell: bash
run: |
pip install --user --quiet awscli
- name: base vars
shell: bash
run: |
{
echo "GIT_HASH=$(git rev-parse HEAD)";
echo "BASE_HASH=$(git merge-base origin/${GITHUB_BASE_REF} HEAD)";
echo "HEAD_HASH=HEAD";
echo "HEAD_COMMIT_HASH=${GH_COMMIT}";
echo "NX_CALCULATION_FLAGS=--all";
echo "BUILD_OPTS=--configuration production";
echo CI_FORCE_RUN=false;
echo NODE_VERSION=$(node -v);
} >> $GITHUB_ENV
- name: affected:* flag parser
shell: bash
if: ${{ contains(github.event.head_commit.message , '[affected:*]') }}
run: |
echo "Setting up CI to run with commit flag [affected:*] flag."
echo "BREAK_ACTION=true" >> $GITHUB_ENV
- name: ci:force flag parser
shell: bash
if: ${{ contains(github.event.head_commit.message , '[ci:force]') }}
run: |
echo "Forcing CI to run with commit flag [ci:force]."
echo CI_FORCE_RUN=true >> $GITHUB_ENV
echo "BREAK_ACTION=true" >> $GITHUB_ENV
- name: PULL_REQUEST event
if: ${{ env.BREAK_ACTION == false && github.event_name == 'pull_request' && !github.event.pull_request.merged }}
shell: bash
run: |
echo "Setting up CI flags for Pull Request event"
NX_CALCULATION_FLAGS="--base=origin/${GITHUB_BASE_REF} --head=$HEAD_HASH"
{
echo "NX_CALCULATION_FLAGS=$NX_CALCULATION_FLAGS";
echo "BASE_HASH=origin/${GITHUB_BASE_REF}";
echo "BREAK_ACTION=true";
} >> $GITHUB_ENV
- name: RELEASE on master/develop patch branch
if: ${{ env.BREAK_ACTION == false && github.event.pull_request.merged }}
shell: bash
run: |
if [[ "${{ github.ref_name }}" =~ ^master(-patch.*)?$ ]]; then
# into master(-patch*)
echo "Setting up CI flags for Push on master patch"
elif [[ "${{ github.ref_name }}" =~ ^develop-patch.*$ ]]; then
# into develop-patch*
echo "Setting up CI flags for Push develop patch"
else
echo "Setting up CI flags for Push on develop branch"
base=$(git describe --tags $(git rev-list --tags --max-count=1))
echo "NX_CALCULATION_FLAGS=--base=$base --head=$HEAD_HASH" >> $GITHUB_ENV
fi
echo "BREAK_ACTION=true" >> $GITHUB_ENV
- name: SCHEDULE event
if: ${{ github.event_name == 'schedule' }}
shell: bash
env:
EV_NAME: ${{ github.event_name }}
run: |
echo "Setting up CI to run on SCHEDULE"
echo "NX_CALCULATION_FLAGS=--all" >> $GITHUB_ENV
@@ -0,0 +1,27 @@
name: "Download build artifacts"
description: "Download build artifacts"
runs:
using: "composite"
steps:
- name: download and extract artifacts from s3
shell: bash
env:
REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}"
run: |
packages=( dist nxcache node_modules )
for i in "${packages[@]}"; do
time aws s3 cp --no-progress s3://${S3_BUILD_BUCKET_SHORT_NAME}/${REMOTE_PATH}/$i.tar.gz $i.tar.gz
du -h $i.tar.gz
time tar xzf $i.tar.gz
done
- name: show files
shell: bash
run: |
pwd
ls -lha
echo "====DIST===="
find dist -maxdepth 1 -type d
echo "====NXCACHE===="
find nxcache -maxdepth 1 -type d
echo "====ADF===="
find node_modules/@alfresco/ -maxdepth 1 -type d
+172
View File
@@ -0,0 +1,172 @@
name: "e2e"
description: "e2e"
inputs:
e2e-test-id:
description: "Test id"
required: true
e2e-test-folder:
description: "Test folder"
required: true
e2e-test-provider:
description: "Test provider"
required: true
e2e-test-auth:
description: "Test auth"
required: true
output:
description: "Output path"
required: true
check-cs-env:
required: true
description: check cs env
default: "false"
check-ps-env:
required: true
description: check ps env
default: "false"
check-external-cs-env:
required: true
description: check external cs env
default: "false"
check-ps-cloud-env:
required: true
description: check ps cloud env
default: "false"
e2e-tar-name: #
required: false
default: e2e.tar.gz
apa-proxy: #
description: "proxy host"
required: true
runs:
using: "composite"
steps:
- name: use APA as PROXY host if apa-proxy is set
shell: bash
run: |
if [[ -n "${{ inputs.apa-proxy }}" ]]; then
echo "APA proxy set."
echo "PROXY_HOST_BPM=${E2E_HOST_APA}" >> $GITHUB_ENV
fi
- name: install aws cli
shell: bash
run: pip install awscli
- name: download smartrunner test results from s3 bucket if they exist
shell: bash
env:
REMOTE_PATH: smart-runner/${{ github.run_id}}/${{ inputs.e2e-test-folder }}-${{ inputs.e2e-test-id}}/e2e.tar.gz
run: |
set -u;
mkdir -p "${SMART_RUNNER_PATH}"
if [[ $(aws s3 ls "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}" > /dev/null; echo $?) -eq 0 ]]; then
echo "downloading test files"
aws s3 cp "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}" .;
tar xzf ${{ inputs.e2e-tar-name }};
else
echo "nothing to download";
fi
- name: check EXTERNAL-CS is UP
shell: bash
if: ${{ inputs.check-external-cs-env == 'true' }}
run: |
set -u;
./node_modules/@alfresco/adf-cli/bin/adf-cli \
check-cs-env \
--host "$EXTERNAL_ACS_HOST" \
-u "$E2E_USERNAME" \
-p "$E2E_PASSWORD" || exit 1
- name: Check CS is UP
shell: bash
if: ${{ inputs.check-cs-env == 'true' }}
run: |
set -u;
./node_modules/@alfresco/adf-cli/bin/adf-cli \
check-cs-env \
--host "$E2E_HOST" \
-u "$E2E_USERNAME" \
-p "$E2E_PASSWORD" || exit 1
- name: check PS is UP
shell: bash
if: ${{ inputs.check-ps-env == 'true' }}
run: |
set -u;
./node_modules/@alfresco/adf-cli/bin/adf-cli init-aps-env \
--host "$E2E_HOST" \
-u "$E2E_USERNAME" \
-p "$E2E_PASSWORD" \
--license "$AWS_S3_BUCKET_ACTIVITI_LICENSE" || exit 1
- name: check PS-CLOUD is UP
shell: bash
if: ${{ inputs.check-ps-cloud-env == 'true' }}
run: |
set -u;
./node_modules/@alfresco/adf-cli/bin/adf-cli init-aae-env \
--oauth "$E2E_HOST" \
--host "$E2E_HOST_APA" \
--modelerUsername "$E2E_MODELER_USERNAME" \
--modelerPassword "$E2E_MODELER_PASSWORD" \
--devopsUsername "$E2E_DEVOPS_USERNAME" \
--devopsPassword "$E2E_DEVOPS_PASSWORD" \
--clientId 'alfresco' || exit 1
- name: variables sanification
env:
FOLDER: "${{ inputs.e2e-test-folder }}"
PROVIDER: "${{ inputs.e2e-test-provider }}"
AUTH_TYPE: "${{ inputs.e2e-test-auth }}"
E2E_TEST_ID: "${{ inputs.e2e-test-id }}"
shell: bash
run: |
set -u;
echo $PROXY_HOST_BPM
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
- name: run test with retries
id: retry_run
env:
FOLDER: "${{ inputs.e2e-test-folder }}"
PROVIDER: "${{ inputs.e2e-test-provider }}"
AUTH_TYPE: "${{ inputs.e2e-test-auth }}"
E2E_TEST_ID: "${{ inputs.e2e-test-id }}"
uses: nick-fields/retry@v2.8.2
with:
timeout_minutes: 40
max_attempts: 2
retry_wait_seconds: 30
shell: bash
command: |
set -u;
export GH_ACTION_RETRY_COUNT=$(cat ${GITHUB_OUTPUT} | grep -E '^[0-9]{1,2}$' | tail -n1)
echo "RETRY GH_ACTION_RETRY_COUNT = <$GH_ACTION_RETRY_COUNT>"
if [[ ${{ inputs.e2e-test-folder }} == 'content-services/upload' ]]; then
export DISPLAY=:99
chromedriver --url-base=/wd/hub &
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" "browser" || exit 1
else
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" || exit 1
fi
- name: upload artifacts on gh
id: upload_gh
uses: actions/upload-artifact@v3
with:
name: e2e-artifact-output
path: /home/runner/work/alfresco-ng2-components/alfresco-ng2-components/e2e-output-*
- name: upload smart-runner tests results on s3 to cache tests
shell: bash
if: always()
env:
REMOTE_PATH: "smart-runner/${{ github.run_id}}/${{ inputs.e2e-test-folder }}-${{ inputs.e2e-test-id}}/e2e.tar.gz"
# description: always upload newer results
run: |
tar czf "${{ inputs.e2e-tar-name }}" "${SMART_RUNNER_PATH}"
aws s3 cp "${{ inputs.e2e-tar-name }}" "s3://${S3_BUILD_BUCKET_SHORT_NAME}/adf/${REMOTE_PATH}"
+30
View File
@@ -0,0 +1,30 @@
name: 'enable dryrun'
description: 'check if must run pipeline in dryrun mode'
inputs:
dry-run-flag:
description: 'enable dryrun'
required: false
type: boolean
default: true
outputs:
dryrun:
description: "long sha of the tag"
value: ${{ steps.dryrun.outputs.dryrun }}
runs:
using: "composite"
steps:
- name: set dryrun flag to TRUE
shell: bash
id: dryrun
run: |
if [[ '${{ inputs.dry-run-flag }}' == 'true' ]]; then
echo "dryrun=--dryrun" >> $GITHUB_OUTPUT;
echo "enabling dryrun"
else
echo "dryrun=" >> $GITHUB_OUTPUT;
echo "dryrun NOT enabled"
fi
@@ -0,0 +1,19 @@
name: 'Get tag sha'
description: 'get the sha of the latest or a specific tag'
outputs:
tag_sha:
description: "long sha of the tag"
value: ${{ steps.sha_out.outputs.tag_sha }}
runs:
using: "composite"
steps:
- name: get tag short sha
shell: bash
id: sha_out
run: |
tag_sha=$(git rev-list -n 1 $(git tag --sort=-creatordate | head -n 1))
echo "tag_sha=$tag_sha" >> $GITHUB_OUTPUT
echo $tag_sha
@@ -0,0 +1,28 @@
name: 'Check NPM bundle'
description: 'check npm bundle'
inputs:
branch_name:
description: "override GITHUB_REF_NAME"
required: false
default: $GITHUB_REF_NAME
runs:
using: "composite"
steps:
- name: load "NPM TAG"
uses: ./.github/actions/set-npm-tag
with:
branch_name: ${{ inputs.branch_name }}
- name: check npm bundle
shell: bash
id: sha_out
run: |
if [[ -z $TAG_NPM ]]; then
echo "TAG_NPM not set, aborting"
exit 1
fi
ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
echo "check bundle on TAG_NPM='${TAG_NPM}' and ADF_VERSION='${ADF_VERSION}'"
./scripts/github/build/npm-check-bundles.sh -v ${ADF_VERSION}
+37
View File
@@ -0,0 +1,37 @@
name: "set npm tag"
description: "se NPM tag"
inputs:
event_name:
description: "override github.event_name"
required: false
default: ${{ github.event_name }}
branch_name:
description: "override GITHUB_REF_NAME"
required: false
default: $GITHUB_REF_NAME
runs:
using: "composite"
steps:
- name: set TAG_NPM
shell: bash
run: |
TAG_NPM="alpha"
VERSION_IN_PACKAGE_JSON=$(node -p "require('./package.json')".version)
echo "version in package.json=${VERSION_IN_PACKAGE_JSON}"
if [[ ${{ inputs.branch_name }} =~ ^master(-patch.*)?$ ]]; then
# Pre-release versions
if [[ $VERSION_IN_PACKAGE_JSON =~ ^[0-9]*\.[0-9]*\.[0-9]*-A\.[0-9]*$ ]];
then
TAG_NPM=next
# Stable major versions
else
TAG_NPM=latest
fi
fi
if [[ ${{ inputs.branch_name }} =~ ^develop(-patch.*)?$ ]]; then
TAG_NPM=alpha
fi
echo "TAG_NPM=${TAG_NPM}" >> $GITHUB_ENV
+13
View File
@@ -0,0 +1,13 @@
name: 'Install Google Chrome'
description: 'Install Google Chrome'
runs:
using: "composite"
steps:
- name: Install google chrome
shell: bash
run: |
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
sudo ln -s /usr/bin/google-chrome /usr/bin/chrome
chrome --version
+61
View File
@@ -0,0 +1,61 @@
name: 'Setup'
description: 'Initialize cache, env var load'
inputs:
enable-cache:
description: 'enable caching'
required: false
type: boolean
default: 'true'
enable-node-modules-cache:
description: 'enable caching for node modules'
required: false
type: boolean
default: 'true'
act:
description: 'enable act debug'
required: false
type: boolean
default: 'false'
runs:
using: "composite"
steps:
- name: install NPM
uses: actions/setup-node@v3
with:
node-version: 14
cache-dependency-path: package-lock.json
- name: get latest tag sha
id: tag-sha
uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@v1.29.0
# CACHE
- name: Node Modules cache
id: node-modules-cache
if: ${{ inputs.enable-node-modules-cache == 'true' }}
uses: actions/cache@v3
env:
cache-name: node-modules-cache
with:
path: |
node_modules
key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
node_modules-${{ runner.os }}-build-${{ env.cache-name }}-
node_modules-${{ runner.os }}-build-
node_modules-${{ runner.os }}-
- name: pip cache
uses: actions/cache@v3
if: ${{ inputs.enable-cache == 'true' }}
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-
restore-keys: |
${{ runner.os }}
- name: load "NPM TAG"
uses: ./.github/actions/set-npm-tag
- name: before install script
uses: ./.github/actions/before-install
with:
act: ${{ inputs.act }}
- name: link nx executable
run: sudo ln -s $(npm bin)/nx /usr/bin/nx
shell: bash
@@ -1,28 +0,0 @@
# TRAVIS_EVENT_TYPE= Indicates how the build was triggered. One of push, pull_request, api, cron
name: "travis-event-type-env-var"
description: "Mimic loading of a TRAVIS_EVENT_TYPE env var"
inputs:
event_name:
description: "override github.event_name"
required: false
default: ${{ github.event_name }}
runs:
using: "composite"
steps:
- name: Parse env global
run: |
EVENT_TYPE=""
REGEX="(repository|workflow)_dispatch"
if [[ "${{ inputs.event_name }}" == "schedule" ]]; then
EVENT_TYPE="cron";
elif [[ "${{ inputs.event_name }}" == "pull_request" ]]; then
EVENT_TYPE="pull_request";
elif [[ "${{ inputs.event_name }}" == "push" ]]; then
EVENT_TYPE="push";
elif [[ "${{ inputs.event_name }}" =~ $REGEX ]]; then
EVENT_TYPE="api";
fi
echo "TRAVIS_EVENT_TYPE=${EVENT_TYPE}" >> $GITHUB_ENV
echo "exporting TRAVIS_EVENT_TYPE=${EVENT_TYPE}"
shell: bash
@@ -0,0 +1,19 @@
name: "Upload build artifacts"
description: "Upload build artifacts"
runs:
using: "composite"
steps:
- name: tar and upload artifacts
shell: bash
env:
REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}"
run: |
packages=( dist nxcache node_modules )
for i in "${packages[@]}"; do
time tar czf $i.tar.gz $i
du -h $i.tar.gz
time aws s3 cp --no-progress $i.tar.gz "s3://${S3_BUILD_BUCKET_SHORT_NAME}/${REMOTE_PATH}/$i.tar.gz"
done
+1
View File
@@ -5,6 +5,7 @@ updates:
schedule:
interval: "weekly"
day: "sunday"
time: "07:00"
open-pull-requests-limit: 5
target-branch: develop
ignore:
+101
View File
@@ -0,0 +1,101 @@
name: "upstream adf"
on:
workflow_call:
inputs:
repo_to_update:
description: Repository to update
type: string
required: false
default: alfresco-applications
workflow_dispatch:
inputs:
cluster_operation:
description: trigger adf test
type: choice
required: true
options:
- TRIGGER_ALPHA_ADF
default: TRIGGER_ALPHA_ADF
repo_to_update:
description: Repository to update
type: choice
required: true
options:
- all
- alfresco-content-app
- alfresco-applications
- alfresco-apps
default: all
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_BRANCH: ${{ github.ref_name }}
GH_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
GH_BUILD_DIR: ${{ github.workspace }}
GH_COMMIT: ${{ github.sha }}
BUILD_ID: ${{ github.run_id }}
GH_RUN_NUMBER: ${{ github.run_attempt }}
GH_BUILD_NUMBER: ${{ github.run_id }}
JOB_ID: ${{ github.run_id }}
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
E2E_HOST: ${{ secrets.E2E_HOST }}
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
URL_HOST_ADF: ${{ secrets.URL_HOST_ADF }}
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
HOST_SSO: ${{ secrets.HOST_SSO }}
LOG_LEVEL: "ERROR"
E2E_LOG_LEVEL: "ERROR"
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
NPM_REGISTRY_ADDRESS: ${{ secrets.NPM_REGISTRY_ADDRESS }}
NPM_REGISTRY_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
NODE_OPTIONS: "--max-old-space-size=5120"
GH_PACKAGES_READ_ONLY_TOKEN: ${{ secrets.HYLAND_GH_PACKAGES_READ_ONLY_TOKEN }}
jobs:
trigger_adf:
name: trigger adf
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: install NPM
uses: actions/setup-node@v3
with:
node-version: 14
cache-dependency-path: package-lock.json
# - name: Debug on failure
# uses: mxschmitt/action-tmate@v3
# with:
# timeout-minutes: 60
# limit-access-to-actor: true
- name: Trigger Alpha ADF child build
shell: bash
if: ${{ contains(github.event.head_commit.message, '[trigger adf]') || inputs.cluster_operation == 'TRIGGER_ALPHA_ADF' || github.event.schedule == '0 12 * * *' }}
run: |
npm install github-api
./scripts/github/update/update-project.sh -p $GH_BUILD_NUMBER -t $GH_TOKEN -v alpha -c $GH_COMMIT -r ${{ inputs.repo_to_update }}
+4 -9
View File
@@ -16,20 +16,15 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
# Override language selection by uncommenting this and choosing your languages
with:
languages: javascript
@@ -37,7 +32,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -51,4 +46,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
+73
View File
@@ -0,0 +1,73 @@
name: "cron e2e daily"
on:
schedule:
- cron: '0 12 * * *'
env:
BASE_REF: ${{ github.base_ref }}
HEAD_REF: ${{ github.head_ref }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_BRANCH: ${{ github.ref_name }}
GH_BUILD_DIR: ${{ github.workspace }}
GH_COMMIT: ${{ github.sha }}
BUILD_ID: ${{ github.run_id }}
GH_RUN_NUMBER: ${{ github.run_attempt }}
GH_BUILD_NUMBER: ${{ github.run_id }}
JOB_ID: ${{ github.run_id }}
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
E2E_HOST: ${{ secrets.E2E_HOST }}
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
URL_HOST_ADF: "http://localhost:4200"
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
HOST_SSO: ${{ secrets.HOST_SSO }}
LOG_LEVEL: "ERROR"
E2E_LOG_LEVEL: "ERROR"
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
SMART_RUNNER_PATH: ".protractor-smartrunner"
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
NODE_OPTIONS: "--max-old-space-size=5120"
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
REPO_OWNER: "Alfresco"
REPO_NAME: "alfresco-ng2-components"
DEMO_SHELL_DIR: "./dist/demo-shell"
STORYBOOK_DIR: "./dist/storybook/stories"
BUILT_LIBS_DIR: "./dist/libs"
NODE_MODULES_DIR: "./node_modules"
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
SAVE_SCREENSHOT: true
REDIRECT_URI: /
BROWSER_RUN: false
MAXINSTANCES: 2
PLAYWRIGHT_WORKERS: 2
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
jobs:
run-e2e:
name: run e2e
uses: ./.github/workflows/pull-request.yml
secrets: inherit
+27
View File
@@ -0,0 +1,27 @@
name: "cron upstream daily"
on:
schedule:
- cron: '0 12 * * *'
jobs:
adf-upstream-alpha-alfresco-aca:
name: trigger upstream alpha for alfresco-content-app
uses: ./.github/workflows/adf_alpha.yml
secrets: inherit
with:
repo_to_update: alfresco-content-app
adf-upstream-alpha-alfresco-apps:
name: trigger upstream alpha for alfresco-applications
uses: ./.github/workflows/adf_alpha.yml
secrets: inherit
with:
repo_to_update: alfresco-applications
adf-upstream-alpha-hxp:
name: trigger upstream alpha for hxp monorepo
uses: ./.github/workflows/adf_alpha.yml
secrets: inherit
with:
repo_to_update: alfresco-apps
+16
View File
@@ -0,0 +1,16 @@
name: pr-workflow
on:
push:
branches:
- "devops/*"
jobs:
adf-upstream-alpha-hxp:
name: trigger upstream alpha for hxp monorepo
uses: ./.github/workflows/adf_alpha.yml
secrets: inherit
with:
repo_to_update: alfresco-apps
+111
View File
@@ -0,0 +1,111 @@
name: "git-tag"
on:
workflow_call:
inputs:
dry-run-release:
description: 'enable dry-run on artifact push'
required: false
type: boolean
default: true
push:
branches:
- master
- master-patch-*
env:
BASE_REF: ${{ github.base_ref }}
HEAD_REF: ${{ github.head_ref }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_BRANCH: ${{ github.ref_name }}
GH_BUILD_DIR: ${{ github.workspace }}
GH_COMMIT: ${{ github.sha }}
BUILD_ID: ${{ github.run_id }}
GH_RUN_NUMBER: ${{ github.run_attempt }}
GH_BUILD_NUMBER: ${{ github.run_id }}
JOB_ID: ${{ github.run_id }}
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
E2E_HOST: ${{ secrets.E2E_HOST }}
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
URL_HOST_ADF: "http://localhost:4200"
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
HOST_SSO: ${{ secrets.HOST_SSO }}
LOG_LEVEL: "ERROR"
E2E_LOG_LEVEL: "ERROR"
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
SMART_RUNNER_PATH: ".protractor-smartrunner"
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
NODE_OPTIONS: "--max-old-space-size=5120"
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
NPM_REGISTRY_ADDRESS: ${{ secrets.NPM_REGISTRY_ADDRESS }}
NPM_REGISTRY_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
REPO_OWNER: "Alfresco"
REPO_NAME: "alfresco-ng2-components"
DEMO_SHELL_DIR: "./dist/demo-shell"
STORYBOOK_DIR: "./dist/storybook/stories"
BUILT_LIBS_DIR: "./dist/libs"
NODE_MODULES_DIR: "./node_modules"
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
SAVE_SCREENSHOT: true
REDIRECT_URI: /
BROWSER_RUN: false
MAXINSTANCES: 2
PLAYWRIGHT_WORKERS: 2
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
jobs:
release:
uses: ./.github/workflows/release.yml
secrets: inherit
with:
dry-run-release: false
setup:
needs: release
timeout-minutes: 20
name: "Release tag"
runs-on: ubuntu-22.04
env:
GITHUB_TOKEN: $GH_TOKEN
steps:
- name: Checkout repository
uses: actions/checkout@v3
- id: set-dryrun
uses: ./.github/actions/enable-dryrun
with:
dry-run-flag: ${{ inputs.dry-run-release }}
- name: install NPM
uses: actions/setup-node@v3
with:
node-version: 14
- name: "Release tag"
run: |
git fetch --all --quiet
BRANCH=${GITHUB_REF##*/} ./scripts/github/release/git-tag.sh ${{ steps.set-dryrun.outputs.dryrun }}
+413
View File
@@ -0,0 +1,413 @@
name: "pull-request"
on:
workflow_call:
inputs:
dry-run-release:
description: 'enable dry-run on artifact push'
required: false
type: boolean
default: true
devel:
description: 'devel'
required: false
type: string
default: false
pull_request:
types: [opened, synchronize, reopened]
branches:
- develop
- master
- develop-patch*
- master-patch*
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
BASE_REF: ${{ github.base_ref }}
HEAD_REF: ${{ github.head_ref }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_BRANCH: ${{ github.ref_name }}
GH_BUILD_DIR: ${{ github.workspace }}
GH_COMMIT: ${{ github.sha }}
BUILD_ID: ${{ github.run_id }}
GH_RUN_NUMBER: ${{ github.run_attempt }}
GH_BUILD_NUMBER: ${{ github.run_id }}
JOB_ID: ${{ github.run_id }}
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
E2E_HOST: ${{ secrets.E2E_HOST }}
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
URL_HOST_ADF: "http://localhost:4200"
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
HOST_SSO: ${{ secrets.HOST_SSO }}
LOG_LEVEL: "ERROR"
E2E_LOG_LEVEL: "ERROR"
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
SMART_RUNNER_PATH: ".protractor-smartrunner"
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
NODE_OPTIONS: "--max-old-space-size=5120"
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
REPO_OWNER: "Alfresco"
REPO_NAME: "alfresco-ng2-components"
DEMO_SHELL_DIR: "./dist/demo-shell"
STORYBOOK_DIR: "./dist/storybook/stories"
BUILT_LIBS_DIR: "./dist/libs"
NODE_MODULES_DIR: "./node_modules"
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
SAVE_SCREENSHOT: true
REDIRECT_URI: /
BROWSER_RUN: false
MAXINSTANCES: 2
PLAYWRIGHT_WORKERS: 2
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
PROXY_HOST_ECM: ${{ secrets.E2E_HOST }}
jobs:
check-package-lock:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check package-lock.json version
run: |
if [[ $(jq '.lockfileVersion == 2' package-lock.json) == "true" ]] ; then
echo -e "\033[31mpackage-lock must be version 1\033[0m"
exit 1
else
echo -e "\033[32mpackage-lock.json has a correct version\033[0m"
fi
check-if-pr-is-approved:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check if PR is approved
id: action
if: ${{ github.event_name != 'schedule' }}
uses: kamatama41/get-pr-number-action@5c77b38a1b4974ebf8a9521a689f38a5898eadd6
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: check if pr is approved
env:
DEVEL_FLAG: ${{ inputs.devel }}
GH_TOKEN: ${{ github.token }}
skip_check: "false"
run: |
if [ "${{ github.actor }}" == "dependabot[bot]" ] || [ "${{ github.actor }}" == "alfresco-build" ]; then
echo -e "\033[32mCommit by ${{ github.actor }}. No need for approval.\033[0m"
skip_check="true"
fi
if [ "${{ github.event_name }}" == "schedule" ]; then
echo -e "\033[32mSchedule event\033[0m"
skip_check="true"
fi
if [[ "$DEVEL_FLAG" == "true" ]]; then
echo -e "\033[32mDevel flag\033[0m"
skip_check="true"
fi
if [ "$skip_check" == "false" ]; then
echo "Checking PR approval"
prNumber=${{ steps.action.outputs.number }}
checkApproval=$(gh api /repos/Alfresco/alfresco-ng2-components/pulls/$prNumber/reviews | jq '.[] | select(.state == "APPROVED") | .user.login')
if [[ $checkApproval ]]; then
echo -e "\033[32mPR approved\033[0m"
else
echo -e "\033[31mPR NOT approved\033[0m"
exit 1
fi
fi
setup:
# long timeout required when cache has to be recreated
timeout-minutes: 30
name: "Setup"
runs-on: ubuntu-22.04
needs: [check-if-pr-is-approved, check-package-lock]
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all tags and branches
- uses: ./.github/actions/setup
- name: install
run: |
npm ci
nx run cli:bundle
nx run testing:bundle
- run: nx print-affected $NX_CALCULATION_FLAGS
- uses: ./.github/actions/upload-node-modules-and-artifacts
unit-tests:
timeout-minutes: 30
name: "Unit tests: ${{ matrix.unit-tests.name }}"
runs-on: ubuntu-22.04
needs: [setup]
strategy:
fail-fast: false
# max-parallel: 4
matrix:
unit-tests:
- name: content-services
exclude: "insights,core,extensions,process-services,process-services-cloud"
- name: core
exclude: "insights,content-services,process-services,process-services-cloud"
- name: insights and process-services
exclude: "core,extensions,content-services,process-services-cloud"
- name: process-cloud
exclude: "insights,core,extensions,content-services,process-services"
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all tags and branches
- uses: ./.github/actions/setup
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: Run unit tests
run: |
/usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude=${{ matrix.unit-tests.exclude }}
lint:
# long timeout required when cache has to be recreated
timeout-minutes: 30
name: "Lint"
runs-on: ubuntu-22.04
needs: [setup]
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all tags and branches
- uses: ./.github/actions/setup
- uses: ./.github/actions/download-node-modules-and-artifacts
- run: nx affected --target=lint $NX_CALCULATION_FLAGS
build-libs:
# long timeout required when cache has to be recreated
timeout-minutes: 30
name: "Build libs"
runs-on: ubuntu-22.04
needs: [setup]
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all tags and branches
- uses: ./.github/actions/setup
- uses: ./.github/actions/download-node-modules-and-artifacts
- run: nx affected:build $NX_CALCULATION_FLAGS --prod
- run: nx build demoshell --configuration production
- run: nx affected --target=build-storybook $NX_CALCULATION_FLAGS --configuration ci
- uses: ./.github/actions/upload-node-modules-and-artifacts
e2e-storybook:
timeout-minutes: 20
name: "e2e: storybook"
needs: [build-libs, lint, unit-tests]
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all
- uses: ./.github/actions/setup
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: Process Cloud Storybook Playwright
run: |
npx playwright install chromium
sudo sysctl -w fs.inotify.max_user_watches=524288
npx nx affected --target=e2e-playwright $NX_CALCULATION_FLAGS || exit 1
- uses: ./.github/actions/upload-node-modules-and-artifacts
e2e:
timeout-minutes: 90
name: "e2e: ${{ matrix.e2e-test.description }}"
needs: [build-libs, lint, unit-tests]
runs-on: ubuntu-22.04
strategy:
fail-fast: false
# max-parallel: 4
matrix:
e2e-test:
- description: "Core"
test-id: "core"
folder: "core"
provider: "ALL"
auth: "OAUTH"
check-cs-env: "true"
check-ps-env: "true"
- description: "Content: Components"
test-id: "content-services"
folder: "content-services/components"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Content: Directives"
test-id: "content-services"
folder: "content-services/directives"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Content: Document List"
test-id: "content-services"
folder: "content-services/document-list"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Content: Metadata"
test-id: "content-services"
folder: "content-services/metadata"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Content: Upload and Versioning"
test-id: "content-services"
folder: "content-services/upload"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Search"
test-id: "content-services"
folder: "search"
provider: "ECM"
auth: "BASIC"
check-cs-env: "true"
- description: "Process: Form"
test-id: "process-services"
folder: "process-services/form"
provider: "BPM"
auth: "OAUTH"
check-ps-env: "true"
check-external-cs-env: "true"
- description: "Process: Process"
test-id: "process-services"
folder: "process-services/process"
provider: "BPM"
auth: "OAUTH"
check-ps-env: "true"
check-external-cs-env: "true"
- description: "Process: Tasks"
test-id: "process-services"
folder: "process-services/tasks"
provider: "BPM"
auth: "OAUTH"
check-ps-env: "true"
check-external-cs-env: "true"
- description: "Process: Widget"
test-id: "process-services"
folder: "process-services/widgets"
provider: "BPM"
auth: "OAUTH"
check-ps-env: "true"
check-external-cs-env: "true"
- description: "Process Cloud: Form"
test-id: "process-services-cloud"
folder: "process-services-cloud/form-field"
provider: "ALL"
auth: "OAUTH"
apa-proxy: true
check-cs-env: "true"
check-ps-cloud-env: "true"
- description: "Process Cloud: People"
test-id: "process-services-cloud"
folder: "process-services-cloud/people"
provider: "ALL"
auth: "OAUTH"
apa-proxy: true
check-cs-env: "true"
check-ps-cloud-env: "true"
- description: "Process Cloud: Process"
test-id: "process-services-cloud"
folder: "process-services-cloud/process"
provider: "ALL"
auth: "OAUTH"
apa-proxy: true
check-cs-env: "true"
check-ps-cloud-env: "true"
- description: "Process Cloud: Start Task"
test-id: "process-services-cloud"
folder: "process-services-cloud/start-task"
provider: "ALL"
auth: "OAUTH"
apa-proxy: true
check-cs-env: "true"
check-ps-cloud-env: "true"
- description: "Process Cloud: Tasks List"
test-id: "process-services-cloud"
folder: "process-services-cloud/task-list"
provider: "ALL"
auth: "OAUTH"
apa-proxy: true
check-cs-env: "true"
check-ps-cloud-env: "true"
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all
- uses: ./.github/actions/setup
with:
enable-cache: "true"
enable-node-modules-cache: "true"
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: setup chrome
uses: ./.github/actions/setup-chrome
- name: e2e
uses: ./.github/actions/e2e
with:
e2e-test-id: ${{ matrix.e2e-test.test-id }}
e2e-test-folder: ${{ matrix.e2e-test.folder }}
e2e-test-provider: ${{ matrix.e2e-test.provider }}
e2e-test-auth: ${{ matrix.e2e-test.auth }}
check-cs-env: ${{ matrix.e2e-test.check-cs-env }}
check-ps-env: ${{ matrix.e2e-test.check-ps-env }}
check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }}
check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }}
apa-proxy: ${{ matrix.e2e-test.apa-proxy }}
finalize:
if: ${{ always() }}
runs-on: ubuntu-latest
name: Final Results
needs: [check-if-pr-is-approved, check-package-lock, unit-tests, build-libs, e2e, e2e-storybook]
steps:
- name: workflow failure
run: exit 1
if: ${{ contains(needs.*.result, 'failure') }}
- name: workflow canceled
run: exit 1
if: ${{ contains(needs.*.result, 'cancelled') }}
- name: workflow success
run: exit 0
if: ${{ contains(needs.*.result, 'success') }}
+3 -3
View File
@@ -1,4 +1,4 @@
on:
on:
issue_comment:
types: [created]
name: Automatic Rebase
@@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.3.1
uses: cirrus-actions/rebase@1.8
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+223
View File
@@ -0,0 +1,223 @@
name: "release"
on:
workflow_call:
inputs:
dry-run-release:
description: 'enable dry-run on artifact push'
required: false
type: boolean
default: true
pull_request:
types: [closed]
branches:
- develop
- master
- develop-patch*
- master-patch*
env:
BASE_REF: ${{ github.base_ref }}
HEAD_REF: ${{ github.head_ref }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_BRANCH: ${{ github.ref_name }}
GH_BUILD_DIR: ${{ github.workspace }}
GH_COMMIT: ${{ github.sha }}
BUILD_ID: ${{ github.run_id }}
GH_RUN_NUMBER: ${{ github.run_attempt }}
GH_BUILD_NUMBER: ${{ github.run_id }}
JOB_ID: ${{ github.run_id }}
PROXY_HOST_BPM: ${{ secrets.E2E_HOST }}
E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }}
E2E_HOST: ${{ secrets.E2E_HOST }}
E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }}
E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
#USERNAME_ADF: ${{ secrets.E2E_USERNAME }}
USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }}
URL_HOST_ADF: "http://localhost:4200"
IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }}
IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }}
AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }}
HOST_SSO: ${{ secrets.HOST_SSO }}
LOG_LEVEL: "ERROR"
E2E_LOG_LEVEL: "ERROR"
E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }}
E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }}
EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }}
E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }}
E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }}
USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }}
PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
SMART_RUNNER_PATH: ".protractor-smartrunner"
S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }}
S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }}
NODE_OPTIONS: "--max-old-space-size=5120"
DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }}
DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }}
DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }}
DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook"
DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell"
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
REPO_OWNER: "Alfresco"
REPO_NAME: "alfresco-ng2-components"
DEMO_SHELL_DIR: "./dist/demo-shell"
STORYBOOK_DIR: "./dist/storybook/stories"
BUILT_LIBS_DIR: "./dist/libs"
NODE_MODULES_DIR: "./node_modules"
SMART_RUNNER_DIRECTORY: ".protractor-smartrunner"
SAVE_SCREENSHOT: true
REDIRECT_URI: /
BROWSER_RUN: false
MAXINSTANCES: 2
PLAYWRIGHT_WORKERS: 2
PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost
PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400
jobs:
setup:
timeout-minutes: 20
if: github.event.pull_request.merged || ${{ inputs.dry-run-release }}
name: "Setup"
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/setup
with:
enable-cache: false
enable-node-modules-cache: false
- name: install
run: |
npm ci
nx run cli:bundle
nx run testing:bundle
- uses: ./.github/actions/upload-node-modules-and-artifacts
release-demoshell:
needs: [setup]
timeout-minutes: 15
if: github.event.pull_request.merged || ${{ inputs.dry-run-release }}
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 1
- run: git fetch --all
- id: set-dryrun
uses: ./.github/actions/enable-dryrun
with:
dry-run-flag: ${{ inputs.dry-run-release }}
- uses: ./.github/actions/setup
with:
enable-cache: false
enable-node-modules-cache: false
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: release Demoshell docker
run: |
nx build demoshell --configuration production
. ./scripts/github/release/docker-tag.sh
./scripts/github/release/release-demoshell-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
release-storybook:
needs: [setup]
timeout-minutes: 15
if: github.event.pull_request.merged || ${{ inputs.dry-run-release }}
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 1
- run: git fetch --all
- id: set-dryrun
uses: ./.github/actions/enable-dryrun
with:
dry-run-flag: ${{ inputs.dry-run-release }}
- uses: ./.github/actions/setup
with:
enable-cache: false
enable-node-modules-cache: false
act: ${{ inputs.dry-run-release }}
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: release Storybook docker
run: |
nx run stories:build-storybook --configuration ci
. ./scripts/github/release/docker-tag.sh
./scripts/github/release/release-storybook-docker.sh ${{ steps.set-dryrun.outputs.dryrun }}
release-npm:
needs: [setup]
timeout-minutes: 15
if: github.event.pull_request.merged == true || ${{ inputs.dry-run-release }}
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/setup
with:
enable-cache: false
enable-node-modules-cache: false
- id: set-dryrun
uses: ./.github/actions/enable-dryrun
with:
dry-run-flag: ${{ inputs.dry-run-release }}
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: check PR number
id: action
uses: kamatama41/get-pr-number-action@v0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: save PR number
env:
GH_TOKEN: ${{ github.token }}
shell: bash
run: |
echo "PR_NUMBER=${{ steps.action.outputs.number }}" >> $GITHUB_ENV
- name: build libraries
run: |
set -u;
./scripts/github/build/bumpversion.sh
nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" --skip-nx-cache
nx affected $NX_CALCULATION_FLAGS --target=pretheme
- uses: actions/setup-node@v3
name: release libraries GH registry
with:
node-version: 14
registry-url: 'https://npm.pkg.github.com'
scope: '@alfresco'
- run: nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v3
name: release libraries Npm registry
with:
node-version: 14
registry-url: 'https://${{ vars.NPM_REGISTRY_ADDRESS }}'
scope: '@alfresco'
- run: nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }}
npm-check-bundle:
needs: [release-npm]
timeout-minutes: 15
if: github.event.pull_request.merged == true || ${{ inputs.dry-run-release }}
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: ./.github/actions/npm-check-bundle
-20
View File
@@ -1,20 +0,0 @@
pull_request_rules:
- name: automatic merge for Dependabot pull requests
conditions:
- author=dependabot-preview[bot]
- status-success=continuous-integration/travis-ci/pr
- status-success=security/snyk - package.json (eromano (GitHub marketplace))
actions:
merge:
method: merge
- name: merge when all requested reviews are valid
conditions:
- status-success=continuous-integration/travis-ci/pr
- status-success=security/snyk - package.json (eromano (GitHub marketplace))
- '#approved-reviews-by>=1'
- '#changes-requested-reviews-by=0'
- '#commented-reviews-by=0'
- label!="do not merge"
actions:
merge:
method: merge
-622
View File
@@ -1,622 +0,0 @@
import:
- source: Alfresco/alfresco-build-tools:.travis.docker_hub_login.yml@v1.1.1
git:
depth: false
quiet: true
language: node_js
arch: arm64-graviton2
dist: bionic
node_js:
- '14'
before_install: . ./scripts/ci/job_hooks/before_install.sh
install: ./scripts/ci/job_hooks/install.sh
env:
global:
# REPOSITORY
- REPO_OWNER="Alfresco"
- REPO_NAME="alfresco-ng2-components"
- S3_DBP_PATH="s3://alfresco-travis-builds/adf"
- DEMO_SHELL_DIR="./dist/demo-shell"
- STORYBOOK_DIR="./dist/storybook/stories"
- BUILT_LIBS_DIR="./dist/libs"
- NODE_MODULES_DIR="./node_modules"
- SMART_RUNNER_DIRECTORY=".protractor-smartrunner"
#E2E VARIABLES
- SAVE_SCREENSHOT=true
- REDIRECT_URI=/
- BROWSER_RUN=false
- MAXINSTANCES=2
- PROXY_HOST_ECM=$E2E_HOST
- PROXY_HOST_BPM=$E2E_HOST
- HOST_SSO=$HOST_SSO
- USERNAME_ADF=$E2E_USERNAME
- PASSWORD_ADF=$E2E_PASSWORD
- IDENTITY_ADMIN_EMAIL=$E2E_ADMIN_EMAIL_IDENTITY
- IDENTITY_ADMIN_PASSWORD=$E2E_ADMIN_PASSWORD_IDENTITY
- URL_HOST_ADF="http://localhost:4200"
#PLAYWRIGHT VARIABLES
- PLAYWRIGHT_WORKERS=2
- PLAYWRIGHT_STORYBOOK_E2E_HOST=http://localhost
- PLAYWRIGHT_STORYBOOK_E2E_PORT=4400
branches:
only:
- /^master(-patch.*)?$/
- /^develop(-patch.*)?$/
- master
- develop
- /.*old-env.*/
- /.*next-release.*/
- /.*beta.*/
stages:
- name: Prerequisite
- name: Setup
- name: "Build"
if: tag IS blank AND (type = pull_request OR type = cron OR type = api)
- name: "Trigger Alpha ADF child build"
if: type = cron OR (type = api AND commit_message =~ /\[trigger adf\]/)
- name: "Release"
if: type = push
- name: "Unit test Lib"
if: type = pull_request OR type = cron OR type = api
- name: "e2e Test"
if: type = pull_request OR type = cron OR type = api
- name: "Release tag"
if: branch =~ /^master(-patch.*)?$/
- name: "Check bundle"
if: type = push AND tag IS blank OR (type = cron || type = api)
- name: "Deprecate develop builds"
if: branch =~ /^master(-patch.*)?$/
addons:
chrome: stable
before_script:
- export GIT_HASH=`git rev-parse HEAD`
services:
- xvfb
jobs:
include:
# Big Bang ===================
- stage: Prerequisite
name: "Before anything unnece$$ary happens..."
if: type == pull_request
language: python
python: 3.8
install: echo "no install here"
script: ./scripts/ci/jobs/dbpci-build-guard-check $TRAVIS_PULL_REQUEST || exit 1
# Setup ======================
- stage: Setup
name: "Node modules cache preparation"
script: echo "Only here for setting up the shared node_modules"
workspaces:
create:
name: node_modules_cache
paths:
- "$NODE_MODULES_DIR"
use: node_modules_cache
- stage: "Build"
name: "Lib::Build"
install: echo "no install"
script: $(npm bin)/nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell"
workspaces:
create:
name: built_libs_cache
paths:
- "$BUILT_LIBS_DIR"
- "$NODE_MODULES_DIR"
use: node_modules_cache
- stage: "Build"
name: "Lint"
install: echo "no install"
script: $(npm bin)/nx affected:lint $NX_CALCULATION_FLAGS --parallel=5
workspaces:
use: node_modules_cache
- stage: "Build"
name: "Demo Shell::Build"
install: echo "no install"
script: $(npm bin)/nx build demoshell --configuration production
workspaces:
create:
name: built_demo_shell_cache
paths:
- "$DEMO_SHELL_DIR"
use:
- node_modules_cache
- stage: "Build"
name: "Storybook::Build"
install: echo "no install"
script: $(npm bin)/nx run stories:build-storybook --configuration ci
workspaces:
create:
name: built_storybook_cache
paths:
- "$STORYBOOK_DIR"
use:
- node_modules_cache
- stage: "Unit test Lib"
name: "content::unit"
install: echo "no install"
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,core,extensions,process-services,process-services-cloud"
workspaces:
use: built_libs_cache
- stage: "Unit test Lib"
name: "core-extension::unit"
install: echo "no install"
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,content-services,process-services,process-services-cloud"
workspaces:
use: built_libs_cache
- stage: "Unit test Lib"
name: "process-insights::unit"
install: echo "no install"
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="core,extensions,content-services,process-services-cloud"
workspaces:
use: built_libs_cache
- stage: "Unit test Lib"
name: "process-cloud::unit"
install: echo "no install"
script: $(npm bin)/nx affected:test $NX_CALCULATION_FLAGS --exclude="insights,core,extensions,content-services,process-services"
workspaces:
use: built_libs_cache
- stage: "Trigger Alpha ADF child build"
name: "Trigger Alpha ADF child build"
script: ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v alpha -c $TRAVIS_COMMIT
workspaces:
use: built_libs_cache
- stage: "Release"
name: "release libs::npm"
install: echo "no install"
script:
- ./scripts/travis/build/bumpversion.sh || travis_terminate 1
- $(npm bin)/nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" || travis_terminate 1
- $(npm bin)/nx affected $NX_CALCULATION_FLAGS --target=pretheme || travis_terminate 1
- ./scripts/travis/release/release-npm.sh || travis_terminate 1
workspaces:
use: node_modules_cache
- stage: "Release"
name: "release demoshell::docker"
install: echo "no install"
script:
- $(npm bin)/nx build demoshell --configuration production || travis_terminate 1
- . ./scripts/travis/release/docker-tag.sh || travis_terminate 1
- ./scripts/travis/release/release-demoshell-docker.sh
workspaces:
use: node_modules_cache
- stage: "Release"
name: "release storybook::docker"
install: echo "no install"
script:
- $(npm bin)/nx run stories:build-storybook --configuration ci || travis_terminate 1
- . ./scripts/travis/release/docker-tag.sh || travis_terminate 1
- ./scripts/travis/release/release-storybook-docker.sh || travis_terminate 1
workspaces:
use: node_modules_cache
- stage: "Release tag"
script: ./scripts/travis/release/git-tag.sh
- stage: "Deprecate develop builds"
script:
- ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
- ./scripts/travis/release/deprecate-develop-build.sh -v ${ADF_VERSION}
- stage: "e2e Test"
name: "Process Cloud: Storybook Playwright"
install: echo "no install"
before_script: ./scripts/ci/jobs/dbpci-before-playwright
script: ./scripts/travis/storybook-testing/storybook-test.sh
workspaces:
use:
- built_libs_cache
- built_demo_shell_cache
- stage: "e2e Test"
name: "Core"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "core"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="core"
- PROVIDER='ALL'
- AUTH_TYPE='OAUTH'
- stage: "e2e Test"
name: "Content: Components"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="content-services/components"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Content: Directives"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="content-services/directives"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Content: Document List"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="content-services/document-list"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Content: Metadata"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="content-services/metadata"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Content: Upload and Versioning"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services" "browser"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="content-services/upload"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Search"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "content-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="search"
- PROVIDER="ECM"
- AUTH_TYPE="BASIC"
- stage: "e2e Test"
name: "Process: Form"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services/form"
- PROVIDER="BPM"
- AUTH_TYPE="OAUTH"
- stage: "e2e Test"
name: "Process: Process"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services/process"
- PROVIDER="BPM"
- AUTH_TYPE="OAUTH"
- stage: "e2e Test"
name: "Process: Tasks"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services/tasks"
- PROVIDER="BPM"
- AUTH_TYPE="OAUTH"
- stage: "e2e Test"
name: "Process: Widgets"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services/widgets"
- PROVIDER="BPM"
- AUTH_TYPE="OAUTH"
- stage: "e2e Test"
name: "Process Cloud : Form"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services-cloud/form-field"
- PROVIDER="ALL"
- AUTH_TYPE="OAUTH"
- PROXY_HOST_BPM=$E2E_HOST_APA
- stage: "e2e Test"
name: "Process Cloud : People"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services-cloud/people"
- PROVIDER="ALL"
- AUTH_TYPE="OAUTH"
- PROXY_HOST_BPM=$E2E_HOST_APA
- stage: "e2e Test"
name: "Process Cloud : Process"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services-cloud/process"
- PROVIDER="ALL"
- AUTH_TYPE="OAUTH"
- PROXY_HOST_BPM=$E2E_HOST_APA
- stage: "e2e Test"
name: "Process Cloud : Start Task"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services-cloud/start-task"
- PROVIDER="ALL"
- AUTH_TYPE="OAUTH"
- PROXY_HOST_BPM=$E2E_HOST_APA
- stage: "e2e Test"
name: "Process Cloud : Tasks List"
install: echo "no install"
before_script:
- ./scripts/ci/job_hooks/before_e2e.sh
- ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
script: ./scripts/travis/e2e/e2e.sh "process-services-cloud"
after_script: ./scripts/ci/job_hooks/after_e2e.sh
workspaces:
create:
name: e2e_cache
paths:
- "$SMART_RUNNER_DIRECTORY"
use:
- built_libs_cache
- built_demo_shell_cache
- e2e_cache
env:
- FOLDER="process-services-cloud/task-list"
- PROVIDER="ALL"
- AUTH_TYPE="OAUTH"
- PROXY_HOST_BPM=$E2E_HOST_APA
- stage: Check bundle
install: echo "no install"
script:
- ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version)
- ./scripts/travis/build/npm-check-bundles.sh -v ${ADF_VERSION}
workspaces:
use: built_libs_cache
notifications:
slack:
on_pull_requests: false
rooms:
secure: "qcTP/+rhVweMSZZAQMPz4sW7boS8XC0RX1SPYgg7hIfxBr9747WpRLkJ1sirkVaXI/6XfYAyl42CTfPmTuJxIC+co/NSnEDknwVsnKZd0O/ykTpo+mxIN4BTZX8dm+gELR5IEYQPs+Yki3ZnD9b+0mCK1yD8JallKCQeE2U9BhzZhP/Fn0ce35EulybNp3QQDaox0XC+7gadMdxlvK8mzP1scw76wRLtx25QLxxV+OwEw0bzyh8y3onfjHfnoDcUQWRTNdnjapzmgf1LNdC202A5kwp5sJggfSDr+ActRqaMvv4BbMsFpdan34B6zPQJfyZL1r8IB8O8BEKcAaOUVcTjnZAOom8kHS8F07/mo5xnNYmV8oNX2/egr1CiG4U0EAGF2XGqM+vetYnF88LTEzy84kVxmSwKGVfzlGOyTplMXJ1iCENndtfWm1AXhAFj5RSsSAZg6IStTM+mcpnC75moEwQtj8bTenwehHz1HQAjQX7xeTQo27SxDc7oqp1ReyXCllMjKxckjVGmp2j6yxn1Jl55kivBj57vluLtEtziOGluVELP5E2fV0VAuErNhnjLm4LJARVN76PQaTOXYwATVVJJDhb/77TesvxQsr3VfiROEKm7QB7IDFjghjLLisSX67JQ5+7K/qMlqf9+9hNw4n0v1eMylVjt+gyxspc="
on_failure: always
on_success: change
template:
- "Repo `%{repository_slug}` *%{result}* build (<%{build_url}|#%{build_number}>) for commit (<%{compare_url}|%{commit}>) on branch `%{branch}`."
- "Author: %{author} Execution time: *%{duration}*"
- "Message: %{message}"
cache:
npm: false
directories:
- tmp
+1
View File
@@ -1,4 +1,5 @@
{
"recommendations": [
"lucono.karma-test-explorer"
]
}
+6 -6
View File
@@ -2,8 +2,8 @@
| branch | status |
| --- | --- |
| master | [![Build Status](https://travis-ci.com/Alfresco/alfresco-ng2-components.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
| develop | [![Build Status](https://travis-ci.com/Alfresco/alfresco-ng2-components.svg?branch=develop)](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
| master | [![git-tag](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/git-tag.yml/badge.svg)](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/git-tag.yml) |
| develop | [![cron schedule](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/cron.yml/badge.svg)](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/cron.yml)|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d9eb873741da403bb3284778102372e7)](https://www.codacy.com/app/Alfresco/alfresco-ng2-components?utm_source=github.com&utm_medium=referral&utm_content=Alfresco/alfresco-ng2-components&utm_campaign=badger)
[![Join the chat at https://gitter.im/Alfresco/alfresco-ng2-components](https://badges.gitter.im/Alfresco/alfresco-ng2-components.svg)](https://gitter.im/Alfresco/alfresco-ng2-components?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -39,8 +39,8 @@ ADF Libraries list:
- [Insights](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/insights)
- [Process Service Cloud](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/process-services-cloud)
- [Process service](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/process-services)
- [Stories](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/stories)
- [Stories](https://github.com/Alfresco/alfresco-ng2-components/tree/develop/lib/stories)
## Demo Application
A separate application showcasing integration of components can be found
@@ -49,7 +49,7 @@ The app has examples of basic interaction for both APS and ACS components.
## Yeoman generators
To speed up the development of your ADF application, use the
To speed up the development of your ADF application, use the
[Yeoman Generator](https://github.com/Alfresco/generator-ng2-alfresco-app).
This will create a full working project with all the right libraries and tools.
@@ -69,6 +69,6 @@ All components are supported in the following browsers:
|Edge |13, 14 |
|Internet Explorer |11 |
* Due to a [known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1188880) in Firefox, the Alfresco Upload Component does not currently support folder upload functionality on Firefox.
* Due to a [known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1188880) in Firefox, the Alfresco Upload Component does not currently support folder upload functionality on Firefox.
See the [Browser Support](BROWSER-SUPPORT.md) article for more details.
+175 -17
View File
@@ -167,7 +167,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
],
"scripts": [
"node_modules/pdfjs-dist/build/pdf.js",
@@ -204,6 +205,14 @@
}
]
},
"canary": {
"fileReplacements": [
{
"replace": "demo-shell/src/environments/environment.ts",
"with": "demo-shell/src/environments/environment.canary.ts"
}
]
},
"e2e": {
"budgets": [
{
@@ -241,6 +250,9 @@
"production": {
"browserTarget": "demoshell:build:production"
},
"canary": {
"browserTarget": "demoshell:build:canary"
},
"e2e": {
"browserTarget": "demoshell:build:e2e"
}
@@ -357,7 +369,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -378,7 +391,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -422,10 +436,25 @@
"options": {
"commands": [
{
"command": "$(npm bin)/webpack -- --config ./lib/config/webpack.style.js --progress --profile --bail && rm ./dist/libs/core/lib/prebuilt-themes/*.js"
"command": "$(npm bin)/webpack -- --config ./lib/config/webpack.style.js --progress --profile --bail"
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/core",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -446,7 +475,8 @@
"project": "lib/content-services/ng-package.json",
"tsConfig": "lib/content-services/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -478,7 +508,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -499,7 +530,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -527,6 +559,21 @@
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/content-services",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -547,7 +594,8 @@
"project": "lib/process-services/ng-package.json",
"tsConfig": "lib/process-services/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -596,6 +644,21 @@
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/process-services",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -616,7 +679,8 @@
"project": "lib/process-services-cloud/ng-package.json",
"tsConfig": "lib/process-services-cloud/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -648,7 +712,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -669,7 +734,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -678,6 +744,17 @@
}
}
},
"e2e-playwright": {
"executor": "nx:run-commands",
"options": {
"commands": [
{
"command": "$(npm bin)/playwright test --config='e2e-playwright/playwright.config.ts'"
}
]
}
},
"spellcheck": {
"executor": "nx:run-commands",
"options": {
@@ -697,6 +774,21 @@
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/process-services-cloud",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -717,7 +809,8 @@
"project": "lib/insights/ng-package.json",
"tsConfig": "lib/insights/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -756,6 +849,21 @@
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/insights",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -775,7 +883,8 @@
"production": {
"tsConfig": "lib/extensions/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -805,6 +914,21 @@
}
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/extensions",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -837,7 +961,8 @@
"generatePackageJson" : true,
"tsConfig": "lib/testing/tsconfig.lib.prod.json"
}
}
},
"defaultConfiguration": "production"
},
"lint": {
"builder": "@nrwl/linter:eslint",
@@ -876,6 +1001,21 @@
"target": "build"
}
]
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/testing",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -896,7 +1036,8 @@
"production": {
"tsConfig": "lib/cli/tsconfig.json"
}
}
},
"defaultConfiguration": "production"
},
"bundle": {
"executor": "nx:run-commands",
@@ -935,6 +1076,21 @@
"lib/cli/**/*.html"
]
}
},
"npm-publish": {
"executor": "nx:run-commands",
"dependsOn": [
"build"
],
"options": {
"cwd": "dist/libs/cli",
"commands": [
{
"command": "npm publish --tag {args.tag}",
"forwardAllArgs": true
}
]
}
}
}
},
@@ -955,7 +1111,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
@@ -976,7 +1133,8 @@
"demo-shell/src/assets/fonts/muli/muli.css",
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss",
"node_modules/cropperjs/dist/cropper.min.css"
"node_modules/cropperjs/dist/cropper.min.css",
"node_modules/pdfjs-dist/web/pdf_viewer.css"
]
},
"configurations": {
+6 -2
View File
@@ -27,6 +27,7 @@
"CSRF",
"datacolumn",
"datarow",
"Datasource",
"datatable",
"dateitem",
"datepicker",
@@ -62,9 +63,11 @@
"highlightable",
"hotfix",
"imgpreview",
"Inplace",
"intitem",
"jira",
"jsons",
"jwks",
"keycodes",
"keyvaluepairs",
"keyvaluepairsitem",
@@ -76,15 +79,15 @@
"mincount",
"minlength",
"minmax",
"jsons",
"Inplace",
"MLTEXT",
"mousedrag",
"mouseenter",
"multiselect",
"mysites",
"nginx",
"numbervisibilityprocess",
"OAUTHCONFIG",
"oidc",
"pdfjs",
"penta",
"printf",
@@ -121,6 +124,7 @@
"uncheck",
"Unclaim",
"unfavorite",
"unlisten",
"unshare",
"UPDATEPERMISSIONS",
"uploader",
+1 -1
View File
@@ -50,7 +50,7 @@ module.exports = function (config) {
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
browsers: ['ChromeHeadless'],
singleRun: false
});
};
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "5.1.0",
"version": "6.0.0-A.3",
"author": "Alfresco Software, Ltd.",
"repository": {
"type": "git",
+34 -4
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "نوع المصادقة",
"BASIC": "مصادقة أساسية",
"SSO": "SSO",
"IMPLICIT-FLOW": "تدفق ضمني",
"PROVIDER": "موفر",
"REQUIRED": "هذا الحقل مطلوب",
"CS_URL_ERROR": "لا يتطابق عنوان Content Services مع تنسيق URL",
"PS_URL_ERROR": "لا يتطابق عنوان Process Services مع تنسيق URL",
"TITLE": "الإعدادات",
"CS-HOST": "عنوان URL لـ Content Services",
"BP-HOST": "عنوان URL لـ Process Services",
"BACK": "عودة",
"APPLY": "تطبيق",
"NOT_VALID": "لم يتم التعرف على http(s)://host|ip:port(/path)، جرّب عنوان URL مختلفًا.",
"REDIRECT": "إعادة توجيه URI",
"REDIRECT_LOGOUT": "إعادة توجيه خروج URI",
"SILENT": "دخول صامت",
"SCOPE": "نطاق",
"CLIENT": "معرف العميل",
"PUBLIC_URLS": "عناوين url العامة لتسجيل الدخول الصامت",
"SECRET": "سر"
},
"ABOUT": {
"DEVELOPMENT": "وضع التطوير"
},
@@ -44,7 +67,7 @@
"VERSION": {
"NO_PERMISSION": "ليس لديك إذن لإدارة إصدارات هذا المحتوى",
"NO_PERMISSION_EVENT": "ليس لديك إذن ${event.permission} ل${event.action} ${event.type}",
"CHOOSE_FILE": "تحديد ملف لرؤية إصداراته",
"CHOOSE_FILE": "حدد ملف لرؤية إصداراته",
"DIALOG": {
"CLOSE": "إغلاق",
"TITLE": "إدارة الإصدارات"
@@ -112,7 +135,7 @@
"CONFIRM-DIALOG": "مربع حوار التأكيد",
"COMMUNITY": "Community",
"SERVICE_TASK_LIST": "قائمة مهام الخدمات",
"RICH_TEXT_EDITOR": "افتح محرر النص المنسق"
"RICH_TEXT_EDITOR": "محرر نص منسق"
},
"TRASHCAN": {
"ACTIONS": {
@@ -164,7 +187,7 @@
"DELETE": "حذف",
"FAVORITES": "إضافة إلى المفضلات",
"SHARE": "مشاركة",
"THEME": "تحديد نسق",
"THEME": "حدد نسق",
"SHOW_VERSION": "إظهار الإصدار",
"HIDE_VERSION": "إخفاء الإصدار",
"LISTVIEW": "وضع عرض القائمة",
@@ -358,5 +381,12 @@
"ACTION_TYPE": "نوع الإجراء"
}
},
"DEFAULT_SEARCH": "افتراضي"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "تم إنشاء زر مجلد جديد",
"EDIT_NODE_LABEL": "زر تحرير العقدة",
"DELETE_NODE_LABEL": "زر حذف أيقونة العقدة"
},
"DEFAULT_SEARCH": "افتراضي",
"OPEN_DIALOG": "فتح الحوار",
"SHOW_LIST_LABEL": "انقر لعرض القائمة"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Typ ověřování",
"BASIC": "Základní ověřování",
"SSO": "Jednotné přihlášení",
"IMPLICIT-FLOW": "Implicitní tok",
"PROVIDER": "Poskytovatel",
"REQUIRED": "Toto pole je povinné",
"CS_URL_ERROR": "Adresa Content Services neodpovídá formátu adresy URL",
"PS_URL_ERROR": "Adresa Process Services neodpovídá formátu adresy URL",
"TITLE": "Nastavení",
"CS-HOST": "Adresa URL pro Content Services",
"BP-HOST": "Adresa URL pro Process Services",
"BACK": "Zpět",
"APPLY": "Použít",
"NOT_VALID": "http(s)://host|ip:port(/path) nelze rozeznat. Použijte jinou adresu URL.",
"REDIRECT": "URI pro přesměrování",
"REDIRECT_LOGOUT": "URI pro přesměrování (odhlášení)",
"SILENT": "Přihlášení na pozadí",
"SCOPE": "Rozsah",
"CLIENT": "ID klienta",
"PUBLIC_URLS": "Veřejné adresy URL pro přihlášení na pozadí",
"SECRET": "Tajné"
},
"ABOUT": {
"DEVELOPMENT": "Režim pro vývojáře"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Typ akce"
}
},
"DEFAULT_SEARCH": "Výchozí"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Vytvořit tlačítko pro novou složku",
"EDIT_NODE_LABEL": "Upravit tlačítko uzlu",
"DELETE_NODE_LABEL": "Odebrat tlačítko ikony uzlu"
},
"DEFAULT_SEARCH": "Výchozí",
"OPEN_DIALOG": "Otevřít dialogové okno",
"SHOW_LIST_LABEL": "Na seznam pro zobrazení klikněte"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Godkendelsestype",
"BASIC": "Grundlæggende godkendelse",
"SSO": "SSO",
"IMPLICIT-FLOW": "Implicit flow",
"PROVIDER": "Udbyder",
"REQUIRED": "Dette felt er påkrævet",
"CS_URL_ERROR": "Content Services-adressen matcher ikke URL-formatet",
"PS_URL_ERROR": "Process Services-adressen matcher ikke URL-adresseformatet",
"TITLE": "Indstillinger",
"CS-HOST": "Content Services-URL",
"BP-HOST": "Process Services-URL",
"BACK": "Tilbage",
"APPLY": "Anvend",
"NOT_VALID": "http(s)://vært|ip-adresse:port(/sti) blev ikke genkendt. Prøv en anden URL-adresse.",
"REDIRECT": "URI til omdirigering",
"REDIRECT_LOGOUT": "Omdiriger URI til aflogning",
"SILENT": "Uovervåget login",
"SCOPE": "Omfang",
"CLIENT": "Klient-id",
"PUBLIC_URLS": "Uovervåget login til offentlige URL-adresser",
"SECRET": "Hemmelig"
},
"ABOUT": {
"DEVELOPMENT": "Udv. model"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Handlingstype"
}
},
"DEFAULT_SEARCH": "Standard"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Knap Opret en ny mappe",
"EDIT_NODE_LABEL": "Knap Redigér knude",
"DELETE_NODE_LABEL": "Knap Slet knudeikon"
},
"DEFAULT_SEARCH": "Standard",
"OPEN_DIALOG": "Åbn dialog",
"SHOW_LIST_LABEL": "Klik for at vise listen"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Authentifizierungstyp",
"BASIC": "Basisauthentifizierung",
"SSO": "SSO",
"IMPLICIT-FLOW": "Impliziter Fluss",
"PROVIDER": "Provider",
"REQUIRED": "Dieses Feld ist erforderlich",
"CS_URL_ERROR": "Content Services-Adresse nicht im richtigen URL-Format",
"PS_URL_ERROR": "Process Services-Adresse nicht im richtigen URL-Format",
"TITLE": "Einstellungen",
"CS-HOST": "URL für Content Services",
"BP-HOST": "URL für Process Services",
"BACK": "Zurück",
"APPLY": "Anwenden",
"NOT_VALID": "http(s)://host|ip:port(/path) nicht erkannt. Probieren Sie es mit einer anderen URL.",
"REDIRECT": "Umleitungs-URI",
"REDIRECT_LOGOUT": "Umleitungs-URI zum Abmelden",
"SILENT": "Automatische Anmeldung",
"SCOPE": "Bereich",
"CLIENT": "Client-ID",
"PUBLIC_URLS": "Öffentliche URLs für automatische Anmeldung",
"SECRET": "Geheimnis"
},
"ABOUT": {
"DEVELOPMENT": "Entwicklermodus"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Aktionstyp"
}
},
"DEFAULT_SEARCH": "Standard"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Schaltfläche für einen neuen Ordner erstellen",
"EDIT_NODE_LABEL": "Schaltfläche Node bearbeiten",
"DELETE_NODE_LABEL": "Schaltfläche für Node-Symbol löschen"
},
"DEFAULT_SEARCH": "Standard",
"OPEN_DIALOG": "Dialog öffnen",
"SHOW_LIST_LABEL": "Klicken Sie, um die Liste anzuzeigen"
}
+23
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Authentication type",
"BASIC": "Basic Authentication",
"SSO": "SSO",
"IMPLICIT-FLOW": "Implicit Flow",
"PROVIDER": "Provider",
"REQUIRED": "This field is required",
"CS_URL_ERROR": "Content Services address doesn't match the URL format",
"PS_URL_ERROR": "Process Services address doesn't match the URL format",
"TITLE": "Settings",
"CS-HOST": "Content Services URL",
"BP-HOST": "Process Services URL",
"BACK": "Back",
"APPLY": "APPLY",
"NOT_VALID": "http(s)://host|ip:port(/path) not recognized, try a different URL.",
"REDIRECT": "Redirect URI",
"REDIRECT_LOGOUT": "Redirect URI Logout",
"SILENT": "Silent Login",
"SCOPE": "Scope",
"CLIENT": "Client ID",
"PUBLIC_URLS": "Public urls silent Login",
"SECRET": "Secret"
},
"ABOUT": {
"DEVELOPMENT":"Dev Mode"
},
+9 -2
View File
@@ -112,7 +112,7 @@
"CONFIRM-DIALOG": "Cuadro de diálogo de confirmación",
"COMMUNITY": "Community",
"SERVICE_TASK_LIST": "Lista de tareas de servicio",
"RICH_TEXT_EDITOR": "Abrir el editor de texto enriquecido"
"RICH_TEXT_EDITOR": "Editor de texto enriquecido"
},
"TRASHCAN": {
"ACTIONS": {
@@ -358,5 +358,12 @@
"ACTION_TYPE": "Tipo de acción"
}
},
"DEFAULT_SEARCH": "Predeterminado"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Crear un nuevo botón de carpeta",
"EDIT_NODE_LABEL": "Editar botón de nodo",
"DELETE_NODE_LABEL": "Eliminar el botón del icono del nodo"
},
"DEFAULT_SEARCH": "Predeterminado",
"OPEN_DIALOG": "Abrir cuadro de diálogo",
"SHOW_LIST_LABEL": "Hacer clic para mostrar la lista"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Todennustyyppi",
"BASIC": "Perustodennus",
"SSO": "Kertakirjautuminen",
"IMPLICIT-FLOW": "Epäsuora kulku",
"PROVIDER": "Palvelu",
"REQUIRED": "Tämä kenttä on pakollinen",
"CS_URL_ERROR": "Content Services -osoite ei täsmää URL-muodon kanssa",
"PS_URL_ERROR": "Process Services -osoite ei täsmää URL-muodon kanssa",
"TITLE": "Asetukset",
"CS-HOST": "Content Servicesin URL-osoite",
"BP-HOST": "Process Servicesin URL-osoite",
"BACK": "Takaisin",
"APPLY": "Käytä",
"NOT_VALID": "Osoitetta http(s)://host|ip:port(/path) ei tunnisteta. Kokeile toista URL-osoitetta.",
"REDIRECT": "Uudelleenohjauksen URI-osoite",
"REDIRECT_LOGOUT": "Uudelleenohjauksen URI-osoite uloskirjautuminen",
"SILENT": "Hiljainen kirjautuminen",
"SCOPE": "Laajuus",
"CLIENT": "Asiakastunnus",
"PUBLIC_URLS": "Yleisten url-osoitteiden hiljainen sisäänkirjaus",
"SECRET": "Salainen"
},
"ABOUT": {
"DEVELOPMENT": "Kehitystapa"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Toiminnon tyyppi"
}
},
"DEFAULT_SEARCH": "Oletus"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Luo uusi kansio -painike",
"EDIT_NODE_LABEL": "Muokkaa solmua -painike",
"DELETE_NODE_LABEL": "Poista solmukuvake -painike"
},
"DEFAULT_SEARCH": "Oletus",
"OPEN_DIALOG": "Avaa valintaikkuna",
"SHOW_LIST_LABEL": "Näytä luettelo napsauttamalla"
}
+35 -5
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Type d'authentification",
"BASIC": "Authentification de base",
"SSO": "SSO",
"IMPLICIT-FLOW": "Flux implicite",
"PROVIDER": "Fournisseur",
"REQUIRED": "Ce champ est obligatoire",
"CS_URL_ERROR": "L'adresse Content Services ne correspond pas au format d'URL",
"PS_URL_ERROR": "L'adresse Process Services ne correspond pas au format d'URL",
"TITLE": "Paramètres",
"CS-HOST": "URL de Content Services",
"BP-HOST": "URL de Process Services",
"BACK": "Retour",
"APPLY": "Appliquer",
"NOT_VALID": "Adresse http(s)://host|ip:port(/path) non reconnue, essayez une autre URL.",
"REDIRECT": "URI de redirection",
"REDIRECT_LOGOUT": "Déconnexion URI de redirection",
"SILENT": "Connexion en mode silencieux",
"SCOPE": "Etendue",
"CLIENT": "ID client",
"PUBLIC_URLS": "URL publiques pour connexion en mode silencieux",
"SECRET": "Secret"
},
"ABOUT": {
"DEVELOPMENT": "Mode développement"
},
@@ -83,7 +106,7 @@
"FORM_LOADING": "Chargement du formulaire",
"UPLOADER": "Chargeur",
"WEBSCRIPT": "Script Web",
"TAG": "Balise",
"TAG": "Tag",
"PIPES": "Tuyaux",
"TRASHCAN": "Corbeille",
"SOCIAL": "Réseaux sociaux",
@@ -146,7 +169,7 @@
"COLUMNS": {
"DISPLAY_NAME": "Nom affiché",
"IS_LOCKED": "Verrouiller",
"TAG": "Balise",
"TAG": "Tag",
"NODE_ID": "ID du nœud",
"CREATED_BY": "Créé par",
"CREATED_ON": "Créé le",
@@ -271,9 +294,9 @@
"RATING": "Composant d'évaluation"
},
"TAG": {
"LIST": "Liste de balises Content Services",
"LIST": "Liste des tags Content Services",
"INSERT": "Insérer l'ID du nœud",
"NODE_LIST": "Liste de balises par ID de nœud"
"NODE_LIST": "Liste des tags par ID de nœud"
},
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Hériter des droits d'accès",
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Type d'action"
}
},
"DEFAULT_SEARCH": "Par défaut"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Bouton Créer un nouveau dossier",
"EDIT_NODE_LABEL": "Bouton Modifier le nœud",
"DELETE_NODE_LABEL": "Bouton Supprimer l'icône du nœud"
},
"DEFAULT_SEARCH": "Par défaut",
"OPEN_DIALOG": "Boîte de dialogue Ouvrir",
"SHOW_LIST_LABEL": "Cliquer pour afficher la liste"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Tipo di autenticazione",
"BASIC": "Autenticazione di base",
"SSO": "SSO",
"IMPLICIT-FLOW": "Flusso implicito",
"PROVIDER": "Fornitore",
"REQUIRED": "Questo campo è obbligatorio",
"CS_URL_ERROR": "L'indirizzo Content Services non corrisponde al formato dell'URL",
"PS_URL_ERROR": "L'indirizzo Process Services non corrisponde al formato dell'URL",
"TITLE": "Impostazioni",
"CS-HOST": "URL Content Services",
"BP-HOST": "URL Process Services",
"BACK": "Indietro",
"APPLY": "Applica",
"NOT_VALID": "http(s)://host|ip:port(/path) non riconosciuto, provare un URL diverso.",
"REDIRECT": "Reindirizza URI",
"REDIRECT_LOGOUT": "Reindirizza logout URI",
"SILENT": "Login invisibile",
"SCOPE": "Ambito",
"CLIENT": "ID client",
"PUBLIC_URLS": "URL pubblici per login invisibile",
"SECRET": "Segreto"
},
"ABOUT": {
"DEVELOPMENT": "Modalità sviluppo"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Tipo di azione"
}
},
"DEFAULT_SEARCH": "Predefinito"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Crea pulsante nuova cartella",
"EDIT_NODE_LABEL": "Modifica pulsante nodo",
"DELETE_NODE_LABEL": "Elimina icona nodo"
},
"DEFAULT_SEARCH": "Predefinito",
"OPEN_DIALOG": "Apri finestra di dialogo",
"SHOW_LIST_LABEL": "Fai clic per mostrare l'elenco"
}
+34 -4
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "認証タイプ",
"BASIC": "基本認証",
"SSO": "SSO",
"IMPLICIT-FLOW": "暗黙的フロー",
"PROVIDER": "プロバイダ",
"REQUIRED": "このフィールドは必須です",
"CS_URL_ERROR": "Content Services のアドレスが URL 形式と一致しません",
"PS_URL_ERROR": "Process Services のアドレスが URL 形式と一致しません",
"TITLE": "設定",
"CS-HOST": "Content Services の URL",
"BP-HOST": "Process Services の URL",
"BACK": "戻る",
"APPLY": "適用",
"NOT_VALID": "http(s)://host|ip:port(/path) が認識されません。別の URL を指定してください。",
"REDIRECT": "リダイレクト URI",
"REDIRECT_LOGOUT": "リダイレクト URI のログアウト",
"SILENT": "サイレントログイン",
"SCOPE": "範囲",
"CLIENT": "クライアント ID",
"PUBLIC_URLS": "サイレントログインのパブリック URL",
"SECRET": "シークレット"
},
"ABOUT": {
"DEVELOPMENT": "開発モード"
},
@@ -248,7 +271,7 @@
"RESULTS": "検索結果",
"NO_RESULT": "一致するアイテムはありません",
"FACET_FIELDS": {
"TYPE": "1:種類",
"TYPE": "1:タイプ",
"SIZE": "2:サイズ",
"CREATOR": "3:作成者",
"MODIFIER": "4:変更者",
@@ -257,7 +280,7 @@
"FACET_QUERIES": {
"MY_FACET_QUERIES": "あなたのファセットクエリ",
"CREATED_THIS_YEAR": "1.今年作成",
"MIMETYPE": "2.種類: HTML",
"MIMETYPE": "2.タイプ: HTML",
"XTRASMALL": "3.サイズ: 極小",
"SMALL": "4.サイズ: 小",
"MEDIUM": "5.サイズ: 中",
@@ -293,7 +316,7 @@
},
"PROCESS_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入してください",
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入する",
"APP_ID_TYPE_ERROR": "アプリケーション ID は数字でなければなりません",
"NUMBER_GREATER_THAN": "値は {{ value }} 以上でなければなりません"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "処理のタイプ"
}
},
"DEFAULT_SEARCH": "デフォルト"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "新しいフォルダボタンの作成",
"EDIT_NODE_LABEL": "ノードボタンの編集",
"DELETE_NODE_LABEL": "ノードアイコンボタンの削除"
},
"DEFAULT_SEARCH": "デフォルト",
"OPEN_DIALOG": "ダイアログを開く",
"SHOW_LIST_LABEL": "クリックしてリストを表示"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Godkjenningstype",
"BASIC": "Grunnleggende godkjenning",
"SSO": "SSO",
"IMPLICIT-FLOW": "Implisitt flyt",
"PROVIDER": "Leverandør",
"REQUIRED": "Dette feltet er påkrevd",
"CS_URL_ERROR": "Adressen til innholdstjenesten stemmer ikke med URL-formatet",
"PS_URL_ERROR": "Adressen til prosesstjenestene stemmer ikke med URL-formatet",
"TITLE": "Innstillinger",
"CS-HOST": "URL tinnholdstjenester",
"BP-HOST": "URL prosesstjenester",
"BACK": "Tilbake",
"APPLY": "Bruk",
"NOT_VALID": "http(s)://host|ip:port(/path) ikke gjenkjent, prøv en annen URL.",
"REDIRECT": "Omdirigerings-URI",
"REDIRECT_LOGOUT": "Omdirigerings-URI avlogging",
"SILENT": "Stille pålogging",
"SCOPE": "Område",
"CLIENT": "Klient-ID",
"PUBLIC_URLS": "Offentlige URL-er for stille pålogging",
"SECRET": "Hemmelig"
},
"ABOUT": {
"DEVELOPMENT": "Utvikl.modus"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Handlingstype"
}
},
"DEFAULT_SEARCH": "Standard"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Opprett en ny mappe-knapp",
"EDIT_NODE_LABEL": "Rediger node-knapp",
"DELETE_NODE_LABEL": "Slett nodeikon-knapp"
},
"DEFAULT_SEARCH": "Standard",
"OPEN_DIALOG": "Åpne dialog",
"SHOW_LIST_LABEL": "Klikk for å vise listen"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Verificatietype",
"BASIC": "Basisverificatie",
"SSO": "SSO",
"IMPLICIT-FLOW": "Impliciete stroom",
"PROVIDER": "Provider",
"REQUIRED": "Dit veld is vereist",
"CS_URL_ERROR": "Content Services-adres komt niet overeen met de URL-indeling",
"PS_URL_ERROR": "Process Services-adres komt niet overeen met de URL-indeling",
"TITLE": "Instellingen",
"CS-HOST": "Content Services-URL",
"BP-HOST": "Process Services-URL",
"BACK": "Terug",
"APPLY": "Toepassen",
"NOT_VALID": "http(s)://host|ip:port(/path) niet herkend, probeer een andere URL.",
"REDIRECT": "Omleidings-URI",
"REDIRECT_LOGOUT": "Omleidings-URI afmelden",
"SILENT": "Stille aanmelding",
"SCOPE": "Bereik",
"CLIENT": "Client-id",
"PUBLIC_URLS": "Openbare URL's voor stille aanmelding",
"SECRET": "Geheim"
},
"ABOUT": {
"DEVELOPMENT": "Ontwikkelaarsmodus"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Actietype"
}
},
"DEFAULT_SEARCH": "Standaard"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Knop Nieuwe map maken",
"EDIT_NODE_LABEL": "Knop Node bewerken",
"DELETE_NODE_LABEL": "Pictogramknop Node verwijderen"
},
"DEFAULT_SEARCH": "Standaard",
"OPEN_DIALOG": "Dialoogvenster Openen",
"SHOW_LIST_LABEL": "Klik om de lijst weer te geven"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Typ uwierzytelnienia",
"BASIC": "Uwierzytelnienie podstawowe",
"SSO": "Logowanie jednokrotne",
"IMPLICIT-FLOW": "Niejawny przepływ",
"PROVIDER": "Dostawca",
"REQUIRED": "To pole jest wymagane.",
"CS_URL_ERROR": "Adres usług Content Services jest niezgodny z formatem adresu URL.",
"PS_URL_ERROR": "Adres usług Process Services jest niezgodny z formatem adresu URL.",
"TITLE": "Ustawienia",
"CS-HOST": "Adres URL usług Content Services",
"BP-HOST": "Adres URL usług Process Services",
"BACK": "Wstecz",
"APPLY": "Zastosuj",
"NOT_VALID": "Nie rozpoznano adresu http(s)://host|ip:port(/path). Spróbuj użyć innego adresu URL.",
"REDIRECT": "Identyfikator URI przekierowania",
"REDIRECT_LOGOUT": "Identyfikator URI przekierowania — wylogowanie",
"SILENT": "Ciche logowanie",
"SCOPE": "Zakres",
"CLIENT": "Identyfikator klienta",
"PUBLIC_URLS": "Publiczne URL do cichego logowania",
"SECRET": "Klucz tajny"
},
"ABOUT": {
"DEVELOPMENT": "Tryb progr."
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Typ czynności"
}
},
"DEFAULT_SEARCH": "Domyślne"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Przycisk Utwórz nowy folder",
"EDIT_NODE_LABEL": "Przycisk Edytuj węzeł",
"DELETE_NODE_LABEL": "Przycisk Usuń ikonę węzła"
},
"DEFAULT_SEARCH": "Domyślne",
"OPEN_DIALOG": "Otwórz okno dialogowe",
"SHOW_LIST_LABEL": "Kliknij, aby wyświetlić listę"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Tipo de autenticação",
"BASIC": "Autenticação básica",
"SSO": "SSO",
"IMPLICIT-FLOW": "Fluxo implícito",
"PROVIDER": "Provedor",
"REQUIRED": "Este campo é obrigatório",
"CS_URL_ERROR": "O endereço do Content Services não corresponde ao formato de URL",
"PS_URL_ERROR": "O endereço do Process Services não corresponde ao formato de URL",
"TITLE": "Configurações",
"CS-HOST": "URL do Content Services",
"BP-HOST": "URL do Process Services",
"BACK": "Voltar",
"APPLY": "Aplicar",
"NOT_VALID": "http(s)://host|ip:port(/path) não reconhecida, tente uma URL diferente.",
"REDIRECT": "Redirecionar URI",
"REDIRECT_LOGOUT": "Redirecionar logout de URI",
"SILENT": "Login silencioso",
"SCOPE": "Escopo",
"CLIENT": "ID de cliente",
"PUBLIC_URLS": "Login silencioso de URLs públicas",
"SECRET": "Segredo"
},
"ABOUT": {
"DEVELOPMENT": "Modo de desenvolvimento"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Tipo de ação"
}
},
"DEFAULT_SEARCH": "Padrão"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Criar um novo botão de pasta",
"EDIT_NODE_LABEL": "Editar botão de nó",
"DELETE_NODE_LABEL": "Excluir botão de ícone de nó"
},
"DEFAULT_SEARCH": "Padrão",
"OPEN_DIALOG": "Abrir caixa de diálogo",
"SHOW_LIST_LABEL": "Clique para mostrar a lista"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Тип авторизации",
"BASIC": "Базовая авторизация",
"SSO": "SSO",
"IMPLICIT-FLOW": "Неявный поток",
"PROVIDER": "Поставщик",
"REQUIRED": "Поле обязательно для заполнения",
"CS_URL_ERROR": "Адрес Content Services не соответствует формату URL",
"PS_URL_ERROR": "Адрес Process Services не соответствует формату URL",
"TITLE": "Параметры",
"CS-HOST": "URL-адрес Content Services",
"BP-HOST": "URL-адрес Process Services",
"BACK": "Назад",
"APPLY": "Применить",
"NOT_VALID": "http(s)://host|ip:port(/path) не распознан, используйте другой URL-адрес.",
"REDIRECT": "URI перенаправления",
"REDIRECT_LOGOUT": "Выход URI перенаправления",
"SILENT": "Автоматический вход",
"SCOPE": "Область применения",
"CLIENT": "Идентификатор клиента",
"PUBLIC_URLS": "Общедоступные URL-адреса с автоматическим входом",
"SECRET": "Секретный"
},
"ABOUT": {
"DEVELOPMENT": "Режим разработки"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Тип действия"
}
},
"DEFAULT_SEARCH": "По умолчанию"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Кнопка \"Создать новую папку\"",
"EDIT_NODE_LABEL": "Кнопка \"Редактировать узел\"",
"DELETE_NODE_LABEL": "Кнопка \"Удалить значок узла\""
},
"DEFAULT_SEARCH": "По умолчанию",
"OPEN_DIALOG": "Открыть диалог",
"SHOW_LIST_LABEL": "Нажмите для отображения списка"
}
+31 -1
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "Autentiseringstyp",
"BASIC": "Grundläggande autentisering",
"SSO": "SSO",
"IMPLICIT-FLOW": "Implicit flöde",
"PROVIDER": "Leverantör",
"REQUIRED": "Detta fält krävs",
"CS_URL_ERROR": "Content Services-adressen matchar inte URL-formatet",
"PS_URL_ERROR": "Process Services-adressen matchar inte URL-formatet",
"TITLE": "Inställningar",
"CS-HOST": "Content Services-URL",
"BP-HOST": "Process Services-URL",
"BACK": "Tillbaka",
"APPLY": "Tillämpa",
"NOT_VALID": "http(s)://host|ip:port(/path) kändes inte igen, testa annan URL.",
"REDIRECT": "Omdirigera URI",
"REDIRECT_LOGOUT": "Omdirigera URI-utloggning",
"SILENT": "Tyst inloggning",
"SCOPE": "Definitionsområde",
"CLIENT": "Klient-ID",
"PUBLIC_URLS": "Offentliga url:er för tyst inloggning",
"SECRET": "Hemlig"
},
"ABOUT": {
"DEVELOPMENT": "Utvecklarläge"
},
@@ -358,5 +381,12 @@
"ACTION_TYPE": "Åtgärdstyp"
}
},
"DEFAULT_SEARCH": "Standard"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "Knappen Skapa en ny mapp",
"EDIT_NODE_LABEL": "Knappen Redigera nod",
"DELETE_NODE_LABEL": "Knappen Radera nodikon"
},
"DEFAULT_SEARCH": "Standard",
"OPEN_DIALOG": "Öppna dialogruta",
"SHOW_LIST_LABEL": "Klicka för att visa listan"
}
+37 -7
View File
@@ -1,5 +1,28 @@
{
"APP": {
"HOST_SETTINGS": {
"TYPE-AUTH": "身份验证类型",
"BASIC": "基本身份验证",
"SSO": "SSO",
"IMPLICIT-FLOW": "隐式流",
"PROVIDER": "提供程序",
"REQUIRED": "此字段为必填字段",
"CS_URL_ERROR": "Content Services 地址与 URL 格式不匹配",
"PS_URL_ERROR": "Process Services 地址与 URL 格式不匹配",
"TITLE": "设置",
"CS-HOST": "Content Services URL",
"BP-HOST": "Process Services URL",
"BACK": "返回",
"APPLY": "应用",
"NOT_VALID": "http(s)://host|ip:port(/path) 无法识别,请使用其他 URL。",
"REDIRECT": "重定向 URI",
"REDIRECT_LOGOUT": "重定向 URI 注销",
"SILENT": "静默登录",
"SCOPE": "范围",
"CLIENT": "客户端 ID",
"PUBLIC_URLS": "用于静默登录的公共 URL",
"SECRET": "机密"
},
"ABOUT": {
"DEVELOPMENT": "Dev 模式"
},
@@ -83,7 +106,7 @@
"FORM_LOADING": "表单加载",
"UPLOADER": "上传程序",
"WEBSCRIPT": "Webscript",
"TAG": "标",
"TAG": "标",
"PIPES": "管道",
"TRASHCAN": "垃圾桶",
"SOCIAL": "社交",
@@ -103,7 +126,7 @@
"PEOPLE_GROUPS_CLOUD": "人员/一组云",
"TASK_HEADER_CLOUD": {
"COMPONENT_NAME": "云的任务标题",
"APP_NAME_INPUT": "应用程序名称",
"APP_NAME_INPUT": "App 名称",
"TASK_ID_INPUT": "任务 id",
"FIND_TASK_BUTTON": "查找任务"
},
@@ -281,8 +304,8 @@
},
"TASK_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字",
"APP_ID_REQUIRED_ERROR": "插入 App ID",
"APP_ID_TYPE_ERROR": "App ID 必须为数字",
"NUMBER_TYPE_ERROR": "值必须是数字",
"NUMBER_GREATER_THAN": "值必须大于或等于 {{ value }}"
},
@@ -293,8 +316,8 @@
},
"PROCESS_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字",
"APP_ID_REQUIRED_ERROR": "插入 App ID",
"APP_ID_TYPE_ERROR": "App ID 必须为数字",
"NUMBER_GREATER_THAN": "值必须大于或等于 {{ value }}"
},
"PROCESS_CONTEXT_MENU": "流程列表上下文菜单"
@@ -358,5 +381,12 @@
"ACTION_TYPE": "操作类型"
}
},
"DEFAULT_SEARCH": "默认值"
"BREADCRUMB_DEMO": {
"NEW_FOLDER_LABEL": "创建一个新文件夹按钮",
"EDIT_NODE_LABEL": "编辑节点按钮",
"DELETE_NODE_LABEL": "删除节点图标按钮"
},
"DEFAULT_SEARCH": "默认值",
"OPEN_DIALOG": "打开对话框",
"SHOW_LIST_LABEL": "单击以显示列表"
}
+9
View File
@@ -1327,6 +1327,15 @@
"title": "ADF_CLOUD_TASK_LIST.PROPERTIES.LAST_MODIFIED",
"sortable": true,
"format": "timeAgo"
},
{
"id": "description",
"key": "description",
"type": "text",
"title": "ADF_CLOUD_TASK_LIST.PROPERTIES.DESCRIPTION",
"sortable": false,
"draggable": false,
"isHidden": true
}
]
}
+5 -6
View File
@@ -20,7 +20,7 @@ import { APP_INITIALIZER, NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { FlexLayoutModule } from '@angular/flex-layout';
import { ChartsModule } from 'ng2-charts';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
import { TranslateModule } from '@ngx-translate/core';
import {
@@ -29,7 +29,7 @@ import {
DebugAppConfigService,
CoreModule,
CoreAutomationService,
AuthBearerInterceptor
AuthModule
} from '@alfresco/adf-core';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { AppComponent } from './app.component';
@@ -115,6 +115,7 @@ import localeSv from '@angular/common/locales/sv';
import { setupAppNotifications } from './services/app-notifications-factory';
import { AppNotificationsService } from './services/app-notifications.service';
import { SearchFilterChipsComponent } from './components/search/search-filter-chips.component';
import { UserInfoComponent } from './components/app-layout/user-info/user-info.component';
registerLocaleData(localeFr);
registerLocaleData(localeDe);
@@ -139,6 +140,7 @@ registerLocaleData(localeSv);
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
ReactiveFormsModule,
RouterModule.forRoot(appRoutes, { useHash: true, relativeLinkResolution: 'legacy' }),
...(environment.oidc ? [AuthModule.forRoot({ useHash: true })] : []),
FormsModule,
HttpClientModule,
MaterialModule,
@@ -159,6 +161,7 @@ registerLocaleData(localeSv);
AppComponent,
LogoutComponent,
AppLayoutComponent,
UserInfoComponent,
HomeComponent,
SearchBarComponent,
SearchResultComponent,
@@ -209,10 +212,6 @@ registerLocaleData(localeSv);
SearchFilterChipsComponent
],
providers: [
{
provide: HTTP_INTERCEPTORS, useClass:
AuthBearerInterceptor, multi: true
},
{ provide: AppConfigService, useClass: DebugAppConfigService }, // not use this service in production
{
provide: TRANSLATION_PROVIDER,
@@ -22,8 +22,7 @@
<div class="app-header-delimiexpandedSidenavter"></div>
<adf-userinfo [menuPositionX]="'before'" [menuPositionY]="'above'">
</adf-userinfo>
<app-shell-user-info [menuPositionX]="'before'" [menuPositionY]="'above'"></app-shell-user-info>
<app-theme-picker></app-theme-picker>
<button data-automation-id="language-menu-button" mat-icon-button [matMenuTriggerFor]="langMenu">
@@ -127,7 +127,7 @@ export class AppLayoutComponent implements OnInit, OnDestroy {
this.color = color;
} else {
this.color = undefined;
document.documentElement.style.setProperty('--adf-header-background-color', color);
document.documentElement.style.setProperty('--theme-primary-color', color);
}
});
@@ -138,7 +138,7 @@ export class AppLayoutComponent implements OnInit, OnDestroy {
this.headerService.headerTextColor
.pipe(takeUntil(this.onDestroy$))
.subscribe(headerTextColor => {
document.documentElement.style.setProperty('--adf-header-text-color', headerTextColor);
document.documentElement.style.setProperty('--theme-primary-color-default-contrast', headerTextColor);
});
this.headerService.logo
@@ -0,0 +1,21 @@
<ng-container>
<adf-content-user-info
*ngIf="mode === userInfoMode.CONTENT || mode === userInfoMode.CONTENT_SSO"
[ecmUser]="ecmUser$ | async"
[identityUser]="identityUser$ | async"
[isLoggedIn]="isLoggedIn"
[mode]="mode"
></adf-content-user-info>
<adf-identity-user-info
*ngIf="mode === userInfoMode.SSO"
[identityUser]="identityUser$ | async"
[isLoggedIn]="isLoggedIn"
></adf-identity-user-info>
<adf-process-user-info
*ngIf="mode === userInfoMode.PROCESS || mode === userInfoMode.ALL"
[bpmUser]="bpmUser$ | async"
[ecmUser]="ecmUser$ | async"
[isLoggedIn]="isLoggedIn"
[mode]="mode"
></adf-process-user-info>
</ng-container>
@@ -15,34 +15,16 @@
* limitations under the License.
*/
import { Component, Input, OnInit, ViewEncapsulation, ViewChild, OnDestroy } from '@angular/core';
import { AuthenticationService } from '../../services/authentication.service';
import { BpmUserModel } from '../../models/bpm-user.model';
import { EcmUserModel } from '../../models/ecm-user.model';
import { IdentityUserModel } from '../../models/identity-user.model';
import { BpmUserService } from '../../services/bpm-user.service';
import { IdentityUserService } from '../../services/identity-user.service';
import { of, Observable, Subject } from 'rxjs';
import { MatMenuTrigger, MenuPositionX, MenuPositionY } from '@angular/material/menu';
import { PeopleContentService } from '../../services/people-content.service';
import { AuthenticationService, BpmUserModel, BpmUserService, EcmUserModel, IdentityUserModel, IdentityUserService, PeopleContentService, UserInfoMode } from '@alfresco/adf-core';
import { Component, OnInit, Input } from '@angular/core';
import { MenuPositionX, MenuPositionY } from '@angular/material/menu';
import { Observable, of } from 'rxjs';
@Component({
selector: 'adf-userinfo',
templateUrl: './user-info.component.html',
styleUrls: ['./user-info.component.scss'],
encapsulation: ViewEncapsulation.None
selector: 'app-shell-user-info',
templateUrl: './user-info.component.html'
})
export class UserInfoComponent implements OnInit, OnDestroy {
@ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;
/** Custom path for the background banner image for ACS users. */
@Input()
ecmBackgroundImage: string = './assets/images/ecm-background.png';
/** Custom path for the background banner image for APS users. */
@Input()
bpmBackgroundImage: string = './assets/images/bpm-background.png';
export class UserInfoComponent implements OnInit {
/** Custom choice for opening the menu at the bottom. Can be `before` or `after`. */
@Input()
@@ -52,23 +34,12 @@ export class UserInfoComponent implements OnInit, OnDestroy {
@Input()
menuPositionY: MenuPositionY = 'below';
/** Shows/hides the username next to the user info button. */
@Input()
showName: boolean = true;
/** When the username is shown, this defines its position relative to the user info button.
* Can be `right` or `left`.
*/
@Input()
namePosition: string = 'right';
mode: string;
mode: UserInfoMode;
ecmUser$: Observable<EcmUserModel>;
bpmUser$: Observable<BpmUserModel>;
identityUser$: Observable<IdentityUserModel>;
selectedIndex: number;
private destroy$ = new Subject();
userInfoMode = UserInfoMode;
constructor(private peopleContentService: PeopleContentService,
private bpmUserService: BpmUserService,
@@ -80,40 +51,26 @@ export class UserInfoComponent implements OnInit, OnDestroy {
this.getUserInfo();
}
ngOnDestroy(): void {
this.destroy$.next(true);
this.destroy$.complete();
}
getUserInfo() {
if (this.authService.isOauth()) {
this.loadIdentityUserInfo();
this.mode = 'SSO';
this.mode = UserInfoMode.SSO;
if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
this.mode = UserInfoMode.CONTENT_SSO;
this.loadEcmUserInfo();
}
} else if (this.isAllLoggedIn()) {
this.loadEcmUserInfo();
this.loadBpmUserInfo();
this.mode = 'ALL';
this.mode = UserInfoMode.ALL;
} else if (this.isEcmLoggedIn()) {
this.loadEcmUserInfo();
this.mode = 'CONTENT';
this.mode = UserInfoMode.CONTENT;
} else if (this.isBpmLoggedIn()) {
this.loadBpmUserInfo();
this.mode = 'PROCESS';
}
}
onKeyPress(event: KeyboardEvent) {
this.closeUserModal(event);
}
private closeUserModal($event: KeyboardEvent) {
if ($event.keyCode === 27) {
this.trigger.closeMenu();
this.mode = UserInfoMode.PROCESS;
}
}
@@ -147,20 +104,5 @@ export class UserInfoComponent implements OnInit, OnDestroy {
private isEcmLoggedIn() {
return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
}
stopClosing(event: Event) {
event.stopPropagation();
}
getEcmAvatar(avatarId: any): string {
return this.peopleContentService.getUserProfileImage(avatarId);
}
getBpmUserImage(): string {
return this.bpmUserService.getCurrentUserProfileImage();
}
get showOnRight(): boolean {
return this.namePosition === 'right';
}
}
@@ -1,4 +1,3 @@
<adf-viewer
[overlayMode]="true"
<adf-alfresco-viewer
[nodeId]="nodeId">
</adf-viewer>
</adf-alfresco-viewer>
@@ -26,7 +26,7 @@ import {
} from '@angular/core';
import { NodeEntry, Node } from '@alfresco/js-api';
import { BehaviorSubject, Subject } from 'rxjs';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { NodesApiService } from '@alfresco/adf-core';
import { takeUntil } from 'rxjs/operators';
@Component({
@@ -52,12 +52,12 @@ export class NameColumnComponent implements OnInit, OnDestroy {
private onDestroy$ = new Subject<boolean>();
constructor(private element: ElementRef, private alfrescoApiService: AlfrescoApiService) {}
constructor(private element: ElementRef, private nodesApiService: NodesApiService) {}
ngOnInit() {
this.updateValue();
this.alfrescoApiService.nodeUpdated
this.nodesApiService.nodeUpdated
.pipe(takeUntil(this.onDestroy$))
.subscribe((node: Node) => {
const row = this.context.row;
@@ -1,336 +1,382 @@
<ng-container *ngIf="nodeId || content">
<ng-container *ngIf="nodeId">
<ng-template let-node="node" #sidebarRightTemplate>
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
<adf-info-drawer-tab label="APP.INFO_DRAWER.COMMENTS">
<adf-comments [nodeId]="nodeId" [readOnly]="!isCommentEnabled"></adf-comments>
</adf-info-drawer-tab>
<adf-info-drawer-tab label="APP.INFO_DRAWER.PROPERTIES">
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
[multi]="multi"
[preset]="customPreset"
[readOnly]="isReadOnly"
[displayAspect]="showAspect"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<adf-content-metadata-card *ngIf="!isPreset" [node]="node"
[multi]="multi"
[readOnly]="isReadOnly"
[displayAspect]="showAspect"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-default-properties"
[color]="'primary'"
(change)="toggleDisplayProperties()"
[checked]="displayDefaultProperties">
Display Default Properties
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-empty"
[color]="'primary'"
(change)="toggleEmptyMetadata()"
[checked]="displayEmptyMetadata">
Display Empty Metadata
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-multi"
[color]="'primary'"
(change)="toggleMulti()"
[checked]="multi">
Multi accordion
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-readonly"
[color]="'primary'"
(change)="toggleReadOnly()"
[checked]="isReadOnly">
Read Only
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toggle-custom-preset"
[color]="'primary'"
(change)="togglePreset()"
[checked]="isPreset">
Custom preset
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Display Aspect"
[(ngModel)]="desiredAspect">
</mat-form-field>
<button mat-raised-button (click)="applyAspect()" color="primary">
Apply Aspect
</button>
</p>
<p class="toggle">
<ng-container *ngIf="isPreset">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Custom Preset"
[(ngModel)]="customPreset"
data-automation-id="adf-text-custom-preset">
</mat-form-field>
<button mat-raised-button id="adf-metadata-aplly" (click)="applyCustomPreset()" color="primary">
Apply
</button>
</ng-container>
</p>
</adf-info-drawer-tab>
<adf-info-drawer-tab label="APP.INFO_DRAWER.VERSIONS">
<mat-card>
<mat-card-content>
<adf-version-manager [node]="node"
(uploadError)="onUploadError($event)"
(viewVersion)="onViewVersion($event)">
</adf-version-manager>
</mat-card-content>
</mat-card>
</adf-info-drawer-tab>
</adf-info-drawer>
</ng-template>
<ng-template let-node="node" #sidebarLeftTemplate>
<adf-info-drawer [title]="'Viewer Options'">
<adf-info-drawer-tab label="Settings">
<p class="toggle">
<mat-slide-toggle
id="adf-switch-custoname"
[color]="'primary'"
(change)="toggleCustomName()"
[checked]="customName">
Custom Name
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="customName">
<mat-form-field floatLabel="never">
<input matInput
placeholder="Custom Name"
[(ngModel)]="displayName"
data-automation-id="adf-text-custom-name">
</mat-form-field>
</ng-container>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-fileurl"
[color]="'primary'"
(change)="toggleFileUrl()"
[checked]="fileUrlSwitch">
Url File
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="fileUrlSwitch">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Url File"
[(ngModel)]="urlFile"
data-automation-id="adf-text-file-url">
</mat-form-field>
</ng-container>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-toolbar"
[color]="'primary'"
(change)="toggleShowToolbar()"
[checked]="showToolbar">
Show Toolbar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-goback"
[color]="'primary'"
(change)="toggleAllowGoBack()"
[checked]="allowGoBack">
Allow GoBack
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-openwith"
[color]="'primary'"
(change)="toggleOpenWith()"
[checked]="openWith">
Open With
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-moreactions"
[color]="'primary'"
(change)="toggleOpenMoreActions()"
[checked]="moreActions">
More Actions
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-moreactionsmenu"
[color]="'primary'"
(change)="toggleMoreActionsMenu()"
[checked]="moreActionsMenu">
More Actions Menu
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-download"
[color]="'primary'"
(change)="toggleAllowDownload()"
[checked]="allowDownload">
Allow Download
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-print"
[color]="'primary'"
(change)="toggleAllowPrint()"
[checked]="allowPrint">
Allow Print
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-allowsidebar"
[color]="'primary'"
(change)="toggleAllowRightSidebar()"
[checked]="allowRightSidebar">
Allow Right Sidebar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-allowLeftSidebar"
[color]="'primary'"
(change)="toggleAllowLeftSidebar()"
[checked]="allowLeftSidebar">
Allow Left Sidebar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toggle-custom-toolbar"
[color]="'primary'"
(change)="toggleToolbar()"
[checked]="customToolbar">
Custom Toolbar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-tab-with-icon"
[color]="'primary'"
(change)="toggleShowTabWithIcon()"
[checked]="showTabWithIcon">
Show tab with icon
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-icon-and-label-tab"
[color]="'primary'"
(change)="toggleShowTabWithIconAndLabel()"
[checked]="showTabWithIconAndLabel">
Show tab with icon and label
</mat-slide-toggle>
</p>
<p class="toggle">
<button mat-raised-button id="adf-switch-showrightsidebar" (click)="toggleShowRightSidebar()"
color="primary">
Toggle Right Sidebar
</button>
</p>
<p class="toggle">
<button mat-raised-button id="adf-switch-showleftsidebar" (click)="hideLeftSidebar()"
color="primary">
Hide Left Sidebar
</button>
</p>
</adf-info-drawer-tab>
<adf-info-drawer-tab
*ngIf="showTabWithIcon"
[label]=""
[icon]="'face'"
data-automation-id="adf-settings-tab">
</adf-info-drawer-tab>
<adf-info-drawer-tab
*ngIf="showTabWithIconAndLabel"
[label]="'Comments'"
[icon]="'comment'"
data-automation-id="adf-settings-tab">
</adf-info-drawer-tab>
</adf-info-drawer>
</ng-template>
<adf-viewer
[blobFile]="content"
<adf-alfresco-viewer
(showViewerChange)="onViewerClosed()"
[nodeId]="nodeId"
[versionId]="versionId"
[showRightSidebar]="showRightSidebar"
[showLeftSidebar]="showLeftSidebar"
[allowGoBack]="allowGoBack"
[displayName]="displayName"
[showToolbar]="showToolbar"
[allowPrint]="allowPrint"
[allowDownload]="allowDownload"
[allowRightSidebar]="allowRightSidebar"
[allowLeftSidebar]="allowLeftSidebar"
[urlFile]="urlFile"
(showViewerChange)="onViewerVisibilityChanged()"
[sidebarLeftTemplate]="sidebarLeftTemplate"
[sidebarRightTemplate]="sidebarRightTemplate">
<adf-viewer-toolbar *ngIf="customToolbar" data-automation-id="adf-viewer-custom-toolbar">
<h1>My custom toolbar</h1>
</adf-viewer-toolbar>
<adf-viewer-toolbar-actions *ngIf="moreActions">
<button mat-icon-button id="adf-viewer-time">
<mat-icon>alarm</mat-icon>
</button>
<button mat-icon-button id="adf-viewer-upload">
<mat-icon>backup</mat-icon>
</button>
<button mat-icon-button id="adf-viewer-bug">
<mat-icon>bug_report</mat-icon>
</button>
</adf-viewer-toolbar-actions>
<adf-viewer-more-actions *ngIf="moreActionsMenu">
<button mat-menu-item id="adf-viewer-more-menu-alarm">
<mat-icon>alarm</mat-icon>
<span>Alarm</span>
</button>
<button mat-menu-item id="adf-viewer-more-menu-backup">
<mat-icon>backup</mat-icon>
<span>Backup</span>
</button>
<button mat-menu-item id="adf-viewer-more-menu-bug">
<mat-icon>bug_report</mat-icon>
<span>Bug report</span>
</button>
</adf-viewer-more-actions>
<ng-container *ngIf="openWith">
<adf-viewer-open-with>
<button mat-menu-item>
<mat-icon>dialpad</mat-icon>
<span>Option 1</span>
</button>
<button mat-menu-item disabled>
<mat-icon>voicemail</mat-icon>
<span>Option 2</span>
</button>
<button mat-menu-item>
<mat-icon>notifications_off</mat-icon>
<span>Option 3</span>
</button>
</adf-viewer-open-with>
</ng-container>
</adf-alfresco-viewer>
</ng-container>
<ng-template let-node="node" #sidebarRightTemplate>
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
<adf-info-drawer-tab label="APP.INFO_DRAWER.COMMENTS">
<adf-node-comments
[nodeId]="nodeId"
[readOnly]="!isCommentEnabled"
>
</adf-node-comments>
</adf-info-drawer-tab>
<adf-info-drawer-tab label="APP.INFO_DRAWER.PROPERTIES">
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
[multi]="multi"
[preset]="customPreset"
[readOnly]="isReadOnly"
[displayAspect]="showAspect"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<adf-content-metadata-card *ngIf="!isPreset" [node]="node"
[multi]="multi"
[readOnly]="isReadOnly"
[displayAspect]="showAspect"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-default-properties"
[color]="'primary'"
(change)="toggleDisplayProperties()"
[checked]="displayDefaultProperties">
Display Default Properties
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-empty"
[color]="'primary'"
(change)="toggleEmptyMetadata()"
[checked]="displayEmptyMetadata">
Display Empty Metadata
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-multi"
[color]="'primary'"
(change)="toggleMulti()"
[checked]="multi">
Multi accordion
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-readonly"
[color]="'primary'"
(change)="toggleReadOnly()"
[checked]="isReadOnly">
Read Only
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toggle-custom-preset"
[color]="'primary'"
(change)="togglePreset()"
[checked]="isPreset">
Custom preset
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Display Aspect"
[(ngModel)]="desiredAspect">
</mat-form-field>
<button mat-raised-button (click)="applyAspect()" color="primary">
Apply Aspect
</button>
</p>
<p class="toggle">
<ng-container *ngIf="isPreset">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Custom Preset"
[(ngModel)]="customPreset"
data-automation-id="adf-text-custom-preset">
</mat-form-field>
<button mat-raised-button id="adf-metadata-aplly" (click)="applyCustomPreset()" color="primary">
Apply
</button>
</ng-container>
</p>
</adf-info-drawer-tab>
<adf-info-drawer-tab label="APP.INFO_DRAWER.VERSIONS">
<mat-card>
<mat-card-content>
<adf-version-manager [node]="node"
(uploadError)="onUploadError($event)"
(viewVersion)="onViewVersion($event)">
</adf-version-manager>
</mat-card-content>
</mat-card>
</adf-info-drawer-tab>
</adf-info-drawer>
</ng-template>
<ng-template #sidebarLeftTemplate>
<adf-info-drawer [title]="'Viewer Options'">
<adf-info-drawer-tab label="Settings">
<p class="toggle">
<mat-slide-toggle
id="adf-switch-fileurl"
[color]="'primary'"
(change)="toggleFileUrl()"
[checked]="fileUrlSwitch">
Url File
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="fileUrlSwitch">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Url File"
[(ngModel)]="urlFile"
data-automation-id="adf-text-file-url">
</mat-form-field>
</ng-container>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-toolbar"
[color]="'primary'"
(change)="toggleShowToolbar()"
[checked]="showToolbar">
Show Toolbar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-goback"
[color]="'primary'"
(change)="toggleAllowGoBack()"
[checked]="allowGoBack">
Allow GoBack
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-openwith"
[color]="'primary'"
(change)="toggleOpenWith()"
[checked]="openWith">
Open With
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-moreactions"
[color]="'primary'"
(change)="toggleOpenMoreActions()"
[checked]="moreActions">
More Actions
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-moreactionsmenu"
[color]="'primary'"
(change)="toggleMoreActionsMenu()"
[checked]="moreActionsMenu">
More Actions Menu
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-download"
[color]="'primary'"
(change)="toggleAllowDownload()"
[checked]="allowDownload">
Allow Download
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-print"
[color]="'primary'"
(change)="toggleAllowPrint()"
[checked]="allowPrint">
Allow Print
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-allowsidebar"
[color]="'primary'"
(change)="toggleAllowRightSidebar()"
[checked]="allowRightSidebar">
Allow Right Sidebar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-switch-allowLeftSidebar"
[color]="'primary'"
(change)="toggleAllowLeftSidebar()"
[checked]="allowLeftSidebar">
Allow Left Sidebar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toggle-custom-toolbar"
[color]="'primary'"
(change)="toggleToolbar()"
[checked]="customToolbar">
Custom Toolbar
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-tab-with-icon"
[color]="'primary'"
(change)="toggleShowTabWithIcon()"
[checked]="showTabWithIcon">
Show tab with icon
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-icon-and-label-tab"
[color]="'primary'"
(change)="toggleShowTabWithIconAndLabel()"
[checked]="showTabWithIconAndLabel">
Show tab with icon and label
</mat-slide-toggle>
</p>
<p class="toggle">
<button mat-raised-button id="adf-switch-showrightsidebar" (click)="toggleShowRightSidebar()"
color="primary">
Toggle Right Sidebar
</button>
</p>
<p class="toggle">
<button mat-raised-button id="adf-switch-showleftsidebar" (click)="hideLeftSidebar()"
color="primary">
Hide Left Sidebar
</button>
</p>
</adf-info-drawer-tab>
<adf-info-drawer-tab
*ngIf="showTabWithIcon"
[label]=""
[icon]="'face'"
data-automation-id="adf-settings-tab">
</adf-info-drawer-tab>
<adf-info-drawer-tab
*ngIf="showTabWithIconAndLabel"
[label]="'Comments'"
[icon]="'comment'"
data-automation-id="adf-settings-tab">
</adf-info-drawer-tab>
</adf-info-drawer>
</ng-template>
<ng-container *ngIf="blobFile">
<adf-viewer
[blobFile]="blobFile"
[fileName]="fileName"
[showRightSidebar]="showRightSidebar"
[showLeftSidebar]="showLeftSidebar"
[allowGoBack]="allowGoBack"
[showToolbar]="showToolbar"
[allowRightSidebar]="allowRightSidebar"
[allowLeftSidebar]="allowLeftSidebar"
(showViewerChange)="onViewerClosed()"
[sidebarLeftTemplate]="sidebarLeftTemplate"
[sidebarRightTemplate]="sidebarRightTemplate">
@@ -382,36 +428,5 @@
</adf-viewer-open-with>
</ng-container>
<!--
<adf-viewer-extension [supportedExtensions]="['json']">
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
<h1>JSON VIEWER</h1>
</ng-template>
</adf-viewer-extension>
-->
<!--
<adf-viewer-extension [supportedExtensions]="['png']">
<ng-template>
<h1>PNG Viewer</h1>
</ng-template>
</adf-viewer-extension>
-->
<!--
<adf-viewer-extension [supportedExtensions]="['pdf']">
<ng-template>
<h1>PDF Viewer</h1>
</ng-template>
</adf-viewer-extension>
-->
<!--
<extension-viewer [supportedExtensions]="['obj','3DS']" #extension>
<ng-template let-urlFileContent="urlFileContent" let-extension="extension" >
<threed-viewer [urlFile]="urlFileContent" [extension]="extension" ></threed-viewer>
</ng-template>
</extension-viewer>
-->
</adf-viewer>
</ng-container>
@@ -45,7 +45,6 @@ export class FileViewComponent implements OnInit {
customPreset: string = null;
displayDefaultProperties = true;
showToolbar = true;
displayName = null;
urlFile = null;
allowGoBack = true;
openWith = false;
@@ -55,7 +54,6 @@ export class FileViewComponent implements OnInit {
allowLeftSidebar = true;
moreActions = true;
moreActionsMenu = false;
customName = false;
fileUrlSwitch = false;
showLeftSidebar = null;
showRightSidebar = false;
@@ -65,8 +63,9 @@ export class FileViewComponent implements OnInit {
showTabWithIconAndLabel = false;
desiredAspect: string = null;
showAspect: string = null;
content: Blob;
name: string;
fileName: string;
blobFile: Blob;
constructor(private router: Router,
private route: ActivatedRoute,
@@ -93,9 +92,9 @@ export class FileViewComponent implements OnInit {
},
() => this.router.navigate(['/files', id])
);
} else if (this.preview.content) {
this.content = this.preview.content;
this.displayName = this.preview.name;
} else if (this.preview?.content) {
this.blobFile = this.preview.content;
this.fileName = this.preview.name;
}
});
}
@@ -104,7 +103,7 @@ export class FileViewComponent implements OnInit {
this.preview.showResource(this.nodeId, versionId);
}
onViewerVisibilityChanged() {
onViewerClosed() {
const primaryUrl = this.router.parseUrl(this.router.url).root.children[PRIMARY_OUTLET].toString();
this.router.navigateByUrl(primaryUrl);
}
@@ -182,14 +181,6 @@ export class FileViewComponent implements OnInit {
this.showTabWithIconAndLabel = !this.showTabWithIconAndLabel;
}
toggleCustomName() {
this.customName = !this.customName;
if (!this.customName) {
this.displayName = null;
}
}
toggleFileUrl() {
this.fileUrlSwitch = !this.fileUrlSwitch;
@@ -19,7 +19,7 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Routes, RouterModule } from '@angular/router';
import { CoreModule, InfoDrawerModule } from '@alfresco/adf-core';
import { ContentDirectiveModule, VersionManagerModule, ContentMetadataModule } from '@alfresco/adf-content-services';
import { ContentModule, ContentDirectiveModule, VersionManagerModule, ContentMetadataModule } from '@alfresco/adf-content-services';
import { FileViewComponent } from './file-view.component';
const routes: Routes = [
@@ -34,7 +34,9 @@ const routes: Routes = [
CommonModule,
RouterModule.forChild(routes),
CoreModule,
ContentModule,
InfoDrawerModule,
ContentModule,
ContentDirectiveModule,
ContentMetadataModule,
VersionManagerModule
@@ -15,16 +15,48 @@
* limitations under the License.
*/
import { Component, Input, OnInit, OnChanges, OnDestroy, Optional, EventEmitter, ViewChild, SimpleChanges, Output, ViewEncapsulation } from '@angular/core';
import {
Component,
Input,
OnInit,
OnChanges,
OnDestroy,
Optional,
EventEmitter,
ViewChild,
SimpleChanges,
Output,
ViewEncapsulation
} from '@angular/core';
import { Location } from '@angular/common';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { MinimalNodeEntity, NodePaging, Pagination, MinimalNodeEntryEntity, SiteEntry, SearchEntry, NodeEntry } from '@alfresco/js-api';
import {
AlfrescoApiService, AuthenticationService, AppConfigService, AppConfigValues, ContentService, FolderCreatedEvent, LogService, NotificationService,
UploadService, DataRow, UserPreferencesService,
PaginationComponent, FormValues, DisplayMode, ShowHeaderMode, InfinitePaginationComponent,
SharedLinksApiService,
MinimalNodeEntity,
NodePaging,
Pagination,
MinimalNodeEntryEntity,
SiteEntry,
SearchEntry,
NodeEntry
} from '@alfresco/js-api';
import {
AlfrescoApiService,
AuthenticationService,
AppConfigService,
AppConfigValues,
ContentService,
FolderCreatedEvent,
LogService,
NotificationService,
UploadService,
DataRow,
UserPreferencesService,
PaginationComponent,
FormValues,
DisplayMode,
ShowHeaderMode,
InfinitePaginationComponent,
FormRenderingService,
FileUploadEvent,
NodesApiService
@@ -38,7 +70,8 @@ import {
LibraryDialogComponent,
ContentMetadataService,
FilterSearch,
DialogAspectListService
DialogAspectListService,
SharedLinksApiService
} from '@alfresco/adf-content-services';
import { SelectAppsDialogComponent, ProcessFormRenderingService } from '@alfresco/adf-process-services';
@@ -58,7 +91,7 @@ const DEFAULT_FOLDER_TO_SHOW = '-my-';
styleUrls: ['./files.component.scss'],
encapsulation: ViewEncapsulation.None,
providers: [
{ provide: FormRenderingService, useClass: ProcessFormRenderingService }
{provide: FormRenderingService, useClass: ProcessFormRenderingService}
]
})
export class FilesComponent implements OnInit, OnChanges, OnDestroy {
@@ -80,9 +113,9 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
toolbarColor: ThemePalette;
selectionModes = [
{ value: 'none', viewValue: 'None' },
{ value: 'single', viewValue: 'Single' },
{ value: 'multiple', viewValue: 'Multiple' }
{value: 'none', viewValue: 'None'},
{value: 'single', viewValue: 'Single'},
{value: 'multiple', viewValue: 'Multiple'}
];
// The identifier of a node. You can also use one of these well-known aliases: -my- | -shared- | -root-
@@ -195,13 +228,13 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
@Output()
deleteElementSuccess: EventEmitter<any> = new EventEmitter();
@ViewChild('documentList', { static: true })
@ViewChild('documentList', {static: true})
documentList: DocumentListComponent;
@ViewChild('standardPagination')
standardPagination: PaginationComponent;
@ViewChild(InfinitePaginationComponent, { static: true })
@ViewChild(InfinitePaginationComponent, {static: true})
infinitePaginationComponent: InfinitePaginationComponent;
permissionsStyle: PermissionStyleModel[] = [];
@@ -281,31 +314,31 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
}
this.uploadService.fileUploadComplete
.pipe(
debounceTime(300),
scan((files, currentFile) => [...files, currentFile], []),
takeUntil(this.onDestroy$)
)
.subscribe((value: any[]) => {
let selectedNodes: NodeEntry[] = [];
.pipe(
debounceTime(300),
scan((files, currentFile) => [...files, currentFile], []),
takeUntil(this.onDestroy$)
)
.subscribe((value: any[]) => {
let selectedNodes: NodeEntry[] = [];
if (this.preselectNodes) {
if (value && value.length > 0 ) {
if (this.selectionMode === 'single') {
selectedNodes = [...[value[value.length - 1]].map((uploadedFile) => uploadedFile.data)];
} else {
selectedNodes = [...value.map((uploadedFile) => uploadedFile.data)];
if (this.preselectNodes) {
if (value && value.length > 0) {
if (this.selectionMode === 'single') {
selectedNodes = [...[value[value.length - 1]].map((uploadedFile) => uploadedFile.data)];
} else {
selectedNodes = [...value.map((uploadedFile) => uploadedFile.data)];
}
this.selectedNodes = [...selectedNodes];
}
this.selectedNodes = [...selectedNodes];
}
}
this.onFileUploadEvent(value[0]);
});
this.onFileUploadEvent(value[0]);
});
this.uploadService.fileUploadDeleted
.pipe(takeUntil(this.onDestroy$))
.subscribe(value => this.onFileUploadEvent(value));
.pipe(takeUntil(this.onDestroy$))
.subscribe(value => this.onFileUploadEvent(value));
this.contentService.folderCreated
.pipe(takeUntil(this.onDestroy$))
@@ -364,7 +397,7 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
getCurrentDocumentListNode(): MinimalNodeEntity[] {
if (this.documentList.folderNode) {
return [{ entry: this.documentList.folderNode }];
return [{entry: this.documentList.folderNode}];
} else {
return [];
}
@@ -464,7 +497,7 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
if (this.contentService.hasAllowableOperations(contentEntry, 'update')) {
this.dialog.open(VersionManagerDialogAdapterComponent, {
data: { contentEntry, showComments, allowDownload },
data: {contentEntry, showComments, allowDownload},
panelClass: 'adf-version-manager-dialog',
width: '630px'
});
@@ -475,7 +508,7 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
onAspectUpdate(event: any) {
this.dialogAspectListService.openAspectListDialog(event.value.entry.id).subscribe((aspectList) => {
this.nodeService.updateNode(event.value.entry.id, {aspectNames : [...aspectList]}).subscribe(() => {
this.nodeService.updateNode(event.value.entry.id, {aspectNames: [...aspectList]}).subscribe(() => {
this.openSnackMessageInfo('Node Aspects Updated');
});
});
@@ -687,9 +720,9 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
onFilterSelected(activeFilters: FilterSearch[]) {
if (activeFilters.length) {
this.navigateToFilter(activeFilters);
this.navigateToFilter(activeFilters);
} else {
this.clearFilterNavigation();
this.clearFilterNavigation();
}
}
@@ -705,7 +738,7 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
objectFromMap[filter.key] = paramValue;
});
this.router.navigate([], { relativeTo: this.route, queryParams: objectFromMap });
this.router.navigate([], {relativeTo: this.route, queryParams: objectFromMap});
}
clearFilterNavigation() {
@@ -15,26 +15,19 @@
* limitations under the License.
*/
import { Observable, of, Subject } from 'rxjs';
import { Observable, of } from 'rxjs';
import { Injectable } from '@angular/core';
import {
AlfrescoApiService,
EcmModelService,
LogService,
FormService,
FormOutcomeEvent
} from '@alfresco/adf-core';
TaskFormService
} from '@alfresco/adf-process-services';
import { AlfrescoApiService, LogService } from '@alfresco/adf-core';
@Injectable()
export class FakeFormService extends FormService {
executeOutcome = new Subject<FormOutcomeEvent>();
export class FakeTaskFormService extends TaskFormService {
constructor(
ecmModelService: EcmModelService,
apiService: AlfrescoApiService,
protected logService: LogService
) {
super(ecmModelService, apiService, logService);
constructor(apiService: AlfrescoApiService, logService: LogService) {
super(apiService, logService);
}
public getRestFieldValues(
@@ -17,7 +17,7 @@
import { Component, ViewChild, OnDestroy, OnInit } from '@angular/core';
import { FormModel, FormService, LogService, FormOutcomeEvent } from '@alfresco/adf-core';
import { FormComponent } from '@alfresco/adf-process-services';
import { FormComponent, EditorService } from '@alfresco/adf-process-services';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@@ -42,7 +42,7 @@ export class FormListComponent implements OnInit, OnDestroy {
showValidationIcon = false;
private onDestroy$ = new Subject<boolean>();
constructor(private formService: FormService, private logService: LogService) {
constructor(private formService: FormService, private editorService: EditorService, private logService: LogService) {
}
ngOnInit() {
@@ -63,7 +63,7 @@ export class FormListComponent implements OnInit, OnDestroy {
onRowDblClick(event: CustomEvent<any>) {
const rowForm = event.detail.value.obj;
this.formService.getFormDefinitionById(rowForm.id).subscribe((formModel) => {
this.editorService.getFormDefinitionById(rowForm.id).subscribe((formModel) => {
const form = this.formService.parseForm(formModel.formDefinition);
this.form = form;
});
@@ -22,8 +22,11 @@ import {
FormOutcomeEvent,
CoreAutomationService
} from '@alfresco/adf-core';
import {
TaskFormService
} from '@alfresco/adf-process-services';
import { InMemoryFormService } from '../../services/in-memory-form.service';
import { FakeFormService } from './fake-form.service';
import { FakeTaskFormService } from './fake-tak-form.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@@ -31,7 +34,7 @@ import { takeUntil } from 'rxjs/operators';
selector: 'app-form-loading',
templateUrl: './form-loading.component.html',
styleUrls: ['./form-loading.component.scss'],
providers: [{ provide: FormService, useClass: FakeFormService }]
providers: [{ provide: FakeTaskFormService, useClass: TaskFormService }]
})
export class FormLoadingComponent implements OnInit, OnDestroy {
form: FormModel;
@@ -15,8 +15,8 @@
(preview)="showPreview($event)">
</adf-document-list>
<adf-viewer
<adf-alfresco-viewer
[(showViewer)]="showViewer"
[overlayMode]="isOverlay"
[nodeId]="nodeId">
</adf-viewer>
</adf-alfresco-viewer>
@@ -35,8 +35,7 @@ import {
ScriptFilesApi
} from '@alfresco/js-api';
import {
FORM_FIELD_VALIDATORS, FormRenderingService, FormService,
DynamicTableRow, ValidateDynamicTableRowEvent, AppConfigService, PaginationComponent, UserPreferenceValues,
FORM_FIELD_VALIDATORS, FormRenderingService, FormService, AppConfigService, PaginationComponent, UserPreferenceValues,
AlfrescoApiService, UserPreferencesService, LogService, DataCellEvent, NotificationService
} from '@alfresco/adf-core';
@@ -54,10 +53,12 @@ import {
TaskFiltersComponent,
TaskListComponent,
ProcessFormRenderingService,
APP_LIST_LAYOUT_LIST
APP_LIST_LAYOUT_LIST,
ValidateDynamicTableRowEvent,
DynamicTableRow
} from '@alfresco/adf-process-services';
import { Subject } from 'rxjs';
import { /*CustomEditorComponent*/ CustomStencil01 } from './custom-editor/custom-editor.component';
import { CustomStencil01 } from './custom-editor/custom-editor.component';
import { DemoFieldValidator } from './demo-field-validator';
import { PreviewService } from '../../services/preview.service';
import { Location } from '@angular/common';
@@ -2,7 +2,7 @@
<div fxFlex="50" class="app-rich-text-editor-col app-rich-text-editor-col-sx">
<h1 class="app-rich-text-editor-col-title">Rich Text Editor</h1>
<adf-rich-text-editor [data]="sampleData" #textEditor></adf-rich-text-editor>
<adf-cloud-rich-text-editor [data]="sampleData" #textEditor></adf-cloud-rich-text-editor>
</div>
<div fxFlex="50" class="app-rich-text-editor-col app-rich-text-editor-col-rx">
<h1 class="app-rich-text-editor-col-title">Output Data</h1>
@@ -15,9 +15,9 @@
* limitations under the License.
*/
import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { OutputData } from '@editorjs/editorjs';
import { RichTextEditorComponent as AdfRichTextEditorComponent } from '@alfresco/adf-core';
import { RichTextEditorComponent as AdfRichTextEditorComponent } from '@alfresco/adf-process-services-cloud';
import { takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
@@ -26,7 +26,7 @@ import { Subject } from 'rxjs';
templateUrl: './rich-text-editor.component.html',
styleUrls: ['./rich-text-editor.component.scss']
})
export class RichTextEditorComponent implements OnInit, AfterViewInit, OnDestroy {
export class RichTextEditorComponent implements AfterViewInit, OnDestroy {
@ViewChild('textEditor')
textEditor: AdfRichTextEditorComponent;
@@ -91,11 +91,6 @@ export class RichTextEditorComponent implements OnInit, AfterViewInit, OnDestroy
]
};
constructor() { }
ngOnInit(): void {
}
ngAfterViewInit(): void {
this.textEditor.outputData$.pipe(
takeUntil(this.onDestroy$)
@@ -19,6 +19,7 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RichTextEditorComponent } from './rich-text-editor.component';
import { ContentModule } from '@alfresco/adf-content-services';
import { RichTextEditorModule } from '@alfresco/adf-process-services-cloud';
import { CoreModule } from '@alfresco/adf-core';
import { RouterModule, Routes } from '@angular/router';
import { FlexLayoutModule } from '@angular/flex-layout';
@@ -37,7 +38,8 @@ const routes: Routes = [
CoreModule,
RouterModule.forChild(routes),
ContentModule.forChild(),
FlexLayoutModule
FlexLayoutModule,
RichTextEditorModule
]
})
export class AppRichTextEditorModule { }
@@ -16,7 +16,7 @@
*/
import { QueryBody } from '@alfresco/js-api';
import { SearchConfigurationInterface } from '@alfresco/adf-core';
import { SearchConfigurationInterface } from '@alfresco/adf-content-services';
import { Injectable } from '@angular/core';
@Injectable()
@@ -17,8 +17,8 @@
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
import { Pagination, QueryBody, MinimalNodeEntity } from '@alfresco/js-api';
import { SearchComponent } from '@alfresco/adf-content-services';
import { ThumbnailService, SearchService, SearchConfigurationService } from '@alfresco/adf-core';
import { ThumbnailService } from '@alfresco/adf-core';
import { SearchService, SearchConfigurationService, SearchComponent } from '@alfresco/adf-content-services';
import { TestSearchConfigurationService } from './search-config-test.service';
@Component({
@@ -18,8 +18,8 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Pagination, ResultSetPaging } from '@alfresco/js-api';
import { SearchConfiguration, SearchForm, SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { SearchService, ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { SearchConfiguration, SearchForm, SearchQueryBuilderService, SearchService } from '@alfresco/adf-content-services';
import { ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { combineLatest, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@@ -18,8 +18,8 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Pagination, ResultSetPaging } from '@alfresco/js-api';
import { SearchForm, SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { SearchService, ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { SearchForm, SearchQueryBuilderService, SearchService } from '@alfresco/adf-content-services';
import { ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { combineLatest, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@@ -1,7 +1,4 @@
<div class="adf-setting-container">
<mat-toolbar color="primary" class="adf-setting-toolbar">
<h3>{{'CORE.HOST_SETTINGS.TITLE' | translate}}</h3>
</mat-toolbar>
<mat-card class="adf-setting-card">
<form id="host-form" [formGroup]="form" (submit)="onSubmit(form.value)" (keydown)="keyDownFunction($event)">
@@ -14,11 +11,11 @@
</mat-form-field>
<div class="adf-authentication-type">
<div> {{'CORE.HOST_SETTINGS.TYPE-AUTH' | translate }} : </div>
<div> {{'APP.HOST_SETTINGS.TYPE-AUTH' | translate }} : </div>
<mat-radio-group formControlName="authType" >
<mat-radio-button value="BASIC">{{'CORE.HOST_SETTINGS.BASIC' | translate }}
<mat-radio-button value="BASIC">{{'APP.HOST_SETTINGS.BASIC' | translate }}
</mat-radio-button>
<mat-radio-button value="OAUTH">{{'CORE.HOST_SETTINGS.SSO' | translate }}
<mat-radio-button value="OAUTH">{{'APP.HOST_SETTINGS.SSO' | translate }}
</mat-radio-button>
</mat-radio-group>
</div>
@@ -26,14 +23,14 @@
<ng-container *ngIf="isALL() || isECM()">
<mat-card-content>
<mat-form-field class="adf-full-width">
<mat-label>{{'CORE.HOST_SETTINGS.CS-HOST' | translate }}</mat-label>
<mat-label>{{'APP.HOST_SETTINGS.CS-HOST' | translate }}</mat-label>
<input matInput [formControl]="ecmHost" data-automation-id="ecmHost" type="text"
id="ecmHost" placeholder="http(s)://host|ip:port(/path)">
<mat-error *ngIf="ecmHost.hasError('pattern')">
{{ 'CORE.HOST_SETTINGS.NOT_VALID'| translate }}
{{ 'APP.HOST_SETTINGS.NOT_VALID'| translate }}
</mat-error>
<mat-error *ngIf="ecmHost.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<p>
@@ -43,14 +40,14 @@
<ng-container *ngIf="isALL() || isBPM()">
<mat-card-content>
<mat-form-field class="adf-full-width">
<mat-label>{{'CORE.HOST_SETTINGS.BP-HOST' | translate }}</mat-label>
<mat-label>{{'APP.HOST_SETTINGS.BP-HOST' | translate }}</mat-label>
<input matInput [formControl]="bpmHost" data-automation-id="bpmHost" type="text"
id="bpmHost" placeholder="http(s)://host|ip:port(/path)">
<mat-error *ngIf="bpmHost.hasError('pattern')">
{{ 'CORE.HOST_SETTINGS.NOT_VALID'| translate }}
{{ 'APP.HOST_SETTINGS.NOT_VALID'| translate }}
</mat-error>
<mat-error *ngIf="bpmHost.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
</mat-card-content>
@@ -63,10 +60,10 @@
<input matInput name="identityHost" id="identityHost" formControlName="identityHost"
placeholder="http(s)://host|ip:port(/path)">
<mat-error *ngIf="identityHost.hasError('pattern')">
{{ 'CORE.HOST_SETTINGS.NOT_VALID'| translate }}
{{ 'APP.HOST_SETTINGS.NOT_VALID'| translate }}
</mat-error>
<mat-error *ngIf="identityHost.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
</mat-card-content>
@@ -79,81 +76,87 @@
<input matInput name="host" id="oauthHost" formControlName="host"
placeholder="http(s)://host|ip:port(/path)">
<mat-error *ngIf="host.hasError('pattern')">
{{ 'CORE.HOST_SETTINGS.NOT_VALID'| translate }}
{{ 'APP.HOST_SETTINGS.NOT_VALID'| translate }}
</mat-error>
<mat-error *ngIf="host.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.CLIENT'| translate }}</mat-label>
<mat-label>{{ 'APP.HOST_SETTINGS.CLIENT'| translate }}</mat-label>
<input matInput name="clientId" id="clientId" formControlName="clientId"
placeholder="Client Id">
<mat-error *ngIf="clientId.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.SCOPE'| translate }}</mat-label>
<input matInput name="{{ 'CORE.HOST_SETTINGS.SCOPE'| translate }}"
<mat-label>{{ 'APP.HOST_SETTINGS.SCOPE'| translate }}</mat-label>
<input matInput name="{{ 'APP.HOST_SETTINGS.SCOPE'| translate }}"
formControlName="scope" placeholder="Scope Id">
<mat-error *ngIf="scope.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.SECRET'| translate }}</mat-label>
<input matInput name="{{ 'CORE.HOST_SETTINGS.SECRET'| translate }}"
formControlName="secret" placeholder="{{ 'CORE.HOST_SETTINGS.SECRET'| translate }}">
<mat-label>{{ 'APP.HOST_SETTINGS.SECRET'| translate }}</mat-label>
<input matInput name="{{ 'APP.HOST_SETTINGS.SECRET'| translate }}"
formControlName="secret" placeholder="{{ 'APP.HOST_SETTINGS.SECRET'| translate }}">
<mat-error *ngIf="secret.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<label for="silentLogin">{{ 'CORE.HOST_SETTINGS.SILENT'| translate }}</label>
<label for="silentLogin">{{ 'APP.HOST_SETTINGS.SILENT'| translate }}</label>
<mat-slide-toggle class="adf-full-width" name="silentLogin" [color]="'primary'"
formControlName="silentLogin">
</mat-slide-toggle>
<label for="implicitFlow">{{ 'CORE.HOST_SETTINGS.IMPLICIT-FLOW'| translate }}</label>
<label for="implicitFlow">{{ 'APP.HOST_SETTINGS.IMPLICIT-FLOW'| translate }}</label>
<mat-slide-toggle class="adf-full-width" name="implicitFlow" [color]="'primary'"
formControlName="implicitFlow">
</mat-slide-toggle>
<ng-container *ngIf="supportsCodeFlow">
<label for="codeFlow">{{ 'CORE.HOST_SETTINGS.CODE-FLOW'| translate }}</label>
<mat-slide-toggle class="adf-full-width" name="codeFlow" [color]="'primary'"
formControlName="codeFlow">
</mat-slide-toggle>
</ng-container>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.REDIRECT'| translate }}</mat-label>
<input matInput placeholder="{{ 'CORE.HOST_SETTINGS.REDIRECT'| translate }}"
<mat-label>{{ 'APP.HOST_SETTINGS.REDIRECT'| translate }}</mat-label>
<input matInput placeholder="{{ 'APP.HOST_SETTINGS.REDIRECT'| translate }}"
name="redirectUri" formControlName="redirectUri">
<mat-error *ngIf="redirectUri.hasError('required')">
{{ 'CORE.HOST_SETTINGS.REQUIRED'| translate }}
{{ 'APP.HOST_SETTINGS.REQUIRED'| translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.REDIRECT_LOGOUT'| translate }}</mat-label>
<input id="logout-url" matInput placeholder="{{ 'CORE.HOST_SETTINGS.REDIRECT_LOGOUT'| translate }}"
<mat-label>{{ 'APP.HOST_SETTINGS.REDIRECT_LOGOUT'| translate }}</mat-label>
<input id="logout-url" matInput placeholder="{{ 'APP.HOST_SETTINGS.REDIRECT_LOGOUT'| translate }}"
name="redirectUriLogout" formControlName="redirectUriLogout">
</mat-form-field>
<mat-form-field class="adf-full-width">
<mat-label>{{ 'CORE.HOST_SETTINGS.PUBLIC_URLS'| translate }}</mat-label>
<input id="public-url" matInput placeholder="{{ 'CORE.HOST_SETTINGS.PUBLIC_URLS'| translate }}"
<mat-label>{{ 'APP.HOST_SETTINGS.PUBLIC_URLS'| translate }}</mat-label>
<input id="public-url" matInput placeholder="{{ 'APP.HOST_SETTINGS.PUBLIC_URLS'| translate }}"
name="publicUrls" formControlName="publicUrls">
</mat-form-field>
</div>
</ng-container>
<mat-card-actions class="adf-actions">
<mat-card-actions align="end">
<button mat-button (click)="onCancel()" color="primary">
{{'CORE.HOST_SETTINGS.BACK' | translate }}
{{'APP.HOST_SETTINGS.BACK' | translate }}
</button>
<button type="submit" id="host-button" class="adf-login-button" mat-raised-button
color="primary" data-automation-id="host-button"
[disabled]="!form.valid">
{{'CORE.HOST_SETTINGS.APPLY' | translate }}
{{'APP.HOST_SETTINGS.APPLY' | translate }}
</button>
</mat-card-actions>
</form>
@@ -16,24 +16,6 @@
border-spacing: 0;
}
.adf-setting-card-padding {
width: 50%;
display: table-cell;
vertical-align: middle;
margin: 0;
}
.adf-settings-link-icon {
position: relative;
top: 6px;
margin-right: 10px;
}
.adf-settings-actions {
display: flex;
justify-content: flex-end;
}
.adf-full-width {
width: 100%;
}
@@ -17,10 +17,7 @@
import { Component, EventEmitter, Output, ViewEncapsulation, OnInit, Input } from '@angular/core';
import { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
import { AppConfigService, AppConfigValues } from '../app-config/app-config.service';
import { StorageService } from '../services/storage.service';
import { AlfrescoApiService } from '../services/alfresco-api.service';
import { OauthConfigModel } from '../models/oauth-config.model';
import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, OauthConfigModel, AuthenticationService } from '@alfresco/adf-core';
import { ENTER } from '@angular/cdk/keycodes';
export const HOST_REGEX = '^(http|https):\/\/.*[^/]$';
@@ -47,8 +44,8 @@ export class HostSettingsComponent implements OnInit {
form: UntypedFormGroup;
/** Emitted when the URL is invalid. */
// eslint-disable-next-line @angular-eslint/no-output-native
@Output()
// eslint-disable-next-line @angular-eslint/no-output-native
error = new EventEmitter<string>();
/** Emitted when the user cancels the changes. */
@@ -56,15 +53,17 @@ export class HostSettingsComponent implements OnInit {
cancel = new EventEmitter<boolean>();
/** Emitted when the changes are successfully applied. */
// eslint-disable-next-line @angular-eslint/no-output-native
@Output()
// eslint-disable-next-line @angular-eslint/no-output-native
success = new EventEmitter<boolean>();
constructor(private formBuilder: UntypedFormBuilder,
private storageService: StorageService,
private alfrescoApiService: AlfrescoApiService,
private appConfig: AppConfigService) {
}
constructor(
private formBuilder: UntypedFormBuilder,
private storageService: StorageService,
private alfrescoApiService: AlfrescoApiService,
private appConfig: AppConfigService,
private auth: AuthenticationService
) {}
ngOnInit() {
if (this.providers.length === 1) {
@@ -149,6 +148,7 @@ export class HostSettingsComponent implements OnInit {
secret: oauth.secret,
silentLogin: oauth.silentLogin,
implicitFlow: oauth.implicitFlow,
codeFlow: oauth.codeFlow,
publicUrls: [oauth.publicUrls]
});
}
@@ -188,6 +188,7 @@ export class HostSettingsComponent implements OnInit {
this.storageService.setItem(AppConfigValues.AUTHTYPE, values.authType);
this.alfrescoApiService.reset();
this.auth.reset();
this.alfrescoApiService.getInstance().invalidateSession();
this.success.emit(true);
}
@@ -231,6 +232,10 @@ export class HostSettingsComponent implements OnInit {
return this.form.get('authType').value === 'OAUTH';
}
get supportsCodeFlow(): boolean {
return this.auth.supportCodeFlow;
}
get providersControl(): UntypedFormControl {
return this.form.get('providersControl') as UntypedFormControl;
}
@@ -267,6 +272,10 @@ export class HostSettingsComponent implements OnInit {
return this.oauthConfig.get('implicitFlow') as UntypedFormControl;
}
get codeFlow(): UntypedFormControl {
return this.oauthConfig.get('codeFlow') as UntypedFormControl;
}
get silentLogin(): UntypedFormControl {
return this.oauthConfig.get('silentLogin') as UntypedFormControl;
}
@@ -1,2 +1 @@
This component is only for internal use
<adf-host-settings (cancel)="onCancel()" (success)="onSuccess()" (error)="onError($event)"></adf-host-settings>
@@ -20,6 +20,8 @@ import { SettingsComponent } from './settings.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HostSettingsComponent } from './host-settings.component';
const routes: Routes = [
{
@@ -32,8 +34,13 @@ const routes: Routes = [
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule
CoreModule,
FormsModule,
ReactiveFormsModule
],
declarations: [SettingsComponent]
declarations: [
SettingsComponent,
HostSettingsComponent
]
})
export class AppSettingsModule {}
@@ -1,7 +1,7 @@
<ng-container *ngIf="sharedLinkId">
<adf-viewer
<adf-alfresco-viewer
(invalidSharedLink)="redirectTo404()"
[sharedLinkId]="sharedLinkId"
[allowGoBack]="false">
</adf-viewer>
</adf-alfresco-viewer>
</ng-container>
@@ -16,7 +16,7 @@
*/
import { Injectable } from '@angular/core';
import { AppConfigService, AlfrescoApiService, EcmModelService, LogService,
import { AppConfigService, LogService,
FormFieldOption, FormService, FormValues, FormModel,
FormOutcomeModel, FormOutcomeEvent } from '@alfresco/adf-core';
import { Observable, Subject } from 'rxjs';
@@ -43,10 +43,8 @@ export class InMemoryFormService extends FormService {
executeOutcome = new Subject<FormOutcomeEvent>();
constructor(appConfig: AppConfigService,
ecmModelService: EcmModelService,
apiService: AlfrescoApiService,
protected logService: LogService) {
super(ecmModelService, apiService, logService);
super();
this.data = appConfig.get<ProcessServiceData>('activiti');
}
+10 -5
View File
@@ -1,6 +1,7 @@
@use '@angular/material' as mat;
@import '../../lib/core/src/lib/styles/index';
@include mat.core($alfresco-typography);
@import '../../lib/core/src/lib/styles/typography';
@include mat.core;
$primary: mat.define-palette($alfresco-accent-orange);
$accent: mat.define-palette($alfresco-accent-purple);
@@ -10,21 +11,25 @@ $theme: mat.define-light-theme(
color: (
primary: $primary,
accent: $accent,
)
warn: $warn
),
typography: $alfresco-typography
)
);
@include mat.all-component-themes($theme);
@include alfresco-material-theme($theme);
$typography: map-get($theme, typography);
body,
html {
margin: 0;
height: 100%;
overflow: hidden;
font-size: mat.font-size($alfresco-typography, body-1);
font-family: mat.font-family($alfresco-typography);
line-height: mat.line-height($alfresco-typography, body-1);
font-size: mat.font-size($typography, body-1);
font-family: mat.font-family($typography);
line-height: mat.line-height($typography, body-1);
}
body {
@@ -0,0 +1,22 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export const environment = {
production: true,
e2e: false,
oidc: true
};
@@ -17,5 +17,6 @@
export const environment = {
production: false,
e2e: true
e2e: true,
oidc: false
};
@@ -17,5 +17,6 @@
export const environment = {
production: true,
e2e: false
e2e: false,
oidc: false
};
+2 -1
View File
@@ -22,5 +22,6 @@
export const environment = {
production: false,
e2e: false
e2e: false,
oidc: false
};
+136 -122
View File
@@ -82,65 +82,61 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [About Application Modules Component](core/components/about-application.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which ADF libraries and plugins an application is using. | [Source](../lib/core/about/about-application-modules/about-application-modules.component.ts) |
| [About GitHub Link Component](core/components/about-github-link.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of the application is running based on the latest GitHub commit, as well as the server settings for the application. | [Source](../lib/core/about/about-github-link/about-github-link.component.ts) |
| [About Product Version Component](core/components/about-product-version.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of Process Services (BPM) and Content Services (ECM) an application is running. It also shows the relevant license information, application status and Alfresco modules running in an application. | [Source](../lib/core/about/about-product-version/about-product-version.component.ts) |
| [Buttons Menu Component](core/components/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/buttons-menu/buttons-menu.component.ts) |
| [Card View component](core/components/card-view.component.md) | Displays a configurable property list renderer. | [Source](../lib/core/card-view/components/card-view/card-view.component.ts) |
| [Comment list component](core/components/comment-list.component.md) | Shows a list of comments. | [Source](../lib/core/comments/comment-list.component.ts) |
| [Comments Component](core/components/comments.component.md) | Displays comments from users involved in a specified task or content and allows an involved user to add a comment to a task or a content. | [Source](../lib/core/comments/comments.component.ts) |
| [Data Column Component](core/components/data-column.component.md) | Defines column properties for DataTable, Tasklist, Document List and other components. | [Source](../lib/core/data-column/data-column.component.ts) |
| [DataTable component](core/components/datatable.component.md) | Displays data as a table with customizable columns and presentation. | [Source](../lib/core/datatable/components/datatable/datatable.component.ts) |
| [Empty Content Component](core/components/empty-content.component.md) | Provides a generic "Empty Content" placeholder for components. | [Source](../lib/core/templates/empty-content/empty-content.component.ts) |
| [Empty list component](core/components/empty-list.component.md) | Displays a message indicating that a list is empty. | [Source](../lib/core/datatable/components/empty-list/empty-list.component.ts) |
| [Error Content Component](core/components/error-content.component.md) | Displays info about a specific error. | [Source](../lib/core/templates/error-content/error-content.component.ts) |
| [Form field component](core/components/form-field.component.md) | Represents a UI field in a form. | [Source](../lib/core/form/components/form-field/form-field.component.ts) |
| [Form List Component](core/components/form-list.component.md) | Shows forms as a list. | [Source](../lib/core/form/components/form-list.component.ts) |
| [Header component](core/components/header.component.md) | Reusable header for Alfresco applications. | [Source](../lib/core/layout/components/header/header.component.ts) |
| [Host settings component](core/components/host-settings.component.md) ![Internal](docassets/images/InternalIcon.png) | Validates the URLs for ACS and APS and saves them in the user's local storage | [Source](../lib/core/settings/host-settings.component.ts) |
| [Icon Component](core/components/icon.component.md) | Provides a universal way of rendering registered and named icons. | [Source](../lib/core/icon/icon.component.ts) |
| [Infinite Pagination component](core/components/infinite-pagination.component.md) | Adds "infinite" pagination to the component it is used with. | [Source](../lib/core/pagination/infinite-pagination.component.ts) |
| [Info drawer layout component](core/components/info-drawer-layout.component.md) | Displays a sidebar-style information panel. | [Source](../lib/core/info-drawer/info-drawer-layout.component.ts) |
| [Info Drawer Tab component](core/components/info-drawer-tab.component.md) | Renders tabs in a Info drawer component. | [Source](../lib/core/info-drawer/info-drawer.component.ts) |
| [Info Drawer component](core/components/info-drawer.component.md) | Displays a sidebar-style information panel with tabs. | [Source](../lib/core/info-drawer/info-drawer.component.ts) |
| [Json Cell component](core/components/json-cell.component.md) | Shows a JSON-formatted value inside a datatable component. | [Source](../lib/core/datatable/components/json-cell/json-cell.component.ts) |
| [Language Menu component](core/components/language-menu.component.md) | Displays all the languages that are present in "app.config.json" and the default (EN). | [Source](../lib/core/language-menu/language-menu.component.ts) |
| [Login Dialog Panel component](core/components/login-dialog-panel.component.md) | Shows and manages a login dialog. | [Source](../lib/core/login/components/login-dialog-panel.component.ts) |
| [Login Dialog component](core/components/login-dialog.component.md) | Allows a user to perform a login via a dialog. | [Source](../lib/core/login/components/login-dialog.component.ts) |
| [Login component](core/components/login.component.md) | Authenticates to Alfresco Content Services and Alfresco Process Services. | [Source](../lib/core/login/components/login.component.ts) |
| [About Application Modules Component](core/components/about-application.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which ADF libraries and plugins an application is using. | [Source](../lib/core/src/lib/about/about-application-modules/about-application-modules.component.ts) |
| [About GitHub Link Component](core/components/about-github-link.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of the application is running based on the latest GitHub commit, as well as the server settings for the application. | [Source](../lib/core/src/lib/about/about-github-link/about-github-link.component.ts) |
| [About Product Version Component](core/components/about-product-version.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of Process Services (BPM) and Content Services (ECM) an application is running. It also shows the relevant license information, application status and Alfresco modules running in an application. | [Source](../lib/core/src/lib/about/about-product-version/about-product-version.component.ts) |
| [About Component](core/components/about.component.md) | Presentational component to display About information as a set of collapsible panels. | [Source](../lib/core/src/lib/about/about.component.ts) |
| [Buttons Menu Component](core/components/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/src/lib/buttons-menu/buttons-menu.component.ts) |
| [Card View component](core/components/card-view.component.md) | Displays a configurable property list renderer. | [Source](../lib/core/src/lib/card-view/components/card-view/card-view.component.ts) |
| [Comment list component](core/components/comment-list.component.md) | Shows a list of comments. | [Source](../lib/core/src/lib/comments/comment-list.component.ts) |
| [Comments Component](core/components/comments.component.md) | Displays comments from users involved in a specified environment and allows an involved user to add a comment to a environment. | [Source](../lib/core/src/lib/comments/comments.component.ts) |
| [Data Column Component](core/components/data-column.component.md) | Defines column properties for DataTable, Tasklist, Document List and other components. | [Source](../lib/core/src/lib/datatable/data-column/data-column.component.ts) |
| [DataTable component](core/components/datatable.component.md) | Displays data as a table with customizable columns and presentation. | [Source](../lib/core/src/lib/datatable/components/datatable/datatable.component.ts) |
| [Empty Content Component](core/components/empty-content.component.md) | Provides a generic "Empty Content" placeholder for components. | [Source](../lib/core/src/lib/templates/empty-content/empty-content.component.ts) |
| [Empty list component](core/components/empty-list.component.md) | Displays a message indicating that a list is empty. | [Source](../lib/core/src/lib/datatable/components/empty-list/empty-list.component.ts) |
| [Error Content Component](core/components/error-content.component.md) | Displays info about a specific error. | [Source](../lib/core/src/lib/templates/error-content/error-content.component.ts) |
| [Form field component](core/components/form-field.component.md) | Represents a UI field in a form. | [Source](../lib/core/src/lib/form/components/form-field/form-field.component.ts) |
| [Form List Component](core/components/form-list.component.md) | Shows forms as a list. | [Source](../lib/process-services/src/lib/form/form-list/form-list.component.ts) |
| [Header component](core/components/header.component.md) | Reusable header for Alfresco applications. | [Source](../lib/core/src/lib/layout/components/header/header.component.ts) |
| [Host settings component](core/components/host-settings.component.md) ![Internal](docassets/images/InternalIcon.png) | Validates the URLs for ACS and APS and saves them in the user's local storage | [Source](../lib/core/src/lib/settings/host-settings.component.ts) |
| [Icon Component](core/components/icon.component.md) | Provides a universal way of rendering registered and named icons. | [Source](../lib/core/src/lib/icon/icon.component.ts) |
| [Infinite Pagination component](core/components/infinite-pagination.component.md) | Adds "infinite" pagination to the component it is used with. | [Source](../lib/core/src/lib/pagination/infinite-pagination.component.ts) |
| [Info drawer layout component](core/components/info-drawer-layout.component.md) | Displays a sidebar-style information panel. | [Source](../lib/core/src/lib/info-drawer/info-drawer-layout.component.ts) |
| [Info Drawer Tab component](core/components/info-drawer-tab.component.md) | Renders tabs in a Info drawer component. | [Source](../lib/core/src/lib/info-drawer/info-drawer.component.ts) |
| [Info Drawer component](core/components/info-drawer.component.md) | Displays a sidebar-style information panel with tabs. | [Source](../lib/core/src/lib/info-drawer/info-drawer.component.ts) |
| [Json Cell component](core/components/json-cell.component.md) | Shows a JSON-formatted value inside a datatable component. | [Source](../lib/core/src/lib/datatable/components/json-cell/json-cell.component.ts) |
| [Language Menu component](core/components/language-menu.component.md) | Displays all the languages that are present in "app.config.json" and the default (EN). | [Source](../lib/core/src/lib/language-menu/language-menu.component.ts) |
| [Login Dialog Panel component](core/components/login-dialog-panel.component.md) | Shows and manages a login dialog. | [Source](../lib/core/src/lib/login/components/login-dialog-panel.component.ts) |
| [Login Dialog component](core/components/login-dialog.component.md) | Allows a user to perform a login via a dialog. | [Source](../lib/core/src/lib/login/components/login-dialog.component.ts) |
| [Login component](core/components/login.component.md) | Authenticates to Alfresco Content Services and Alfresco Process Services. | [Source](../lib/core/src/lib/login/components/login.component.ts) |
| [Notification History component](core/components/notification-history.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | This component is in the current status just an experimental component. | |
| The main purpose of the Notification history component is list all the notification received in the current session. They will disappear from the list after the refresh. | [Source](../lib/core/notifications/components/notification-history.component.ts) | |
| [Pagination Component](core/components/pagination.component.md) | Adds pagination to the component it is used with. | [Source](../lib/core/pagination/pagination.component.ts) |
| [Rich Text Editor Component](core/components/rich-text-editor.md) | Displays a rich text editor that allows users to add formatted text | [Source](lib/core/src/lib/rich-text-editor/rich-text-editor.component.ts) |
| [Search Text Input Component](core/components/search-text-input.component.md) | Displays a input text that supports autocompletion | [Source](../lib/core/search-text/search-text-input.component.ts) |
| [Sidebar action menu component](core/components/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/layout/components/sidebar-action/sidebar-action-menu.component.ts) |
| [Sidenav Layout component](core/components/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/layout/components/sidenav-layout/sidenav-layout.component.ts) |
| [Sorting Picker Component](core/components/sorting-picker.component.md) | Selects from a set of predefined sorting definitions and directions. | [Source](../lib/core/sorting-picker/sorting-picker.component.ts) |
| [Snackbar Content Component](core/components/snackbar-content.component.md) | Custom content for Snackbar which allows use icon as action.| [Source](../lib/core/src/lib/snackbar-content/snackbar-content.component.ts) |
| The main purpose of the Notification history component is list all the notification received in the current session. They will disappear from the list after the refresh. | [Source](../lib/core/src/lib/notifications/components/notification-history.component.ts) | |
| [Pagination Component](core/components/pagination.component.md) | Adds pagination to the component it is used with. | [Source](../lib/core/src/lib/pagination/pagination.component.ts) |
| [Rich Text Editor component](docs/process-services-cloud/rich-text-editor.md) | Wrap Editor.js element to show a Rich Text editor allows to add formatted text. | [Source](lib/process-services-cloud/src/lib/rich-text-editor/rich-text-editor.component.ts) |
| [Search Text Input Component](core/components/search-text-input.component.md) | Displays a input text that supports autocompletion | [Source](../lib/core/src/lib/search-text/search-text-input.component.ts) |
| [Sidebar action menu component](core/components/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/src/lib/layout/components/sidebar-action/sidebar-action-menu.component.ts) |
| [Sidenav Layout component](core/components/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/src/lib/layout/components/sidenav-layout/sidenav-layout.component.ts) |
| [Snackbar Content Component](core/components/snackbar-content.component.md) | Custom content for Snackbar which allows use icon as action. | [Source](../lib/core/src/lib/snackbar-content/snackbar-content.component.ts) |
| [Sorting Picker Component](core/components/sorting-picker.component.md) | Selects from a set of predefined sorting definitions and directions. | [Source](../lib/core/src/lib/sorting-picker/sorting-picker.component.ts) |
| [Start Form component](core/components/start-form.component.md) | Displays the Start Form for a process. | [Source](../lib/process-services/src/lib/form/start-form.component.ts) |
| [Text Mask directive](core/components/text-mask.component.md) | Implements text field input masks. | [Source](../lib/core/form/components/widgets/text/text-mask.component.ts) |
| [Toolbar Divider Component](core/components/toolbar-divider.component.md) | Divides groups of elements in a Toolbar with a visual separator. | [Source](../lib/core/toolbar/toolbar-divider.component.ts) |
| [Toolbar Title Component](core/components/toolbar-title.component.md) | Supplies custom HTML to be included in a Toolbar component title. | [Source](../lib/core/toolbar/toolbar-title.component.ts) |
| [Toolbar Component](core/components/toolbar.component.md) | Simple container for headers, titles, actions and breadcrumbs. | [Source](../lib/core/toolbar/toolbar.component.ts) |
| [User Info component](core/components/user-info.component.md) | Shows user information. | [Source](../lib/core/userinfo/components/user-info.component.ts) |
| [Viewer component](core/components/viewer.component.md) | Displays content from an ACS repository. | [Source](../lib/core/viewer/components/viewer.component.ts) |
| [Text Mask directive](core/components/text-mask.component.md) | Implements text field input masks. | [Source](../lib/core/src/lib/form/components/widgets/text/text-mask.component.ts) |
| [Toolbar Divider Component](core/components/toolbar-divider.component.md) | Divides groups of elements in a Toolbar with a visual separator. | [Source](../lib/core/src/lib/toolbar/toolbar-divider.component.ts) |
| [Toolbar Title Component](core/components/toolbar-title.component.md) | Supplies custom HTML to be included in a Toolbar component title. | [Source](../lib/core/src/lib/toolbar/toolbar-title.component.ts) |
| [Toolbar Component](core/components/toolbar.component.md) | Simple container for headers, titles, actions and breadcrumbs. | [Source](../lib/core/src/lib/toolbar/toolbar.component.ts) |
| [User Info component](core/components/user-info.component.md) | Shows user information. | [Source](../lib/core/src/lib/userinfo/components/user-info.component.ts) |
| [Viewer component](core/components/viewer.component.md) | Displays content from an ACS repository. | [Source](../lib/core/src/lib/viewer/components/viewer.component.ts) |
### Directives
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Check Allowable Operation directive](core/directives/check-allowable-operation.directive.md) | Selectively disables an HTML element or Angular component. | [Source](../lib/core/directives/check-allowable-operation.directive.ts) |
| [Clipboard directive](core/directives/clipboard.directive.md) | Copies text to the clipboard. | [Source](../lib/core/clipboard/clipboard.directive.ts) |
| [Context Menu directive](core/directives/context-menu.directive.md) ![Deprecated](docassets/images/DeprecatedIcon.png) | Adds a context menu to a component. | [Source](../lib/core/context-menu/context-menu.directive.ts) |
| [Highlight directive](core/directives/highlight.directive.md) | Adds highlighting to selected sections of an HTML element's content. | [Source](../lib/core/directives/highlight.directive.ts) |
| [Infinite Select Scroll directive](core/directives/infinite-select-scroll.directive.md) | Load more options to select component if API returns more items | [Source](../lib/core/directives/infinite-select-scroll.directive.ts) |
| [Logout directive](core/directives/logout.directive.md) | Logs the user out when the decorated element is clicked. | [Source](../lib/core/directives/logout.directive.ts) |
| [Node Delete directive](core/directives/node-delete.directive.md) | Deletes multiple files and folders. | [Source](../lib/core/directives/node-delete.directive.ts) |
| [Node Download directive](core/directives/node-download.directive.md) | Allows folders and/or files to be downloaded, with multiple nodes packed as a '.ZIP' archive. | [Source](../lib/core/directives/node-download.directive.ts) |
| [Node Favorite directive](core/directives/node-favorite.directive.md) | Selectively toggles nodes as favorites. | [Source](../lib/core/directives/node-favorite.directive.ts) |
| [Node Restore directive](core/directives/node-restore.directive.md) | Restores deleted nodes to their original location. | [Source](../lib/core/directives/node-restore.directive.ts) |
| [Upload Directive](core/directives/upload.directive.md) | Uploads content in response to file drag and drop. | [Source](../lib/core/directives/upload.directive.ts) |
| [Version Compatibility Directive](core/directives/version-compatibility.directive.md) | Enables/disables components based on ACS version in use. | [Source](../lib/core/directives/version-compatibility.directive.ts) |
| [Clipboard directive](core/directives/clipboard.directive.md) | Copies text to the clipboard. | [Source](../lib/core/src/lib/clipboard/clipboard.directive.ts) |
| [Context Menu directive](core/directives/context-menu.directive.md) ![Deprecated](docassets/images/DeprecatedIcon.png) | Adds a context menu to a component. | [Source](../lib/core/src/lib/context-menu/context-menu.directive.ts) |
| [Highlight directive](core/directives/highlight.directive.md) | Adds highlighting to selected sections of an HTML element's content. | [Source](../lib/core/src/lib/directives/highlight.directive.ts) |
| [Infinite Select Scroll directive](core/directives/infinite-select-scroll.directive.md) | Load more options to select component if API returns more items | [Source](../lib/core/src/lib/directives/infinite-select-scroll.directive.ts) |
| [Logout directive](core/directives/logout.directive.md) | Logs the user out when the decorated element is clicked. | [Source](../lib/core/src/lib/directives/logout.directive.ts) |
| [Node Download directive](core/directives/node-download.directive.md) | Allows folders and/or files to be downloaded, with multiple nodes packed as a '.ZIP' archive. | [Source](../lib/core/src/lib/directives/node-download.directive.ts) |
| [Upload Directive](core/directives/upload.directive.md) | Uploads content in response to file drag and drop. | [Source](../lib/core/src/lib/directives/upload.directive.ts) |
### Dialogs
@@ -152,97 +148,100 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Card View Item interface](core/interfaces/card-view-item.interface.md) | Defines the implementation of an item in a Card View component. | [Source](../lib/core/card-view/interfaces/card-view-item.interface.ts) |
| [DataTableAdapter interface](core/interfaces/datatable-adapter.interface.md) | Defines how table data is supplied to DataTable and Tasklist components. | [Source](../lib/core/datatable/data/datatable-adapter.ts) |
| [FormFieldValidator interface](core/interfaces/form-field-validator.interface.md) | Defines how the input fields of Form and Task Details components are validated. | [Source](../lib/core/form/components/widgets/core/form-field-validator.ts) |
| [Search Configuration interface](core/interfaces/search-configuration.interface.md) | Provides fine control of parameters to a search. | [Source](../lib/core/interface/search-configuration.interface.ts) |
| [Base Card View Update Interface](core/interfaces/base-card-view-update.interface.md) | Specifies required properties and methods for Card View Update service. | [Source](../lib/core/src/lib/card-view/interfaces/base-card-view-update.interface.ts) |
| [Card View Item interface](core/interfaces/card-view-item.interface.md) | Defines the implementation of an item in a Card View component. | [Source](../lib/core/src/lib/card-view/interfaces/card-view-item.interface.ts) |
| [Click Notification Interface](core/interfaces/click-notification.interface.md) | | [Source](../lib/core/src/lib/card-view/interfaces/click-notification.interface.ts) |
| [DataTableAdapter interface](core/interfaces/datatable-adapter.interface.md) | Defines how table data is supplied to DataTable and Tasklist components. | [Source](../lib/core/src/lib/datatable/data/datatable-adapter.ts) |
| [FormFieldValidator interface](core/interfaces/form-field-validator.interface.md) | Defines how the input fields of Form and Task Details components are validated. | [Source](../lib/core/src/lib/form/components/widgets/core/form-field-validator.ts) |
| [Search Configuration interface](core/interfaces/search-configuration.interface.md) | Provides fine control of parameters to a search. | [Source](../lib/core/src/lib/interface/search-configuration.interface.ts) |
| [Update Notification Interface](core/interfaces/update-notification.interface.md) | | [Source](../lib/core/src/lib/card-view/interfaces/update-notification.interface.ts) |
### Models
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Bpm User model](core/models/bpm-user.model.md) | Contains information about a Process Services user. | [Source](../lib/core/models/bpm-user.model.ts) |
| [Ecm User model](core/models/ecm-user.model.md) | Contains information about a Content Services user. | [Source](../lib/core/models/ecm-user.model.ts) |
| [Form Field model](core/models/form-field.model.md) | Contains the value and metadata for a field of a Form component. | [Source](../lib/core/form/components/widgets/core/form-field.model.ts) |
| [Product Version model](core/models/product-version.model.md) | Contains version and license information classes for Alfresco products. | [Source](../lib/core/models/product-version.model.ts) |
| [User Process model](core/models/user-process.model.md) | Represents a Process Services user. | [Source](../lib/core/models/user-process.model.ts) |
| [Bpm User model](core/models/bpm-user.model.md) | Contains information about a Process Services user. | [Source](../lib/core/src/lib/models/bpm-user.model.ts) |
| [Ecm User model](core/models/ecm-user.model.md) | Contains information about a Content Services user. | [Source](../lib/core/src/lib/models/ecm-user.model.ts) |
| [Form Field model](core/models/form-field.model.md) | Contains the value and metadata for a field of a Form component. | [Source](../lib/core/src/lib/form/components/widgets/core/form-field.model.ts) |
| [Product Version model](core/models/product-version.model.md) | Contains version and license information classes for Alfresco products. | [Source](../lib/core/src/lib/models/product-version.model.ts) |
| [User Process model](core/models/user-process.model.md) | Represents a Process Services user. | [Source](../lib/core/src/lib/models/user-process.model.ts) |
### Pipes
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [App Config Pipe](core/pipes/app-config.pipe.md) | Retrieves values from the application configuration file directly. | [Source](../lib/core/app-config/app-config.pipe.ts) |
| [Decimal Number Pipe](core/pipes/decimal-number.pipe.md) | Transforms a number to have a certain amount of digits in its integer part and also in its decimal part. | [Source](../lib/core/pipes/decimal-number.pipe.ts) |
| [File Size pipe](core/pipes/file-size.pipe.md) | Converts a number of bytes to the equivalent in KB, MB, etc. | [Source](../lib/core/pipes/file-size.pipe.ts) |
| [Format Space pipe](core/pipes/format-space.pipe.md) | Replaces all the white space in a string with a supplied character. | [Source](../lib/core/pipes/format-space.pipe.ts) |
| [Full name pipe](core/pipes/full-name.pipe.md) | Joins the first and last name properties from a UserProcessModel object into a single string. | [Source](../lib/core/pipes/full-name.pipe.ts) |
| [Localized Date pipe](core/pipes/localized-date.pipe.md) | Converts a date to a given format and locale. | [Source](../lib/core/pipes/localized-date.pipe.ts) |
| [Mime Type Icon pipe](core/pipes/mime-type-icon.pipe.md) | Retrieves an icon to represent a MIME type. | [Source](../lib/core/pipes/mime-type-icon.pipe.ts) |
| [Multi Value Pipe](core/pipes/multi-value.pipe.md) | Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma , however, you can set your own separator in the params of the pipe. | [Source](../lib/core/pipes/multi-value.pipe.ts) |
| [Node Name Tooltip pipe](core/pipes/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/core/pipes/node-name-tooltip.pipe.ts) |
| [Text Highlight pipe](core/pipes/text-highlight.pipe.md) | Adds highlighting to words or sections of text that match a search string. | [Source](../lib/core/pipes/text-highlight.pipe.ts) |
| [Time Ago pipe](core/pipes/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/pipes/time-ago.pipe.ts) |
| [User Initial pipe](core/pipes/user-initial.pipe.md) | Takes the name fields of a UserProcessModel object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
| [App Config Pipe](core/pipes/app-config.pipe.md) | Retrieves values from the application configuration file directly. | [Source](../lib/core/src/lib/app-config/app-config.pipe.ts) |
| [Decimal Number Pipe](core/pipes/decimal-number.pipe.md) | Transforms a number to have a certain amount of digits in its integer part and also in its decimal part. | [Source](../lib/core/src/lib/pipes/decimal-number.pipe.ts) |
| [File Size pipe](core/pipes/file-size.pipe.md) | Converts a number of bytes to the equivalent in KB, MB, etc. | [Source](../lib/core/src/lib/pipes/file-size.pipe.ts) |
| [Format Space pipe](core/pipes/format-space.pipe.md) | Replaces all the white space in a string with a supplied character. | [Source](../lib/core/src/lib/pipes/format-space.pipe.ts) |
| [Full name pipe](core/pipes/full-name.pipe.md) | Joins the first and last name properties from a UserProcessModel object into a single string. | [Source](../lib/core/src/lib/pipes/full-name.pipe.ts) |
| [Localized Date pipe](core/pipes/localized-date.pipe.md) | Converts a date to a given format and locale. | [Source](../lib/core/src/lib/pipes/localized-date.pipe.ts) |
| [Mime Type Icon pipe](core/pipes/mime-type-icon.pipe.md) | Retrieves an icon to represent a MIME type. | [Source](../lib/core/src/lib/pipes/mime-type-icon.pipe.ts) |
| [Multi Value Pipe](core/pipes/multi-value.pipe.md) | Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma , however, you can set your own separator in the params of the pipe. | [Source](../lib/core/src/lib/pipes/multi-value.pipe.ts) |
| [Node Name Tooltip pipe](core/pipes/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/content-services/src/lib/pipes/node-name-tooltip.pipe.ts) |
| [Text Highlight pipe](core/pipes/text-highlight.pipe.md) | Adds highlighting to words or sections of text that match a search string. | [Source](../lib/core/src/lib/pipes/text-highlight.pipe.ts) |
| [Time Ago pipe](core/pipes/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/src/lib/pipes/time-ago.pipe.ts) |
| [User Initial pipe](core/pipes/user-initial.pipe.md) | Takes the name fields of a UserProcessModel object and extracts and formats the initials. | [Source](../lib/core/src/lib/pipes/user-initial.pipe.ts) |
### Services
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [APS Alfresco Content Service](core/services/activiti-alfresco.service.md) | Gets Alfresco Repository folder content based on a Repository account configured in Alfresco Process Services (APS). | [Source](../lib/core/form/services/activiti-alfresco.service.ts) |
| [Alfresco Api Service](core/services/alfresco-api.service.md) | Provides access to an initialized AlfrescoJSApi instance. | [Source](../lib/core/services/alfresco-api.service.ts) |
| [App Config service](core/services/app-config.service.md) | Supports app configuration settings, stored server side. | [Source](../lib/core/app-config/app-config.service.ts) |
| [Apps Process service](core/services/apps-process.service.md) | Gets details of the Process Services apps that are deployed for the user. | [Source](../lib/core/services/apps-process.service.ts) |
| [Auth Guard Bpm service](core/services/auth-guard-bpm.service.md) | Adds authentication with Process Services to a route within the app. | [Source](../lib/core/services/auth-guard-bpm.service.ts) |
| [Auth Guard Ecm service](core/services/auth-guard-ecm.service.md) | Adds authentication with Content Services to a route within the app. | [Source](../lib/core/services/auth-guard-ecm.service.ts) |
| [Auth Guard SSO Role service](core/services/auth-guard-sso-role.service.md) | Checks the user roles of a user. | [Source](../lib/core/services/auth-guard-sso-role.service.ts) |
| [Auth Guard service](core/services/auth-guard.service.md) | Adds authentication to a route within the app. | [Source](../lib/core/services/auth-guard.service.ts) |
| [Authentication Service](core/services/authentication.service.md) | Provides authentication to ACS and APS. | [Source](../lib/core/services/authentication.service.ts) |
| [Bpm User service](core/services/bpm-user.service.md) | Gets information about the current Process Services user. | [Source](../lib/core/services/bpm-user.service.ts) |
| [Card Item Type service](core/services/card-item-types.service.md) | Maps type names to field component types for the Card View component. | [Source](../lib/core/card-view/services/card-item-types.service.ts) |
| [Card View Update service](core/services/card-view-update.service.md) | Reports edits and clicks within fields of a Card View component. | [Source](../lib/core/card-view/services/card-view-update.service.ts) |
| [Clipboard service](core/services/clipboard.service.md) | Copies text to the clipboard. | [Source](../lib/core/clipboard/clipboard.service.ts) |
| [Comment Content service](core/services/comment-content.service.md) | Adds and retrieves comments for nodes in Content Services. | [Source](../lib/core/services/comment-content.service.ts) |
| [Comment Process service](core/services/comment-process.service.md) | Adds and retrieves comments for task and process instances in Process Services. | [Source](../lib/core/services/comment-process.service.ts) |
| [Content service](core/services/content.service.md) | Accesses app-generated data objects via URLs and file downloads. | [Source](../lib/core/services/content.service.ts) |
| [Cookie service](core/services/cookie.service.md) | Stores key-value data items as browser cookies. | [Source](../lib/core/services/cookie.service.ts) |
| [Deleted Nodes Api service](core/services/deleted-nodes-api.service.md) | Gets a list of Content Services nodes currently in the trash. | [Source](../lib/core/services/deleted-nodes-api.service.ts) |
| [Discovery Api service](core/services/discovery-api.service.md) | Gets version and license information for Process Services and Content Services. | [Source](../lib/core/services/discovery-api.service.ts) |
| [Download zip service](core/services/download-zip.service.md) | Creates and manages downloads. | [Source](../lib/core/services/download-zip.service.ts) |
| [Ecm User service](core/services/ecm-user.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/ecm-user.service.ts) |
| [Favorites Api service](core/services/favorites-api.service.md) | Gets a list of items a user has marked as their favorites. | [Source](../lib/core/services/favorites-api.service.ts) |
| [APS Alfresco Content Service](core/services/activiti-alfresco.service.md) | Gets Alfresco Repository folder content based on a Repository account configured in Alfresco Process Services (APS). | [Source](../lib/process-services/src/lib/form/services/activiti-alfresco.service.ts) |
| [Alfresco Api Service](core/services/alfresco-api.service.md) | Provides access to an initialized AlfrescoJSApi instance. | [Source](../lib/core/src/lib/services/alfresco-api.service.ts) |
| [App Config service](core/services/app-config.service.md) | Supports app configuration settings, stored server side. | [Source](../lib/core/src/lib/app-config/app-config.service.ts) |
| [Apps Process service](core/services/apps-process.service.md) | Gets details of the Process Services apps that are deployed for the user. | [Source](lib/process-services/src/lib/app-list/services/apps-process.service.ts) |
| [Auth Guard Bpm service](core/services/auth-guard-bpm.service.md) | Adds authentication with Process Services to a route within the app. | [Source](../lib/core/src/lib/services/auth-guard-bpm.service.ts) |
| [Auth Guard Ecm service](core/services/auth-guard-ecm.service.md) | Adds authentication with Content Services to a route within the app. | [Source](../lib/core/src/lib/services/auth-guard-ecm.service.ts) |
| [Auth Guard SSO Role service](core/services/auth-guard-sso-role.service.md) | Checks the user roles of a user. | [Source](../lib/core/src/lib/services/auth-guard-sso-role.service.ts) |
| [Auth Guard service](core/services/auth-guard.service.md) | Adds authentication to a route within the app. | [Source](../lib/core/src/lib/services/auth-guard.service.ts) |
| [Authentication Service](core/services/authentication.service.md) | Provides authentication to ACS and APS. | [Source](../lib/core/src/lib/services/authentication.service.ts) |
| [Bpm User service](core/services/bpm-user.service.md) | Gets information about the current Process Services user. | [Source](../lib/core/src/lib/services/bpm-user.service.ts) |
| [Card Item Type service](core/services/card-item-types.service.md) | Maps type names to field component types for the Card View component. | [Source](../lib/core/src/lib/card-view/services/card-item-types.service.ts) |
| [Card View Update service](core/services/card-view-update.service.md) | Reports edits and clicks within fields of a Card View component. | |
| Implements BaseCardViewUpdate. | [Source](../lib/core/src/lib/card-view/services/card-view-update.service.ts) | |
| [Clipboard service](core/services/clipboard.service.md) | Copies text to the clipboard. | [Source](../lib/core/src/lib/clipboard/clipboard.service.ts) |
| [Comment Content service](core/services/comment-content.service.md) | Adds and retrieves comments for nodes in Content Services. | [Source](../lib/core/src/lib/services/comment-content.service.ts) |
| [Comment Process service](core/services/comment-process.service.md) | Adds and retrieves comments for task and process instances in Process Services. | [Source](../lib/core/src/lib/services/comment-process.service.ts) |
| [Content service](core/services/content.service.md) | Accesses app-generated data objects via URLs and file downloads. | [Source](../lib/core/src/lib/services/content.service.ts) |
| [Cookie service](core/services/cookie.service.md) | Stores key-value data items as browser cookies. | [Source](../lib/core/src/lib/common/services/cookie.service.ts) |
| [DataTable service](core/services/datatable.service.md) | | [Source](<>) |
| [Deleted Nodes Api service](core/services/deleted-nodes-api.service.md) | Gets a list of Content Services nodes currently in the trash. | [Source](../lib/core/src/lib/services/deleted-nodes-api.service.ts) |
| [Discovery Api service](core/services/discovery-api.service.md) | Gets version and license information for Process Services and Content Services. | [Source](../lib/core/src/lib/services/discovery-api.service.ts) |
| [Download zip service](core/services/download-zip.service.md) | Creates and manages downloads. | [Source](../lib/core/src/lib/services/download-zip.service.ts) |
| [Ecm User service](core/services/ecm-user.service.md) | Gets information about a Content Services user. | [Source](../lib/core/src/lib/services/ecm-user.service.ts) |
| [Favorites Api service](core/services/favorites-api.service.md) | Gets a list of items a user has marked as their favorites. | [Source](lib/content-services/src/lib/common/services/favorites-api.service.ts) |
| [Form Rendering service](core/services/form-rendering.service.md) | Maps a form field type string onto the corresponding form widget component type. | [Source](../lib/core/form/services/form-rendering.service.ts) |
| [Form service](core/services/form.service.md) | Implements Process Services form methods | [Source](../lib/core/form/services/form.service.ts) |
| [Highlight Transform service](core/services/highlight-transform.service.md) | Adds HTML to a string to highlight chosen sections. | [Source](../lib/core/services/highlight-transform.service.ts) |
| [Identity Group service](core/services/identity-group.service.md) | Performs CRUD operations on identity groups. | [Source](../lib/core/services/identity-group.service.ts) |
| [Identity role service](core/services/identity-role.service.md) | Provides APIs for working with the Roles in Identity Services. | [Source](../lib/core/services/identity-role.service.ts) |
| [Identity user service](core/services/identity-user.service.md) | Gets OAuth2 personal details and roles for users and performs CRUD operations on identity users. | [Source](../lib/core/services/identity-user.service.ts) |
| [JWT helper service](core/services/jwt-helper.service.md) | Decodes a JSON Web Token (JWT) to a JavaScript object. | [Source](../lib/core/services/jwt-helper.service.ts) |
| [Log Service](core/services/log.service.md) | Provides log functionality. | [Source](../lib/core/services/log.service.ts) |
| [Login Dialog service](core/services/login-dialog.service.md) | Manages login dialogs. | [Source](../lib/core/services/login-dialog.service.ts) |
| [Node Service](core/services/node.service.md) | use Nodes Api service instead of this. | [Source](../lib/core/form/services/node.service.ts) |
| [Nodes Api service](core/services/nodes-api.service.md) | Accesses and manipulates ACS document nodes using their node IDs. | [Source](../lib/core/services/nodes-api.service.ts) |
| [Notification Service](core/services/notification.service.md) | Shows a notification message with optional feedback. | [Source](../lib/core/notifications/services/notification.service.ts) |
| [Page Title service](core/services/page-title.service.md) | Sets the page title. | [Source](../lib/core/services/page-title.service.ts) |
| [People Content service](core/services/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/people-content.service.ts) |
| [People Process service](core/services/people-process.service.md) | Gets information about Process Services users. | [Source](../lib/core/services/people-process.service.ts) |
| [Process Content Service](core/services/process-content.service.md) | Manipulates content related to a Process Instance or Task Instance in APS. | [Source](../lib/core/form/services/process-content.service.ts) |
| [Renditions service](core/services/renditions.service.md) | Manages prearranged conversions of content to different formats. | [Source](../lib/core/services/renditions.service.ts) |
| [Search Configuration service](core/services/search-configuration.service.md) | Provides fine control of parameters to a search. | [Source](../lib/core/services/search-configuration.service.ts) |
| [Search service](core/services/search.service.md) | Accesses the Content Services Search API. | [Source](../lib/core/services/search.service.ts) |
| [Shared Links Api service](core/services/shared-links-api.service.md) | Finds shared links to Content Services items. | [Source](../lib/core/services/shared-links-api.service.ts) |
| [Sites service](core/services/sites.service.md) | Accesses and manipulates sites from a Content Services repository. | [Source](../lib/core/services/sites.service.ts) |
| [Storage service](core/services/storage.service.md) | Stores items in the form of key-value pairs. | [Source](../lib/core/services/storage.service.ts) |
| [Thumbnail service](core/services/thumbnail.service.md) | Retrieves an SVG thumbnail image to represent a document type. | [Source](../lib/core/services/thumbnail.service.ts) |
| [Translation service](core/services/translation.service.md) | Supports localisation. | [Source](../lib/core/services/translation.service.ts) |
| [Upload Service](core/services/upload.service.md) | Provides access to various APIs related to file upload features. | [Source](../lib/core/services/upload.service.ts) |
| [User access service](core/services/user-access.service.md) | Checks the global and application access of a user | [Source](../lib/core/services/user-access.service.ts) |
| [User Preferences Service](core/services/user-preferences.service.md) | Stores preferences for the app and for individual components. | [Source](../lib/core/services/user-preferences.service.ts) |
| [Form service](core/services/form.service.md) | Implements Process Services form methods | [Source](../lib/core/src/lib/form/services/form.service.ts) |
| [Highlight Transform service](core/services/highlight-transform.service.md) | Adds HTML to a string to highlight chosen sections. | [Source](lib/core/src/lib/common/services/highlight-transform.service.ts) |
| [Identity Group service](core/services/identity-group.service.md) | Performs CRUD operations on identity groups. | [Source](../lib/process-services-cloud/src/lib/group/services/identity-group.service.ts) |
| [Identity role service](core/services/identity-role.service.md) | Provides APIs for working with the Roles in Identity Services. | [Source](../lib/core/src/lib/auth/services/identity-role.service.ts) |
| [Identity user service](core/services/identity-user.service.md) | Gets OAuth2 personal details and roles for users and performs CRUD operations on identity users. | [Source](../lib/process-services-cloud/src/lib/people/services/identity-user.service.ts) |
| [JWT helper service](core/services/jwt-helper.service.md) | Decodes a JSON Web Token (JWT) to a JavaScript object. | [Source](../lib/core/src/lib/auth/services/jwt-helper.service.ts) |
| [Log Service](core/services/log.service.md) | Provides log functionality. | [Source](../lib/core/src/lib/common/services/log.service.ts) |
| [Login Dialog service](core/services/login-dialog.service.md) | Manages login dialogs. | [Source](../lib/core/src/lib/services/login-dialog.service.ts) |
| [Nodes Api service](core/services/nodes-api.service.md) | Accesses and manipulates ACS document nodes using their node IDs. | [Source](../lib/core/src/lib/services/nodes-api.service.ts) |
| [Notification Service](core/services/notification.service.md) | Shows a notification message with optional feedback. | [Source](../lib/core/src/lib/notifications/services/notification.service.ts) |
| [Page Title service](core/services/page-title.service.md) | Sets the page title. | [Source](lib/core/src/lib/common/services/page-title.service.ts) |
| [People Content service](core/services/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/src/lib/services/people-content.service.ts) |
| [People Process service](core/services/people-process.service.md) | Gets information about Process Services users. | [Source](../lib/core/src/lib/services/people-process.service.ts) |
| [Process Content Service](core/services/process-content.service.md) | Manipulates content related to a Process Instance or Task Instance in APS. | [Source](../lib/process-services/src/lib/form/services/process-content.service.ts) |
| [Renditions service](core/services/renditions.service.md) | Manages prearranged conversions of content to different formats. | [Source](../lib/core/src/lib/services/renditions.service.ts) |
| [Search Configuration service](core/services/search-configuration.service.md) | Provides fine control of parameters to a search. | [Source](../lib/core/src/lib/services/search-configuration.service.ts) |
| [Search service](core/services/search.service.md) | Accesses the Content Services Search API. | [Source](../lib/core/src/lib/services/search.service.ts) |
| [Shared Links Api service](core/services/shared-links-api.service.md) | Finds shared links to Content Services items. | [Source](lib/content-services/src/lib/content-node-share/services/shared-links-api.service.ts) |
| [Storage service](core/services/storage.service.md) | Stores items in the form of key-value pairs. | [Source](../lib/core/src/lib/services/storage.service.ts) |
| [Thumbnail service](core/services/thumbnail.service.md) | Retrieves an SVG thumbnail image to represent a document type. | [Source](lib/core/src/lib/common/services/thumbnail.service.ts) |
| [Translation service](core/services/translation.service.md) | Supports localisation. | [Source](lib/core/src/lib/translation/translation.service.ts) |
| [Upload Service](core/services/upload.service.md) | Provides access to various APIs related to file upload features. | [Source](../lib/core/src/lib/services/upload.service.ts) |
| [User access service](core/services/user-access.service.md) | Checks the global and application access of a user | [Source](../lib/core/src/lib/services/user-access.service.ts) |
| [User Preferences Service](core/services/user-preferences.service.md) | Stores preferences for the app and for individual components. | [Source](../lib/core/src/lib/common/services/user-preferences.service.ts) |
### Widgets
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [APS Content Component](core/widgets/content.widget.md) | Shows the content preview. | [Source](../lib/core/form/components/widgets/content/content.widget.ts) |
| [APS Content Component](core/widgets/content.widget.md) | Shows the content preview. | [Source](../lib/process-services/src/lib/form/widgets/document/content.widget.ts) |
<!--core end-->
@@ -277,6 +276,7 @@ for more information about installing and using the source code.
| [Dropdown Breadcrumb Component](content-services/components/dropdown-breadcrumb.component.md) | Indicates the current position within a navigation hierarchy using a dropdown menu. | [Source](../lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts) |
| [File Uploading Dialog Component](content-services/components/file-uploading-dialog.component.md) | Shows a dialog listing all the files uploaded with the Upload Button or Drag Area components. | [Source](../lib/content-services/src/lib/upload/components/file-uploading-dialog.component.ts) |
| [Like component](content-services/components/like.component.md) | Allows a user to add "likes" to an item. | [Source](../lib/content-services/src/lib/social/like.component.ts) |
| [Node Comments Component](content-services/components/node-comments.component.md) | Displays comments from users involved in a specified content and allows an involved user to add a comment to a content. | [Source](../lib/content-services/src/lib/node-comments/node-comments.component.ts) |
| [Permission List Component](content-services/components/permission-list.component.md) | Shows node permissions as a table. | [Source](../lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.ts) |
| [Rating component](content-services/components/rating.component.md) | Allows a user to add and remove rating to an item. | [Source](../lib/content-services/src/lib/social/rating.component.ts) |
| [Search check list component](content-services/components/search-check-list.component.md) | Implements a checklist widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts) |
@@ -311,14 +311,20 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Auto Focus directive](content-services/directives/auto-focus.directive.md) | Automatically focuses HTML element after content is initialized. | [Source](../lib/content-services/src/lib/directives/auto-focus.directive.ts) |
| [Check Allowable Operation directive](content-services/directives/check-allowable-operation.directive.md) | Selectively disables an HTML element or Angular component. | [Source](../lib/content-services/src/lib/directives/check-allowable-operation.directive.ts) |
| [Node Public File Share Directive](content-services/directives/content-node-share.directive.md) | Creates and manages public shared links for files. | [Source](../lib/content-services/src/lib/content-node-share/content-node-share.directive.ts) |
| [File Draggable directive](content-services/directives/file-draggable.directive.md) | Provides drag-and-drop features for an element such as a div. | [Source](../lib/content-services/src/lib/upload/directives/file-draggable.directive.ts) |
| [Folder Create directive](content-services/directives/folder-create.directive.md) | Creates folders. | [Source](../lib/content-services/src/lib/folder-directive/folder-create.directive.ts) |
| [Folder Edit directive](content-services/directives/folder-edit.directive.md) | Allows folders to be edited. | [Source](../lib/content-services/src/lib/folder-directive/folder-edit.directive.ts) |
| [Inherit Permission directive](content-services/directives/inherited-button.directive.md) | Update the current node by adding/removing the inherited permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/inherited-button.directive.ts) |
| [Node Counter directive](content-services/directives/node-counter.directive.md) | Appends a counter to an element. | [Source](../lib/content-services/src/lib/directives/node-counter.directive.ts) |
| [Node Delete directive](content-services/directives/node-delete.directive.md) | Deletes multiple files and folders. | [Source](../lib/content-services/src/lib/directives/node-delete.directive.ts) |
| [Node Favorite directive](content-services/directives/node-favorite.directive.md) | Selectively toggles nodes as favorites. | [Source](../lib/content-services/src/lib/directives/node-favorite.directive.ts) |
| [Node Lock directive](content-services/directives/node-lock.directive.md) | Locks or unlocks a node. | [Source](../lib/content-services/src/lib/directives/node-lock.directive.ts) |
| [Node Restore directive](content-services/directives/node-restore.directive.md) | Restores deleted nodes to their original location. | [Source](../lib/content-services/src/lib/directives/node-restore.directive.ts) |
| [Toggle Icon directive](content-services/directives/toggle-icon.directive.md) | Toggle icon on mouse or keyboard event for a selectable element. | [Source](../lib/content-services/src/lib/upload/directives/toggle-icon.directive.ts) |
| [Version Compatibility Directive](content-services/directives/version-compatibility.directive.md) | Enables/disables components based on ACS version in use. | [Source](../lib/content-services/src/lib/version-compatibility/version-compatibility.directive.ts) |
### Dialogs
@@ -331,6 +337,8 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Base Card View Content Update interface](content-services/interfaces/base-card-view-content-update.interface.md) | Specifies required properties and methods for Card View Content Update service. | |
| Extends from BaseCardViewUpdate. | [Source](../lib/content-services/src/lib/interfaces/base-card-view-content-update.interface.ts) | |
| [Search widget interface](content-services/interfaces/search-widget.interface.md) | Specifies required properties for Search filter component widgets. | [Source](../lib/content-services/src/lib/search/models/search-widget.interface.ts) |
### Models
@@ -352,18 +360,23 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Audit Service](content-services/services/audit.service.md) | Manages Audit apps and entries. | [Source](../lib/content-services/src/lib/audit/audit.service.ts) |
| [Card View Content Update Service](content-services/services/card-view-content-update.service.md) | Manages Card View properties in the content services environment. | |
| Implements BaseCardViewContentUpdate. | [Source](lib/content-services/src/lib/common/services/card-view-content-update.service.ts) | |
| [Content Node Dialog service](content-services/services/content-node-dialog.service.md) | Displays and manages dialogs for selecting content to open, copy or upload. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-dialog.service.ts) |
| [Custom Resources service](content-services/services/custom-resources.service.md) | Manages Document List information that is specific to a user. | [Source](../lib/content-services/src/lib/document-list/services/custom-resources.service.ts) |
| [Document Actions service](content-services/services/document-actions.service.md) | Implements the document menu actions for the Document List component. | [Source](../lib/content-services/src/lib/document-list/services/document-actions.service.ts) |
| [Document List service](content-services/services/document-list.service.md) | Implements node operations used by the Document List component. | [Source](../lib/content-services/src/lib/document-list/services/document-list.service.ts) |
| [Folder Actions service](content-services/services/folder-actions.service.md) | Implements the folder menu actions for the Document List component. | [Source](../lib/content-services/src/lib/document-list/services/folder-actions.service.ts) |
| [New Version Uploader service](content-services/services/new-version-uploader.dialog.service.md) | Display a dialog that allows to upload new file version or to manage the current node versions. | [Source](../lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.ts) |
| [Node Comments Service](content-services/services/node-comments.service.md) | Adds and retrieves comments for nodes in Content Services. | [Source](../lib/content-services/src/lib/node-comments/services/node-comments.service.ts) |
| [Node permission dialog service](content-services/services/node-permission-dialog.service.md) | Displays dialogs to let the user set node permissions. | [Source](../lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts) |
| [Node Permission service](content-services/services/node-permission.service.md) | Manages role permissions for content nodes. | [Source](../lib/content-services/src/lib/permission-manager/services/node-permission.service.ts) |
| [Rating service](content-services/services/rating.service.md) | Manages ratings for items in Content Services. | [Source](../lib/content-services/src/lib/social/services/rating.service.ts) |
| [Search filter service](content-services/services/search-filter.service.md) | Registers widgets for use with the Search Filter component. | [Source](../lib/content-services/src/lib/search/services/search-filter.service.ts) |
| [Search Query Builder service](content-services/services/search-query-builder.service.md) | Stores information from all the custom search and faceted search widgets, compiles and runs the final search query. | [Source](../lib/content-services/src/lib/search/services/search-query-builder.service.ts) |
| [Sites service](content-services/services/sites.service.md) | Accesses and manipulates sites from a Content Services repository. | [Source](../lib/content-services/src/lib/services/sites.service.ts) |
| [Tag service](content-services/services/tag.service.md) | Manages tags in Content Services. | [Source](../lib/content-services/src/lib/tag/services/tag.service.ts) |
| [Task Comments service](content-services/services/task-comments.service.md) | Adds and retrieves comments for task and process instances in Process Services. | [Source](../lib/process-services/src/lib/task-comments/services/task-comments.service.ts) |
<!--content-services end-->
@@ -403,6 +416,7 @@ for more information about installing and using the source code.
| [Start Process component](process-services/components/start-process.component.md) | Starts a process. | [Source](../lib/process-services/src/lib/process-list/components/start-process.component.ts) |
| [Start Task Component](process-services/components/start-task.component.md) | Creates/Starts a new task for the specified app. | [Source](../lib/process-services/src/lib/task-list/components/start-task.component.ts) |
| [Task Attachment List Component](process-services/components/task-attachment-list.component.md) | Displays documents attached to a specified task. | [Source](../lib/process-services/src/lib/attachment/task-attachment-list.component.ts) |
| [Task Comments Component](process-services/components/task-comments.component.md) | Displays comments from users involved in a specified task and allows an involved user to add a comment to a task. | [Source](../lib/process-services/src/lib/task-comments/task-comments.component.ts) |
| [Task Details component](process-services/components/task-details.component.md) | Shows the details of the task ID passed in as input. | [Source](../lib/process-services/src/lib/task-list/components/task-details.component.ts) |
| [Task Filters component](process-services/components/task-filters.component.md) | Shows all available filters. | [Source](../lib/process-services/src/lib/task-list/components/task-filters.component.ts) |
| [Task Form component](process-services/components/task-form.component.md) | Shows a form for a task. | [Source](../lib/process-services/src/lib/task-list/components/task-form/task-form.component.ts) |
@@ -25,7 +25,7 @@ This document lists all the deprecated ADF v2.x components that were removed for
classes without the **adf-** prefix, you will now need to update them. For example, `.card-view`
is now `.adf-card-view`.
- [PR ADF-1443](https://github.com/Alfresco/alfresco-ng2-components/pull/4028): [`DownloadZipDialogComponent`](lib/core/src/lib/dialogs/download-zip/download-zip.dialog.ts)
- [PR ADF-1443](https://github.com/Alfresco/alfresco-ng2-components/pull/4028): [`DownloadZipDialogComponent`](../../lib/core/src/lib/dialogs/download-zip/download-zip.dialog.ts)
and [`NodeDownloadDirective`](../core/directives/node-download.directive.md) have been moved from the Content Services module to the Core module.
This modification has enabled us to remove some code duplication between the two modules.
@@ -48,10 +48,10 @@ This document lists all the deprecated ADF v2.x components that were removed for
(you can now have two sidebars on the left and right at the same time).
- `analytics-report-list` is now `adf-analytics-report-list`.
- `analytics-report-parameters` is now `adf-analytics-report-parameters`.
- `CommentProcessModel` was moved into the Core library with the name [`CommentModel`](lib/core/src/lib/models/comment.model.ts) in v2.3.0. Now you
can only import it from [`CoreModule`](lib/core/src/lib/core.module.ts).
- [`CommentsModule`](lib/core/src/lib/comments/comments.module.ts), [`CommentListComponent`](../core/components/comment-list.component.md), and [`CommentsComponent`](../core/components/comments.component.md) are no longer exported from
[`ProcessModule`](../../lib/process-services/src/lib/process.module.ts) but now from [`CoreModule`](lib/core/src/lib/core.module.ts). The old usage was deprecated in v2.3.0.
- `CommentProcessModel` was moved into the Core library with the name [`CommentModel`](../../lib/core/src/lib/models/comment.model.ts) in v2.3.0. Now you
can only import it from [`CoreModule`](../../lib/core/src/lib/core.module.ts).
- [`CommentsModule`](../../lib/core/src/lib/comments/comments.module.ts), [`CommentListComponent`](../core/components/comment-list.component.md), and [`CommentsComponent`](../core/components/comments.component.md) are no longer exported from
[`ProcessModule`](../../lib/process-services/src/lib/process.module.ts) but now from [`CoreModule`](../../lib/core/src/lib/core.module.ts). The old usage was deprecated in v2.3.0.
- `<adf-upload-drag-area>`: The `parentId` input has been renamed as `rootFolderId`. The old
name was deprecated in v2.4.0.
- The `createFolder` event of the [`UploadBase`](../../lib/content-services/src/lib/upload/components/base-upload/upload-base.ts) class (emitted when a folder was
@@ -0,0 +1,474 @@
---
Title: Alfresco Viewer component
Added: 6.0.0
Status: Active
---
# [Alfresco Viewer component](../../../lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts "Defined in alfresco-viewer.component.ts")
Displays content from an ACS repository.
See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
## Contents
- [Basic usage](#basic-usage)
- [Transclusions](#transclusions)
- [Class members](#class-members)
- [Properties](#properties)
- [Events](#events)
- [Keyboard shortcuts](#keyboard-shortcuts)
- [Details](#details)
- [Integrating with the Document List component](#integrating-with-the-document-list-component)
- [Supported file formats](#supported-file-formats)
- [Content Renditions](#content-renditions)
- [Configuring PDF.js library](#configuring-pdfjs-library)
- [Extending the Viewer](#extending-the-viewer)
- [Custom layout](#custom-layout)
- [Printing](#printing)
- [See also](#see-also)
## Basic usage
Using with node id:
```html
<adf-alfresco-viewer
[showViewer]="true"
[overlayMode]="true"
[nodeId]="'d367023a-7ebe-4f3a-a7d0-4f27c43f1045'">
</adf-alfresco-viewer>
```
Using with shared link:
```html
<adf-alfresco-viewer
[overlayMode]="true"
[sharedLinkId]="'WWDg_afiTU6lHEgr4fAbQA'">
</adf-alfresco-viewer>
```
Note that if you have a URL which contains a shared link ID, you should extract the
ID portion and use it with the `sharedLinkId` property rather than using the whole
URL with `urlFile`.
### [Transclusions](../../user-guide/transclusion.md)
The [Alfresco Viewer component](viewer.component.md) lets you transclude content for the toolbar (and toolbar buttons),
the sidebar, thumbnails, and the "Open with" and "More actions" menus.
See the [Custom layout](#custom-layout) section for full details of all available tranclusions.
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| allowDownload | `boolean` | true | Toggles downloading. |
| allowGoBack | `boolean` | true | Allows `back` navigation |
| allowLeftSidebar | `boolean` | false | Allow the left the sidebar. |
| allowNavigate | `boolean` | false | Toggles before/next navigation. You can use the arrow buttons to navigate between documents in the collection. |
| allowPrint | `boolean` | false | Toggles printing. |
| allowRightSidebar | `boolean` | false | Allow the right sidebar. |
| canNavigateBefore | `boolean` | true | Toggles the "before" ("&lt;") button. Requires `allowNavigate` to be enabled. |
| canNavigateNext | `boolean` | true | Toggles the next (">") button. Requires `allowNavigate` to be enabled. |
| maxRetries | `number` | 30 | Number of times the Viewer will retry fetching content Rendition. There is a delay of at least one second between attempts. |
| nodeId | `string` | null | Node Id of the file to load. |
| overlayMode | `boolean` | false | If `true` then show the Viewer as a full page over the current content. Otherwise fit inside the parent div. |
| sharedLinkId | `string` | null | Shared link id (to display shared file). |
| showLeftSidebar | `boolean` | false | Toggles left sidebar visibility. Requires `allowLeftSidebar` to be set to `true`. |
| showRightSidebar | `boolean` | false | Toggles right sidebar visibility. Requires `allowRightSidebar` to be set to `true`. |
| showToolbar | `boolean` | true | Hide or show the toolbar |
| showViewer | `boolean` | true | Hide or show the viewer |
| sidebarLeftTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the left sidebar. The template context contains the loaded node data. |
| sidebarRightTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the right sidebar. The template context contains the loaded node data. |
| versionId | `string` | null | Version Id of the file to load. |
### Events
| Name | Type | Description |
| ---- | ---- | ----------- |
| close | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the viewer close |
| invalidSharedLink | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the shared link used is not valid. |
| navigateBefore | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Before' ("&lt;") button. |
| navigateNext | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Next' (">") button. |
## Keyboard shortcuts
| Name | Description |
| ---- | ----------- |
| Esc | Close the viewer (overlay mode only). |
| Left | Invoke 'Navigate before' action. |
| Right | Invoke 'Navigate next' action. |
| Ctrl+F | Activate full-screen mode. |
## Details
### Integrating with the Document List component
Below is the most simple integration of the Viewer and
[Document List](../../content-services/components/document-list.component.md) components within your custom component:
```html
<adf-document-list
currentFolderId="-my-"
(preview)="showPreview($event)">
</adf-document-list>
<adf-alfresco-viewer
[(showViewer)]="showViewer"
[overlayMode]="true"
[nodeId]="nodeId">
</adf-alfresco-viewer>
```
The component controller class implementation might look like the following:
```ts
export class OverlayViewerComponent {
@Input()
showViewer: boolean = false;
nodeId: string;
showPreview(event) {
if (event.value.entry.isFile) {
this.nodeId = event.value.entry.id;
this.showViewer = true;
}
}
}
```
### Supported file formats
The [Alfresco Viewer component](viewer.component.md) consists of separate Views that handle particular file types or type families based on either a file extension or a mime type:
- PDF View
- application/pdf
- \*.pdf
- Image View
- image/png
- image/jpeg
- image/gif
- image/bmp
- image/svg+xml
- \*.png
- \*.jpg
- \*.jpeg
- \*.gif
- \*.bpm
- \*.svg
- Text View
- text/plain
- text/csv
- text/xml
- text/html
- application/x-javascript
- \*.txt
- \*.xml
- \*.js
- \*.html
- \*.json
- \*.ts
- Media View
- video/mp4
- video/webm
- video/ogg
- audio/mpeg
- audio/ogg
- audio/wav
- \*.wav
- \*.mp4
- \*.mp3
- \*.webm
- \*.ogg
### Content Renditions
For those extensions and mime types that cannot be natively displayed in the browser, the Viewer will try to fetch the corresponding rendition using the [renditions service api](../services/renditions.service.md).
For the full list of supported types please refer to: [File types that support preview and thumbnail generation](http://docs.alfresco.com/5.2/references/valid-transformations-preview.html).
### Configuring PDF.js library
Configure your webpack-enabled application with the PDF.js library as follows.
1. Install pdfjs-dist
```sh
npm install pdfjs-dist
```
2. Update `vendors.ts` by appending the following code. This will enable the [Alfresco Viewer component](viewer.component.md)
and compatibility mode for all browsers. It will also configure the web worker for the PDF.js
library to render PDF files in the background:
```ts
// PDF.js
require('pdfjs-dist/web/compatibility.js');
const pdfjsLib = require('pdfjs-dist');
pdfjsLib.PDFJS.workerSrc = './pdf.worker.js';
require('pdfjs-dist/web/pdf_viewer.js');
```
3. Update the `plugins` section of the `webpack.common.js` file with the following lines:
```js
new CopyWebpackPlugin([
...
{
from: 'node_modules/pdfjs-dist/build/pdf.worker.js',
to: 'pdf.worker.js'
}
])
```
### Extending the Viewer
#### Internal extension mechanism
The Viewer supports dynamically-loaded viewer preview extensions, to know more about it [Preview Extension component](../../extensions/components/preview-extension.component.md). This
#### Code extension mechanism]
You can define your own custom handler to handle other file formats that are not yet supported by
the [Alfresco Viewer component](viewer.component.md). Below is an example that shows how to use the `adf-viewer-extension`
to handle 3D data files:
```html
<adf-alfresco-viewer [nodeId]="nodeId">
<adf-viewer-extension [supportedExtensions]="['obj','3ds']" #extension>
<ng-template let-urlFileContent="urlFileContent" let-extension="extension">
<threed-viewer
[urlFile]="urlFileContent"
[extension]="extension">
</threed-viewer>
</ng-template>
</adf-viewer-extension>
</adf-alfresco-viewer>
```
Note: you need to add the `ng2-3d-editor` dependency to your `package.json` file to make the example above work.
You can define multiple `adf-viewer-extension` templates if required:
```html
<adf-alfresco-viewer [nodeId]="nodeId">
<adf-viewer-extension [supportedExtensions]="['xls','xlsx']" #extension>
<ng-template let-urlFileContent="urlFileContent">
<my-custom-xls-component
urlFileContent="urlFileContent">
</my-custom-xls-component>
</ng-template>
</adf-viewer-extension>
<adf-viewer-extension [supportedExtensions]="['txt']" #extension>
<ng-template let-urlFileContent="urlFileContent" >
<my-custom-txt-component
urlFileContent="urlFileContent">
</my-custom-txt-component>
</ng-template>
</adf-viewer-extension>
</adf-alfresco-viewer>
```
### Custom layout
The [Alfresco Viewer Component](viewer.component.md) lets you transclude custom content in several different places as
explained in the sections below.
#### Custom toolbar
You can replace the standard viewer toolbar with your own custom implementation:
```html
<adf-alfresco-viewer>
<adf-alfresco-viewer-toolbar>
<h1>toolbar</h1>
</adf-alfresco-viewer-toolbar>
</adf-alfresco-viewer>
```
Everything you put inside the "adf-alfresco-viewer-toolbar" tags will be rendered instead of the
standard toolbar.
#### Custom toolbar buttons
If you are happy with the custom toolbar's behaviour but want to add some extra buttons
then you can do so as shown in the following example:
```html
<adf-alfresco-viewer>
<adf-alfresco-viewer-toolbar-actions>
<button mat-icon-button>
<mat-icon>alarm</mat-icon>
</button>
<button mat-icon-button>
<mat-icon>backup</mat-icon>
</button>
<button mat-icon-button>
<mat-icon>bug_report</mat-icon>
</button>
</adf-alfresco-viewer-toolbar-actions>
</adf-alfresco-viewer>
```
The result should look like this:
![Custom Toolbar Actions](../../docassets/images/viewer-toolbar-actions.png)
#### Custom sidebar
The [Alfresco Viewer Component](viewer.component.md) also supports custom sidebar components and layouts.
Set the `allowRightSidebar` property to `true` to enable this feature.
The custom sidebar can be injected in two different ways. The first way is to use
transclusion, which will display all content placed inside the `<adf-alfresco-viewer-sidebar>` element:
```html
<adf-alfresco-viewer [allowRightSidebar]="true">
<adf-alfresco-viewer-sidebar>
<h1>My info</h1>
</adf-alfresco-viewer-sidebar>
</adf-alfresco-viewer>
```
The second way to customize the sidebar is to use template injection but note that this only works
when using the viewer with `nodeId`.
```html
<ng-template let-node="node" #sidebarTemplate>
<adf-content-metadata-card [node]="node"></adf-content-metadata-card>
</ng-template>
<adf-alfresco-viewer [allowRightSidebar]="true" [sidebarRightTemplate]="sidebarTemplate"></adf-alfresco-viewer>
```
#### Custom thumbnails
The PDF viewer comes with its own default list of thumbnails but you can replace this
by providing a custom template and binding to the context property `viewer` to access the PDFJS.PDFViewer
instance.
![PDF thumbnails](../../docassets/images/pdf-thumbnails.png)
Provide the custom template as in the following example:
```javascript
import { Component, Input } from '@angular/core';
@Component({
selector: 'custom-thumbnails',
template: '<p> Custom Thumbnails Component </p>'
})
export class CustomThumbnailsComponent {
@Input() pdfViewer: any;
...
}
```
```html
<ng-template #customThumbnailsTemplate let-pdfViewer="viewer">
<custom-thumbnails [pdfViewer]="pdfViewer"></custom-thumbnails>
</ng-template>
<adf-alfresco-viewer [thumbnailsTemplate]="customThumbnailsTemplate"></adf-alfresco-viewer>
```
#### Custom "Open With" menu
You can enable a custom "Open With" menu by providing at least one action inside the
`adf-alfresco-viewer-open-with` tag:
```html
<adf-alfresco-viewer [nodeId]="nodeId">
<adf-alfresco-viewer-open-with>
<button mat-menu-item>
<mat-icon>dialpad</mat-icon>
<span>Option 1</span>
</button>
<button mat-menu-item disabled>
<mat-icon>voicemail</mat-icon>
<span>Option 2</span>
</button>
<button mat-menu-item>
<mat-icon>notifications_off</mat-icon>
<span>Option 3</span>
</button>
</adf-alfresco-viewer-open-with>
</adf-alfresco-viewer>
```
![Open with](../../docassets/images/viewer-open-with.png)
#### Custom "More actions" menu
You can enable a custom "More actions" menu by providing at least one action inside the `adf-alfresco-viewer-more-actions` tag:
```html
<adf-alfresco-viewer [nodeId]="nodeId">
<adf-alfresco-viewer-more-actions>
<button mat-menu-item>
<mat-icon>dialpad</mat-icon>
<span>Action One</span>
</button>
<button mat-menu-item disabled>
<mat-icon>voicemail</mat-icon>
<span>Action Two</span>
</button>
<button mat-menu-item>
<mat-icon>notifications_off</mat-icon>
<span>Action Three</span>
</button>
</adf-alfresco-viewer-more-actions>
</adv-viewer>
```
![More actions](../../docassets/images/viewer-more-actions.png)
#### Custom zoom scaling
You can set a default zoom scaling value for pdf viewer by adding the following code in `app.config.json`.
Note: For the pdf viewer the value has to be within the range of 25 - 1000.
"adf-alfresco-viewer": {
"pdf-viewer-scaling": 150
}
In the same way you can set a default zoom scaling value for the image viewer by adding the following code in `app.config.json`.
"adf-alfresco-viewer": {
"image-viewer-scaling": 150
}
By default the viewer's zoom scaling is set to 100%.
### Printing
You can configure the Viewer to let the user print the displayed content. The
component will show a "Print" button if the `allowPrint` property is set to
true.
```html
<adf-alfresco-viewer [allowPrint]="true">
...
</adf-alfresco-viewer>
```
You can also use the `print` event to get notification when the user prints some
content.
## See also
- [Document List component](../../content-services/components/document-list.component.md)
- [Preview Extension component](../../extensions/components/preview-extension.component.md)
@@ -0,0 +1,38 @@
---
Title: Content User Info component
Added: v6.0.0
Status: Active
Last reviewed: 2023-01-24
---
# [Content User Info component](../../../lib/content-services/src/lib/content-user-info/content-user-info.component.ts "Defined in content-user-info.component.ts")
Shows user information for `CONTENT` and `CONTENT_SSO` mode.
## Basic usage
```html
<adf-content-user-info></adf-content-user-info>
```
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| isLoggedIn | `boolean` | Is user logged in |
| EcmUser | `EcmUserModel` | Ecm user model. |
| identityUser | `IdentityUserModel` | Identity user model. |
| mode | `UserInfoMode` | `UserInfoMode.CONTENT` | current mode. |
| bpmBackgroundImage | `string` | | Custom path for the background banner image for APS users. |
| EcmBackgroundImage | `string` | | Custom path for the background banner image for ACS users. |
| menuPositionX | [`MenuPositionX`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "after" | Custom choice for opening the menu at the bottom. Can be `before` or `after`. |
| menuPositionY | [`MenuPositionY`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "below" | Custom choice for opening the menu at the bottom. Can be `above` or `below`. |
| namePosition | `string` | "right" | When the username is shown, this defines its position relative to the user info button. Can be `right` or `left`. |
| showName | `boolean` | true | Shows/hides the username next to the user info button. |
## Details
The component shows a round icon for the user and will show extra information about
the user when clicked.
@@ -57,7 +57,7 @@ Displays the documents from a repository.
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| additionalSorting | [`DataSorting`](lib/core/src/lib/datatable/data/data-sorting.model.ts) | | Defines default sorting. The format is an array of strings `[key direction, otherKey otherDirection]` i.e. `['name desc', 'nodeType asc']` or `['name asc']`. Set this value if you want a base rule to be added to the sorting apart from the one driven by the header. |
| additionalSorting | [`DataSorting`](../../../lib/core/src/lib/datatable/data/data-sorting.model.ts) | | Defines default sorting. The format is an array of strings `[key direction, otherKey otherDirection]` i.e. `['name desc', 'nodeType asc']` or `['name asc']`. Set this value if you want a base rule to be added to the sorting apart from the one driven by the header. |
| allowDropFiles | `boolean` | false | When true, this enables you to drop files directly into subfolders shown as items in the list or into another file to trigger updating it's version. When false, the dropped file will be added to the current folder (ie, the one containing all the items shown in the list). See the [Upload directive](../../core/directives/upload.directive.md) for further details about how the file drop is handled. |
| contentActions | `boolean` | false | Toggles content actions for each row |
| contentActionsPosition | `string` | "right" | Position of the content actions dropdown menu. Can be set to "left" or "right". |
@@ -82,7 +82,7 @@ Displays the documents from a repository.
| rowStyleClass | `string` | | The CSS class to apply to every row |
| selectionMode | `string` | "single" | Row selection mode. Can be null, `single` or `multiple`. For `multiple` mode, you can use Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for multiple rows. |
| showHeader | `ShowHeaderMode` | | Toggles the header |
| sorting | `string[] \| `[`DataSorting`](../../../lib/core/datatable/data/data-sorting.model.ts) | ['name', 'asc'] | Defines default sorting. The format is an array of 2 strings `[key, direction]` i.e. `['name', 'desc']` or `['name', 'asc']`. Set this value only if you want to override the default sorting detected by the component based on columns. |
| sorting | `string[] \| `[`DataSorting`](../../../lib/core/src/lib/datatable/data/data-sorting.model.ts) | ['name', 'asc'] | Defines default sorting. The format is an array of 2 strings `[key, direction]` i.e. `['name', 'desc']` or `['name', 'asc']`. Set this value only if you want to override the default sorting detected by the component based on columns. |
| sortingMode | `"server" \| "client"` | "server" | Defines sorting mode. Can be either `client` (items in the list are sorted client-side) or `server` (the ordering supplied by the server is used without further client-side sorting). Note that the `server` option _does not_ request the server to sort the data before delivering it. |
| stickyHeader | `boolean` | false | Toggles the sticky header mode. |
| thumbnails | `boolean` | false | Show document thumbnails rather than icons |
@@ -99,7 +99,7 @@ Displays the documents from a repository.
| nodeClick | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user clicks a list node |
| nodeDblClick | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user double-clicks a list node |
| nodeSelected | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`[]>` | Emitted when the node selection change |
| preview | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user acts upon files with either single or double click (depends on `navigation-mode`). Useful for integration with the [Viewer component](../../core/components/viewer.component.md). |
| preview | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntityEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the user acts upon files with either single or double click (depends on `navigation-mode`). Useful for integration with the Viewer component. |
| ready | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/NodePaging.md)`>` | Emitted when the Document List has loaded all items and is ready for use |
## Details
@@ -0,0 +1,29 @@
---
Title: Node Comments Component
Added: v5.1.0
Status: Active
---
# [Node Comments Component](../../../lib/content-services/src/lib/node-comments/node-comments.component.ts "Defined in node-comments.component.ts")
Displays comments from users involved in a specified content and allows an involved user to add a comment to a content.
![adf-comments](../../docassets/images/adf-comments.png)
## Basic Usage Task
```html
<adf-node-comments
[nodeId]="YOUR_NODE_ID"
[readOnly]="YOUR_READ_ONLY_FLAG">
</adf-node-comments>
```
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| nodeId | `string` | | The numeric ID of the node. |
| readOnly | `boolean` | | Are the comments read only? |
@@ -27,9 +27,23 @@ Shows tags for a node.
| ---- | ---- | ------------- | ----------- |
| nodeId | `string` | | The identifier of a node. |
| showDelete | `boolean` | true | Show delete button |
| limitTagsDisplayed | `boolean` | false | Should limit number of tags displayed to as much as fits into container |
### Events
| Name | Type | Description |
| ---- | ---- | ----------- |
| results | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when a tag is selected. |
## Details
### Limit number of tags displayed initially
To limit number of tags initially displayed set `limitTagsDisplayed` to `true`.
```html
<adf-tag-node-list
[nodeId]="nodeId"
[limitTagsDisplayed]="true">
</adf-tag-node-list>
```
Now when tag chips will exceed the size of the container number of displayed chips will be limited to as much as fits together with view more button. At least one tag will always be displayed, when one tag and view more button won't fit into one line the button will be displayed under the tag.
@@ -0,0 +1,111 @@
---
Title: Tree component
Added: v6.0.0.0
Status: Active
Last reviewed: 2023-01-25
---
# [Tree component](../../../lib/content-services/src/lib/tree/components/tree.component.ts "Defined in tree.component.ts")
Shows the nodes in tree structure, each node containing children is collapsible/expandable. Can be integrated with any datasource extending [Tree service](../../../lib/content-services//src/lib/tree/services/tree.service.ts).
![Tree component screenshot](../../docassets/images/tree.png)
## Basic Usage
```html
<adf-tree
[displayName]="'Tree display name'"
[loadMoreSuffix]="'subnodes'"
[emptyContentTemplate]="emptyContentTemplate"
[nodeActionsMenuTemplate]="nodeActionsMenuTemplate"
(paginationChanged)="onPaginationChanged($event)">
</adf-tree>
```
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- |---------------| --------- | ----------- |
| emptyContentTemplate | `TemplateRef` | | Template that will be rendered when no nodes are loaded. |
| nodeActionsMenuTemplate | `TemplateRef` | | Template that will be rendered when context menu for given node is opened. |
| stickyHeader | `boolean` | false | If set to true header will be sticky. |
| selectableNodes | `boolean` | false | If set to true nodes will be selectable. |
| displayName | `string` | | Display name for tree title. |
| loadMoreSuffix | `string` | | Suffix added to `Load more` string inside load more node. |
| expandIcon | `string` | `chevron_right` | Icon shown when node is collapsed. |
| collapseIcon | `string` | `expand_more` | Icon showed when node is expanded. |
| contextMenuOptions | `any[]` | | Array of context menu options which should be displayed for each row. |
### Events
| Name | Type | Description |
| ---- |----------------------------------------------------------------------------------------|------------------------------------------------------------------|
| paginationChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<PaginationModel>` | Emitted when during loading additional nodes pagination changes. |
| contextMenuOptionSelected | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<TreeContextMenuResult<T>>` | Emitted when any context menu option is selected. |
## Details
### Defining your own custom datasource
First of all create custom node interface extending [`TreeNode`](../../../lib/content-services/src/lib/tree/models/tree-node.interface.ts) interface or use [`TreeNode`](../../../lib/content-services/src/lib/tree/models/tree-node.interface.ts) when none extra properties are required.
```ts
export interface CustomNode extends TreeNode
```
Next create custom datasource service extending [`TreeService`](../../../lib/content-services/src/lib/tree/services/tree.service.ts). Datasource service must implement `getSubNodes` method. It has to be able to provide both root level nodes as well as subnodes. If there are more subnodes to load for a given node it should add node with `LoadMoreNode` node type. Example of custom datasource service can be found in [`Category tree datasource service`](../services/category-tree-datasource.service.md).
```ts
@Injectable({...})
export class CustomTreeDatasourceService extends TreeService<TreeNode> {
...
public getSubNodes(parentNodeId: string, skipCount?: number, maxItems?: number): Observable<TreeResponse<TreeNode>> {
...
}
```
Final step is to provide your custom datasource service as tree service in component using `TreeComponent`.
```ts
providers: [
{
provide: TreeService,
useClass: CustomTreeDatasourceService,
},
]
```
### Enabling nodes selection and listening to selection changes
First step is to provide necessary input value.
```html
<adf-tree
[displayName]="'Tree display name'"
[loadMoreSuffix]="'subnodes'"
[selectableNodes]="true"
[emptyContentTemplate]="emptyContentTemplate"
[nodeActionsMenuTemplate]="nodeActionsMenuTemplate"
(paginationChanged)="onPaginationChanged($event)">
</adf-tree>
```
Next inside your component get the `TreeComponent`
```ts
@ViewChild(TreeComponent)
public treeComponent: TreeComponent<TreeNode>;
```
and listen to selection changes.
```ts
this.treeComponent.treeNodesSelection.changed.subscribe(
(selectionChange: SelectionChange<TreeNode>) => {
this.onTreeSelectionChange(selectionChange);
}
);
```
@@ -48,7 +48,7 @@ Activates a file upload.
| Name | Type | Description |
| ---- | ---- | ----------- |
| beginUpload | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`UploadFilesEvent`](../../../lib/content-services/src/lib/upload/components/upload-files.event.ts)`>` | Emitted when the upload begins. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when an error occurs. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when an error occurs. |
| permissionEvent | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`PermissionModel`](../../../lib/content-services/src/lib/document-list/models/permissions.model.ts)`>` | Emitted when create permission is missing. |
| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the file is uploaded successfully. |
| updateFileVersion | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<CustomEvent<any>>` | Emitted when dropping a file over another file to update the version. |
@@ -75,7 +75,7 @@ as the drag/drop target:
| Name | Type | Description |
| ---- | ---- | ----------- |
| beginUpload | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`UploadFilesEvent`](../../../lib/content-services/src/lib/upload/components/upload-files.event.ts)`>` | Emitted when the upload begins. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when an error occurs. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when an error occurs. |
| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the file is uploaded successfully. |
| updateFileVersion | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<CustomEvent<any>>` | Emitted when dropping a file over another file to update the version. |
@@ -87,7 +87,7 @@ You can intercept the upload process using the `beginUpload` event.
The event has a type of [`UploadFilesEvent`](../../../lib/content-services/src/lib/upload/components/upload-files.event.ts) and provides the following APIs:
- **files**: accesses the [`FileInfo`](lib/core/src/lib/utils/file-utils.ts) objects that are prepared for the upload
- **files**: accesses the [`FileInfo`](../../../lib/core/src/lib/common/utils/file-utils.ts) objects that are prepared for the upload
- **pauseUpload**: pauses the upload and performs additional tasks, like showing the confirmation dialog
- **resumeUpload**: resumes the upload process
@@ -51,7 +51,7 @@ to enrich the features and decrease the restrictions currently applied to node v
| Name | Type | Description |
| ---- | ---- | ----------- |
| beginUpload | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`UploadFilesEvent`](../../../lib/content-services/src/lib/upload/components/upload-files.event.ts)`>` | Emitted when the upload begins. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when an error occurs. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when an error occurs. |
| permissionEvent | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`PermissionModel`](../../../lib/content-services/src/lib/document-list/models/permissions.model.ts)`>` | Emitted when create permission is missing. |
| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the file is uploaded successfully. |
| updateFileVersion | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<CustomEvent<any>>` | Emitted when dropping a file over another file to update the version. |
@@ -40,7 +40,7 @@ Displays the version history of a node with the ability to upload a new version.
| Name | Type | Description |
| ---- | ---- | ----------- |
| uploadCancel | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when an cancelling during upload. |
| uploadError | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when an error occurs during upload. |
| uploadError | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when an error occurs during upload. |
| uploadSuccess | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<Node>` | Emitted when a file is uploaded successfully. |
| viewVersion | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<string>` | Emitted when viewing a version. |
@@ -33,9 +33,9 @@ Displays the new version's minor/major changes and the optional comment of a nod
| ---- | ---- | ----------- |
| cancel | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when an cancelling during upload. |
| commentChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<string>` | Emitted when the comment is changed. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when an error occurs. |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadErrorEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when an error occurs. |
| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the file is uploaded successfully. |
| uploadStarted | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadEvent`](../../../lib/core/events/file.event.ts)`>` | Emitted when the upload starts |
| uploadStarted | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`FileUploadEvent`](../../../lib/core/src/lib/events/file.event.ts)`>` | Emitted when the upload starts |
| versionChanged | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the version is changed. |
## Details
@@ -16,5 +16,3 @@ Automatically focuses HTML element after content is initialized.
```
## Class members
### Properties
@@ -2,10 +2,10 @@
Title: Version Compatibility Directive
Added: v3.9.0
Status: Active
Last reviewed: 2020-23-06
Last reviewed: 2022-07-12
---
# [Version Compatibility Directive](lib/core/src/lib/directives/version-compatibility.directive.ts "Defined in version-compatibility.directive.ts")
# [Version Compatibility Directive](../../../lib/content-services/src/lib/version-compatibility/version-compatibility.directive.ts "Defined in version-compatibility.directive.ts")
Enables/disables components based on ACS version in use.
@@ -33,7 +33,7 @@ The directive takes the version specified in the html and compares it to the ver
This will allow certain features to be only present under specific versions.
#### Major version
### Major version
```html
<button *adf-acs-version="'7'">
@@ -41,7 +41,7 @@ This will allow certain features to be only present under specific versions.
</button>
```
#### Major and minor version
### Major and minor version
```html
<button *adf-acs-version="'6.2'">
@@ -49,7 +49,7 @@ This will allow certain features to be only present under specific versions.
</button>
```
#### Major, minor and patch version
### Major, minor and patch version
```html
<button *adf-acs-version="'6.0.1'">
@@ -61,4 +61,6 @@ It can be set to match major, minor and patches of ACS versions. Fox example, if
If the minimum version required is not matched the component will not be initialized and will disappear from the DOM tree.
Note, if you dont place the * in front, the app wont be able to inject the TemplateRef and ViewContainerRef required for this directive to work.
```text
Note, if you dont place the * in front, the app wont be able to inject the TemplateRef and ViewContainerRef required for this directive to work.
```
@@ -0,0 +1,52 @@
---
Title: Base Card View Content Update interface
Added: v6.0.0
Status: Active
Last reviewed: 2022-11-25
---
# [Base Card View Content Update interface](../../../lib/content-services/src/lib/interfaces/base-card-view-content-update.interface.ts "Defined in base-card-view-content-update.interface.ts")
Specifies required properties and methods for [Card View Content Update service](lib/content-services/src/lib/common/services/card-view-content-update.service.ts).
Extends from [`BaseCardViewUpdate`](../../../lib/core/src/lib/card-view/interfaces/base-card-view-update.interface.ts).
## Basic usage
```ts
export interface BaseCardViewContentUpdate {
itemUpdated$: Subject<UpdateNotification>;
updatedAspect$: Subject<MinimalNode>;
update(property: CardViewBaseItemModel, newValue: any);
updateElement(notification: CardViewBaseItemModel);
updateNodeAspect(node: MinimalNode);
}
```
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| itemUpdated$ | [`Subject`](http://reactivex.io/documentation/subject.html)`<`[`UpdateNotification`](../../../lib/core/src/lib/card-view/interfaces/update-notification.interface.ts)`>` | | The current updated item. |
| updatedAspect$ | [`Subject`](http://reactivex.io/documentation/subject.html)`<`[`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md)`>`(@alfresco/js-api) | | [`Subject`](http://reactivex.io/documentation/subject.html) holding the current node |
### Methods
- **update**(property: [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts), newValue: `any`)<br/>
Update itemUpdated$ property.
- property:\_ [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts) - The property.
- newValue:\_ `any` - new value.
- **updateElement**(notification: [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts))<br/>
Update updateItem$ observable.
- notification:\_ [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts) - The notification.
- **updateNodeAspect**(node: [`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md))<br/>
Update node aspect observable.
- node:\_ [`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md) - The node.
## See also
- [CardViewContentUpdate service](../services/card-view-content-update.service.md)

Some files were not shown because too many files have changed in this diff Show More