public getFields()

in legacy/src/Calendar/Dialogs.ts [686:741]


    public getFields(): PromiseLike<Calendar_Contracts.IAddEventContent> {
        return this._options.membersPromise.then((members: WebApi_Contracts.IdentityRef[]) => {
            this._members = members;
            const memberNames = [];
            memberNames.push(EditCapacityEventControl.EVERYONE);
            members.sort((a, b) => {
                return a.displayName.toLocaleLowerCase().localeCompare(b.displayName.toLocaleLowerCase());
            });
            members.forEach((member: WebApi_Contracts.IdentityRef, index: number, array: WebApi_Contracts.IdentityRef[]) => {
                memberNames.push(member.displayName);
            });

            const initialMemberValue = this._calendarEvent.member.displayName || "";
            let disabled = false;
            if (this._options.isEdit) {
                disabled = true;
            }

            return this._options.getIterations().then(iterations => {
                this._iterations = iterations;
                let initialIterationValue = iterations[0].name;
                let iteration;
                if (this._calendarEvent.iterationId) {
                    iteration = iterations.filter(i => i.id === this._calendarEvent.iterationId)[0];
                } else {
                    iteration = this._getCurrentIteration(iterations, new Date(this._calendarEvent.startDate));
                }
                if (iteration) {
                    initialIterationValue = iteration.name;
                }
                return <Calendar_Contracts.IAddEventContent>{
                    start: true,
                    end: true,
                    comboFields: [
                        <Calendar_Contracts.IAddEventComboField>{
                            label: "Team Member",
                            initialValue: initialMemberValue,
                            items: memberNames,
                            disabled: disabled,
                            checkValid: this._checkMemberValid.bind(this),
                            okCallback: this._memberCallback.bind(this),
                        },
                        <Calendar_Contracts.IAddEventComboField>{
                            label: "Iteration",
                            initialValue: initialIterationValue,
                            items: iterations.map(iteration => {
                                return iteration.name;
                            }),
                            checkValid: this._checkIterationValid.bind(this),
                            okCallback: this._iterationCallback.bind(this),
                        },
                    ],
                };
            });
        });
    }