mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-07 18:25:09 +00:00
[ADF-4096] ProcessCloud/TaskList - undefined filename attribute (#4333)
* [ADF-4127] ProcessServicesCloud - add claim/unclaim directive (#4464) * [ADF-4127] ProessServicesCloud - claim task directive * [ADF-4127] - fix doc * [ADF-4127] - revert docs changes * [ADF-4127] - revert doc changes * [ADF-4127] - fix doc and reset sourceLinker.js * [ADF-4127] - refractor task-cloud.service. add validation for claim/unclaim and fix unit tests * [ADF-4127] - fix docs files * [ADF-4127[ - add aditional complete task validation * [ADF-4127] - PR changes * [ADF-4127] - complete docs file * [ADF-4127] - more PR changes * [ADF-4127] - change Unclaim task name and wait for task to be claimed and unclaimed before emit the success event * [ADF-4127] - fix unit tests * [ADF-4095] ProcessCloud - change api response format * Revert "[ADF-4095] ProcessCloud - change api response format" This reverts commit 8ddd3477ad3de047911f0538941c65d2bf7e60e2. * [ADF-4096] DatatableComponent - revert changes and remove filename attribute * [ADF-4096] - change filename attribute and fix unit tests * [ADF-4096] - fix core e2e test
This commit is contained in:
parent
e415bd8cd5
commit
c3bbbe6dab
26
docs/process-services-cloud/claim-task.directive.md
Normal file
26
docs/process-services-cloud/claim-task.directive.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
Title: Claim Task Directive
|
||||||
|
Added: v3.1.0
|
||||||
|
Status: Experimental
|
||||||
|
Last reviewed: 2019-03-05
|
||||||
|
---
|
||||||
|
|
||||||
|
# [Claim task directive](../../lib/process-services-cloud/src/lib/task/directives/claim-task.directive.ts "Defined in claim-task.directive.ts")
|
||||||
|
|
||||||
|
Claim a task
|
||||||
|
|
||||||
|
## Basic Usage
|
||||||
|
|
||||||
|
```html
|
||||||
|
<button adf-claim-task [appName]="appName" [taskId]="taskId" (success)="onTaskClaimed()">Complete</button>
|
||||||
|
```
|
||||||
|
## Class members
|
||||||
|
|
||||||
|
### Properties
|
||||||
|
|
||||||
|
| Name | Type | Default value | Description |
|
||||||
|
| ---- | ---- | ------------- | ----------- |
|
||||||
|
| taskId | `string` | empty |(Required) The id of the task. |
|
||||||
|
| appName | `string` | empty | (Required) The name of the application. |
|
||||||
|
| success | `EventEmitter<any>` | empty | Emitted when the task is completed. |
|
||||||
|
| error | `EventEmitter<any>` | empty | Emitted when the task cannot be completed. |
|
26
docs/process-services-cloud/unclaim-tas.directie.md
Normal file
26
docs/process-services-cloud/unclaim-tas.directie.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
Title: Unclaim Task Directive
|
||||||
|
Added: v3.1.0
|
||||||
|
Status: Experimental
|
||||||
|
Last reviewed: 2019-03-05
|
||||||
|
---
|
||||||
|
|
||||||
|
# [Unclaim task directive](../../lib/process-services-cloud/src/lib/task/directives/unclaim-task.directive.ts "Defined in unclaim-task.directive.ts")
|
||||||
|
|
||||||
|
Unclaim a task
|
||||||
|
|
||||||
|
## Basic Usage
|
||||||
|
|
||||||
|
```html
|
||||||
|
<button adf-unclaim-task [appName]="appName" [taskId]="taskId" (success)="onTaskUnclaimed()">Complete</button>
|
||||||
|
```
|
||||||
|
## Class members
|
||||||
|
|
||||||
|
### Properties
|
||||||
|
|
||||||
|
| Name | Type | Default value | Description |
|
||||||
|
| ---- | ---- | ------------- | ----------- |
|
||||||
|
| taskId | `string` | empty |(Required) The id of the task. |
|
||||||
|
| appName | `string` | empty | (Required) The name of the application. |
|
||||||
|
| success | `EventEmitter<any>` | empty | Emitted when the task is completed. |
|
||||||
|
| error | `EventEmitter<any>` | empty | Emitted when the task cannot be completed. |
|
@ -544,7 +544,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkLockIsDisplayedForElement(name) {
|
checkLockIsDisplayedForElement(name) {
|
||||||
const lockButton = element(by.css(`div.adf-datatable-cell[filename="${name}"] button`));
|
const lockButton = element(by.css(`div.adf-datatable-cell[data-automation-id="${name}"] button`));
|
||||||
Util.waitUntilElementIsVisible(lockButton);
|
Util.waitUntilElementIsVisible(lockButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -553,7 +553,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getStyleValueForRowText(rowName, styleName) {
|
async getStyleValueForRowText(rowName, styleName) {
|
||||||
const row = element(by.css(`div.adf-datatable-cell[filename="${rowName}"] span.adf-datatable-cell-value[title="${rowName}"]`));
|
const row = element(by.css(`div.adf-datatable-cell[data-automation-id="${rowName}"] span.adf-datatable-cell-value[title="${rowName}"]`));
|
||||||
Util.waitUntilElementIsVisible(row);
|
Util.waitUntilElementIsVisible(row);
|
||||||
return row.getCssValue(styleName);
|
return row.getCssValue(styleName);
|
||||||
}
|
}
|
||||||
@ -577,7 +577,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkIconForRowIsDisplayed(fileName) {
|
checkIconForRowIsDisplayed(fileName) {
|
||||||
const iconRow = element(by.css(`.adf-document-list-container div.adf-datatable-cell[filename="${fileName}"] img`));
|
const iconRow = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${fileName}"] img`));
|
||||||
Util.waitUntilElementIsVisible(iconRow);
|
Util.waitUntilElementIsVisible(iconRow);
|
||||||
return iconRow;
|
return iconRow;
|
||||||
}
|
}
|
||||||
@ -607,17 +607,17 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getDocumentCardIconForElement(elementName) {
|
getDocumentCardIconForElement(elementName) {
|
||||||
const elementIcon = element(by.css(`.adf-document-list-container div.adf-datatable-cell[filename="${elementName}"] img`));
|
const elementIcon = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"] img`));
|
||||||
return elementIcon.getAttribute('src');
|
return elementIcon.getAttribute('src');
|
||||||
}
|
}
|
||||||
|
|
||||||
checkDocumentCardPropertyIsShowed(elementName, propertyName) {
|
checkDocumentCardPropertyIsShowed(elementName, propertyName) {
|
||||||
const elementProperty = element(by.css(`.adf-document-list-container div.adf-datatable-cell[filename="${elementName}"][title="${propertyName}"]`));
|
const elementProperty = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"][title="${propertyName}"]`));
|
||||||
Util.waitUntilElementIsVisible(elementProperty);
|
Util.waitUntilElementIsVisible(elementProperty);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAttributeValueForElement(elementName, propertyName) {
|
getAttributeValueForElement(elementName, propertyName) {
|
||||||
const elementSize = element(by.css(`.adf-document-list-container div.adf-datatable-cell[filename="${elementName}"][title="${propertyName}"] span`));
|
const elementSize = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"][title="${propertyName}"] span`));
|
||||||
return elementSize.getText();
|
return elementSize.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -627,9 +627,9 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
navigateToCardFolder(folderName) {
|
navigateToCardFolder(folderName) {
|
||||||
const folderCard = element(by.css(`.adf-document-list-container div.adf-image-table-cell.adf-datatable-cell[filename="${folderName}"]`));
|
let folderCard = element(by.css(`.adf-document-list-container div.adf-image-table-cell.adf-datatable-cell[data-automation-id="${folderName}"]`));
|
||||||
folderCard.click();
|
folderCard.click();
|
||||||
const folderSelected = element(by.css(`.adf-datatable-row.adf-is-selected div[filename="${folderName}"].adf-datatable-cell--image`));
|
let folderSelected = element(by.css(`.adf-datatable-row.adf-is-selected div[data-automation-id="${folderName}"].adf-datatable-cell--image`));
|
||||||
Util.waitUntilElementIsVisible(folderSelected);
|
Util.waitUntilElementIsVisible(folderSelected);
|
||||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||||
}
|
}
|
||||||
@ -659,7 +659,7 @@ export class ContentServicesPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clickContentNodeSelectorResult(name) {
|
clickContentNodeSelectorResult(name) {
|
||||||
const resultElement = element.all(by.css(`div[data-automation-id="content-node-selector-content-list"] div[filename="${name}"`)).first();
|
const resultElement = element.all(by.css(`div[data-automation-id="content-node-selector-content-list"] div[data-automation-id="${name}"`)).first();
|
||||||
Util.waitUntilElementIsVisible(resultElement);
|
Util.waitUntilElementIsVisible(resultElement);
|
||||||
resultElement.click();
|
resultElement.click();
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkFileIsAttached(name) {
|
checkFileIsAttached(name) {
|
||||||
const fileAttached = element.all(by.css('div[filename="' + name + '"]')).first();
|
const fileAttached = element.all(by.css('div[data-automation-id="' + name + '"]')).first();
|
||||||
Util.waitUntilElementIsVisible(fileAttached);
|
Util.waitUntilElementIsVisible(fileAttached);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,8 +52,8 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
viewFile(name) {
|
viewFile(name) {
|
||||||
Util.waitUntilElementIsVisible(element.all(by.css('div[filename="' + name + '"]')).first());
|
Util.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
|
||||||
element.all(by.css('div[filename="' + name + '"]')).first().click();
|
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
|
||||||
Util.waitUntilElementIsVisible(this.buttonMenu);
|
Util.waitUntilElementIsVisible(this.buttonMenu);
|
||||||
this.buttonMenu.click();
|
this.buttonMenu.click();
|
||||||
Util.waitUntilElementIsVisible(this.viewButton);
|
Util.waitUntilElementIsVisible(this.viewButton);
|
||||||
@ -64,8 +64,8 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeFile(name) {
|
removeFile(name) {
|
||||||
Util.waitUntilElementIsVisible(element.all(by.css('div[filename="' + name + '"]')).first());
|
Util.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
|
||||||
element.all(by.css('div[filename="' + name + '"]')).first().click();
|
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
|
||||||
Util.waitUntilElementIsVisible(this.buttonMenu);
|
Util.waitUntilElementIsVisible(this.buttonMenu);
|
||||||
this.buttonMenu.click();
|
this.buttonMenu.click();
|
||||||
Util.waitUntilElementIsVisible(this.removeButton);
|
Util.waitUntilElementIsVisible(this.removeButton);
|
||||||
@ -76,8 +76,8 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
downloadFile(name) {
|
downloadFile(name) {
|
||||||
Util.waitUntilElementIsVisible(element.all(by.css('div[filename="' + name + '"]')).first());
|
Util.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
|
||||||
element.all(by.css('div[filename="' + name + '"]')).first().click();
|
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
|
||||||
Util.waitUntilElementIsVisible(this.buttonMenu);
|
Util.waitUntilElementIsVisible(this.buttonMenu);
|
||||||
this.buttonMenu.click();
|
this.buttonMenu.click();
|
||||||
Util.waitUntilElementIsVisible(this.downloadButton);
|
Util.waitUntilElementIsVisible(this.downloadButton);
|
||||||
@ -87,8 +87,8 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
doubleClickFile(name) {
|
doubleClickFile(name) {
|
||||||
Util.waitUntilElementIsVisible(element.all(by.css('div[filename="' + name + '"]')).first());
|
Util.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
|
||||||
const fileAttached = element.all(by.css('div[filename="' + name + '"]')).first();
|
const fileAttached = element.all(by.css('div[data-automation-id="' + name + '"]')).first();
|
||||||
Util.waitUntilElementIsVisible(fileAttached);
|
Util.waitUntilElementIsVisible(fileAttached);
|
||||||
Util.waitUntilElementIsClickable(fileAttached);
|
Util.waitUntilElementIsClickable(fileAttached);
|
||||||
fileAttached.click();
|
fileAttached.click();
|
||||||
@ -96,7 +96,7 @@ export class AttachmentListPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkFileIsRemoved(name) {
|
checkFileIsRemoved(name) {
|
||||||
const fileAttached = element.all(by.css('div[filename="' + name + '"]')).first();
|
const fileAttached = element.all(by.css('div[data-automation-id="' + name + '"]')).first();
|
||||||
Util.waitUntilElementIsNotVisible(fileAttached);
|
Util.waitUntilElementIsNotVisible(fileAttached);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ export class ViewerPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
viewFile(fileName) {
|
viewFile(fileName) {
|
||||||
const fileView = element.all(by.css(`#document-list-container div[filename="${fileName}"]`)).first();
|
const fileView = element.all(by.css(`#document-list-container div[data-automation-id="${fileName}"]`)).first();
|
||||||
Util.waitUntilElementIsVisible(fileView);
|
Util.waitUntilElementIsVisible(fileView);
|
||||||
fileView.click();
|
fileView.click();
|
||||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
role="gridcell"
|
role="gridcell"
|
||||||
class=" adf-datatable-cell adf-datatable-cell--{{col.type || 'text'}} {{col.cssClass}}"
|
class=" adf-datatable-cell adf-datatable-cell--{{col.type || 'text'}} {{col.cssClass}}"
|
||||||
[attr.title]="col.title | translate"
|
[attr.title]="col.title | translate"
|
||||||
[attr.filename]="getFilename(row)"
|
[attr.data-automation-id]="getAutomationValue(row, col)"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
(click)="onRowClick(row, $event)"
|
(click)="onRowClick(row, $event)"
|
||||||
(keydown.enter)="onEnterKeyPressed(row, $event)"
|
(keydown.enter)="onEnterKeyPressed(row, $event)"
|
||||||
|
@ -599,10 +599,6 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
|
|||||||
return `${row.cssClass} ${this.rowStyleClass}`;
|
return `${row.cssClass} ${this.rowStyleClass}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
getFilename(row: DataRow): string {
|
|
||||||
return row.getValue('name');
|
|
||||||
}
|
|
||||||
|
|
||||||
getSortingKey(): string {
|
getSortingKey(): string {
|
||||||
if (this.data.getSorting()) {
|
if (this.data.getSorting()) {
|
||||||
return this.data.getSorting().key;
|
return this.data.getSorting().key;
|
||||||
@ -694,4 +690,15 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
|
|||||||
this.fakeRows = [];
|
this.fakeRows = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNameColumnValue() {
|
||||||
|
return this.data.getColumns().find( (el: any) => {
|
||||||
|
return el.key.includes('name');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getAutomationValue(row: DataRow, col: DataColumn) {
|
||||||
|
const name = this.getNameColumnValue();
|
||||||
|
return name ? row.getValue(name.key) : '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@
|
|||||||
"ADF_CLOUD_TASK_HEADER": {
|
"ADF_CLOUD_TASK_HEADER": {
|
||||||
"BUTTON": {
|
"BUTTON": {
|
||||||
"CLAIM": "Claim",
|
"CLAIM": "Claim",
|
||||||
"UNCLAIM": "Requeue"
|
"UNCLAIM": "Release"
|
||||||
},
|
},
|
||||||
"PROPERTIES": {
|
"PROPERTIES": {
|
||||||
"TASK_NAME": "Task",
|
"TASK_NAME": "Task",
|
||||||
|
@ -73,7 +73,7 @@
|
|||||||
"BUTTON": {
|
"BUTTON": {
|
||||||
"COMPLETE": "Complete",
|
"COMPLETE": "Complete",
|
||||||
"CLAIM": "Claim",
|
"CLAIM": "Claim",
|
||||||
"UNCLAIM": "Requeue",
|
"UNCLAIM": "Release",
|
||||||
"DRAG-ATTACHMENT": "Drop files to upload",
|
"DRAG-ATTACHMENT": "Drop files to upload",
|
||||||
"UPLOAD-ATTACHMENT": "Upload Attachment"
|
"UPLOAD-ATTACHMENT": "Upload Attachment"
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user