Good morning,
I currently have this cell menu:
this.rowSubMenu.forEach(el => {
subMenuRow.push({
text : el.descrizioneGate,
codice: el.id,
async onItem(event:any) {
component.isUpdating = true
let arrayOfChanges : {gate:IGateGantt | null,corsa:ICorseGantt,tipoGiorno:number}[] = []
let gateToAssign = await component.corseAssegnateResources.find(gate => this.codice === gate.id)
component.isUpdating = false
let rowEvents = await [...component.corseNonAssegnateEvents.filter(corsa => corsa.resourceId === event.id)]
await rowEvents.forEach(corsa => {
arrayOfChanges.push({gate:gateToAssign!,corsa:corsa,tipoGiorno:component.currentSetCorsa.codice})
});
await component.ganttService.updateCorse(arrayOfChanges).pipe(
switchMap((res: any) => {
res.forEach((element: any) => {
if (element.msg && element.msg !== '') {
if(!element.saved){
component.messageService.add({ severity: 'error', summary: 'Errore di sovrapposizione', detail: element.msg });
}else{
component.messageService.add({ severity: 'warn', summary: 'Violazione vincoli', detail: element.msg });
}
}
});
if(res.some((el:any) => el.saved)){
component.messageService.add({ severity: 'success', summary: 'Successo', detail: 'Corsa associata con successo' });
}
// return component.loadCorseScoperte(true)
return component.loadGateCorseAssegnate()
}),
// switchMap((res: any) => {
// return component.loadForkJoinCorse(res)
// })
switchMap((res: ICorsaGate) => {
component.schedulerAssegnatiContainer.instance.eventStore.data = res.resCorsa;
component.corseAssegnateEvents = res.resCorsa
component.schedulerAssegnatiContainer.instance.resourceStore.data = res.resGate.gates;
component.corseAssegnateResources = res.resGate.gates
component.schedulerAssegnatiContainer.resourceTimeRanges = res.resGate.timeRanges
component.timeRanges = res.resGate.timeRanges
return component.loadCorseScoperte(true)
})
).subscribe({
next: (results) => {
component.schedulerNonAssegnatiContainer.instance.eventStore.data = results.corseScoperte;
component.corseNonAssegnateEvents = results.corseScoperte
// component.schedulerAssegnatiContainer.instance.eventStore.data = results.corse;
// component.corseAssegnateEvents = results.corse
component.isUpdating = false
}
})
},
})
})
this.nonAssegnateCellMenu = {
items : {
extraItem : {
text : 'Assegna riga',
icon : '',
menu:subMenuRow
},
removeRow : false,
cut : false,
copy : false,
paste : false
}
}
<bryntum-scheduler #schedulerNonAssegnatiContainer
class="schedulerContainer"
[viewPreset]="viewPreset"
[columns]="columnsNonAssegnate"
[startDate]="startDate"
[endDate]="endDate"
[resources]="corseNonAssegnateResources"
[eventStore]="{data:corseNonAssegnateEvents}"
[createEventOnDblClick]="false"
[zoomOnTimeAxisDoubleClick]="false"
[rowHeight]="40"
[barMargin]="0"
[multiEventSelect]="true"
[allowOverlap]="false"
[allowDropOnEventBar]="false"
[zoomOnMouseWheel]="false"
(onBeforeEventDropFinalize)="onEventDropFinalize($event)"
[getDateConstraints]="getDateConstraints"
(onEventClick)="onEventClick($event)"
[eventTooltipFeature]="false"
[scheduleTooltipFeature]="false"
[scheduleMenuFeature]="false"
[timeAxisHeaderMenuFeature]="false"
[cellMenuFeature]="nonAssegnateCellMenu"
[eventDragCreateFeature]="false"
[eventEditFeature]="false"
[eventResizeFeature]="false"
[eventDragSelectFeature]="true"
[filterBarFeature]="true"
[columnRenameFeature]="false"
[cellEditFeature]="false"
[eventDragFeature]="{
constrainDragToTimeline : false,
constrainDragToTimeSlot:true,
}"
[eventMenuFeature]="corseNonAssegnateEventMenu"
></bryntum-scheduler>
After some API calls, I should be able to reassign the submenu with different items. How do I reassign the items?
thanks