feat(documents): папки шаблонов, маппинги и поле document_template; fix(batch): атомарное создание задач, idempotency и массовое удаление в реестре
This commit is contained in:
@@ -434,7 +434,7 @@ export function registerTaskFieldRoutes(router: ReturnType<typeof import("expres
|
||||
return res.status(400).json({ success: false, error: immutableErrorsSingle.join('\n') });
|
||||
}
|
||||
|
||||
const INLINE_EDITABLE_FIELD_TYPES = new Set(['text', 'number', 'textarea', 'date', 'datetime', 'select', 'radio-group', 'checkbox', 'toggle', 'user', 'file', 'geo', 'contract-number', 'table', 'checklist', 'contact']);
|
||||
const INLINE_EDITABLE_FIELD_TYPES = new Set(['text', 'number', 'textarea', 'date', 'datetime', 'select', 'radio-group', 'checkbox', 'toggle', 'user', 'file', 'geo', 'contract-number', 'table', 'checklist', 'contact', 'document_template']);
|
||||
if (!INLINE_EDITABLE_FIELD_TYPES.has(field.type)) {
|
||||
return res.status(400).json({ success: false, error: `Поле типа «${field.type}» не поддерживает inline-редактирование` });
|
||||
}
|
||||
@@ -607,7 +607,7 @@ export function registerTaskFieldRoutes(router: ReturnType<typeof import("expres
|
||||
}
|
||||
const fieldIds = entries.map(([k]) => parseInt(k, 10));
|
||||
|
||||
const INLINE_EDITABLE_FIELD_TYPES = new Set(['text', 'number', 'textarea', 'date', 'datetime', 'select', 'radio-group', 'checkbox', 'toggle', 'user', 'file', 'geo', 'checklist', 'contact']);
|
||||
const INLINE_EDITABLE_FIELD_TYPES = new Set(['text', 'number', 'textarea', 'date', 'datetime', 'select', 'radio-group', 'checkbox', 'toggle', 'user', 'file', 'geo', 'checklist', 'contact', 'document_template']);
|
||||
const formFields = await storage.getFormFields(existingTask.formId, req.organizationId!);
|
||||
const fieldMap = new Map(formFields.map(f => [f.id, f]));
|
||||
const existingValues = await storage.getTaskFieldValues(taskId, req.organizationId!);
|
||||
|
||||
Reference in New Issue
Block a user