Merge pull request #6087 from FinnStutzenstein/multiselectListOfSpeakersClosed
Multiselect open/close LOS in agenda
This commit is contained in:
commit
e0da18a0e6
@ -103,13 +103,14 @@
|
||||
|
||||
<mat-menu #agendaMenu="matMenu">
|
||||
<div *ngIf="!isMultiSelect">
|
||||
<div *osPerms="'agenda.can_manage'">
|
||||
<div *osPerms="['agenda.can_manage', 'agenda.can_manage_list_of_speakers']">
|
||||
<!-- Enable multi select -->
|
||||
<button mat-menu-item (click)="toggleMultiSelect()">
|
||||
<mat-icon>library_add</mat-icon>
|
||||
<span>{{ 'Multiselect' | translate }}</span>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
<div *osPerms="'agenda.can_manage'">
|
||||
<mat-divider></mat-divider>
|
||||
|
||||
<!-- automatic numbering -->
|
||||
@ -235,6 +236,23 @@
|
||||
<span>{{ 'Remove from agenda' | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<ng-container *osPerms="['agenda.can_manage', 'agenda.can_manage_list_of_speakers']">
|
||||
<mat-divider></mat-divider>
|
||||
</ng-container>
|
||||
<div *osPerms="'agenda.can_manage_list_of_speakers'">
|
||||
<!-- Close selected -->
|
||||
<button mat-menu-item [disabled]="!selectedRows.length" (click)="setClosedListsOfSpeakersSelected(true)">
|
||||
<mat-icon>lock</mat-icon>
|
||||
<span>{{ 'Close list of speakers' | translate }}</span>
|
||||
</button>
|
||||
|
||||
<!-- Open selected -->
|
||||
<button mat-menu-item [disabled]="!selectedRows.length" (click)="setClosedListsOfSpeakersSelected(false)">
|
||||
<mat-icon>lock_open</mat-icon>
|
||||
<span>{{ 'Open list of speakers' | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</mat-menu>
|
||||
|
||||
|
@ -303,6 +303,25 @@ export class AgendaListComponent extends BaseListViewComponent<ViewItem> impleme
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets multiple entries' open/closed state. Needs items in selectedRows, which
|
||||
* is only filled with any data in multiSelect mode
|
||||
*
|
||||
* @param closed true if the item is to be considered done
|
||||
*/
|
||||
public async setClosedListsOfSpeakersSelected(closed: boolean): Promise<void> {
|
||||
try {
|
||||
for (const item of this.selectedRows) {
|
||||
const los = (item.contentObject as any)?.listOfSpeakers;
|
||||
if (los) {
|
||||
await this.listOfSpeakersRepo.update({ closed: closed }, los);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
this.raiseError(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Export all items as CSV
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user