一个真正能做事的仪表板。
大多数仪表板天生只读:它们给你看一个数字,然后让你去别处处理它。dash-b 的磁贴可以带一个按钮,按下它就能写入一行、更新一行,或打开一个由你自己的表生成的表单。
两个磁贴
一个按钮,或一个表单
动作
一个按钮,标签由你定。它对你自己的某个表执行一个具名操作——标记今日营收已入账、添加一个班次、关闭一个工单。无需输入任何内容,按一下即可。
数据表单
操作需要细节时则是同样的东西。字段取自表自身的结构,而不是设计中声明的任何内容,所以你重命名一列,表单就跟着变;你删除一列,它就不再被要求填写。
什么是操作
三个键,没有第四个
一个动作要指明操作、指明操作对象,并传递参数。这就是全部的词汇表:
- 命令是一个注册表中的索引,只有 dash-b 自己的代码能向其中添加。设计无法凭空造出一个。
- 绑定是一个名称,在按钮被按下时针对你的账户所持有的文档来解析。别人发给你的设计如果引用了一个你没有的表,它会停下来并明确告知。
- 参数是一个字面量,或一个从表单、磁贴或本次按下中读取的具名值。只有一层深,别无其他。
写进动作里的 URL、请求头、令牌或角色都是死键。
dash-b 中没有任何代码会读取它们。一个测试会派发一个携带全部四者的动作,并验证它们没有一个到达处理程序。
这套词汇是刻意保持贫乏的。每向参数语言中添加一个运算符,都是朝着让规则引擎住进陌生人互相发送的文件里迈出的一步,而设计文件不是运行别人逻辑的地方。
写入所遵循的规则
其中三条与 dash-b 其余部分的行为方式相反
未知命令会报出醒目的错误
在其他任何地方,无法识别的键都会被安静地忽略,因为设计应当能在遇到更新版本的自己时存活。这里不行:一次悄悄什么都没做的写入,看起来和成功了的写入一模一样。
只有真实按下才算数
用户是否真的按下了按钮,由运行时决定,绝不由设计决定。声称某个手势发生过的设计会被拒绝。
任何更改数据的操作都要确认
操作分为只读、本地或更改型。更改型会先询问——而且无法选择不询问——并获得一个密钥,使双击只生效一次。
它不会出现的地方
不会出现在导出的 HTML 页面中
把设计导出为独立页面后,按钮并不在其中。导出文件不运行任何 dash-b 代码,所以那里的表单只会收集别人的输入却无处可送——这比干脆不提供更糟。该磁贴是设计器和账户功能,导出通过省略它来说明这一点。
已发布的链接同理。读者能看到什么、看不到什么,取决于磁贴绑定的是谁的数据——共享的工作方式对两种情况都有说明。
它需要一张可写入的表。
它可以是你账户上的一个表,也可以是你通过自己托管的连接器访问的自有数据库——这种情况下,数据库密码永远不会到达我们这里。