diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts index f43f344ac3..8c7659ae7e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts @@ -100,6 +100,10 @@ export class MotionFormComponent extends BaseMeetingComponent implements OnInit return this.perms.isAllowed(`change_metadata`, this.motion); } + public get canManageAgenda(): boolean { + return this.perms.canManageAgenda(); + } + public get isParagraphBasedAmendment(): boolean { return this.isExisting && this.motion.isParagraphBasedAmendment(); } @@ -207,6 +211,11 @@ export class MotionFormComponent extends BaseMeetingComponent implements OnInit public saveMotion(event?: any): () => Promise { return async () => { const update = event || this.temporaryMotion; + for (const key in update) { + if (update[key] === null || update[key].length === 0) { + delete update[key]; + } + } if (this.newMotion) { await this.createMotion(update); } else { @@ -582,7 +591,9 @@ export class MotionFormComponent extends BaseMeetingComponent implements OnInit number: [ ``, isUniqueAmong(this._motionNumbersSubject, (a, b) => a === b, [``, null, undefined]) - ], + ] + }), + ...(this.canManageAgenda && { agenda_create: [``], agenda_type: [``] }) diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts index 0e876d5917..74566e619a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/motion-permission.service/motion-permission.service.ts @@ -55,6 +55,10 @@ export class MotionPermissionService { ); } + public canManageAgenda(): boolean { + return this.operator.hasPerms(Permission.agendaItemCanManage); + } + public canDoActionWhileDelegationEnabled(isAdditionalDelegationSettingEnabled: boolean): boolean { return !( !this.operator.isAnonymous &&