private _getAddCommands()

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);
    }