feat: request portal — bespoke forms + approval mechanism
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Описание одной колонки списка SharePoint — единый источник правды.
|
||||
* Из этих описаний провижинер создаёт колонки в списке (см. provisioning/),
|
||||
* а позже те же описания будут питать чтение/запись данных формы.
|
||||
*
|
||||
* ВАЖНО про имена: internalName — латиница без пробелов, ≤32 символов
|
||||
* (иначе SharePoint закодирует пробелы в "_x0020_" и обращения к полю сломаются).
|
||||
* title — отображаемое имя, может быть на русском и с пробелами.
|
||||
*/
|
||||
export type SpFieldType =
|
||||
| 'Text' // однострочный текст
|
||||
| 'Note' // многострочный текст
|
||||
| 'Number' // число
|
||||
| 'Choice' // выбор из вариантов
|
||||
| 'DateTime' // дата/время
|
||||
| 'Boolean' // да/нет
|
||||
| 'User' // пользователь
|
||||
| 'Lookup'; // подстановка (связь с другим списком)
|
||||
|
||||
export interface IColumnDef {
|
||||
/** Внутреннее имя в SharePoint: латиница, без пробелов, ≤32 символов. */
|
||||
internalName: string;
|
||||
/** Отображаемое имя колонки (можно рус., с пробелами). */
|
||||
title: string;
|
||||
/** Тип колонки. */
|
||||
type: SpFieldType;
|
||||
/** Обязательная ли колонка. По умолчанию — нет. */
|
||||
required?: boolean;
|
||||
/** Варианты для type === 'Choice'. */
|
||||
choices?: string[];
|
||||
/** Знаков после запятой для type === 'Number'. По умолчанию — авто. */
|
||||
decimals?: number;
|
||||
/** Для type === 'DateTime': только дата, без времени. */
|
||||
dateOnly?: boolean;
|
||||
/** Заголовок списка-источника для type === 'Lookup'. */
|
||||
lookupList?: string;
|
||||
/** Какое поле источника показывать в подстановке. По умолчанию — 'Title'. */
|
||||
lookupShowField?: string;
|
||||
/** Для type === 'User': кого можно выбирать. По умолчанию — как в SharePoint. */
|
||||
userSelectionMode?: 'PeopleOnly' | 'PeopleAndGroups';
|
||||
/** Для type === 'User': разрешить выбор нескольких (создаётся колонка UserMulti). */
|
||||
allowMultiple?: boolean;
|
||||
}
|
||||
|
||||
/** Манифест провижининга формы: список данных + его колонки. */
|
||||
export interface IFormProvisioning {
|
||||
/** Отображаемое имя списка данных формы. */
|
||||
dataListTitle: string;
|
||||
/** Переименовать стандартную колонку Title (если задано). */
|
||||
titleColumnName?: string;
|
||||
/** Колонки списка данных. */
|
||||
columns: IColumnDef[];
|
||||
}
|
||||
Reference in New Issue
Block a user