Files
web/web_widget_url_advanced/static/src/js/url_widget.js
2022-03-09 15:08:32 +05:30

51 lines
1.7 KiB
JavaScript

/* Copyright 2018 Simone Orsi - Camptocamp SA
License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). */
odoo.define("web_widget_url_advanced", function (require) {
"use strict";
var basic_fields = require("web.basic_fields");
basic_fields.UrlWidget.include({
/**
* @override
*/
init: function () {
this._super.apply(this, arguments);
// Retrieve customized `<a />` text from a field
// via `text_field` attribute or `options.text_field`
this.text_field = this.attrs.text_field || this.attrs.options.text_field;
},
/**
* Retrieve anchor text based on options.
* @returns {String}
*/
_get_text: function () {
if (this.text_field) {
var field_value = this.recordData[this.text_field];
if (_.isObject(field_value) && _.has(field_value.data)) {
field_value = field_value.data.display_name;
}
return field_value;
}
return this.attrs.text;
},
/**
*
* @override
* @private
*/
_renderReadonly: function () {
// Base widget uses `this.attrs.text` instead of `this.value` when available.
// TODO: To check better way for update link
this.attrs.text = this._get_text();
this._super.apply(this, arguments);
var prefix = this.attrs.prefix_name || this.attrs.options.prefix_name;
if (prefix) {
this.$el.html(
$(this.$el.html()).attr("href", prefix + ":" + this.value)
);
}
},
});
});