From 36ba035431cecf4d7f3faf7b377079ce827d5809 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Fri, 16 Mar 2012 12:22:23 +0100 Subject: [PATCH] [imp] made chars readonly-able bzr revid: nicolas.vanhoren@openerp.com-20120316112223-d4az41nm2012liz5 --- addons/web/static/src/js/view_form.js | 25 +++++++++++++++----- addons/web/static/src/js/view_page.js | 34 ++------------------------- addons/web/static/src/xml/base.xml | 30 ++++++++++++----------- 3 files changed, 37 insertions(+), 52 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 1c633d99c86..c6426095cb1 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1438,17 +1438,30 @@ openerp.web.form.FieldChar = openerp.web.form.AbstractField.extend({ }, start: function() { this._super.apply(this, arguments); + this.bind_events(); + this.on("change:effective_readonly", this, function() { + this.render_element(); + this.bind_events(); + this.render_value(); + }); + }, + bind_events: function() { this.$element.find('input').change(this.on_ui_change); }, set_value: function(value) { this._super.apply(this, arguments); - var show_value = openerp.web.format_value(value, this, ''); - this.$element.find('input').val(show_value); - return show_value; + this.render_value(); }, - update_dom: function() { - this._super.apply(this, arguments); - this.$element.find('input').prop('readonly', this.readonly); + render_value: function() { + var show_value = openerp.web.format_value(this.value, this, ''); + if (!this.get("effective_readonly")) { + this.$element.find('input').val(show_value); + } else { + if (this.password) { + show_value = new Array(show_value.length + 1).join('*'); + } + this.$element.text(show_value); + } }, set_value_from_ui: function() { this.value = openerp.web.parse_value(this.$element.find('input').val(), this); diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index 707bfc4f2b5..c263582f94b 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -68,29 +68,7 @@ openerp.web.page = function (openerp) { /** @namespace */ openerp.web.page = {}; - //openerp.web.page.WidgetFrameReadonly = openerp.web.form.WidgetFrame.extend({ - // form_template: 'WidgetFrame.readonly' - //}); - openerp.web.page.FieldReadonly = openerp.web.form.AbstractField.extend({ - - }); - openerp.web.page.FieldCharReadonly = openerp.web.page.FieldReadonly.extend({ - form_template: 'FieldChar.readonly', - init: function(view, node) { - this._super(view, node); - this.password = this.node.attrs.password === 'True' || this.node.attrs.password === '1'; - }, - set_value: function (value) { - this._super.apply(this, arguments); - var show_value = openerp.web.format_value(value, this, ''); - if (this.password) { - show_value = new Array(show_value.length + 1).join('*'); - } - this.$element.find('div').text(show_value); - return show_value; - } - }); - openerp.web.page.FieldURIReadonly = openerp.web.page.FieldCharReadonly.extend({ + openerp.web.page.FieldURIReadonly = openerp.web.form.FieldChar.extend({ form_template: 'FieldURI.readonly', scheme: null, format_value: function (value) { @@ -120,7 +98,7 @@ openerp.web.page = function (openerp) { this.$element.find('input').prop('disabled', true); } }); - openerp.web.page.FieldSelectionReadonly = openerp.web.page.FieldReadonly.extend({ + openerp.web.page.FieldSelectionReadonly = openerp.web.form.AbstractField.extend({ form_template: 'FieldChar.readonly', init: function(view, node) { // lifted straight from r/w version @@ -197,19 +175,11 @@ openerp.web.page = function (openerp) { }); openerp.web.page.readonly = openerp.web.form.widgets.extend({ 'frame': 'openerp.web.page.WidgetFrameReadonly', - 'char': 'openerp.web.page.FieldCharReadonly', - 'id': 'openerp.web.page.FieldCharReadonly', 'email': 'openerp.web.page.FieldEmailReadonly', 'url': 'openerp.web.page.FieldUrlReadonly', - 'text': 'openerp.web.page.FieldCharReadonly', - 'date': 'openerp.web.page.FieldCharReadonly', - 'datetime': 'openerp.web.page.FieldCharReadonly', 'selection' : 'openerp.web.page.FieldSelectionReadonly', 'reference': 'openerp.web.page.FieldReferenceReadonly', 'boolean': 'openerp.web.page.FieldBooleanReadonly', - 'float': 'openerp.web.page.FieldCharReadonly', - 'integer': 'openerp.web.page.FieldCharReadonly', - 'float_time': 'openerp.web.page.FieldCharReadonly', 'binary': 'openerp.web.page.FieldBinaryFileReadonly', 'image': 'openerp.web.page.FieldBinaryImageReaonly' }); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 7ee908ae43c..8aa0241a5b5 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -943,20 +943,22 @@ -
- -
-
- -
-
+ +
+ +
+
+ +
+
+