@aglyn/插件格式
Aglyn 的表单插件: form 财务报告和审定财务报表 formField 在站点上绘制窗体的元素,以及持有工作空间格式目录的控制台部分。 如果您提供了安放窗体的 Aglyn 文档, 或者运行 Aglyn 控制台, 请安装它 ; 它是一个第一当事方插件, 而不是一个独立的库 .
从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .
安装
npm install @aglyn/plugins-forms
同伴依赖性 : react, (中文(简体) ), next, (中文(简体) ), @mui/material, (中文(简体) ), @mui/x-data-grid, (中文(简体) ), firebase。 。 。 .
里面有什么东西
插件宣布两个注册员在 plugins.config.json外加一个 site 模块,这样一个已发布的页面就可以单独装入画布的一半.
在一个公开的网站上 (单位:千美元)registerFormsPlugin,则 site 登记员,出口自 @aglyn/plugins-forms/site) (中文(简体) ). 它增加了一个 forms 特性捆绑到插件管理器中, 包含两个元素 :
form:表单本身,以及提交后发生的情况(信息、重定向或披露).formField: 表格内的一个字段。 它使用表单而不是通用元素,因为它向附件表单报告其名称和数据集映射;一个没有表单的字段没有提交.formFileUpload: 一个文件上传字段(AGL-4098). 其文件通过共享的访客上传,在等待的密钥下取出,其形式被刻制出,表格通过ID发送;其身体是一个懒散的块.
两者的预设,包括由编组的接触部分,都出现在Besigner的元素取取器中. FORMS_BUNDLE 是捆绑登记册的条目列表.
控制台 (单位:千美元)registerFormsConsole,则 console 登记员:
- A 类
Forms导航项目于/forms:表单目录和一个表单自己的页面(声明,度量衡,版本,推广,设计预览). 导航项目拥有它的子树,因为一个表单的 URL 名称是一个文档 id. 该页面为代码分解并打开后加载. - 在窗体的页面上对插件主机进行两个区域,供其他插件填充,注册时使用
registerPluginZone数字 :formSubmissions,其中绘制该表文的读取器,以及将表文的字段映射到个人字段的区域. - 这个
formSubmission类型在记录接合中:控制台列表来源(plugin-record-lists)——一个站点最新的一个站点,收件箱行走的基础,一个提交文件,以及一个站点按名称提交的站点——服务器记录索引(plugin-record-index),和一个计数源(plugin-record-counts),一个网站收到多少. 收件箱和一个运动的转换报告通过这些来读取提交材料,而不是收藏.
请求(AGL-4098). 表格可被标记为请求引用( :request: { kind: 'quote' } 并且可以通过电子邮件向该人发出确认(confirmationEmail,默认为请求). 其服务器部件 :
POST /api/forms/upload(租户):ticket, (中文(简体) ),finalize财务报告和审定财务报表remove用于文件上传字段,按字段的种类和编号,范围为form-file/{key}; 每个密钥记录在forms/{formId}/formUploadKeys/{key}。 。 。 .POST /api/forms/submit从密钥范围、记录读取每个文件files, (中文(简体) ),request财务报告和审定财务报表fieldData(一个字段的机器值,{name}__data),以密钥作为提交文件的id,并发送form-confirmation分类邮件( c)tenant-emails.ts),将其线程保持为emailThread。 。 。 .POST /api/forms/submission-file(指挥所):download为可能阅读网站所提交材料的成员存档,并release一个已删除的提交文件.- A 类
forms.submission读取核心记录-事实的接合 通过它,商业开始引出一个请求. forms-upload-sweep,用于删除表格中从未发送的文件的控制台工作,这是其最后一次上传后的一天.host.records.removed删除已删除的提交文件(API的删除和一个人的去除).
病症持续存在. componentId (单位:千美元)form, (中文(简体) ), formField, (中文(简体) ), formFileUpload)存储在每一个屏幕文档中,而不改变. pluginId 被存储在旁边,并且是 forms (单位:千美元)BUNDLE_ID); 渲染器读来决定哪些捆绑必须在第一次涂料之前注册,所以一个没有表格的页面不会等待这个包.
什么不在这里. 插件没有服务器条目 。 表格模型和公布时间合同检查在 @aglyn/aglyn,提交端点属于租户应用程序,该应用程序通过 @aglyn/tenant-runtime。它们坐在核心一侧,因为核心可能不会导入插件。 因此,关闭一个站点的表格不是此捆绑的属性:每半个,包括提交路由和发布检查,都会询问站点插件设置的 forms 编号. 提交材料通过上面的区域读取,以在该区域注册阅读器的插件为准.
使用量
插件通过 Aglyn 的插件管理器加载: 生成的加载器会导入包, 并调用在 plugins.config.json。在启动时,电线插件用手拨打一次的应用程序:
// published site or editor canvas: the elements alone
import { registerFormsPlugin } from '@aglyn/plugins-forms/site'
registerFormsPlugin()
// console
import { registerFormsConsole } from '@aglyn/plugins-forms'
registerFormsConsole()
导入画布的一半 ./site,而不是从根:根入也带有控制台登记员及其页面. 特性捆绑取决于 mui 捆绑,所以 @aglyn/plugins-mui 要装入的元素必须注册.
怎样才合适
一个插件软件包( E)scope:plugin) (中文(简体) ). 取决于核心@aglyn/aglyn),租户客户钩(@aglyn/tenant-feature-instance)和通用软件 @aglyn/shared-* 软件包。 它不导入其它插件: 它命名为 mui 由 id 键来捆绑核心导出,以及将提交件或映射字段读取到联系人上的插件通过控制台区域与之相会. 核心从未导入此套件 .
许可证
阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/plugins/forms 页面存档备份,存于互联网档案馆