写在前面
从saiku到superset,再到metabase,终于样式上操作上符合标准了,但是对于吹毛求疵的产品经理还是会各种找事。贴出改造的一些内容分享给需要的小伙伴。

LOGO替换

修改文件
/metabase/frontend/src/metabase/components/LogoIcon.jsx

新增文件(你的logo文件 官方建议用svg格式)
/metabase/resources/frontend_client/app/assets/img/mam-logo.svg

全局默认中文配置

其实没有必要在这改代码,完全可以通过系统的配置去改,只是偶然发现了这里的配置,所以mark下
/metabase/src/metabase/public_settings.clj

导出excel csv json文件中用字段的displayName显示

修改文件
/metabase/src/metabase/api/dataset.clj

/metabase/src/metabase/util/export.clj

聚合函数名称改中文

改完上述文件后,下载的文件(如excel)中就会显示表配置的displayName,但是聚合操作的名称(如count)还是会显示英文,参考下图:


如果你们的老大跟我的老大一样精益求精(BT),你可以继续参照下文修改:
/metabase/query_processor/middleware/annotate.clj
(str (tru (str (str/upper-case (subs ag-name 0 1)) (subs ag-name 1))))

日期控件汉化

更有甚者不认识英文月份,所以你不得不继续替他汉化,所以参照以下操作即可。
效果图如下:
修改前:


修改后:

具体修改如下:
首先补增一个公共变量,如下图红框所示,注意中划线和下划线的区别。
/metabase/src/metabase/public_settings.clj

修改日期控件配置,根据语言配置动态设定日期控件的语言,如果全局语言配置的zh,则用zh-cn初始化成中文日期显示,否则全部用英文日期显示
/metabase/frontend/src/metabase/parameters/components/widgets/DateMonthYearWidget.jsx

优化metabase字段的默认显示名称

同步数据库字段时将备注名称作为metabase字段的默认displayName(mysql测试正常)

/metabase/src/metabase/sync/sync_metadata/fields.clj

:display_name (if-not (nil? field-comment) field-comment (humanization/name->human-readable-name field-name))

改造后效果如图(原本displayName显示的跟数据库中英文名称一致)

Metabase定制化开发相关推荐

  1. 技术干货 | Native 页面下如何实现导航栏的定制化开发?

    简介:通过不同实际场景的描述,供大家参考完成 Native 页面的定制化开发. 很多 mPaaS Coder 在接入 H5 容器后都会对容器的导航栏进行深度定制,本文旨在通过不同实际场景的描述,供大家 ...

  2. 被定制化开发坑惨了的IT人,不是所有的报表都能满足老板的需求

    下面是一个IT人真实的经历: 老K所在的IT部门是公司近几年才建立起来的,架构非常简单,老K和几个同事负责做系统开发.系统优化和系统管理,比如OA.ERP.BI系统等,另外两个小组做运维工作和专门的产 ...

  3. 面向客户定制化开发项目的管理重点

    长期从事给客户定制化开发项目,这里分享下: 1.甲方要有专职高层关注项目,如果没有,那就创造一个: 2.以业务应用部门为推进项目的重点,信息部门只做辅助协调: 3.项目团队要精简: 4.项目团队要有核 ...

  4. amlogic logo amlogic rk tvbox 电视盒 定制化开发(一) 开机logo 定制

    电视机顶盒定制化开发,最简单也是最常见的的是开机logo的 定制. RK amlogic  全志各个平台虽然用到的方法都略有不同.但,都殊途同归. 下面就拿amlogic 为例.记录一下 开机logo ...

  5. 洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

    Zuul的插件机制及定制化开发 Zuul的另外一个重要机制就是Filter动态加载机制.Zuul支持的动态Filter由Groovy代码编写,动态管理Groovy的File目录变更并动态编译和加载. ...

  6. Android 10.0 SystemUI下拉状态栏UI定制化开发系列(一)

    1.概述 10.0定制化开发中,由于客户需求要求对整个SystemUI下拉状态栏和下拉通知栏部分的UI做定制,所以需要修改整个下拉状态栏的 UI布局页面,这要求对整个NotificationPanel ...

  7. Android 10.0 关机对话框UI定制化开发(一)

    目录 1.概述 2.关机对话框UI定制的核心功能 1.概述 在10.0的定制化开发中,需要对关机对话框的UI界面进行定制化开发,需要对话框全屏,去掉多余项 保留关机 重启 飞行模式 静音模式等选项 现 ...

  8. Subtext v2.0 定制化开发之上传文件File Upload管理

    Subtext v2.0 定制化开发之上传文件File Upload管理 Subtext / EntLib.com Blog 博客后台随笔内容编辑采用最新的FCKEditor 编辑器,可以用来上传图片 ...

  9. SpringBoot定制化开发

    文章目录 SpringBoot定制化开发 SpringBoot定制化开发 原理分析套路: 先找他对应的场景,然后我们就可以定位到对应的xxxxAutoConfiguration看他内部导入了哪些组件, ...

最新文章

  1. Android Studio 引入aar文件
  2. 专家谈半导体产业前景 并购热还会继续
  3. 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...
  4. php 完美防sql注入,PHP 完美的防XSS 防SQL注入的代码
  5. python开发sqlite3完整_python开发_sqlite3_绝对完整
  6. Wpf中使用OxyPlot制作图表
  7. CSR8615 蓝牙4.0音响模块
  8. 无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)
  9. CentOS系统FastDFS 配置和问题解决
  10. html列表项显示阴影效果,H5特效模糊动态列表栏:阴影的妙用
  11. Android画布放大缩小,android画板---涂鸦,缩放,旋转,贴纸实现
  12. 获取客户端真实 IP
  13. 黑盒测试——测试准备阶段
  14. linux中i的英文单词,Linux下gcc/g++中-I(i的大写)、-L和-l
  15. Android:删除腾讯X5内核的右上角设备信息
  16. 【笔记|C++】最大公约数、最小公倍数的四种求法
  17. java mail 签名_java mail实现Email的发送,完整代码
  18. Buildozer构架安卓应用
  19. 行走江湖的50条忠告
  20. 如何搭建数据指标体系?

热门文章

  1. 王和平的《计算机是怎样跑起来的》学习笔记
  2. Linux系统性能监控分析工具perf
  3. 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。...
  4. Cisco ASA防火墙实现IPSec 虚拟专用网,可跟做!!!
  5. LeetCode(数据库)- 统计各专业学生人数
  6. Docker——docker-compose命令操作全集
  7. ios中导入第三方类库
  8. RxJava(10-操作符原理自定义操作符)
  9. hbw-utils - 基本数据类型的toString()实现
  10. 火狐浏览器下载文件名乱码