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. |
|
||||
| canClaimTask | `boolean` | | Boolean informing if a task can be claimed. |
|
||||
| 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. |
|
||||
| rootProcessInstanceId | `string` | | Root Process Instance Id to fetch corresponding data. |
|
||||
| readOnly | `boolean` | false | Toggle readonly state of the task. |
|
||||
| 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 |
|
||||
| taskId | `string` | | Task id to fetch corresponding form and values. |
|
||||
| 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. |
|
||||
| showCancelButton | `boolean` | true | Toggle rendering of the `Cancel` 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. |
|
||||
| showValidationIcon | `boolean` | true | Toggle rendering of the `Validation` icon. |
|
||||
| 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')) {
|
||||
this.componentRef.setInput('rootProcessInstanceId', this.rootProcessInstanceId);
|
||||
}
|
||||
if (this.showNextTaskCheckbox && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'showNextTaskCheckbox')) {
|
||||
this.componentRef.setInput('showNextTaskCheckbox', this.showNextTaskCheckbox);
|
||||
if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'showNextTaskCheckbox')) {
|
||||
this.componentRef.setInput('showNextTaskCheckbox', true);
|
||||
}
|
||||
if (this.isNextTaskCheckboxChecked && Object.prototype.hasOwnProperty.call(this.componentRef.instance, 'isNextTaskCheckboxChecked')) {
|
||||
this.componentRef.setInput('isNextTaskCheckboxChecked', this.isNextTaskCheckboxChecked);
|
||||
|
@@ -42,7 +42,7 @@
|
||||
[showCancelButton]="showCancelButton"
|
||||
[taskName]="taskDetails.name"
|
||||
[taskId]="taskId"
|
||||
[showNextTaskCheckbox]="showNextTaskCheckbox && canCompleteTask()"
|
||||
[showNextTaskCheckbox]="canCompleteTask()"
|
||||
[isNextTaskCheckboxChecked]="isNextTaskCheckboxChecked"
|
||||
(cancelTask)="onCancelClick()"
|
||||
(claimTask)="onClaimTask()"
|
||||
|
@@ -514,7 +514,7 @@ describe('UserTaskCloudComponent', () => {
|
||||
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';
|
||||
component.taskDetails = { ...taskDetails };
|
||||
component.getTaskType();
|
||||
@@ -531,66 +531,14 @@ describe('UserTaskCloudComponent', () => {
|
||||
return screenComponent.showNextTaskCheckbox;
|
||||
};
|
||||
|
||||
const prepareTestCase = (testCase: {
|
||||
showNextTaskCheckbox: boolean;
|
||||
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();
|
||||
};
|
||||
|
||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: false });
|
||||
// Test case: canCompleteTask returns false
|
||||
spy.and.returnValue(false);
|
||||
fixture.detectChanges();
|
||||
expect(isCheckboxShown()).toBeFalse();
|
||||
|
||||
prepareTestCase({ showNextTaskCheckbox: false, showCompleteButton: false, readOnly: false, canCompleteTask: true });
|
||||
expect(isCheckboxShown()).toBeFalse();
|
||||
|
||||
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 });
|
||||
// Test case: canCompleteTask returns true
|
||||
spy.and.returnValue(true);
|
||||
fixture.detectChanges();
|
||||
expect(isCheckboxShown()).toBeTrue();
|
||||
});
|
||||
|
||||
|
@@ -112,10 +112,6 @@ export class UserTaskCloudComponent implements OnInit, OnChanges {
|
||||
@Input()
|
||||
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. */
|
||||
@Input()
|
||||
isNextTaskCheckboxChecked = false;
|
||||
|
Reference in New Issue
Block a user