原生列表视图的url组件会将链接也显式的填充到字段列,如果遇到该字段的链接特别长且参数众多,表格就会撑的很难看,这就需要量身为其定制一种纯显示链接文字的widget:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var core = require('web.core'); var list_widget_registry = core.list_widget_registry; var _t = core._t; /** * author: i@renjie.me */ var Column = list_widget_registry.get('field'); var ColumnLink = Column.extend({ PROTOCOL_REGEX: /^(?!\w+:?\/\/)/, _format: function(row_data, options) { var value = row_data[this.id].value; if (value) { return _.template("<a href='<%-href%>' target='_blank'><%-text%></a>")({ href: value.trim().replace(this.PROTOCOL_REGEX, '//'), text: _t("Link") }); } return this._super(row_data, options); } }); list_widget_registry.add('field.link', ColumnLink); |
之后就可以在列表视图中直接使用诸如<field name=”content_url” widget=”link”/>形式的链接文字字段组件