move to agenda
This commit is contained in:
parent
212bce1c08
commit
428e58db9b
@ -133,7 +133,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<div *osPerms="'motions.can_manage'">
|
<div *osPerms="'motions.can_manage'">
|
||||||
<mat-divider></mat-divider>
|
<mat-divider></mat-divider>
|
||||||
<button mat-menu-item>
|
<button mat-menu-item (click)="multiselectWrapper(multiselectService.moveToItem(selectedRows))">
|
||||||
<!-- TODO: Not implemented yet -->
|
<!-- TODO: Not implemented yet -->
|
||||||
<mat-icon>sort</mat-icon>
|
<mat-icon>sort</mat-icon>
|
||||||
<span translate>Move to agenda item</span>
|
<span translate>Move to agenda item</span>
|
||||||
|
@ -179,6 +179,6 @@ export class MotionListComponent extends ListViewBaseComponent<ViewMotion> imple
|
|||||||
* @param multiselectPromise The promise returned by multiselect actions.
|
* @param multiselectPromise The promise returned by multiselect actions.
|
||||||
*/
|
*/
|
||||||
public multiselectWrapper(multiselectPromise: Promise<void>): void {
|
public multiselectWrapper(multiselectPromise: Promise<void>): void {
|
||||||
multiselectPromise.then(() => this.toggleMultiSelect());
|
multiselectPromise.then(() => this.toggleMultiSelect(), this.raiseError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,9 @@ import { WorkflowRepositoryService } from './workflow-repository.service';
|
|||||||
import { CategoryRepositoryService } from './category-repository.service';
|
import { CategoryRepositoryService } from './category-repository.service';
|
||||||
import { TagRepositoryService } from 'app/site/tags/services/tag-repository.service';
|
import { TagRepositoryService } from 'app/site/tags/services/tag-repository.service';
|
||||||
import { HttpService } from 'app/core/services/http.service';
|
import { HttpService } from 'app/core/services/http.service';
|
||||||
|
import { AgendaRepositoryService } from 'app/site/agenda/services/agenda-repository.service';
|
||||||
|
import { Displayable } from 'app/shared/models/base/displayable';
|
||||||
|
import { Identifiable } from 'app/shared/models/base/identifiable';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains all multiselect actions for the motion list view.
|
* Contains all multiselect actions for the motion list view.
|
||||||
@ -40,6 +43,7 @@ export class MotionMultiselectService {
|
|||||||
private workflowRepo: WorkflowRepositoryService,
|
private workflowRepo: WorkflowRepositoryService,
|
||||||
private categoryRepo: CategoryRepositoryService,
|
private categoryRepo: CategoryRepositoryService,
|
||||||
private tagRepo: TagRepositoryService,
|
private tagRepo: TagRepositoryService,
|
||||||
|
private agendaRepo: AgendaRepositoryService,
|
||||||
private httpService: HttpService
|
private httpService: HttpService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -57,6 +61,22 @@ export class MotionMultiselectService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves the related agenda items from the motions as childs under a selected (parent) agenda item.
|
||||||
|
*/
|
||||||
|
public async moveToItem(motions: ViewMotion[]): Promise<void> {
|
||||||
|
const title = this.translate.instant('This will move all selected motions as childs to:');
|
||||||
|
const choices: (Displayable & Identifiable)[] = this.agendaRepo.getViewModelList();
|
||||||
|
const selectedChoice = await this.choiceService.open(title, choices);
|
||||||
|
if (selectedChoice) {
|
||||||
|
const requestData = {
|
||||||
|
items: motions.map(motion => motion.agenda_item_id),
|
||||||
|
parent_id: selectedChoice as number
|
||||||
|
};
|
||||||
|
await this.httpService.post('/rest/agenda/item/assign', requestData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opens a dialog and then sets the status for all motions.
|
* Opens a dialog and then sets the status for all motions.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user