in legacy/src/Calendar/Views.tsx [784:823]
private _getAddCommands(
addEventSources: Calendar_Contracts.IEventSource[],
event: Calendar_Contracts.CalendarEvent,
start: string,
end: string,
): PromiseLike<any[]> {
const commandPromises: PromiseLike<any>[] = [];
let i = 0;
for (const source of addEventSources) {
if (source.getEnhancer) {
commandPromises.push(
source.getEnhancer().then(enhancer => {
return enhancer.canAdd(event, this._currentMember).then((canAdd: boolean) => {
return {
rank: source.order || i,
id: event.id,
text: Utils_String.format("Add {0}", source.name.toLocaleLowerCase()),
icon: enhancer.icon || "icon-add",
disabled: !canAdd,
action: this._addEvent.bind(this, event, source),
} as Controls_Menus.IMenuItemSpec;
});
}),
);
} else {
commandPromises.push(
Promise.resolve({
rank: source.order || i,
id: event.id,
text: Utils_String.format("Add {0}", source.name.toLocaleLowerCase()),
icon: "icon-add",
disabled: false,
action: this._addEvent.bind(this, event, source),
} as Controls_Menus.IMenuItemSpec),
);
}
i++;
}
return Promise.all(commandPromises);
}