diff options
| author | Jigar Patel <jat@openerp.com> | 2019-03-14 08:36:38 +0000 |
|---|---|---|
| committer | Jigar Patel <jat@openerp.com> | 2019-08-07 12:30:55 +0000 |
| commit | 56cf4f81258ed9c0b2efb67a11bfac055ec6f593 (patch) | |
| tree | d5642eebbad3aa0479aa8c4c925cd61a271c8a5b /addons | |
| parent | f4194d53aad6553917c34ee57f98b4a64c3a5655 (diff) | |
[IMP] web: add new many2many_tags_avatar field widget to show avatar with tags
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/web/static/src/js/fields/field_registry.js | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/fields/relational_fields.js | 21 | ||||
| -rw-r--r-- | addons/web/static/src/scss/fields.scss | 18 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 5 |
4 files changed, 45 insertions, 0 deletions
diff --git a/addons/web/static/src/js/fields/field_registry.js b/addons/web/static/src/js/fields/field_registry.js index 1de315eda30..942e6fc094a 100644 --- a/addons/web/static/src/js/fields/field_registry.js +++ b/addons/web/static/src/js/fields/field_registry.js @@ -74,6 +74,7 @@ registry .add('many2many', relational_fields.FieldMany2Many) .add('many2many_binary', relational_fields.FieldMany2ManyBinaryMultiFiles) .add('many2many_tags', relational_fields.FieldMany2ManyTags) + .add('many2many_tags_avatar', relational_fields.FieldMany2ManyTagsAvatar) .add('form.many2many_tags', relational_fields.FormFieldMany2ManyTags) .add('kanban.many2many_tags', relational_fields.KanbanFieldMany2ManyTags) .add('many2many_checkboxes', relational_fields.FieldMany2ManyCheckBoxes) diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js index fed94598046..d486838d3f5 100644 --- a/addons/web/static/src/js/fields/relational_fields.js +++ b/addons/web/static/src/js/fields/relational_fields.js @@ -2209,6 +2209,26 @@ var FieldMany2ManyTags = AbstractField.extend({ }, }); +var FieldMany2ManyTagsAvatar = FieldMany2ManyTags.extend({ + tag_template: 'FieldMany2ManyTagAvatar', + className: 'o_field_many2manytags avatar', + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @override + * @private + */ + _getRenderTagsContext: function () { + var result = this._super.apply(this, arguments); + result.avatarModel = this.nodeOptions.avatarModel || this.field.relation; + result.avatarField = this.nodeOptions.avatarField || 'image'; + return result; + }, +}); + var FormFieldMany2ManyTags = FieldMany2ManyTags.extend({ events: _.extend({}, FieldMany2ManyTags.prototype.events, { 'click .dropdown-toggle': '_onOpenColorPicker', @@ -2972,6 +2992,7 @@ return { FieldMany2ManyBinaryMultiFiles: FieldMany2ManyBinaryMultiFiles, FieldMany2ManyCheckBoxes: FieldMany2ManyCheckBoxes, FieldMany2ManyTags: FieldMany2ManyTags, + FieldMany2ManyTagsAvatar: FieldMany2ManyTagsAvatar, FormFieldMany2ManyTags: FormFieldMany2ManyTags, KanbanFieldMany2ManyTags: KanbanFieldMany2ManyTags, diff --git a/addons/web/static/src/scss/fields.scss b/addons/web/static/src/scss/fields.scss index d7c332d5369..242e17cc9ae 100644 --- a/addons/web/static/src/scss/fields.scss +++ b/addons/web/static/src/scss/fields.scss @@ -190,6 +190,24 @@ color: #FF0000; } } + // Many2many tags avatar + &.avatar { + .badge { + padding-left: 4px; + img { + height: 18px; + width: 18px; + } + &.o_tag_color_0 { + background-color: #F1F1F1; + box-shadow: none; + border: 1px solid gray('300'); + } + .o_delete { + margin-top: 3px; + } + } + } } // Stars diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index c075c912784..c342c24441f 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -741,6 +741,11 @@ </div> </t> </t> +<t t-name="FieldMany2ManyTagAvatar" t-extend="FieldMany2ManyTag"> + <t t-jquery="span:first" t-operation="prepend"> + <img t-attf-src="/web/image/#{avatarModel}/#{el.id}/#{avatarField}" class="rounded-circle"/> + </t> +</t> <t t-name="FieldMany2ManyTag.colorpicker"> <div class="o_colorpicker dropdown-menu tagcolor_dropdown_menu" role="menu"> <ul> |
