mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-09-17 14:21:29 +00:00
Simplifies next task checkbox logic
Removes the `showNextTaskCheckbox` input from the `UserTaskCloudComponent` and `ScreenCloudComponent`. The visibility of the "Open next task" checkbox is now solely determined by the `canCompleteTask` method in `UserTaskCloudComponent`. This change ensures that the checkbox is only displayed when the user has the ability to complete the task.
This commit is contained in:
@@ -60,10 +60,12 @@ export class YourService extends ScreenRenderingService {
|
|||||||
| appName | `string` | "" | App id to fetch corresponding form and values. |
|
| appName | `string` | "" | App id to fetch corresponding form and values. |
|
||||||
| canClaimTask | `boolean` | | Boolean informing if a task can be claimed. |
|
| canClaimTask | `boolean` | | Boolean informing if a task can be claimed. |
|
||||||
| canUnclaimTask | `boolean` | | Boolean informing if a task can be unclaimed. |
|
| canUnclaimTask | `boolean` | | Boolean informing if a task can be unclaimed. |
|
||||||
|
| isNextTaskCheckboxChecked | `boolean` | false | Whether the `Open next task` checkbox is checked by default or not. |
|
||||||
| processInstanceId | `string` | | Process Instance Id to fetch corresponding data. |
|
| processInstanceId | `string` | | Process Instance Id to fetch corresponding data. |
|
||||||
| rootProcessInstanceId | `string` | | Root Process Instance Id to fetch corresponding data. |
|
| rootProcessInstanceId | `string` | | Root Process Instance Id to fetch corresponding data. |
|
||||||
| readOnly | `boolean` | false | Toggle readonly state of the task. |
|
| readOnly | `boolean` | false | Toggle readonly state of the task. |
|
||||||
| showCancelButton | `boolean` | true | Toggle rendering of the `Cancel` button. |
|
| showCancelButton | `boolean` | true | Toggle rendering of the `Cancel` button. |
|
||||||
|
| showNextTaskCheckbox | `boolean` | false | Toggle rendering of the `Open next task` checkbox (controlled internally by parent component). |
|
||||||
| screenId | `string` | | Screen id to create dynamic component |
|
| screenId | `string` | | Screen id to create dynamic component |
|
||||||
| taskId | `string` | | Task id to fetch corresponding form and values. |
|
| taskId | `string` | | Task id to fetch corresponding form and values. |
|
||||||
| taskName | `string` | | Name of the task. |
|
| taskName | `string` | | Name of the task. |
|
||||||
|
@@ -40,7 +40,7 @@ Based on property taskDetails: TaskDetailsCloudModel shows a form or a screen.
|
|||||||
| readOnly | `boolean` | false | Toggle readonly state of the task. |
|
| readOnly | `boolean` | false | Toggle readonly state of the task. |
|
||||||
| showCancelButton | `boolean` | true | Toggle rendering of the `Cancel` button. |
|
| showCancelButton | `boolean` | true | Toggle rendering of the `Cancel` button. |
|
||||||
| showCompleteButton | `boolean` | true | Toggle rendering of the `Complete` button. |
|
| showCompleteButton | `boolean` | true | Toggle rendering of the `Complete` button. |
|
||||||
| showNextTaskCheckbox | `boolean` | false | Toggle rendering of the `Open next task` checkbox. |
|
| showSaveButton | `boolean` | true | Toggle rendering of the `Save` button. |
|
||||||
| showTitle | `boolean` | true | Toggle rendering of the form title. |
|
| showTitle | `boolean` | true | Toggle rendering of the form title. |
|
||||||
| showValidationIcon | `boolean` | true | Toggle rendering of the `Validation` icon. |
|
| showValidationIcon | `boolean` | true | Toggle rendering of the `Validation` icon. |
|
||||||
| taskId | `string` | | Task id to fetch corresponding form and values. |
|
| taskId | `string` | | Task id to fetch corresponding form and values. |
|
||||||
|
@@ -153,8 +153,8 @@ export class TaskScreenCloudComponent implements OnInit {
|
|||||||
if (this.rootProcessInstanceId && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'rootProcessInstanceId')) {
|
if (this.rootProcessInstanceId && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'rootProcessInstanceId')) {
|
||||||
this.componentRef.setInput('rootProcessInstanceId', this.rootProcessInstanceId);
|
this.componentRef.setInput('rootProcessInstanceId', this.rootProcessInstanceId);
|
||||||
}
|
}
|
||||||
if (this.showNextTaskCheckbox && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'showNextTaskCheckbox')) {
|
if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'showNextTaskCheckbox')) {
|
||||||
this.componentRef.setInput('showNextTaskCheckbox', this.showNextTaskCheckbox);
|
this.componentRef.setInput('showNextTaskCheckbox', true);
|
||||||
}
|
}
|
||||||
if (this.isNextTaskCheckboxChecked && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'isNextTaskCheckboxChecked')) {
|
if (this.isNextTaskCheckboxChecked && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'isNextTaskCheckboxChecked')) {
|
||||||
this.componentRef.setInput('isNextTaskCheckboxChecked', this.isNextTaskCheckboxChecked);
|
this.componentRef.setInput('isNextTaskCheckboxChecked', this.isNextTaskCheckboxChecked);
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
[showCancelButton]="showCancelButton"
|
[showCancelButton]="showCancelButton"
|
||||||
[taskName]="taskDetails.name"
|
[taskName]="taskDetails.name"
|
||||||
[taskId]="taskId"
|
[taskId]="taskId"
|
||||||
[showNextTaskCheckbox]="showNextTaskCheckbox && canCompleteTask()"
|
[showNextTaskCheckbox]="canCompleteTask()"
|
||||||
[isNextTaskCheckboxChecked]="isNextTaskCheckboxChecked"
|
[isNextTaskCheckboxChecked]="isNextTaskCheckboxChecked"
|
||||||
(cancelTask)="onCancelClick()"
|
(cancelTask)="onCancelClick()"
|
||||||
(claimTask)="onClaimTask()"
|
(claimTask)="onClaimTask()"
|
||||||
|
@@ -514,7 +514,7 @@ describe('UserTaskCloudComponent', () => {
|
|||||||
expect(noFormTemplateTitleText).toBe('');
|
expect(noFormTemplateTitleText).toBe('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should allow controlling [open next task] checkbox visibility', () => {
|
it('should show [open next task] checkbox based on canCompleteTask result', () => {
|
||||||
taskDetails.formKey = 'my-screen';
|
taskDetails.formKey = 'my-screen';
|
||||||
component.taskDetails = { ...taskDetails };
|
component.taskDetails = { ...taskDetails };
|
||||||
component.getTaskType();
|
component.getTaskType();
|
||||||
@@ -531,66 +531,14 @@ describe('UserTaskCloudComponent', () => {
|
|||||||
return screenComponent.showNextTaskCheckbox;
|
return screenComponent.showNextTaskCheckbox;
|
||||||
};
|
};
|
||||||
|
|
||||||
const prepareTestCase = (testCase: {
|
// Test case: canCompleteTask returns false
|
||||||
showNextTaskCheckbox: boolean;
|
spy.and.returnValue(false);
|
||||||
showCompleteButton: boolean;
|
|
||||||
readOnly: boolean;
|
|
||||||
canCompleteTask: boolean;
|
|
||||||
}): void => {
|
|
||||||
component.showNextTaskCheckbox = testCase.showNextTaskCheckbox;
|
|
||||||
component.showCompleteButton = testCase.showCompleteButton;
|
|
||||||
component.readOnly = testCase.readOnly;
|
|
||||||
spy.calls.reset();
|
|
||||||
spy.and.returnValue(testCase.canCompleteTask);
|
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
};
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
expect(isCheckboxShown()).toBeFalse();
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: true });
|
// Test case: canCompleteTask returns true
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
spy.and.returnValue(true);
|
||||||
|
fixture.detectChanges();
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: true, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: true, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: false, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: false, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: true, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: true, readOnly: true, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: false, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: false, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: true, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: false, readOnly: true, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: true, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: true, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: false, canCompleteTask: false });
|
|
||||||
expect(isCheckboxShown()).toBeFalse();
|
|
||||||
|
|
||||||
prepareTestCase({ showNextTaskCheckbox: true, showCompleteButton: true, readOnly: false, canCompleteTask: true });
|
|
||||||
expect(isCheckboxShown()).toBeTrue();
|
expect(isCheckboxShown()).toBeTrue();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -112,10 +112,6 @@ export class UserTaskCloudComponent implements OnInit, OnChanges {
|
|||||||
@Input()
|
@Input()
|
||||||
customSaveButtonText: string = '';
|
customSaveButtonText: string = '';
|
||||||
|
|
||||||
/** Toggle rendering of the `Open next task` checkbox (for screens only). */
|
|
||||||
@Input()
|
|
||||||
showNextTaskCheckbox = false;
|
|
||||||
|
|
||||||
/** Whether the `Open next task` checkbox is checked by default or not. */
|
/** Whether the `Open next task` checkbox is checked by default or not. */
|
||||||
@Input()
|
@Input()
|
||||||
isNextTaskCheckboxChecked = false;
|
isNextTaskCheckboxChecked = false;
|
||||||
|
Reference in New Issue
Block a user