import { SDK } from '@dilvant/bizcard-sdk'; import { XM } from '@dilvant/xm-sdk'; import { InAppLookup } from '../classes/InAppLookup'; import { SectionsSubscriber } from '../classes/SectionSubscriber'; export class CrudForm { static async createField(formId: string, sectionId: string) { if (!formId) return; let newField = await XM.FormField.contactFormFieldCreate(formId); newField = await XM.FormField.viewer(newField.formField.bcFormField._id); await InAppLookup.addItem(formId, newField, 'fields'); SectionsSubscriber.refresh(sectionId); return newField; } static async changeFieldType(field: any, value: string) { let fieldM = await XM.FormField.contactFormFieldUpdate( field.item._id, value ); let completeField = await XM.FormField.viewer(field.item._id); await InAppLookup.findAndReplace( completeField._id, completeField, Object.keys(completeField) ); SectionsSubscriber.refresh(completeField.parentSectionId); return completeField; } static async removeField(field: any, sectionId: string) { // TODO: XM FormField removeById // let fieldD = await XM.FormField.removeById(field._id); let fieldD = await SDK.FormField.removeById(field._id); await InAppLookup.removeItem(field.parent, field, 'fields'); SectionsSubscriber.refresh(sectionId); return fieldD; } static async sortField(orders: any, sectionId: string) { if (!orders) return; try { await XM.FormField.sort({ request: orders }); await InAppLookup.findAndReplaceArray(orders, ['order']); SectionsSubscriber.refresh(sectionId); } catch (e) { console.log(e); } } static async cloneFormat(fieldId: string, sectionId?: string) { if (!fieldId) return; let form: any; try { await XM.FormField.cloneFormat(fieldId); setTimeout(async () => { form = await XM.Section.viewerContactForm(sectionId!); await InAppLookup.findAndReplace(form._id, form, ['form']); SectionsSubscriber.refresh(sectionId!); }, 1000); } catch (e) { console.log(e); } return form; } }