mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-16 18:13:06 +00:00
Compare commits
466
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0447a30b38 | ||
|
|
b6e6237b45 | ||
|
|
6dd3fc61fc | ||
|
|
a39480bc48 | ||
|
|
9863149a28 | ||
|
|
41f9974919 | ||
|
|
997fa81c59 | ||
|
|
8db863219c | ||
|
|
29132ec5c8 | ||
|
|
3711eecca4 | ||
|
|
f4a8084f0c | ||
|
|
dd91f2eeb6 | ||
|
|
cb69f34aa7 | ||
|
|
63886d5262 | ||
|
|
8567b147be | ||
|
|
52a733d2a2 | ||
|
|
ad150bf610 | ||
|
|
77fde1ab65 | ||
|
|
005b26c54f | ||
|
|
97253bba85 | ||
|
|
1049de9825 | ||
|
|
5d92a08f1e | ||
|
|
8ab4e15daf | ||
|
|
99db02b9db | ||
|
|
b156e866b2 | ||
|
|
aa6b5089bb | ||
|
|
fc224713f2 | ||
|
|
2bc74f012d | ||
|
|
c890999c80 | ||
|
|
713320b01d | ||
|
|
2f3c9f1658 | ||
|
|
b5310f6b89 | ||
|
|
7028910616 | ||
|
|
d26593e4d8 | ||
|
|
25d85c7890 | ||
|
|
2dccde9e6b | ||
|
|
7d02ea61a2 | ||
|
|
33d7fca2cf | ||
|
|
e7bb097be6 | ||
|
|
90c8cb3add | ||
|
|
8625a49df7 | ||
|
|
d412579836 | ||
|
|
fbccbb5a98 | ||
|
|
bac4d786bc | ||
|
|
0d4049b333 | ||
|
|
69689876af | ||
|
|
55ec15e174 | ||
|
|
c89714be83 | ||
|
|
6e7b1808cc | ||
|
|
8e3d5a9b9f | ||
|
|
02dcd4fb48 | ||
|
|
477d49eaee | ||
|
|
b876102098 | ||
|
|
f76e10ff09 | ||
|
|
4aa2e0eb87 | ||
|
|
058cd9e01c | ||
|
|
2062d4744c | ||
|
|
6cd6eefc92 | ||
|
|
561f8c38d4 | ||
|
|
f8f6d145f3 | ||
|
|
c00c7643b1 | ||
|
|
05e2033633 | ||
|
|
384628197e | ||
|
|
f18fd94085 | ||
|
|
41f135df0f | ||
|
|
9014a85eda | ||
|
|
96075ae456 | ||
|
|
c5710c0e61 | ||
|
|
54bb8e24e5 | ||
|
|
275d30b043 | ||
|
|
a1ec61f857 | ||
|
|
3b7ac02098 | ||
|
|
0ba076722f | ||
|
|
bcfa488940 | ||
|
|
b1311c6966 | ||
|
|
6e99dd663a | ||
|
|
5ce8553901 | ||
|
|
d2f9523053 | ||
|
|
99015fee87 | ||
|
|
e16bed611c | ||
|
|
5d2dddee28 | ||
|
|
cae2d70637 | ||
|
|
d873306c7c | ||
|
|
dd1feeec6e | ||
|
|
08b4cc7939 | ||
|
|
7c6ce0a5fe | ||
|
|
b9c53e586d | ||
|
|
cd84be9712 | ||
|
|
1a00249f6a | ||
|
|
4c7e500ea8 | ||
|
|
c12b4284ef | ||
|
|
a0333b1d9c | ||
|
|
857f9bd2b4 | ||
|
|
e59176d393 | ||
|
|
49c6cb5ad3 | ||
|
|
65e0c2405a | ||
|
|
d50aa91922 | ||
|
|
e0dfc9a8e9 | ||
|
|
3f8293b64c | ||
|
|
e8a3d109d4 | ||
|
|
4043d55fc4 | ||
|
|
52520bb61e | ||
|
|
afb22bbc02 | ||
|
|
ca49693bd6 | ||
|
|
a720edd2cf | ||
|
|
1f450c0593 | ||
|
|
0ab39e28fd | ||
|
|
11c3a02acc | ||
|
|
4f25426c25 | ||
|
|
89b79c9e45 | ||
|
|
71e7fc0bf6 | ||
|
|
d6e8e7a3b3 | ||
|
|
49237fee2d | ||
|
|
2d386c5890 | ||
|
|
2a45c1e7a3 | ||
|
|
b503773475 | ||
|
|
efb2558c3f | ||
|
|
266d3aa9b0 | ||
|
|
b6cf14c844 | ||
|
|
4a3bc568ad | ||
|
|
42dbfe25ac | ||
|
|
2c248a611f | ||
|
|
588ffe0fa0 | ||
|
|
61a3e30c31 | ||
|
|
facc4f6b03 | ||
|
|
3df6bcea26 | ||
|
|
f02272ac68 | ||
|
|
1746fcf653 | ||
|
|
011f78ac43 | ||
|
|
46717cdd4b | ||
|
|
d71eb6291a | ||
|
|
ad9ffeb17d | ||
|
|
44538015fa | ||
|
|
4f7f5b0afb | ||
|
|
a5a9a1e45b | ||
|
|
570bfb235c | ||
|
|
491d16f562 | ||
|
|
eb8bad1f96 | ||
|
|
35721b0279 | ||
|
|
59df5c661d | ||
|
|
bd9127d960 | ||
|
|
32e4564e14 | ||
|
|
cc33c5dec1 | ||
|
|
6138c16f42 | ||
|
|
a412b45300 | ||
|
|
b99a574f94 | ||
|
|
616ae95c23 | ||
|
|
bbee01a809 | ||
|
|
067d4e9369 | ||
|
|
db38ccda7a | ||
|
|
8a2f73ec2f | ||
|
|
55b146044e | ||
|
|
73e1953418 | ||
|
|
0b9fb82de2 | ||
|
|
f654fdf008 | ||
|
|
34e5508076 | ||
|
|
9d143cf945 | ||
|
|
fe65f7c201 | ||
|
|
f6fd813a29 | ||
|
|
93edda2263 | ||
|
|
3ab91806c3 | ||
|
|
2bf1832fec | ||
|
|
9f77d4187b | ||
|
|
e7624f031a | ||
|
|
c4dbda49eb | ||
|
|
1791534ec6 | ||
|
|
fd6f881eab | ||
|
|
28b20afc16 | ||
|
|
01678a4fc7 | ||
|
|
a564176cb7 | ||
|
|
c2ff725f0c | ||
|
|
029caf9010 | ||
|
|
a6e35deb71 | ||
|
|
a772c0a319 | ||
|
|
48cadfaa27 | ||
|
|
8392e7cf7d | ||
|
|
0d294ce720 | ||
|
|
b14d701ca9 | ||
|
|
10d49f4582 | ||
|
|
198c230086 | ||
|
|
f5b78bd573 | ||
|
|
5e11eaf609 | ||
|
|
80e4434f8a | ||
|
|
ec2f349465 | ||
|
|
14c6e6fa1f | ||
|
|
f48cd30756 | ||
|
|
a0aab47090 | ||
|
|
6f6af8cd4e | ||
|
|
aa37cad995 | ||
|
|
b9e0221ca2 | ||
|
|
f7fdc5c92a | ||
|
|
8a56a6d1fb | ||
|
|
71c4e718b0 | ||
|
|
f932337b8c | ||
|
|
46d7721aaf | ||
|
|
0d82ebccfa | ||
|
|
e534763475 | ||
|
|
91d511dee5 | ||
|
|
4da74f1c07 | ||
|
|
85429b4cf1 | ||
|
|
0560197898 | ||
|
|
eeda06131b | ||
|
|
df340f2bb2 | ||
|
|
b48248fae7 | ||
|
|
00dfd7c5d9 | ||
|
|
093b1e8a67 | ||
|
|
ae126475f7 | ||
|
|
b0561a2453 | ||
|
|
1855d8899d | ||
|
|
0cb21d61a8 | ||
|
|
310b04919e | ||
|
|
bc7c052059 | ||
|
|
2207156f3f | ||
|
|
a535af667b | ||
|
|
eb27d38eba | ||
|
|
0c4d48e2e9 | ||
|
|
5af3eb821f | ||
|
|
d29ec85b19 | ||
|
|
d6e97a672c | ||
|
|
169e59e4ce | ||
|
|
e3a785583c | ||
|
|
57ea636d3a | ||
|
|
266d30041a | ||
|
|
3864aaf9cb | ||
|
|
9077572199 | ||
|
|
7fa5c0faa6 | ||
|
|
bbf5174b1d | ||
|
|
d5592b9e01 | ||
|
|
02578dcdc5 | ||
|
|
8d074e8b33 | ||
|
|
a73526ef8a | ||
|
|
280684c3ab | ||
|
|
d27a3476f7 | ||
|
|
70e6d642f3 | ||
|
|
812352ecdc | ||
|
|
7f24d72ecc | ||
|
|
8efbd70679 | ||
|
|
d476f16a0d | ||
|
|
d42f332d33 | ||
|
|
69f0419ffd | ||
|
|
17f469bef0 | ||
|
|
38520c9e2b | ||
|
|
f094ace1c7 | ||
|
|
c1cffa9cfb | ||
|
|
ef278bde79 | ||
|
|
0cb1c502c0 | ||
|
|
5edc1186a4 | ||
|
|
8425831c5d | ||
|
|
914fc66c5a | ||
|
|
d89e3c8065 | ||
|
|
a84a89e8ec | ||
|
|
c567054ce5 | ||
|
|
5a557f999a | ||
|
|
95880dd5f8 | ||
|
|
f11bf262f8 | ||
|
|
e343de5c13 | ||
|
|
e5489363a1 | ||
|
|
6e9234af4f | ||
|
|
70c6a1095a | ||
|
|
97e6129b6e | ||
|
|
740e3cef9b | ||
|
|
d7ad1f9ad9 | ||
|
|
dea5f21894 | ||
|
|
ec6ede4fc5 | ||
|
|
97d6d7d532 | ||
|
|
97b39dd1c5 | ||
|
|
63a0ecac34 | ||
|
|
b41eb3ff03 | ||
|
|
78c2bee63e | ||
|
|
043ae24c4b | ||
|
|
92f54e2381 | ||
|
|
d8c316224e | ||
|
|
f5ad70cf1c | ||
|
|
5d360081ef | ||
|
|
cf29e9e7c2 | ||
|
|
78a6a2fcca | ||
|
|
426cafff5e | ||
|
|
7667c98196 | ||
|
|
792906087c | ||
|
|
14ba15a072 | ||
|
|
665d7c32df | ||
|
|
06b6527613 | ||
|
|
9b7fab0737 | ||
|
|
f41f39369b | ||
|
|
eff4680081 | ||
|
|
a241fc804c | ||
|
|
6a28061c94 | ||
|
|
73b34a0758 | ||
|
|
933b59c54e | ||
|
|
f9c71bc953 | ||
|
|
c4446f0bf9 | ||
|
|
44f54b2a61 | ||
|
|
5be9558ef2 | ||
|
|
51384079cf | ||
|
|
d3d917d010 | ||
|
|
afc6e19152 | ||
|
|
fa96a15be4 | ||
|
|
54357cad02 | ||
|
|
ee5bcb3d6a | ||
|
|
2683383881 | ||
|
|
54c1dbeca5 | ||
|
|
39e458abb0 | ||
|
|
a83e837a96 | ||
|
|
8d4549e01d | ||
|
|
71c7d89bce | ||
|
|
18a4702f8e | ||
|
|
485c9ec2ed | ||
|
|
4d76ebe1ab | ||
|
|
ba05d3a1df | ||
|
|
1109a73a19 | ||
|
|
5abe22b9c8 | ||
|
|
a82147cf13 | ||
|
|
a2205850ce | ||
|
|
e67b2aaed4 | ||
|
|
d571943274 | ||
|
|
558d16006a | ||
|
|
2dd0d19d03 | ||
|
|
1299cea79d | ||
|
|
d892277851 | ||
|
|
d7408396d5 | ||
|
|
551da23f78 | ||
|
|
1ced5e8705 | ||
|
|
7c04b59ddb | ||
|
|
033307f2b9 | ||
|
|
26c1431815 | ||
|
|
d1c82edb9d | ||
|
|
0459e4eb0c | ||
|
|
45159544a1 | ||
|
|
13fe6fb07a | ||
|
|
3dde18fbd2 | ||
|
|
84332cbe56 | ||
|
|
b6f1ea528c | ||
|
|
e45c6891e4 | ||
|
|
711eaa34a4 | ||
|
|
8ca604e250 | ||
|
|
0b0174ced4 | ||
|
|
b572e16b67 | ||
|
|
4c92545d80 | ||
|
|
1c46bb83a0 | ||
|
|
b48784a04e | ||
|
|
68d6d15142 | ||
|
|
c2cdd90d99 | ||
|
|
d946376361 | ||
|
|
8b94caafef | ||
|
|
cebe2501fa | ||
|
|
65e0961a18 | ||
|
|
864bc33598 | ||
|
|
2f6d196411 | ||
|
|
bc57305e1e | ||
|
|
c3bc1b4eff | ||
|
|
4410557d8d | ||
|
|
32a3f9c9ef | ||
|
|
c28e23b1cb | ||
|
|
499725659b | ||
|
|
03a888fb5e | ||
|
|
388ca411a3 | ||
|
|
18a5197b5a | ||
|
|
2d57ca31ca | ||
|
|
9ac5055276 | ||
|
|
f6294f76cc | ||
|
|
c0611e4642 | ||
|
|
c84792a6e9 | ||
|
|
47d95fc7c3 | ||
|
|
b64d1583e2 | ||
|
|
1a76776e65 | ||
|
|
2c80214999 | ||
|
|
d788866cea | ||
|
|
b12d1b4a44 | ||
|
|
3abf138088 | ||
|
|
9772d0492c | ||
|
|
e225573035 | ||
|
|
031f00be31 | ||
|
|
122aa805a2 | ||
|
|
b94ec9fd16 | ||
|
|
6fca55d43a | ||
|
|
405ad3d81d | ||
|
|
6559cd2564 | ||
|
|
508ea87621 | ||
|
|
d1805226fc | ||
|
|
588c327cc6 | ||
|
|
0e5f6372da | ||
|
|
f19c21fd24 | ||
|
|
af2881f3a3 | ||
|
|
746d8031cd | ||
|
|
1b48ce6d6c | ||
|
|
9f25494296 | ||
|
|
ba8b3c7d8f | ||
|
|
865b864982 | ||
|
|
797a425f7f | ||
|
|
39a178f653 | ||
|
|
4d8195fa82 | ||
|
|
287299bf8e | ||
|
|
46da01fe18 | ||
|
|
5dac8cbe2e | ||
|
|
1156a9f9b8 | ||
|
|
cff311897d | ||
|
|
a3447836b1 | ||
|
|
caec4a208d | ||
|
|
ec284d176c | ||
|
|
9995db3a56 | ||
|
|
ab2a616c61 | ||
|
|
0d24a29a4e | ||
|
|
b33b188807 | ||
|
|
3fdedae769 | ||
|
|
6420b3546c | ||
|
|
0e95b02b0b | ||
|
|
5bd1a21f3a | ||
|
|
a1d19ee4c8 | ||
|
|
1a06c2866a | ||
|
|
21fd1a0dbf | ||
|
|
c5ee606cb4 | ||
|
|
3180ad3fe0 | ||
|
|
548133e6be | ||
|
|
48b92389ea | ||
|
|
a1d8b9e96e | ||
|
|
0b12cbca52 | ||
|
|
22ac215cb5 | ||
|
|
f8498d7574 | ||
|
|
356a6dc6d1 | ||
|
|
ed002577e6 | ||
|
|
dc1278c390 | ||
|
|
4468288334 | ||
|
|
c845843591 | ||
|
|
79b5cd49b8 | ||
|
|
4db08e3d38 | ||
|
|
7a797d3ae0 | ||
|
|
541737d8e4 | ||
|
|
b7e8abc529 | ||
|
|
88beaf3535 | ||
|
|
fff475e592 | ||
|
|
0c7be3e61a | ||
|
|
d9ddd12e49 | ||
|
|
48d71c5397 | ||
|
|
9ba86e1ff1 | ||
|
|
c11650a666 | ||
|
|
2fd10b2fe4 | ||
|
|
47e62c1133 | ||
|
|
8e9cb07cde | ||
|
|
76bbe582f8 | ||
|
|
9352daf799 | ||
|
|
b2ac4b4169 | ||
|
|
109e99786b | ||
|
|
b90b129527 | ||
|
|
9547e78f00 | ||
|
|
147fb56724 | ||
|
|
6f209726e9 | ||
|
|
4a39161ad3 | ||
|
|
38e9cc9f41 | ||
|
|
c7d769510d | ||
|
|
2ef40b150f | ||
|
|
76c98c53ed | ||
|
|
1fa81962a0 | ||
|
|
53bc5aab2c | ||
|
|
0d3db534f0 | ||
|
|
2a522579c0 | ||
|
|
972aa256ee | ||
|
|
d3129e2ad5 | ||
|
|
104a936026 | ||
|
|
07762308f5 | ||
|
|
11e793257f | ||
|
|
d2a246ac2f | ||
|
|
be0545801d | ||
|
|
26c46cfb9d | ||
|
|
fd0110e5c7 | ||
|
|
e6e48e00c0 | ||
|
|
7e7e026b81 |
@@ -17,7 +17,6 @@ demo-shell/resources/
|
||||
/angular.json
|
||||
/desktop.ini
|
||||
/cspell.json
|
||||
/.travis.yml
|
||||
/CODE_OF_CONDUCT.md
|
||||
/.stylelintignore
|
||||
/ALFRESCOCORS.md
|
||||
|
||||
@@ -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
|
||||
|
||||
+54
-4
@@ -1,7 +1,14 @@
|
||||
{
|
||||
"root": true,
|
||||
"ignorePatterns": [
|
||||
"projects/**/*"
|
||||
"projects/**/*",
|
||||
"**/node_modules/**/*",
|
||||
"lib/cli/node_modules/**/*",
|
||||
"**/node_modules",
|
||||
"**/docker",
|
||||
"**/assets",
|
||||
"**/scripts",
|
||||
"**/docs"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
@@ -23,7 +30,8 @@
|
||||
"plugins": [
|
||||
"eslint-plugin-unicorn",
|
||||
"eslint-plugin-rxjs",
|
||||
"ban"
|
||||
"ban",
|
||||
"license-header"
|
||||
],
|
||||
"rules": {
|
||||
"ban/ban": [
|
||||
@@ -74,7 +82,23 @@
|
||||
"@typescript-eslint/no-inferrable-types": "off",
|
||||
"@typescript-eslint/no-require-imports": "off",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
|
||||
"@typescript-eslint/naming-convention": [
|
||||
"error",
|
||||
{
|
||||
"selector": [
|
||||
"classProperty",
|
||||
"objectLiteralProperty",
|
||||
"typeProperty",
|
||||
"classMethod",
|
||||
"objectLiteralMethod",
|
||||
"typeMethod",
|
||||
"accessor",
|
||||
"enumMember"
|
||||
],
|
||||
"format": null,
|
||||
"modifiers": ["requiresQuotes"]
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/member-ordering": "off",
|
||||
"prefer-arrow/prefer-arrow-functions": "off",
|
||||
|
||||
@@ -92,6 +116,31 @@
|
||||
}
|
||||
],
|
||||
"no-bitwise": "off",
|
||||
"no-console": [
|
||||
"error",
|
||||
{
|
||||
"allow": [
|
||||
"warn",
|
||||
"dir",
|
||||
"timeLog",
|
||||
"assert",
|
||||
"clear",
|
||||
"count",
|
||||
"countReset",
|
||||
"group",
|
||||
"groupEnd",
|
||||
"table",
|
||||
"dirxml",
|
||||
"error",
|
||||
"groupCollapsed",
|
||||
"Console",
|
||||
"profile",
|
||||
"profileEnd",
|
||||
"timeStamp",
|
||||
"context"
|
||||
]
|
||||
}
|
||||
],
|
||||
"no-duplicate-imports": "error",
|
||||
"no-multiple-empty-lines": "error",
|
||||
"no-redeclare": "error",
|
||||
@@ -107,7 +156,8 @@
|
||||
"allowShortCircuit": true,
|
||||
"allowTernary": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"license-header/header": ["error", "./license-community.txt"]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
|
||||
@@ -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}"
|
||||
@@ -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}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "sunday"
|
||||
time: "07:00"
|
||||
open-pull-requests-limit: 5
|
||||
target-branch: develop
|
||||
ignore:
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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') }}
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
@@ -11,6 +11,7 @@ dist/
|
||||
e2e/.env.cloud
|
||||
tmp
|
||||
temp
|
||||
/nxcache
|
||||
e2e-output*/
|
||||
/e2e/downloads/
|
||||
*.npmrc
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npm run affected:lint
|
||||
@@ -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
|
||||
@@ -1,8 +1,9 @@
|
||||
import { create } from '@storybook/theming';
|
||||
import alfrescoLogo from '../lib/core/src/lib/assets/images/alfresco-logo.svg';
|
||||
|
||||
export default create({
|
||||
base: 'light',
|
||||
brandTitle: 'Hyland | Alfresco Storybook App',
|
||||
brandUrl: 'https://www.alfresco.com/',
|
||||
brandImage: '/assets/storybook-logo.png',
|
||||
brandImage: alfrescoLogo,
|
||||
});
|
||||
|
||||
+3
-7
@@ -1,11 +1,7 @@
|
||||
module.exports = {
|
||||
stories: [],
|
||||
addons: ['@storybook/addon-essentials'],
|
||||
// uncomment the property below if you want to apply some webpack config globally
|
||||
// webpackFinal: async (config, { configType }) => {
|
||||
// // Make whatever fine-grained changes you need that should apply to all storybook configs
|
||||
|
||||
// // Return the altered config
|
||||
// return config;
|
||||
// },
|
||||
framework: '@storybook/angular',
|
||||
staticDirs: [ { from: '../../../demo-shell/src/app.config.json', to: 'app.config.json' } ],
|
||||
core: { builder: 'webpack5' }
|
||||
};
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
export const parameters = {
|
||||
docs: { inlineStories: true },
|
||||
controls: { expanded: true }
|
||||
};
|
||||
+1
-2
@@ -1,3 +1,2 @@
|
||||
_theming.scss
|
||||
lib/core/viewer/components/pdf-viewer-host.component.scss
|
||||
lib/dist
|
||||
lib/core/src/lib/viewer/components/pdf-viewer-host.component.scss
|
||||
|
||||
-562
@@ -1,562 +0,0 @@
|
||||
import:
|
||||
- source: Alfresco/alfresco-build-tools:.travis.docker_hub_login.yml@v1.1.1
|
||||
|
||||
git:
|
||||
depth: 3
|
||||
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"
|
||||
- BUILT_LIBS_DIR="./lib/dist"
|
||||
- NODE_MODULES_DIR="./node_modules"
|
||||
- SMART_RUNNER_DIRECTORY=".protractor-smartrunner"
|
||||
#E2E VARIABLES
|
||||
- SAVE_SCREENSHOT=true
|
||||
- REDIRECT_URI=/
|
||||
- BROWSER_RUN=true
|
||||
- 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
|
||||
#remove after upgrade
|
||||
- angular-upgrade-v13
|
||||
- angular-upgrade-v14
|
||||
- /.*old-env.*/
|
||||
- /.*next-release.*/
|
||||
- /.*beta.*/
|
||||
|
||||
stages:
|
||||
- name: Prerequisite
|
||||
- name: Setup
|
||||
- name: "Build lib"
|
||||
if: tag IS blank
|
||||
- name: "Check bundle"
|
||||
if: type = push AND tag IS blank OR (type = cron || type = api)
|
||||
- name: "Trigger Alpha ADF child build"
|
||||
if: (branch = develop AND (type = cron || type = api)) OR commit_message =~ /\[trigger adf\]/
|
||||
- name: "Build Demo shell"
|
||||
if: tag IS blank
|
||||
- name: "Unit test Lib"
|
||||
if: type = pull_request || (type = cron || type = api) || branch = "angular-upgrade-v13"
|
||||
- name: "e2e Test"
|
||||
if: type = pull_request || (type = cron || type = api) || branch = "angular-upgrade-v13"
|
||||
- name: "Release tag"
|
||||
if: branch =~ /^master(-patch.*)?$/
|
||||
- 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
|
||||
|
||||
# Run Only for any PR
|
||||
- stage: "Build lib"
|
||||
name: "Lib::Build"
|
||||
script:
|
||||
- ./scripts/travis/build/build-libs.sh || travis_terminate 1
|
||||
- ./scripts/travis/release/release-npm.sh || travis_terminate 1
|
||||
workspaces:
|
||||
create:
|
||||
name: built_libs_cache
|
||||
paths:
|
||||
- "$BUILT_LIBS_DIR"
|
||||
- "$NODE_MODULES_DIR"
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Build lib"
|
||||
name: "Lint"
|
||||
script: ./scripts/lint.sh
|
||||
workspaces:
|
||||
use: node_modules_cache
|
||||
|
||||
- stage: "Build Demo shell"
|
||||
name: "Demo Shell & Storybook :Build && dockerize"
|
||||
before_script:
|
||||
- NODE_OPTIONS="--max-old-space-size=8192" $(npm bin)/nx run cli:build --prod
|
||||
- ./scripts/build/build-cli.sh
|
||||
script:
|
||||
# Build Demo shell & Storybook for production docker"
|
||||
- NODE_OPTIONS=--max_old_space_size=8192 nx build demoshell --configuration production
|
||||
- NODE_OPTIONS=--max_old_space_size=8192 nx run stories:build-storybook --configuration ci --projectBuildConfig=stories:build-storybook
|
||||
- ./scripts/travis/release/release-docker.sh
|
||||
workspaces:
|
||||
create:
|
||||
name: built_demo_shell_cache
|
||||
paths:
|
||||
- "$DEMO_SHELL_DIR"
|
||||
use:
|
||||
- built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "content::unit"
|
||||
script: ./scripts/travis/unit-test/content.sh
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "core-extension::unit"
|
||||
script: ./scripts/travis/unit-test/core-extension.sh
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "process-insights::unit"
|
||||
script: ./scripts/travis/unit-test/process.sh
|
||||
workspaces:
|
||||
use: built_libs_cache
|
||||
|
||||
- stage: "Unit test Lib"
|
||||
name: "process-cloud::unit"
|
||||
script: ./scripts/travis/unit-test/process-cloud.sh
|
||||
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 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:playwright"
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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:playwright"
|
||||
before_script:
|
||||
- ./scripts/ci/job_hooks/before_e2e.sh
|
||||
- ./scripts/ci/jobs/dbpci-before-playwright || travis_terminate 1
|
||||
- ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1
|
||||
script: ./scripts/travis/storybook-testing/storybook-test.sh
|
||||
workspaces:
|
||||
use:
|
||||
- built_libs_cache
|
||||
- built_demo_shell_cache
|
||||
|
||||
- stage: "e2e Test"
|
||||
name: "Process Cloud : Form"
|
||||
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
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
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
|
||||
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
|
||||
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
|
||||
Vendored
+1
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"lucono.karma-test-explorer"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
| branch | status |
|
||||
| --- | --- |
|
||||
| master | [](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
|
||||
| develop | [](https://travis-ci.com/Alfresco/alfresco-ng2-components) |
|
||||
| master | [](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/git-tag.yml) |
|
||||
| develop | [](https://github.com/Alfresco/alfresco-ng2-components/actions/workflows/cron.yml)|
|
||||
|
||||
[](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)
|
||||
[](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.
|
||||
|
||||
+500
-197
File diff suppressed because it is too large
Load Diff
+8
-3
@@ -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",
|
||||
@@ -132,7 +136,8 @@
|
||||
"webm",
|
||||
"webscript",
|
||||
"Whitespaces",
|
||||
"xdescribe"
|
||||
"xdescribe",
|
||||
"xsrf"
|
||||
],
|
||||
"dictionaries": [
|
||||
"html",
|
||||
|
||||
@@ -50,7 +50,7 @@ module.exports = function (config) {
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
browsers: ['ChromeHeadless'],
|
||||
singleRun: false
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Alfresco-ADF-Angular-Demo",
|
||||
"description": "Demo shell for Alfresco Angular components",
|
||||
"version": "5.0.0-angular.13.1",
|
||||
"version": "6.0.0-A.3",
|
||||
"author": "Alfresco Software, Ltd.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -61,5 +61,16 @@ module.exports = {
|
||||
changeOrigin: true,
|
||||
},
|
||||
}
|
||||
},
|
||||
getIdentityAdapterServiceProxy: function(host) {
|
||||
console.log('Target for /identity-adapter-service', host);
|
||||
return {
|
||||
'/identity-adapter-service': {
|
||||
target: host,
|
||||
secure: false,
|
||||
logLevel: 'debug',
|
||||
changeOrigin: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
require('dotenv').config();
|
||||
|
||||
const { getDeployedAppsProxy, getShareProxy, getApsProxy } = require('./proxy-helpers');
|
||||
const { getDeployedAppsProxy, getShareProxy, getApsProxy, getIdentityAdapterServiceProxy } = require('./proxy-helpers');
|
||||
|
||||
const legacyHost = process.env.PROXY_HOST_ADF;
|
||||
const cloudHost = process.env.CLOUD_PROXY_HOST_ADF || process.env.PROXY_HOST_ADF;
|
||||
@@ -10,5 +10,6 @@ const apsHost = process.env.PROXY_HOST_ADF;
|
||||
module.exports = {
|
||||
...getShareProxy(legacyHost),
|
||||
...getApsProxy(apsHost),
|
||||
...getDeployedAppsProxy(cloudHost, cloudApps)
|
||||
...getDeployedAppsProxy(cloudHost, cloudApps),
|
||||
...getIdentityAdapterServiceProxy(cloudHost)
|
||||
};
|
||||
|
||||
@@ -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": "إدارة الإصدارات"
|
||||
@@ -58,9 +81,9 @@
|
||||
},
|
||||
"APP_LAYOUT": {
|
||||
"APP": "تطبيق",
|
||||
"HEADER_TEXT_COLOR": "لون نص العنوان",
|
||||
"HEADER_TEXT_COLOR": "لون نص الرأس",
|
||||
"APP_NAME": "تطبيق ADF التوضيحي",
|
||||
"FILTERED_SEARCH": "عنوان عامل التصفية",
|
||||
"FILTERED_SEARCH": "رأس عامل التصفية",
|
||||
"HOME": "رئيسية",
|
||||
"NODE-SELECTOR": "محدد العقدة",
|
||||
"SITES": "المواقع",
|
||||
@@ -96,13 +119,13 @@
|
||||
"WORD_TO_SEARCH": "بحث عن كلمة",
|
||||
"SEARCH_CREATED_BY": "تم الإنشاء بواسطة",
|
||||
"SEARCH_SERVICE_APPROACH": "حدد هذا لتعطيل خاصية الإدخال والتكوين باستخدام الخدمة",
|
||||
"HEADER_DATA": "بيانات العنوان",
|
||||
"HEADER_DATA": "بيانات الرأس",
|
||||
"TREE_VIEW": "طريقة عرض الشجرة",
|
||||
"EXPAND_LIST": "قائمة العناصر القابلة للتوسيع",
|
||||
"ICONS": "أيقونات",
|
||||
"PEOPLE_GROUPS_CLOUD": "سحابة الأشخاص/المجموعة",
|
||||
"TASK_HEADER_CLOUD": {
|
||||
"COMPONENT_NAME": "عنوان مهمة السحابة",
|
||||
"COMPONENT_NAME": "رأس مهمة السحابة",
|
||||
"APP_NAME_INPUT": "اسم التطبيق",
|
||||
"TASK_ID_INPUT": "معرف المهمة",
|
||||
"FIND_TASK_BUTTON": "بحث عن المهمة"
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "مكون سحابة المجموعة",
|
||||
"CONFIRM-DIALOG": "مربع حوار التأكيد",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "قائمة مهام الخدمات"
|
||||
"SERVICE_TASK_LIST": "قائمة مهام الخدمات",
|
||||
"RICH_TEXT_EDITOR": "محرر نص منسق"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -163,7 +187,7 @@
|
||||
"DELETE": "حذف",
|
||||
"FAVORITES": "إضافة إلى المفضلات",
|
||||
"SHARE": "مشاركة",
|
||||
"THEME": "تحديد نسق",
|
||||
"THEME": "حدد نسق",
|
||||
"SHOW_VERSION": "إظهار الإصدار",
|
||||
"HIDE_VERSION": "إخفاء الإصدار",
|
||||
"LISTVIEW": "وضع عرض القائمة",
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "استبدال أعمدة",
|
||||
"LOAD_NODE": "تحميل عقدة",
|
||||
"MULTISELECT": "تحديد متعدد",
|
||||
"MULTISELECT_DESCRIPTION": "استخدام Cmd (Mac) أو Ctrl (Windows) لتبديل تحديد العناصر المتعددة"
|
||||
"MULTISELECT_DESCRIPTION": "استخدام Cmd (Mac) أو Ctrl (Windows) لتبديل تحديد العناصر المتعددة",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "استخدم نموذج مخصص للرأس 'المستخدم'",
|
||||
"CUSTOM_COLUMN_HEADER": "قالب رأس المستخدم المخصص"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "لم يتم تحديد تقرير. اختر تقريرًا من القائمة"
|
||||
@@ -210,7 +236,7 @@
|
||||
"START-PROCESS": "بدء العملية",
|
||||
"PROCESS-AUDIT-LOG": "سجل تدقيق العملية",
|
||||
"TASK-AUDIT-LOG": "سجل تدقيق المهمة",
|
||||
"TASK-SHOW-HEADER": "إظهار تفاصيل العنوان"
|
||||
"TASK-SHOW-HEADER": "إظهار تفاصيل الرأس"
|
||||
},
|
||||
"PS_CLOUD_TAB": {
|
||||
"APPS_TAB": "تطبيق",
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "كل المجموعات المحددة مسبقًا",
|
||||
"INVALID_USERS": "المستخدمون غير الصالحين",
|
||||
"INVALID_GROUPS": "مجموعات غير صالحة",
|
||||
"READONLY_MODE": "وضع القراءة فقط"
|
||||
"READONLY_MODE": "وضع القراءة فقط",
|
||||
"GROUPS_RESTRICTION": "قيود المجموعات"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "تحديد متعدد",
|
||||
@@ -354,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": "انقر لعرض القائمة"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Součást cloudu skupin",
|
||||
"CONFIRM-DIALOG": "Dialogové okno s potvrzením",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Seznam úloh služby"
|
||||
"SERVICE_TASK_LIST": "Seznam úloh služby",
|
||||
"RICH_TEXT_EDITOR": "Rich Text Editor"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Nahradit sloupce",
|
||||
"LOAD_NODE": "Načíst uzel",
|
||||
"MULTISELECT": "Hromadný výběr",
|
||||
"MULTISELECT_DESCRIPTION": "Pomocí klávesy Ctrl (Windows) nebo Cmd (Mac) můžete přepínat výběr více položek"
|
||||
"MULTISELECT_DESCRIPTION": "Pomocí klávesy Ctrl (Windows) nebo Cmd (Mac) můžete přepínat výběr více položek",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Použít vlastní šablonu pro záhlaví ,Uživatel‘",
|
||||
"CUSTOM_COLUMN_HEADER": "Vlastní šablona záhlaví Uživatel"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Nebyly zvoleny žádné zprávy. Vyberte zprávu ze seznamu"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Všechny předvolené skupiny",
|
||||
"INVALID_USERS": "Neplatní uživatelé",
|
||||
"INVALID_GROUPS": "Neplatné skupiny",
|
||||
"READONLY_MODE": "Režim jen pro čtení"
|
||||
"READONLY_MODE": "Režim jen pro čtení",
|
||||
"GROUPS_RESTRICTION": "Omezení skupin"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Hromadný výběr",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Gruppecloudkomponent",
|
||||
"CONFIRM-DIALOG": "Bekræftelsesdialogboks",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Opgaveliste for tjeneste"
|
||||
"SERVICE_TASK_LIST": "Opgaveliste for tjeneste",
|
||||
"RICH_TEXT_EDITOR": "Rich Text Editor"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Erstat kolonner",
|
||||
"LOAD_NODE": "Indlæs node",
|
||||
"MULTISELECT": "Vælg flere",
|
||||
"MULTISELECT_DESCRIPTION": "Brug Kommando (Mac) eller Ctrl (Windows) for at vælge flere elementer"
|
||||
"MULTISELECT_DESCRIPTION": "Brug Kommando (Mac) eller Ctrl (Windows) for at vælge flere elementer",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Brug tilpasset skabelon til overskrift 'Bruger'",
|
||||
"CUSTOM_COLUMN_HEADER": "Tilpasset brugeroverskriftskabelon"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Du skal vælge en rapport på listen til venstre"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Alle forudvalgte grupper",
|
||||
"INVALID_USERS": "Ugyldige brugere",
|
||||
"INVALID_GROUPS": "Ugyldige grupper",
|
||||
"READONLY_MODE": "Skrivebeskyttet tilstand"
|
||||
"READONLY_MODE": "Skrivebeskyttet tilstand",
|
||||
"GROUPS_RESTRICTION": "Gruppebegrænsning"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Multivalg",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Gruppen-Cloud-Komponente",
|
||||
"CONFIRM-DIALOG": "Bestätigungsdialog",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Service-Aufgabenliste"
|
||||
"SERVICE_TASK_LIST": "Service-Aufgabenliste",
|
||||
"RICH_TEXT_EDITOR": "Rich-Text-Editor"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Spalten ersetzen",
|
||||
"LOAD_NODE": "Node laden",
|
||||
"MULTISELECT": "Mehrfachauswahl",
|
||||
"MULTISELECT_DESCRIPTION": "Mit der Befehls- (Mac) oder der Steuerungstaste (Windows) können Sie die Auswahl mehrerer Elemente umschalten"
|
||||
"MULTISELECT_DESCRIPTION": "Mit der Befehls- (Mac) oder der Steuerungstaste (Windows) können Sie die Auswahl mehrerer Elemente umschalten",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Benutzerdefinierte Vorlage für 'Benutzer'-Kopfzeile verwenden",
|
||||
"CUSTOM_COLUMN_HEADER": "Benutzerdefinierte Vorlage für Benutzer-Kopfzeile"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Kein Bericht ausgewählt. Wählen Sie einen Bericht aus der Liste"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Alle vorausgewählten Gruppen",
|
||||
"INVALID_USERS": "Unzulässige Benutzer",
|
||||
"INVALID_GROUPS": "Unzulässige Gruppen",
|
||||
"READONLY_MODE": "Schreibgeschützter Modus"
|
||||
"READONLY_MODE": "Schreibgeschützter Modus",
|
||||
"GROUPS_RESTRICTION": "Gruppenbeschränkung"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Mehrfachauswahl",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -358,5 +381,12 @@
|
||||
"ACTION_TYPE": "Action Type"
|
||||
}
|
||||
},
|
||||
"DEFAULT_SEARCH": "Default"
|
||||
"BREADCRUMB_DEMO": {
|
||||
"NEW_FOLDER_LABEL": "Create a new folder button",
|
||||
"EDIT_NODE_LABEL": "Edit node button",
|
||||
"DELETE_NODE_LABEL": "Delete node icon button"
|
||||
},
|
||||
"DEFAULT_SEARCH": "Default",
|
||||
"OPEN_DIALOG": "Open dialog",
|
||||
"SHOW_LIST_LABEL": "Click to show the list"
|
||||
}
|
||||
|
||||
@@ -111,7 +111,8 @@
|
||||
"GROUPS_CLOUD": "Componente en la nube de grupos",
|
||||
"CONFIRM-DIALOG": "Cuadro de diálogo de confirmación",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Lista de tareas de servicio"
|
||||
"SERVICE_TASK_LIST": "Lista de tareas de servicio",
|
||||
"RICH_TEXT_EDITOR": "Editor de texto enriquecido"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +197,9 @@
|
||||
"REPLACE_COLUMNS": "Sustituir columnas",
|
||||
"LOAD_NODE": "Cargar nodo",
|
||||
"MULTISELECT": "Selección múltiple",
|
||||
"MULTISELECT_DESCRIPTION": "Utilice Cmd (Mac) o Ctrl (Windows) para cambiar la selección de varios elementos"
|
||||
"MULTISELECT_DESCRIPTION": "Utilice Cmd (Mac) o Ctrl (Windows) para cambiar la selección de varios elementos",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Utilizar una plantilla personalizada para el encabezado 'Usuario'",
|
||||
"CUSTOM_COLUMN_HEADER": "Plantilla de encabezado de usuario personalizado"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "No se ha seleccionado ningún informe. Elija un informe de la lista."
|
||||
@@ -330,7 +333,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Todos los grupos preseleccionados",
|
||||
"INVALID_USERS": "Usuarios no válidos",
|
||||
"INVALID_GROUPS": "Grupos no válidos",
|
||||
"READONLY_MODE": "Modo de solo lectura"
|
||||
"READONLY_MODE": "Modo de solo lectura",
|
||||
"GROUPS_RESTRICTION": "Restricción de grupos"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Selección múltiple",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Ryhmäpilvi-komponentti",
|
||||
"CONFIRM-DIALOG": "Vahvistusvalintaikkuna",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Palvelutehtäväluettelo"
|
||||
"SERVICE_TASK_LIST": "Palvelutehtäväluettelo",
|
||||
"RICH_TEXT_EDITOR": "RTF-editori"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Korvaa sarakkeita",
|
||||
"LOAD_NODE": "Lataa solmu",
|
||||
"MULTISELECT": "Monivalinta",
|
||||
"MULTISELECT_DESCRIPTION": "Voit valita useita kohteita Cmd- (Mac) tai Ctrl-näppäimen (Windows) avulla"
|
||||
"MULTISELECT_DESCRIPTION": "Voit valita useita kohteita Cmd- (Mac) tai Ctrl-näppäimen (Windows) avulla",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Käytä mukautettua mallia \"Käyttäjä\"-otsikolle",
|
||||
"CUSTOM_COLUMN_HEADER": "Mukautettu käyttäjäotsikon malli"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Yhtään raporttia ei ole valittuna. Valitse raportti luettelosta."
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Kaikki esivalitut ryhmät",
|
||||
"INVALID_USERS": "Kelpaamattomat käyttäjät",
|
||||
"INVALID_GROUPS": "Kelpaamattomat ryhmät",
|
||||
"READONLY_MODE": "Vain luku -tila"
|
||||
"READONLY_MODE": "Vain luku -tila",
|
||||
"GROUPS_RESTRICTION": "Ryhmärajoitus"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Monivalinta",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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",
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Composant cloud des groupes",
|
||||
"CONFIRM-DIALOG": "Boîte de dialogue de confirmation",
|
||||
"COMMUNITY": "Communauté",
|
||||
"SERVICE_TASK_LIST": "Liste des tâches de service"
|
||||
"SERVICE_TASK_LIST": "Liste des tâches de service",
|
||||
"RICH_TEXT_EDITOR": "Editeur de texte enrichi"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -145,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",
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Remplacer les colonnes",
|
||||
"LOAD_NODE": "Charger le nœud",
|
||||
"MULTISELECT": "Sélection multiple",
|
||||
"MULTISELECT_DESCRIPTION": "Utiliser Cmd (Mac) ou Ctrl (Windows) pour activer/désactiver la sélection d'éléments multiples"
|
||||
"MULTISELECT_DESCRIPTION": "Utiliser Cmd (Mac) ou Ctrl (Windows) pour activer/désactiver la sélection d'éléments multiples",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Utiliser un modèle personnalisé pour l'en-tête 'Utilisateur'",
|
||||
"CUSTOM_COLUMN_HEADER": "Modèle d'en-tête Utilisateur personnalisé"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Aucun rapport sélectionné. Choisissez un rapport dans la liste"
|
||||
@@ -268,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",
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Tous les groupes présélectionnés",
|
||||
"INVALID_USERS": "Utilisateurs non valides",
|
||||
"INVALID_GROUPS": "Groupes non valides",
|
||||
"READONLY_MODE": "Mode lecture seule"
|
||||
"READONLY_MODE": "Mode lecture seule",
|
||||
"GROUPS_RESTRICTION": "Restriction de groupes"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Multisélection",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Componente Cloud gruppi",
|
||||
"CONFIRM-DIALOG": "Finestra di conferma",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Elenco compiti servizio"
|
||||
"SERVICE_TASK_LIST": "Elenco compiti servizio",
|
||||
"RICH_TEXT_EDITOR": "Editor di testo RTF"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Sostituisci colonne",
|
||||
"LOAD_NODE": "Carica nodo",
|
||||
"MULTISELECT": "Selezione multipla",
|
||||
"MULTISELECT_DESCRIPTION": "Usa Cmd (Mac) o Ctrl (Windows) per attivare/disattivare la selezione di più elementi"
|
||||
"MULTISELECT_DESCRIPTION": "Usa Cmd (Mac) o Ctrl (Windows) per attivare/disattivare la selezione di più elementi",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Usa il modello personalizzato per l'intestazione \"Utente\"",
|
||||
"CUSTOM_COLUMN_HEADER": "Modello personalizzato per intestazione Utente"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Nessun rapporto selezionato. Scegliere un rapporto dall'elenco"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Tutti i gruppi preselezionati",
|
||||
"INVALID_USERS": "Utenti non validi",
|
||||
"INVALID_GROUPS": "Gruppi non validi",
|
||||
"READONLY_MODE": "Modalità sola lettura"
|
||||
"READONLY_MODE": "Modalità sola lettura",
|
||||
"GROUPS_RESTRICTION": "Limitazione gruppi"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Selezione multipla",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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": "開発モード"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "グループのクラウドコンポーネント",
|
||||
"CONFIRM-DIALOG": "確認ダイアログ",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "サービスタスクリスト"
|
||||
"SERVICE_TASK_LIST": "サービスタスクリスト",
|
||||
"RICH_TEXT_EDITOR": "リッチテキストエディタ"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "列の置換",
|
||||
"LOAD_NODE": "ノードの読み込み",
|
||||
"MULTISELECT": "複数選択",
|
||||
"MULTISELECT_DESCRIPTION": "複数選択の切り替えを行うには、Cmd (Mac) キーまたは Ctrl (Windows) キーを押します"
|
||||
"MULTISELECT_DESCRIPTION": "複数選択の切り替えを行うには、Cmd (Mac) キーまたは Ctrl (Windows) キーを押します",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "「ユーザー」ヘッダーにカスタムテンプレートを使用",
|
||||
"CUSTOM_COLUMN_HEADER": "カスタムユーザーヘッダーテンプレート"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "レポートが選択されていません。リストからレポートを選択してください。"
|
||||
@@ -245,7 +271,7 @@
|
||||
"RESULTS": "検索結果",
|
||||
"NO_RESULT": "一致するアイテムはありません",
|
||||
"FACET_FIELDS": {
|
||||
"TYPE": "1:種類",
|
||||
"TYPE": "1:タイプ",
|
||||
"SIZE": "2:サイズ",
|
||||
"CREATOR": "3:作成者",
|
||||
"MODIFIER": "4:変更者",
|
||||
@@ -254,7 +280,7 @@
|
||||
"FACET_QUERIES": {
|
||||
"MY_FACET_QUERIES": "あなたのファセットクエリ",
|
||||
"CREATED_THIS_YEAR": "1.今年作成",
|
||||
"MIMETYPE": "2.種類: HTML",
|
||||
"MIMETYPE": "2.タイプ: HTML",
|
||||
"XTRASMALL": "3.サイズ: 極小",
|
||||
"SMALL": "4.サイズ: 小",
|
||||
"MEDIUM": "5.サイズ: 中",
|
||||
@@ -290,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 }} 以上でなければなりません"
|
||||
},
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "選択されている全グループ",
|
||||
"INVALID_USERS": "無効なユーザー",
|
||||
"INVALID_GROUPS": "無効なグループ",
|
||||
"READONLY_MODE": "読み取り専用モード"
|
||||
"READONLY_MODE": "読み取り専用モード",
|
||||
"GROUPS_RESTRICTION": "グループ制限"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "複数選択",
|
||||
@@ -354,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": "クリックしてリストを表示"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Gruppesky-kompontent",
|
||||
"CONFIRM-DIALOG": "Bekreftelsesdialog",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Serviceoppgaveliste"
|
||||
"SERVICE_TASK_LIST": "Serviceoppgaveliste",
|
||||
"RICH_TEXT_EDITOR": "Åpne rik teksteditor"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "erstatt kolonner",
|
||||
"LOAD_NODE": "Last node",
|
||||
"MULTISELECT": "Multivalg",
|
||||
"MULTISELECT_DESCRIPTION": "Bruk Cmd (Mac) eller Ctrl (Windows) for å veksle mellom valg av flere elementer"
|
||||
"MULTISELECT_DESCRIPTION": "Bruk Cmd (Mac) eller Ctrl (Windows) for å veksle mellom valg av flere elementer",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Bruk egendefinert mal for toppteksten 'bruker'",
|
||||
"CUSTOM_COLUMN_HEADER": "Egendefinert topptekst for bruker"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Ingen rapport valgt. Velg en rapport fra listen"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Alle forhåndsvalgte grupper",
|
||||
"INVALID_USERS": "Ugyldige brukere",
|
||||
"INVALID_GROUPS": "Ugyldige grupper",
|
||||
"READONLY_MODE": "Skrivebeskyttet modus"
|
||||
"READONLY_MODE": "Skrivebeskyttet modus",
|
||||
"GROUPS_RESTRICTION": "Gruppebegrensning"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Flervalg",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Component Groepencloud",
|
||||
"CONFIRM-DIALOG": "Bevestigingsdialoogvenster",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Lijst met servicetaken"
|
||||
"SERVICE_TASK_LIST": "Lijst met servicetaken",
|
||||
"RICH_TEXT_EDITOR": "RTF-editor"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Kolommen vervangen",
|
||||
"LOAD_NODE": "Node laden",
|
||||
"MULTISELECT": "Multiselect",
|
||||
"MULTISELECT_DESCRIPTION": "Cmd (Mac) of Ctrl (Windows) gebruiken om de selectie van meerdere items in of uit te schakelen"
|
||||
"MULTISELECT_DESCRIPTION": "Cmd (Mac) of Ctrl (Windows) gebruiken om de selectie van meerdere items in of uit te schakelen",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Aangepaste sjabloon voor 'User'-koptekst gebruiken",
|
||||
"CUSTOM_COLUMN_HEADER": "Aangepaste sjabloon voor User-koptekst"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Geen rapport geselecteerd. Kies een rapport uit de lijst"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Alle voorgeselecteerde groepen",
|
||||
"INVALID_USERS": "Ongeldige gebruikers",
|
||||
"INVALID_GROUPS": "Ongeldige groepen",
|
||||
"READONLY_MODE": "Alleen-lezenmodus"
|
||||
"READONLY_MODE": "Alleen-lezenmodus",
|
||||
"GROUPS_RESTRICTION": "Groepenbeperking"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Multiselectie",
|
||||
@@ -350,9 +377,16 @@
|
||||
"TITLE": "Titel",
|
||||
"ICON": "Pictogram",
|
||||
"TASK_ID": "Taak-id",
|
||||
"PROCESS_ID": "Procesinstantie-id",
|
||||
"PROCESS_ID": "Procesinstance-id",
|
||||
"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"
|
||||
}
|
||||
@@ -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."
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Składnik Chmura dla grup",
|
||||
"CONFIRM-DIALOG": "Okno dialogowe potwierdzenia",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Lista zadań serwisowych"
|
||||
"SERVICE_TASK_LIST": "Lista zadań serwisowych",
|
||||
"RICH_TEXT_EDITOR": "Edytor tekstu sformatowanego"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Zastąp kolumny",
|
||||
"LOAD_NODE": "Wczytaj węzeł",
|
||||
"MULTISELECT": "Wybór wielokrotny",
|
||||
"MULTISELECT_DESCRIPTION": "Używaj klawiszy Cmd (system Mac) lub Ctrl (system Windows), aby przełączać wybieranie wielu elementów."
|
||||
"MULTISELECT_DESCRIPTION": "Używaj klawiszy Cmd (system Mac) lub Ctrl (system Windows), aby przełączać wybieranie wielu elementów.",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Użyj szablonu niestandardowego dla nagłówka 'Użytkownik'",
|
||||
"CUSTOM_COLUMN_HEADER": "Szablon niestandardowy nagłówka Użytkownik"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Nie wybrano raportu. Wybierz raport z listy."
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Wszystkie wstępnie wybrane grupy",
|
||||
"INVALID_USERS": "Nieprawidłowi użytkownicy",
|
||||
"INVALID_GROUPS": "Nieprawidłowe grupy",
|
||||
"READONLY_MODE": "Tryb tylko do odczytu"
|
||||
"READONLY_MODE": "Tryb tylko do odczytu",
|
||||
"GROUPS_RESTRICTION": "Ograniczenie grup"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Wybór wielokrotny",
|
||||
@@ -354,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ę"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Componente da Nuvem de Grupos",
|
||||
"CONFIRM-DIALOG": "Caixa de diálogo de confirmação",
|
||||
"COMMUNITY": "Comunidade",
|
||||
"SERVICE_TASK_LIST": "Lista de tarefas de serviços"
|
||||
"SERVICE_TASK_LIST": "Lista de tarefas de serviços",
|
||||
"RICH_TEXT_EDITOR": "Editor de RTF"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -157,9 +181,9 @@
|
||||
"TOOLBAR": {
|
||||
"CARDVIEW": "Modo de visualização de cartão",
|
||||
"SHARE_EDIT": "Editar configurações",
|
||||
"NEW_FOLDER": "Nova Pasta",
|
||||
"NEW_FOLDER": "Nova pasta",
|
||||
"EDIT_FOLDER": "Editar pasta",
|
||||
"DOWNLOAD": "Descarregar",
|
||||
"DOWNLOAD": "Baixar",
|
||||
"DELETE": "Excluir",
|
||||
"FAVORITES": "Adicionar aos favoritos",
|
||||
"SHARE": "Compartilhar",
|
||||
@@ -174,7 +198,7 @@
|
||||
"ASPECTS": "Atualizar aspectos",
|
||||
"LOCK": "Bloqueio",
|
||||
"METADATA": "Informações",
|
||||
"DOWNLOAD": "Descarregar",
|
||||
"DOWNLOAD": "Baixar",
|
||||
"PERMISSION": "Permissão",
|
||||
"FOLDER": {
|
||||
"COPY": "Copiar",
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Substituir colunas",
|
||||
"LOAD_NODE": "Carregar Nó",
|
||||
"MULTISELECT": "Seleção Múltipla",
|
||||
"MULTISELECT_DESCRIPTION": "Use Cmd (Mac) ou Ctrl (Windows) para alternar a seleção de vários itens"
|
||||
"MULTISELECT_DESCRIPTION": "Use Cmd (Mac) ou Ctrl (Windows) para alternar a seleção de vários itens",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Usar modelo personalizado para o cabeçalho 'Usuário'",
|
||||
"CUSTOM_COLUMN_HEADER": "Modelo personalizado do cabeçalho Usuário"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Nenhum relatório selecionado. Escolha um relatório na lista"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Todos os grupos pré-selecionados",
|
||||
"INVALID_USERS": "Usuários inválidos",
|
||||
"INVALID_GROUPS": "Grupos inválidos",
|
||||
"READONLY_MODE": "Modo somente leitura"
|
||||
"READONLY_MODE": "Modo somente leitura",
|
||||
"GROUPS_RESTRICTION": "Restrição de grupos"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Seleção Múltipla",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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": "Режим разработки"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Компонент облака «Группы»",
|
||||
"CONFIRM-DIALOG": "Диалоговое окно подтверждения",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Список сервисных задач"
|
||||
"SERVICE_TASK_LIST": "Список сервисных задач",
|
||||
"RICH_TEXT_EDITOR": "Редактор форматированного текста"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Заменить столбцы",
|
||||
"LOAD_NODE": "Загрузить узел",
|
||||
"MULTISELECT": "Выбор нескольких вариантов",
|
||||
"MULTISELECT_DESCRIPTION": "Использовать кнопку Cmd (Mac) или Ctrl (Windows) для переключения выбора нескольких элементов"
|
||||
"MULTISELECT_DESCRIPTION": "Использовать кнопку Cmd (Mac) или Ctrl (Windows) для переключения выбора нескольких элементов",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Использовать пользовательский шаблон для заголовка «Пользователь»",
|
||||
"CUSTOM_COLUMN_HEADER": "Пользовательский шаблон заголовка пользователя"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Отчет не выбран. Выберите отчет из списка"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Все заранее заданные группы",
|
||||
"INVALID_USERS": "Недействительные пользователи",
|
||||
"INVALID_GROUPS": "Недействительные группы",
|
||||
"READONLY_MODE": "Режим только для чтения"
|
||||
"READONLY_MODE": "Режим только для чтения",
|
||||
"GROUPS_RESTRICTION": "Ограничение для групп"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Выбор нескольких",
|
||||
@@ -354,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": "Нажмите для отображения списка"
|
||||
}
|
||||
@@ -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"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "Grupper moln-komponent",
|
||||
"CONFIRM-DIALOG": "Dialogruta för bekräftelse",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "Serviceuppgiftslista"
|
||||
"SERVICE_TASK_LIST": "Serviceuppgiftslista",
|
||||
"RICH_TEXT_EDITOR": "RT-redigerare"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "Ersätt kolumner",
|
||||
"LOAD_NODE": "Läs in nod",
|
||||
"MULTISELECT": "Flerval",
|
||||
"MULTISELECT_DESCRIPTION": "Använd Cmd (Mac) eller Ctrl (Windows) för att växla val av flera objekt"
|
||||
"MULTISELECT_DESCRIPTION": "Använd Cmd (Mac) eller Ctrl (Windows) för att växla val av flera objekt",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "Använd anpassad mall för \"Användare\"-rubrik",
|
||||
"CUSTOM_COLUMN_HEADER": "Anpassad användarhuvudmall"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "Ingen rapport vald. Välj en rapport från listan"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "Alla förvalda grupper",
|
||||
"INVALID_USERS": "Ogiltiga användare",
|
||||
"INVALID_GROUPS": "Ogiltiga grupper",
|
||||
"READONLY_MODE": "Skrivskyddat läge"
|
||||
"READONLY_MODE": "Skrivskyddat läge",
|
||||
"GROUPS_RESTRICTION": "Gruppbegränsning"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "Flerval",
|
||||
@@ -354,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"
|
||||
}
|
||||
@@ -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": "查找任务"
|
||||
},
|
||||
@@ -111,7 +134,8 @@
|
||||
"GROUPS_CLOUD": "组云组件",
|
||||
"CONFIRM-DIALOG": "确认对话",
|
||||
"COMMUNITY": "Community",
|
||||
"SERVICE_TASK_LIST": "服务任务列表"
|
||||
"SERVICE_TASK_LIST": "服务任务列表",
|
||||
"RICH_TEXT_EDITOR": "RTF 编辑器"
|
||||
},
|
||||
"TRASHCAN": {
|
||||
"ACTIONS": {
|
||||
@@ -150,7 +174,7 @@
|
||||
"CREATED_BY": "创建者",
|
||||
"CREATED_ON": "创建日期",
|
||||
"CREATED": "已创建",
|
||||
"SIZE": "字号(&S)",
|
||||
"SIZE": "尺寸",
|
||||
"DELETED_ON": "已删除",
|
||||
"DELETED_BY": "删除人"
|
||||
},
|
||||
@@ -196,7 +220,9 @@
|
||||
"REPLACE_COLUMNS": "替换列",
|
||||
"LOAD_NODE": "加载节点",
|
||||
"MULTISELECT": "多选",
|
||||
"MULTISELECT_DESCRIPTION": "使用 Cmd (Mac) 或 Ctrl (Windows) 切换多个项目的选择"
|
||||
"MULTISELECT_DESCRIPTION": "使用 Cmd (Mac) 或 Ctrl (Windows) 切换多个项目的选择",
|
||||
"USE_CUSTOM_COLUMN_HEADER": "为“用户”标题使用自定义模板",
|
||||
"CUSTOM_COLUMN_HEADER": "自定义用户标题模板"
|
||||
},
|
||||
"ANALYTICS_REPORT": {
|
||||
"NO_REPORT_MESSAGE": "未选择报告,请从列表中选择报告"
|
||||
@@ -278,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 }}"
|
||||
},
|
||||
@@ -290,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": "流程列表上下文菜单"
|
||||
@@ -330,7 +356,8 @@
|
||||
"ALL_PRESELECTED_GROUPS": "所有预选组",
|
||||
"INVALID_USERS": "无效用户",
|
||||
"INVALID_GROUPS": "无效组",
|
||||
"READONLY_MODE": "只读模式"
|
||||
"READONLY_MODE": "只读模式",
|
||||
"GROUPS_RESTRICTION": "组限制"
|
||||
},
|
||||
"SETTINGS_CLOUD": {
|
||||
"MULTISELECTION": "多重选择",
|
||||
@@ -354,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": "单击以显示列表"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../lib/core/app-config/schema.json",
|
||||
"$schema": "../../lib/core/src/lib/app-config/schema.json",
|
||||
"ecmHost": "{protocol}//{hostname}{:port}",
|
||||
"bpmHost": "{protocol}//{hostname}{:port}",
|
||||
"identityHost": "{protocol}//{hostname}{:port}/auth/admin/realms/alfresco",
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1,4 +1,34 @@
|
||||
<mat-slide-toggle [(ngModel)]="dev">{{'APP.ABOUT.DEVELOPMENT' | translate }}</mat-slide-toggle>
|
||||
|
||||
<adf-about [dev]="dev" [pkg]="pkg"> </adf-about>
|
||||
<adf-about>
|
||||
<adf-about-panel *ngIf="dev" [label]="'ABOUT.SERVER_SETTINGS.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-server-settings></adf-about-server-settings>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel *ngIf="dev" [label]="'ABOUT.PACKAGES.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-package-list [dependencies]="pkg?.dependencies"></adf-about-package-list>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel [label]="'ABOUT.REPOSITORY' | translate" *ngIf="repository">
|
||||
<ng-template>
|
||||
<adf-about-repository-info [data]="repository"></adf-about-repository-info>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel [label]="'ABOUT.VERSIONS.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-platform-version [repository]="repository" [process]="bpmVersion"></adf-about-platform-version>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel *ngIf="extensions$ | async as extensions" [label]="'ABOUT.PLUGINS.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-extension-list [data]="extensions"></adf-about-extension-list>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
</adf-about>
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
.adf-extension-details-container {
|
||||
padding: 4px;
|
||||
}
|
||||
@@ -15,20 +15,52 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component } from '@angular/core';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { AppExtensionService, ExtensionRef } from '@alfresco/adf-extensions';
|
||||
import { AuthenticationService, BpmProductVersionModel, DiscoveryApiService, RepositoryInfo } from '@alfresco/adf-core';
|
||||
import pkg from '../../../../../package.json';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@Component({
|
||||
selector: 'app-about-page',
|
||||
templateUrl: './about.component.html',
|
||||
styleUrls: ['./about.component.scss']
|
||||
templateUrl: './about.component.html'
|
||||
})
|
||||
export class AboutComponent {
|
||||
export class AboutComponent implements OnInit {
|
||||
pkg: any;
|
||||
dev: true;
|
||||
|
||||
constructor() {
|
||||
extensions$: Observable<ExtensionRef[]>;
|
||||
repository: RepositoryInfo = null;
|
||||
bpmVersion: BpmProductVersionModel = null;
|
||||
|
||||
constructor(
|
||||
private authService: AuthenticationService,
|
||||
private appExtensions: AppExtensionService,
|
||||
private discovery: DiscoveryApiService
|
||||
) {
|
||||
this.pkg = pkg;
|
||||
this.extensions$ = this.appExtensions.references$;
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
if (this.authService.isEcmLoggedIn()) {
|
||||
this.setECMInfo();
|
||||
}
|
||||
|
||||
if (this.authService.isBpmLoggedIn()) {
|
||||
this.setBPMInfo();
|
||||
}
|
||||
}
|
||||
|
||||
setECMInfo() {
|
||||
this.discovery.getEcmProductInfo().subscribe((repository) => {
|
||||
this.repository = repository as RepositoryInfo;
|
||||
});
|
||||
}
|
||||
|
||||
setBPMInfo() {
|
||||
this.discovery.getBpmProductInfo().subscribe((bpmVersion) => {
|
||||
this.bpmVersion = bpmVersion;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
+16
-74
@@ -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.isEcmLoggedIn()) {
|
||||
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';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
<mat-label>Node Id For Aspects</mat-label>
|
||||
<input matInput placeholder="Node Id" [(ngModel)]="currentNodeId">
|
||||
</mat-form-field>
|
||||
<button mat-raised-button color="primary" aria-label="Click to show the list" (click)="showAspectForNode()">
|
||||
<button mat-raised-button color="primary" [attr.aria-label]="'SHOW_LIST_LABEL' | translate" (click)="showAspectForNode()">
|
||||
Show/Hide List
|
||||
</button>
|
||||
<adf-aspect-list [nodeId]="currentNodeId" *ngIf="isShowed" (valueChanged)="onValueChanged($event)"></adf-aspect-list>
|
||||
</div>
|
||||
<div>
|
||||
<button mat-fab color="primary" aria-label="Open dialog" (click)="openAspectDialog()">
|
||||
<button mat-fab color="primary" [attr.aria-label]="'OPEN_DIALOG' | translate" (click)="openAspectDialog()">
|
||||
Dialog
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -64,13 +64,13 @@
|
||||
</adf-toolbar-title>
|
||||
<adf-toolbar-divider fxFlex="0 0 auto"></adf-toolbar-divider>
|
||||
<div fxFlex="0 0 auto">
|
||||
<button mat-icon-button aria-label="Create a new folder button">
|
||||
<button mat-icon-button [attr.aria-label]="'BREADCRUMB_DEMO.NEW_FOLDER_LABEL' | translate">
|
||||
<mat-icon>create_new_folder</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button aria-label="Edit node button">
|
||||
<button mat-icon-button [attr.aria-label]="'BREADCRUMB_DEMO.EDIT_NODE_LABEL' | translate">
|
||||
<mat-icon>create</mat-icon>
|
||||
</button>
|
||||
<button mat-icon-button aria-label="Delete node icon button">
|
||||
<button mat-icon-button [attr.aria-label]="'BREADCRUMB_DEMO.DELETE_NODE_LABEL' | translate">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { CloudLayoutService } from './services/cloud-layout.service';
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<adf-viewer
|
||||
[overlayMode]="true"
|
||||
<adf-alfresco-viewer
|
||||
[nodeId]="nodeId">
|
||||
</adf-viewer>
|
||||
</adf-alfresco-viewer>
|
||||
|
||||
+1
-2
@@ -49,8 +49,7 @@ export class CommunityStartProcessCloudDemoComponent implements OnInit {
|
||||
|
||||
openSnackMessage(event: any) {
|
||||
this.notificationService.openSnackMessage(
|
||||
event.response.body.message,
|
||||
4000
|
||||
event.response.body.message
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -42,8 +42,7 @@ export class CommunityStartTaskCloudDemoComponent {
|
||||
|
||||
openSnackMessage(event: any) {
|
||||
this.notificationService.openSnackMessage(
|
||||
event.response.body.message,
|
||||
4000
|
||||
event.response.body.message
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||
import { CloudLayoutService, ActionMenuModel } from '../services/cloud-layout.service';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { FormGroup, FormControl } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormControl } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
selector: 'app-cloud-settings',
|
||||
@@ -44,12 +44,12 @@ export class CloudSettingsComponent implements OnInit, OnDestroy {
|
||||
{ value: 'multiple', title: 'Multiple' }
|
||||
];
|
||||
|
||||
actionMenuForm = new FormGroup({
|
||||
key: new FormControl(''),
|
||||
title: new FormControl(''),
|
||||
icon: new FormControl(''),
|
||||
visible: new FormControl(true),
|
||||
disabled: new FormControl(false)
|
||||
actionMenuForm = new UntypedFormGroup({
|
||||
key: new UntypedFormControl(''),
|
||||
title: new UntypedFormControl(''),
|
||||
icon: new UntypedFormControl(''),
|
||||
visible: new UntypedFormControl(true),
|
||||
disabled: new UntypedFormControl(false)
|
||||
});
|
||||
|
||||
constructor(private cloudLayoutService: CloudLayoutService) { }
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
import { Component, ViewChild } from '@angular/core';
|
||||
import { TaskHeaderCloudComponent } from '@alfresco/adf-process-services-cloud';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
templateUrl: './task-header-cloud-demo.component.html',
|
||||
@@ -32,8 +32,8 @@ export class TaskHeaderCloudDemoComponent {
|
||||
|
||||
errorMessage;
|
||||
|
||||
appNameFormControl = new FormControl('');
|
||||
taskIdFormControl = new FormControl('');
|
||||
appNameFormControl = new UntypedFormControl('');
|
||||
taskIdFormControl = new UntypedFormControl('');
|
||||
|
||||
constructor() {}
|
||||
|
||||
|
||||
+3
-3
@@ -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>
|
||||
|
||||
@@ -17,8 +17,14 @@
|
||||
|
||||
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
|
||||
import { ActivatedRoute, Router, PRIMARY_OUTLET } from '@angular/router';
|
||||
import { ContentService, AllowableOperationsEnum, PermissionsEnum, NodesApiService, FileUploadErrorEvent } from '@alfresco/adf-core';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import {
|
||||
ContentService,
|
||||
AllowableOperationsEnum,
|
||||
PermissionsEnum,
|
||||
NodesApiService,
|
||||
FileUploadErrorEvent,
|
||||
NotificationService
|
||||
} from '@alfresco/adf-core';
|
||||
import { PreviewService } from '../../services/preview.service';
|
||||
|
||||
@Component({
|
||||
@@ -39,7 +45,6 @@ export class FileViewComponent implements OnInit {
|
||||
customPreset: string = null;
|
||||
displayDefaultProperties = true;
|
||||
showToolbar = true;
|
||||
displayName = null;
|
||||
urlFile = null;
|
||||
allowGoBack = true;
|
||||
openWith = false;
|
||||
@@ -49,7 +54,6 @@ export class FileViewComponent implements OnInit {
|
||||
allowLeftSidebar = true;
|
||||
moreActions = true;
|
||||
moreActionsMenu = false;
|
||||
customName = false;
|
||||
fileUrlSwitch = false;
|
||||
showLeftSidebar = null;
|
||||
showRightSidebar = false;
|
||||
@@ -59,15 +63,16 @@ 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,
|
||||
private snackBar: MatSnackBar,
|
||||
private nodeApiService: NodesApiService,
|
||||
private contentServices: ContentService,
|
||||
private preview: PreviewService) {
|
||||
private preview: PreviewService,
|
||||
private notificationService: NotificationService) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -87,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;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -98,14 +103,14 @@ 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);
|
||||
}
|
||||
|
||||
onUploadError(event: FileUploadErrorEvent) {
|
||||
const errorMessage = event.error;
|
||||
this.snackBar.open(errorMessage, '', { duration: 4000 });
|
||||
this.notificationService.showError(errorMessage);
|
||||
}
|
||||
|
||||
toggleEmptyMetadata() {
|
||||
@@ -176,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() {
|
||||
|
||||
@@ -18,9 +18,8 @@
|
||||
import { Component, Inject, ViewEncapsulation } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { MinimalNodeEntryEntity } from '@alfresco/js-api';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { PreviewService } from '../../services/preview.service';
|
||||
import { FileUploadErrorEvent } from '@alfresco/adf-core';
|
||||
import { FileUploadErrorEvent, NotificationService } from '@alfresco/adf-core';
|
||||
|
||||
@Component({
|
||||
templateUrl: './version-manager-dialog-adapter.component.html',
|
||||
@@ -37,8 +36,8 @@ export class VersionManagerDialogAdapterComponent {
|
||||
showVersionComparison = false;
|
||||
|
||||
constructor(private previewService: PreviewService,
|
||||
private notificationService: NotificationService,
|
||||
@Inject(MAT_DIALOG_DATA) data: any,
|
||||
private snackBar: MatSnackBar,
|
||||
private containingDialog?: MatDialogRef<VersionManagerDialogAdapterComponent>) {
|
||||
this.contentEntry = data.contentEntry;
|
||||
this.newFileVersion = data.hasOwnProperty('newFileVersion') ? data.newFileVersion : this.newFileVersion;
|
||||
@@ -48,7 +47,7 @@ export class VersionManagerDialogAdapterComponent {
|
||||
|
||||
uploadError(event: FileUploadErrorEvent) {
|
||||
const errorMessage = event.error;
|
||||
this.snackBar.open(errorMessage, '', { duration: 4000 });
|
||||
this.notificationService.showError(errorMessage);
|
||||
}
|
||||
|
||||
close() {
|
||||
|
||||
+8
-15
@@ -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;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||
import { NotificationService } from '@alfresco/adf-core';
|
||||
import { MatSnackBarConfig } from '@angular/material/snack-bar';
|
||||
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, UntypedFormControl } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
|
||||
@@ -33,7 +33,7 @@ export class NotificationsComponent implements OnInit, OnDestroy {
|
||||
actionOutput = '';
|
||||
snackBarConfigObject = '';
|
||||
|
||||
configForm: FormGroup;
|
||||
configForm: UntypedFormGroup;
|
||||
|
||||
snackBarConfig: MatSnackBarConfig = new MatSnackBarConfig();
|
||||
|
||||
@@ -60,16 +60,16 @@ export class NotificationsComponent implements OnInit, OnDestroy {
|
||||
private onDestroy$ = new Subject<boolean>();
|
||||
|
||||
constructor(private notificationService: NotificationService,
|
||||
private formBuilder: FormBuilder) {
|
||||
private formBuilder: UntypedFormBuilder) {
|
||||
this.snackBarConfig.duration = this.defaultDuration;
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.configForm = this.formBuilder.group({
|
||||
direction: new FormControl(''),
|
||||
horizontalPosition: new FormControl(''),
|
||||
verticalPosition: new FormControl(''),
|
||||
duration: new FormControl('')
|
||||
direction: new UntypedFormControl(''),
|
||||
horizontalPosition: new UntypedFormControl(''),
|
||||
verticalPosition: new UntypedFormControl(''),
|
||||
duration: new UntypedFormControl('')
|
||||
});
|
||||
|
||||
this.configForm.valueChanges
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators, FormControl, AbstractControl } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, AbstractControl } from '@angular/forms';
|
||||
import { ActivatedRoute, Params } from '@angular/router';
|
||||
import { debounceTime, takeUntil } from 'rxjs/operators';
|
||||
import { Subject } from 'rxjs';
|
||||
@@ -30,7 +30,7 @@ const DEFAULT_SIZE = 20;
|
||||
|
||||
export class ProcessListDemoComponent implements OnInit, OnDestroy {
|
||||
minValue = 0;
|
||||
processListForm: FormGroup;
|
||||
processListForm: UntypedFormGroup;
|
||||
appId: number;
|
||||
processDefId: string;
|
||||
processInsId: string;
|
||||
@@ -55,7 +55,7 @@ export class ProcessListDemoComponent implements OnInit, OnDestroy {
|
||||
private onDestroy$ = new Subject<boolean>();
|
||||
|
||||
constructor(private route: ActivatedRoute,
|
||||
private formBuilder: FormBuilder) {
|
||||
private formBuilder: UntypedFormBuilder) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -79,13 +79,13 @@ export class ProcessListDemoComponent implements OnInit, OnDestroy {
|
||||
|
||||
buildForm() {
|
||||
this.processListForm = this.formBuilder.group({
|
||||
processAppId: new FormControl(this.appId, [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)]),
|
||||
processDefinitionId: new FormControl(''),
|
||||
processInstanceId: new FormControl(''),
|
||||
processState: new FormControl(''),
|
||||
processSort: new FormControl(''),
|
||||
processSize: new FormControl('', [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)]),
|
||||
processPage: new FormControl('', [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)])
|
||||
processAppId: new UntypedFormControl(this.appId, [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)]),
|
||||
processDefinitionId: new UntypedFormControl(''),
|
||||
processInstanceId: new UntypedFormControl(''),
|
||||
processState: new UntypedFormControl(''),
|
||||
processSort: new UntypedFormControl(''),
|
||||
processSize: new UntypedFormControl('', [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)]),
|
||||
processPage: new UntypedFormControl('', [Validators.pattern('^[0-9]*$'), Validators.min(this.minValue)])
|
||||
});
|
||||
|
||||
this.processListForm.valueChanges
|
||||
@@ -149,31 +149,31 @@ export class ProcessListDemoComponent implements OnInit, OnDestroy {
|
||||
return this.processListForm.get(key) as T;
|
||||
}
|
||||
|
||||
get processAppId(): FormControl {
|
||||
return this.getControl<FormControl>('processAppId');
|
||||
get processAppId(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processAppId');
|
||||
}
|
||||
|
||||
get processDefinitionId(): FormControl {
|
||||
return this.getControl<FormControl>('processDefinitionId');
|
||||
get processDefinitionId(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processDefinitionId');
|
||||
}
|
||||
|
||||
get processInstanceId(): FormControl {
|
||||
return this.getControl<FormControl>('processInstanceId');
|
||||
get processInstanceId(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processInstanceId');
|
||||
}
|
||||
|
||||
get processState(): FormControl {
|
||||
return this.getControl<FormControl>('processState');
|
||||
get processState(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processState');
|
||||
}
|
||||
|
||||
get processSort(): FormControl {
|
||||
return this.getControl<FormControl>('processSort');
|
||||
get processSort(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processSort');
|
||||
}
|
||||
|
||||
get processSize(): FormControl {
|
||||
return this.getControl<FormControl>('processSize');
|
||||
get processSize(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processSize');
|
||||
}
|
||||
|
||||
get processPage(): FormControl {
|
||||
return this.getControl<FormControl>('processPage');
|
||||
get processPage(): UntypedFormControl {
|
||||
return this.getControl<UntypedFormControl>('processPage');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,10 +21,12 @@
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
<mat-icon>assignment</mat-icon>
|
||||
<div class="app-accordion-title-padding">Tasks</div>
|
||||
<div id="tasks-accordion-title" class="app-accordion-title-padding">Tasks</div>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<adf-task-filters [filterParam]="filterSelected"
|
||||
role="group"
|
||||
aria-labelledby="tasks-accordion-title"
|
||||
[appId]="appId"
|
||||
[showIcon]="showTaskFilterIcon"
|
||||
(filterClicked)="onTaskFilterClick($event)"
|
||||
@@ -138,11 +140,13 @@
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
<mat-icon>assessment</mat-icon>
|
||||
<div class="app-accordion-title-padding">Processes</div>
|
||||
<div id="process-accordion-title" class="app-accordion-title-padding">Processes</div>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<adf-process-instance-filters
|
||||
#activitiProcessFilter
|
||||
role="group"
|
||||
aria-labelledby="process-accordion-title"
|
||||
[appId]="appId"
|
||||
[filterParam]="filterSelected"
|
||||
[showIcon]="showProcessFilterIcon"
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
+40
-37
@@ -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>
|
||||
-18
@@ -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%;
|
||||
}
|
||||
+57
-48
@@ -16,11 +16,8 @@
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Output, ViewEncapsulation, OnInit, Input } from '@angular/core';
|
||||
import { Validators, FormGroup, FormBuilder, FormControl } 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 { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
|
||||
import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, OauthConfigModel, AuthenticationService } from '@alfresco/adf-core';
|
||||
import { ENTER } from '@angular/cdk/keycodes';
|
||||
|
||||
export const HOST_REGEX = '^(http|https):\/\/.*[^/]$';
|
||||
@@ -44,11 +41,11 @@ export class HostSettingsComponent implements OnInit {
|
||||
|
||||
showSelectProviders = true;
|
||||
|
||||
form: FormGroup;
|
||||
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: FormBuilder,
|
||||
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) {
|
||||
@@ -137,7 +136,7 @@ export class HostSettingsComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
private createOAuthFormGroup(): FormGroup {
|
||||
private createOAuthFormGroup(): UntypedFormGroup {
|
||||
const oauth = this.appConfig.get<OauthConfigModel>(AppConfigValues.OAUTHCONFIG, {} as any);
|
||||
|
||||
return this.formBuilder.group({
|
||||
@@ -149,20 +148,21 @@ export class HostSettingsComponent implements OnInit {
|
||||
secret: oauth.secret,
|
||||
silentLogin: oauth.silentLogin,
|
||||
implicitFlow: oauth.implicitFlow,
|
||||
codeFlow: oauth.codeFlow,
|
||||
publicUrls: [oauth.publicUrls]
|
||||
});
|
||||
}
|
||||
|
||||
private createBPMFormControl(): FormControl {
|
||||
return new FormControl(this.appConfig.get<string>(AppConfigValues.BPMHOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
private createBPMFormControl(): UntypedFormControl {
|
||||
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.BPMHOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
}
|
||||
|
||||
private createIdentityFormControl(): FormControl {
|
||||
return new FormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
private createIdentityFormControl(): UntypedFormControl {
|
||||
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
}
|
||||
|
||||
private createECMFormControl(): FormControl {
|
||||
return new FormControl(this.appConfig.get<string>(AppConfigValues.ECMHOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
private createECMFormControl(): UntypedFormControl {
|
||||
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.ECMHOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
|
||||
}
|
||||
|
||||
onCancel() {
|
||||
@@ -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,60 +232,68 @@ export class HostSettingsComponent implements OnInit {
|
||||
return this.form.get('authType').value === 'OAUTH';
|
||||
}
|
||||
|
||||
get providersControl(): FormControl {
|
||||
return this.form.get('providersControl') as FormControl;
|
||||
get supportsCodeFlow(): boolean {
|
||||
return this.auth.supportCodeFlow;
|
||||
}
|
||||
|
||||
get bpmHost(): FormControl {
|
||||
return this.form.get('bpmHost') as FormControl;
|
||||
get providersControl(): UntypedFormControl {
|
||||
return this.form.get('providersControl') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get ecmHost(): FormControl {
|
||||
return this.form.get('ecmHost') as FormControl;
|
||||
get bpmHost(): UntypedFormControl {
|
||||
return this.form.get('bpmHost') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get host(): FormControl {
|
||||
return this.oauthConfig.get('host') as FormControl;
|
||||
get ecmHost(): UntypedFormControl {
|
||||
return this.form.get('ecmHost') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get identityHost(): FormControl {
|
||||
return this.form.get('identityHost') as FormControl;
|
||||
get host(): UntypedFormControl {
|
||||
return this.oauthConfig.get('host') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get clientId(): FormControl {
|
||||
return this.oauthConfig.get('clientId') as FormControl;
|
||||
get identityHost(): UntypedFormControl {
|
||||
return this.form.get('identityHost') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get scope(): FormControl {
|
||||
return this.oauthConfig.get('scope') as FormControl;
|
||||
get clientId(): UntypedFormControl {
|
||||
return this.oauthConfig.get('clientId') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get secret(): FormControl {
|
||||
return this.oauthConfig.get('secret') as FormControl;
|
||||
get scope(): UntypedFormControl {
|
||||
return this.oauthConfig.get('scope') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get implicitFlow(): FormControl {
|
||||
return this.oauthConfig.get('implicitFlow') as FormControl;
|
||||
get secret(): UntypedFormControl {
|
||||
return this.oauthConfig.get('secret') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get silentLogin(): FormControl {
|
||||
return this.oauthConfig.get('silentLogin') as FormControl;
|
||||
get implicitFlow(): UntypedFormControl {
|
||||
return this.oauthConfig.get('implicitFlow') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get redirectUri(): FormControl {
|
||||
return this.oauthConfig.get('redirectUri') as FormControl;
|
||||
get codeFlow(): UntypedFormControl {
|
||||
return this.oauthConfig.get('codeFlow') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get publicUrls(): FormControl {
|
||||
return this.oauthConfig.get('publicUrls') as FormControl;
|
||||
get silentLogin(): UntypedFormControl {
|
||||
return this.oauthConfig.get('silentLogin') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get redirectUriLogout(): FormControl {
|
||||
return this.oauthConfig.get('redirectUriLogout') as FormControl;
|
||||
get redirectUri(): UntypedFormControl {
|
||||
return this.oauthConfig.get('redirectUri') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get oauthConfig(): FormControl {
|
||||
return this.form.get('oauthConfig') as FormControl;
|
||||
get publicUrls(): UntypedFormControl {
|
||||
return this.oauthConfig.get('publicUrls') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get redirectUriLogout(): UntypedFormControl {
|
||||
return this.oauthConfig.get('redirectUriLogout') as UntypedFormControl;
|
||||
}
|
||||
|
||||
get oauthConfig(): UntypedFormControl {
|
||||
return this.form.get('oauthConfig') 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 {}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user