summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/basic_fields.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-09-28 15:01:11 +0200
committerChristophe Simonis <chs@odoo.com>2017-09-28 15:01:11 +0200
commit1512c1b22993ba66a2cfff36bb92b8babca4cc95 (patch)
tree62fe209f48ffc5b7951b307fd7e327d17c8b1165 /addons/web/static/src/js/fields/basic_fields.js
parent63a4370afd3377de4308349283b981fac748e36c (diff)
parent9f9a7fdd0d70c1edda94fc546916c9e3516477ad (diff)
[MERGE] forward port branch saas-18 up to 9f9a7fdd0d7
Diffstat (limited to 'addons/web/static/src/js/fields/basic_fields.js')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js50
1 files changed, 49 insertions, 1 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 911afea36e5..6392870dc90 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -348,6 +348,49 @@ var FieldChar = InputField.extend(TranslatableFieldMixin, {
},
});
+
+var LinkButton = AbstractField.extend({
+ events: _.extend({}, AbstractField.prototype.events, {
+ 'click': '_onClick'
+ }),
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ /**
+ * Display button
+ * @override
+ * @private
+ */
+ _render: function () {
+ if (this.value) {
+ var className = this.attrs.icon || 'fa-globe';
+
+ this.$el.html("<span />");
+ this.$el.addClass("fa "+ className);
+ this.$el.attr('title', this.value);
+ }
+ },
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * Open link button
+ *
+ * @private
+ * @param {MouseEvent} event
+ */
+ _onClick: function (event) {
+ event.stopPropagation();
+ window.open(this.value, '_blank');
+ },
+
+});
+
+
+
var FieldDate = InputField.extend({
className: "o_field_date",
tagName: "span",
@@ -951,6 +994,10 @@ var FieldPhone = FieldEmail.extend({
} else {
this.$el.removeClass('o_form_uri');
}
+ // This class should technically be there in case of a very very long
+ // phone number, but it breaks the o_row mechanism, which is more
+ // important right now.
+ this.$el.removeClass('o_text_overflow');
},
/**
@@ -1006,7 +1053,7 @@ var UrlWidget = InputField.extend({
* @private
*/
_renderReadonly: function () {
- this.$el.text(this.value)
+ this.$el.text(this.attrs.text || this.value)
.addClass('o_form_uri o_text_overflow')
.attr('href', this.value);
}
@@ -2451,6 +2498,7 @@ return {
FieldBooleanButton: FieldBooleanButton,
BooleanToggle: BooleanToggle,
FieldChar: FieldChar,
+ LinkButton: LinkButton,
FieldDate: FieldDate,
FieldDateTime: FieldDateTime,
FieldDomain: FieldDomain,