UI用户界面DSL

DSL (Domain Specific Language / 领域特定语言)

优势

  • 更具表现力

  • 静态编译

  • 无需JavaScript以及HTML

表单

new UiFormSpecifier().ui user, {
    section "User", {
        field user.username_
        field user.firstName_
        field user.lastName_
        ajaxField user.manager_, this.&selectUser
        field user.password_
    }
// [ . . . ]
}

表单验证

图形组件

  • 表格

  • 筛选器

  • 表单

  • 数据详情

  • 图表

扩展组件

  • 文件预览

  • 纯文本搜索

  • JDBC驱动程序查询模型

Taack-UI是一个Grails扩展插件,允许以静态Groovy DSL (Domain Specific Language / 领域特定语言) 的形式构建Grails项目的UI用户界面并有能力处理相关安全性问题.

在常规Grails的基础上,该插件提供了以下功能:

  • 安全验证:

    • 依据用户权限,数据对象的任一字段都可被显示或编辑;

    • 无需重复代码,用户无权访问的链接操作都将被自动隐藏;

    • 搜索给出的数据列表 (基于Solr搜索) 仅限用户可阅

  • 支持以相同代码编写PDF邮件CSV、或是其他格式的内容,最终通过Block DSL导出至指定格式;

  • 支持多语言切换:DSL将检测i18n文本标签并获取各语言对应的翻译

  • 支持数据对象Validation过程中的报错显示 (请查阅Form validation);

  • 支持纯本文搜索 (基于Solr),具体如:

    • 静态数据模型对象的索引及纯文本搜索;

    • 分面搜索 (Faceting);

    • 排名算法 (Ranking);

  • 支持数据的筛选、分页、排序而无需手动处理;

  • 支持扩展文件预览 (除常用办公文件格式外,不久后将支持预览STEP、DWG等文件);

  • 通过JDBC驱动程序,允许在DBeaver、Intellij或LibreOffice Base上使用TQL (Taack Query Language / Taack查询语言) 来访问并查询数据,操作等同于一般数据库 (请查阅Taack JDBC Driver);

  • 通过SFTP (即将可用) 分享文件:

    • 由服务器通过SFTP为每名用户组建虚拟文件系统 (见Sftp file browser);

      • 例如,文件夹 /<username>/crew/pictures 中可查看所有用户的照片,但实际上这些照片并没有存储在您的硬盘中;

      • 文件 /<username>/crew/users.csv 中记录了所有用户的信息,但实际上该文件本身只会在您访问时同步生成,并非提前存储;

    • 可访问服务器的一部分真实文件系统以快速创建文件分享空间;

  • 通过Git server管理用户文档 (即将可用);

  • 通过Ssh (即将可用),允许直接在服务器中运行Shell UI (见Ssh server session);

screenshot ssh
Figure 1. Ssh server session
screenshot sftp
Figure 2. Sftp file browser