diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml
index 565935611b..5f22c1e6dd 100644
--- a/.github/actions/setup/action.yml
+++ b/.github/actions/setup/action.yml
@@ -26,7 +26,7 @@ runs:
cache-dependency-path: package-lock.json
- name: get latest tag sha
id: tag-sha
- uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@8cd8c3798c79d10540e2876ad7cf2a5311cbd1ae # v8.20.0
+ uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@95f68dc050fba62b3331d9b47bc659526cdfb343 # v8.21.1
# CACHE
- name: Node Modules cache
id: node-modules-cache
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 52167d3362..dc6d0e522b 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -30,7 +30,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
# Override language selection by uncommenting this and choosing your languages
with:
languages: javascript
@@ -39,7 +39,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@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -53,4 +53,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
+ uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index 6d9de373d8..30db96352c 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -64,7 +64,7 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Ensure SHA pinned actions
- uses: zgosalvez/github-actions-ensure-sha-pinned-actions@2d6823da4039243036c86d76f503c84e2ded2517 # v3.0.24
+ uses: zgosalvez/github-actions-ensure-sha-pinned-actions@fc87bb5b5a97953d987372e74478de634726b3e5 # v3.0.25
- name: Check package-lock.json version
run: |
@@ -84,10 +84,10 @@ jobs:
fetch-depth: 0
- name: Get branch name
- uses: Alfresco/alfresco-build-tools/.github/actions/get-branch-name@8cd8c3798c79d10540e2876ad7cf2a5311cbd1ae # v8.20.0
+ uses: Alfresco/alfresco-build-tools/.github/actions/get-branch-name@95f68dc050fba62b3331d9b47bc659526cdfb343 # v8.21.1
- name: Save commit message
- uses: Alfresco/alfresco-build-tools/.github/actions/get-commit-message@8cd8c3798c79d10540e2876ad7cf2a5311cbd1ae # v8.20.0
+ uses: Alfresco/alfresco-build-tools/.github/actions/get-commit-message@95f68dc050fba62b3331d9b47bc659526cdfb343 # v8.21.1
- name: ci:force flag parser
shell: bash
diff --git a/docs/content-services/services/tag.service.md b/docs/content-services/services/tag.service.md
index 966449438e..108f5e56c7 100644
--- a/docs/content-services/services/tag.service.md
+++ b/docs/content-services/services/tag.service.md
@@ -23,10 +23,10 @@ Manages tags in Content Services.
- _nodeId:_ `string` - Id of node to which tags should be assigned.
- _tags:_ `TagBody[]` - List of tags to create and assign or just assign if they already exist.
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TagPaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/TagPaging.md)`|`[`TagEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/TagEntry.md)`>` - Just linked tags to node or single tag if linked only one tag.
-- **createTags**(tags: `TagBody[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TagEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/TagEntry.md)`[]>`
+- **createTags**(tags: `TagBody[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TagEntry`](../../../lib/js-api/src/api/content-rest-api/docs/TagsApi.md#TagEntry) `|` [`TagPaging`](../../../lib/js-api/src/api/content-rest-api/docs/TagsApi.md#TagPaging)`>`
Creates tags.
- _tags:_ `TagBody[]` - list of tags to create.
- - **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TagEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/TagEntry.md)`[]>` - Created tags.
+ - **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`TagEntry`](../../../lib/js-api/src/api/content-rest-api/docs/TagsApi.md#TagEntry) `|` [`TagPaging`](../../../lib/js-api/src/api/content-rest-api/docs/TagsApi.md#TagPaging)`>` - Created tags.
- **deleteTag**(tagId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)``
Deletes a tag with tagId. This will cause the tag to be removed from all nodes. You must have admin rights to delete a tag.
- _tagId:_ `string` - of the tag to be deleted
diff --git a/e2e/resources/activiti7/simpleapp.zip b/e2e/resources/activiti7/simpleapp.zip
index 01e9fd77bb..457f8af159 100644
Binary files a/e2e/resources/activiti7/simpleapp.zip and b/e2e/resources/activiti7/simpleapp.zip differ
diff --git a/lib/content-services/src/lib/tag/services/tag.service.spec.ts b/lib/content-services/src/lib/tag/services/tag.service.spec.ts
index b22d3b6196..c89767e9fc 100644
--- a/lib/content-services/src/lib/tag/services/tag.service.spec.ts
+++ b/lib/content-services/src/lib/tag/services/tag.service.spec.ts
@@ -89,7 +89,7 @@ describe('TagService', () => {
describe('createTags', () => {
it('should call createTags on tagsApi', () => {
- spyOn(service.tagsApi, 'createTags').and.returnValue(Promise.resolve([]));
+ spyOn(service.tagsApi, 'createTags').and.returnValue(Promise.resolve({}));
const tag1 = new TagBody();
tag1.tag = 'Some tag 1';
const tag2 = new TagBody();
@@ -101,19 +101,17 @@ describe('TagService', () => {
});
it('should emit refresh when tags creation is success', async () => {
- const tags: TagEntry[] = [
- {
- entry: {
- id: 'Some id 1',
- tag: 'Some tag 1'
- }
+ const tag: TagEntry = {
+ entry: {
+ id: 'Some id 1',
+ tag: 'Some tag 1'
}
- ];
+ };
spyOn(service.refresh, 'emit');
- spyOn(service.tagsApi, 'createTags').and.returnValue(Promise.resolve(tags));
+ spyOn(service.tagsApi, 'createTags').and.returnValue(Promise.resolve(tag));
await service.createTags([]).toPromise();
- expect(service.refresh.emit).toHaveBeenCalledWith(tags);
+ expect(service.refresh.emit).toHaveBeenCalledWith(tag);
});
});
diff --git a/lib/content-services/src/lib/tag/services/tag.service.ts b/lib/content-services/src/lib/tag/services/tag.service.ts
index b7b18254c3..0679595fbb 100644
--- a/lib/content-services/src/lib/tag/services/tag.service.ts
+++ b/lib/content-services/src/lib/tag/services/tag.service.ts
@@ -99,7 +99,7 @@ export class TagService {
* @param tags list of tags to create.
* @returns Created tags.
*/
- createTags(tags: TagBody[]): Observable {
+ createTags(tags: TagBody[]): Observable {
return from(this.tagsApi.createTags(tags)).pipe(tap((tagEntries) => this.refresh.emit(tagEntries)));
}
diff --git a/lib/core/src/lib/common/utils/date-fns-utils.spec.ts b/lib/core/src/lib/common/utils/date-fns-utils.spec.ts
index 46c353e8cf..c7793ec5c2 100644
--- a/lib/core/src/lib/common/utils/date-fns-utils.spec.ts
+++ b/lib/core/src/lib/common/utils/date-fns-utils.spec.ts
@@ -78,7 +78,6 @@ describe('DateFnsUtils', () => {
it('should parse alternative ISO datetime', () => {
const result = DateFnsUtils.parseDate('1982-03-13T10:00:000Z', `yyyy-MM-dd'T'HH:mm:sssXXX`);
-
expect(result.toISOString()).toBe('1982-03-13T10:00:00.000Z');
});
diff --git a/lib/core/src/lib/form/components/widgets/core/form.model.ts b/lib/core/src/lib/form/components/widgets/core/form.model.ts
index 800bafd480..2b1a763b9f 100644
--- a/lib/core/src/lib/form/components/widgets/core/form.model.ts
+++ b/lib/core/src/lib/form/components/widgets/core/form.model.ts
@@ -358,7 +358,7 @@ export class FormModel implements ProcessFormModel {
this.handleSectionField(field, formFieldModel);
} else if (this.isContainerField(field)) {
this.handleContainerField(field, formFieldModel);
- } else {
+ } else if (this.isFormField(field)) {
this.handleSingleField(field, formFieldModel);
}
});
@@ -368,6 +368,10 @@ export class FormModel implements ProcessFormModel {
return field instanceof ContainerModel;
}
+ private isFormField(field: ContainerModel | FormFieldModel): field is FormFieldModel {
+ return field instanceof FormFieldModel;
+ }
+
private isSectionField(field: ContainerModel | FormFieldModel): field is FormFieldModel {
return field.type === FormFieldTypes.SECTION;
}
diff --git a/lib/core/src/lib/i18n/de.json b/lib/core/src/lib/i18n/de.json
index 85c32a1af0..f9703196a4 100644
--- a/lib/core/src/lib/i18n/de.json
+++ b/lib/core/src/lib/i18n/de.json
@@ -18,7 +18,7 @@
"COMPLETE": "Abschließen",
"CANCEL": "Abbrechen",
"CLAIM": "Beanspruchen",
- "UNCLAIM": "Anspruch aufheben",
+ "UNCLAIM": "Freigeben ",
"START PROCESS": "Prozess starten",
"DATA_LOADING": "Daten werden geladen",
"CLOSE": "Schließen",
diff --git a/lib/js-api/src/api/content-rest-api/api/tags.api.ts b/lib/js-api/src/api/content-rest-api/api/tags.api.ts
index f726f6257b..ccbadb5ebf 100644
--- a/lib/js-api/src/api/content-rest-api/api/tags.api.ts
+++ b/lib/js-api/src/api/content-rest-api/api/tags.api.ts
@@ -209,9 +209,9 @@ export class TagsApi extends BaseApi {
/**
* Create specified by **tags** list of tags.
* @param tags List of tags to create.
- * @returns Promise
+ * @returns Promise
*/
- createTags(tags: TagBody[]): Promise {
+ createTags(tags: TagBody[]): Promise {
throwIfNotDefined(tags, 'tags');
return this.post({
diff --git a/lib/js-api/src/api/content-rest-api/docs/TagsApi.md b/lib/js-api/src/api/content-rest-api/docs/TagsApi.md
index cf3915921b..e172606f84 100644
--- a/lib/js-api/src/api/content-rest-api/docs/TagsApi.md
+++ b/lib/js-api/src/api/content-rest-api/docs/TagsApi.md
@@ -240,7 +240,7 @@ Create specified by **tags** list of tags.
|----------|-----------------------|-------------------------|
| **tags** | [TagBody[]](#TagBody) | List of tags to create. |
-**Return type**: [TagEntry[]](#TagEntry)
+**Return type**: [TagEntry](#TagEntry) | [TagPaging](#TagPaging)
**Example**
diff --git a/lib/js-api/test/content-services/tagApi.spec.ts b/lib/js-api/test/content-services/tagApi.spec.ts
index 6cf98ce6e3..bac4108d9e 100644
--- a/lib/js-api/test/content-services/tagApi.spec.ts
+++ b/lib/js-api/test/content-services/tagApi.spec.ts
@@ -16,7 +16,7 @@
*/
import assert from 'assert';
-import { AlfrescoApi, TagBody, TagEntry, TagsApi } from '../../src';
+import { AlfrescoApi, TagBody, TagEntry, TagPaging, TagsApi } from '../../src';
import { EcmAuthMock, TagMock } from '../mockObjects';
describe('Tags', () => {
@@ -105,10 +105,10 @@ describe('Tags', () => {
describe('createTags', () => {
it('should return created tags', (done) => {
tagMock.createTags201Response();
- tagsApi.createTags([new TagBody(), new TagBody()]).then((tags) => {
- assert.equal(tags.length, 2);
- assert.equal(tags[0].entry.tag, 'tag-test-1');
- assert.equal(tags[1].entry.tag, 'tag-test-2');
+ tagsApi.createTags([new TagBody(), new TagBody()]).then((tags: TagPaging) => {
+ assert.equal(tags.list.entries.length, 2);
+ assert.equal(tags.list.entries[0].entry.tag, 'tag-test-1');
+ assert.equal(tags.list.entries[1].entry.tag, 'tag-test-2');
done();
});
});
diff --git a/lib/js-api/test/mockObjects/content-services/tag.mock.ts b/lib/js-api/test/mockObjects/content-services/tag.mock.ts
index 45ea219932..ba3362c1b3 100644
--- a/lib/js-api/test/mockObjects/content-services/tag.mock.ts
+++ b/lib/js-api/test/mockObjects/content-services/tag.mock.ts
@@ -65,7 +65,7 @@ export class TagMock extends BaseMock {
createTags201Response(): void {
nock(this.host, { encodedQueryParams: true })
.post('/alfresco/api/-default-/public/alfresco/versions/1/tags')
- .reply(201, [this.mockTagEntry(), this.mockTagEntry('tag-test-2', 'd79bdbd0-9f55-45bb-9521-811e15bf48f6')]);
+ .reply(201, this.getPaginatedListOfTags());
}
get201ResponseForAssigningTagsToNode(body: TagBody[]): void {
diff --git a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.html b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.html
index 3225f098a6..7e012915fd 100644
--- a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.html
@@ -96,6 +96,7 @@
mat-button
[disabled]="!isOutcomeButtonEnabled(outcome)"
[class.adf-form-hide-button]="!isOutcomeButtonVisible(outcome, form.readOnly)"
+ class="adf-cloud-form-custom-outcome-button"
(click)="onOutcomeClicked(outcome)"
>
{{ outcome.name | translate | uppercase }}
diff --git a/lib/process-services-cloud/src/lib/i18n/de.json b/lib/process-services-cloud/src/lib/i18n/de.json
index 7148861492..94c2f1f8fe 100644
--- a/lib/process-services-cloud/src/lib/i18n/de.json
+++ b/lib/process-services-cloud/src/lib/i18n/de.json
@@ -312,7 +312,7 @@
"ADF_CLOUD_TASK_HEADER": {
"BUTTON": {
"CLAIM": "Beanspruchen",
- "RELEASE": "Anspruch aufheben"
+ "RELEASE": "Freigeben"
},
"PROPERTIES": {
"TASK_NAME": "Aufgabe",
@@ -373,7 +373,7 @@
"COMPLETE": "Abschließen",
"CANCEL": "Abbrechen",
"CLAIM": "Beanspruchen",
- "UNCLAIM": "Anspruch aufheben"
+ "UNCLAIM": "Freigeben "
}
},
"ERROR": {
diff --git a/lib/process-services/src/lib/i18n/de.json b/lib/process-services/src/lib/i18n/de.json
index 0aa5c81a66..6aeb82cd96 100644
--- a/lib/process-services/src/lib/i18n/de.json
+++ b/lib/process-services/src/lib/i18n/de.json
@@ -73,7 +73,7 @@
"BUTTON": {
"COMPLETE": "Abschließen",
"CLAIM": "Beanspruchen",
- "UNCLAIM": "Anspruch aufheben",
+ "UNCLAIM": "Freigeben ",
"DRAG-ATTACHMENT": "Dateien zum Hochladen ablegen",
"UPLOAD-ATTACHMENT": "Anhang hochladen"
},
@@ -343,7 +343,7 @@
"COMPLETE": "Abschließen",
"CANCEL": "Abbrechen",
"CLAIM": "Beanspruchen",
- "UNCLAIM": "Anspruch aufheben"
+ "UNCLAIM": "Freigeben "
}
},
"COMPLETED_TASK": {