98376: Replaced EPersonListComponent with MembersListComponent & display error for empty reviewers list

This commit is contained in:
Alexandre Vryghem
2023-01-11 20:28:54 +01:00
parent 7cee2aac6f
commit 11b6ec9a9e
11 changed files with 123 additions and 825 deletions

View File

@@ -7,9 +7,12 @@
[groupId]="groupId"
[ngClass]="groupId ? 'reviewersListWithGroup' : ''"
[multipleReviewers]="multipleReviewers"
(selectedReviewersUpdated)="selectedReviewers = $event"
(selectedReviewersUpdated)="selectedReviewers = $event; displayError = false"
messagePrefix="advanced-workflow-action-select-reviewer.groups.form.reviewers-list"
></ds-reviewers-list>
<small *ngIf="displayError" class="invalid-feedback d-block mb-3">
{{ 'advanced-workflow-action.select-reviewer.no-reviewer-selected.error' | translate }}
</small>
<ds-modify-item-overview *ngIf="item$ | async"
[item]="item$ | async">

View File

@@ -9,7 +9,7 @@ import {
} from '../../../core/tasks/models/select-reviewer-action-advanced-info.model';
import {
EPersonListActionConfig
} from '../../../access-control/group-registry/group-form/eperson-list/eperson-list.component';
} from '../../../access-control/group-registry/group-form/members-list/members-list.component';
import { Subscription } from 'rxjs';
import { EPerson } from '../../../core/eperson/models/eperson.model';
@@ -38,6 +38,8 @@ export class AdvancedWorkflowActionSelectReviewerComponent extends AdvancedWorkf
subs: Subscription[] = [];
displayError = false;
ngOnDestroy(): void {
this.subs.forEach((subscription: Subscription) => subscription.unsubscribe());
}
@@ -84,6 +86,15 @@ export class AdvancedWorkflowActionSelectReviewerComponent extends AdvancedWorkf
return ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER;
}
performAction(): void {
if (this.selectedReviewers.length > 0) {
super.performAction();
} else {
this.displayError = true;
}
console.log(this.displayError);
}
createBody(): any {
return {
[WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER]: true,

View File

@@ -8,15 +8,14 @@ import { NotificationsService } from '../../../../shared/notifications/notificat
import { PaginationService } from '../../../../core/pagination/pagination.service';
import { Group } from '../../../../core/eperson/models/group.model';
import { getFirstSucceededRemoteDataPayload } from '../../../../core/shared/operators';
import {
EPersonListComponent,
EPersonListActionConfig
} from '../../../../access-control/group-registry/group-form/eperson-list/eperson-list.component';
import { EpersonDtoModel } from '../../../../core/eperson/models/eperson-dto.model';
import { EPerson } from '../../../../core/eperson/models/eperson.model';
import { Observable, of as observableOf } from 'rxjs';
import { hasValue } from '../../../../shared/empty.util';
import { PaginatedList } from '../../../../core/data/paginated-list.model';
import {
MembersListComponent, EPersonListActionConfig
} from '../../../../access-control/group-registry/group-form/members-list/members-list.component';
/**
* Keys to keep track of specific subscriptions
@@ -30,9 +29,9 @@ enum SubKey {
@Component({
selector: 'ds-reviewers-list',
// templateUrl: './reviewers-list.component.html',
templateUrl: '../../../../access-control/group-registry/group-form/eperson-list/eperson-list.component.html',
templateUrl: '../../../../access-control/group-registry/group-form/members-list/members-list.component.html',
})
export class ReviewersListComponent extends EPersonListComponent implements OnInit, OnChanges, OnDestroy {
export class ReviewersListComponent extends MembersListComponent implements OnInit, OnChanges, OnDestroy {
@Input()
groupId: string | null;