summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-03-16 12:33:22 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-03-16 12:33:22 +0100
commit7cee52681f157c44863a8a41f66a18480cf0055e (patch)
treef1ad3d53ed05278c9df1f9a7d3afe406d0c26ba5 /addons/web/static/src
parent36ba035431cecf4d7f3faf7b377079ce827d5809 (diff)
[imp] made email readonly-able
bzr revid: nicolas.vanhoren@openerp.com-20120316113322-wgg7ixwal4qwc55f
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js13
-rw-r--r--addons/web/static/src/js/view_page.js7
-rw-r--r--addons/web/static/src/xml/base.xml31
3 files changed, 30 insertions, 21 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index c6426095cb1..61cc19c3782 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1490,10 +1490,19 @@ openerp.web.form.FieldID = openerp.web.form.FieldChar.extend({
openerp.web.form.FieldEmail = openerp.web.form.FieldChar.extend({
template: 'FieldEmail',
- start: function() {
- this._super.apply(this, arguments);
+ bind_events: function() {
+ this._super();
this.$element.find('button').click(this.on_button_clicked);
},
+ render_value: function() {
+ if (!this.get("effective_readonly")) {
+ this._super();
+ } else {
+ this.$element.find('a')
+ .attr('href', 'mailto:' + this.value)
+ .text(this.value);
+ }
+ },
on_button_clicked: function() {
if (!this.value || !this.is_valid()) {
this.do_warn("E-mail error", "Can't send email to invalid e-mail address");
diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js
index c263582f94b..dd62cfb72e9 100644
--- a/addons/web/static/src/js/view_page.js
+++ b/addons/web/static/src/js/view_page.js
@@ -75,14 +75,8 @@ openerp.web.page = function (openerp) {
return value;
},
set_value: function (value) {
- this.$element.find('a')
- .attr('href', this.scheme + ':' + value)
- .text(this.format_value(value));
}
});
- openerp.web.page.FieldEmailReadonly = openerp.web.page.FieldURIReadonly.extend({
- scheme: 'mailto'
- });
openerp.web.page.FieldUrlReadonly = openerp.web.page.FieldURIReadonly.extend({
set_value: function (value) {
var s = /(\w+):(.+)/.exec(value);
@@ -175,7 +169,6 @@ openerp.web.page = function (openerp) {
});
openerp.web.page.readonly = openerp.web.form.widgets.extend({
'frame': 'openerp.web.page.WidgetFrameReadonly',
- 'email': 'openerp.web.page.FieldEmailReadonly',
'url': 'openerp.web.page.FieldUrlReadonly',
'selection' : 'openerp.web.page.FieldSelectionReadonly',
'reference': 'openerp.web.page.FieldReferenceReadonly',
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 8aa0241a5b5..4bfb18414ca 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -966,18 +966,25 @@
</div>
</t>
<t t-name="FieldEmail">
- <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
- <tr>
- <td width="100%">
- <t t-call="FieldChar"/>
- </td>
- <td width="16">
- <button class="oe_button oe_field_button" type="button" title="Send an e-mail with your default e-mail client">
- <img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/>
- </button>
- </td>
- </tr>
- </table>
+ <t t-if="!widget.get('effective_readonly')">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td width="100%">
+ <t t-call="FieldChar"/>
+ </td>
+ <td width="16">
+ <button class="oe_button oe_field_button" type="button" title="Send an e-mail with your default e-mail client">
+ <img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/>
+ </button>
+ </td>
+ </tr>
+ </table>
+ </t>
+ <t t-if="widget.get('effective_readonly')">
+ <div>
+ <a href="#" class="oe_form_uri"/>
+ </div>
+ </t>
</t>
<t t-name="FieldUrl">
<table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">