summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2019-04-05 12:56:58 +0000
committerGéry Debongnie <ged@odoo.com>2019-05-02 07:14:52 +0000
commit578c99475d6100157fc5f42509c2de0513d8fbb9 (patch)
treec8a0d70e1e46072ad1fce56a8d370ec970ff3668 /addons/web/static/src/js
parenta25298e713f671b6337bea3e79044692fb6166c2 (diff)
[IMP] web: various small improvements to form view
This commit is a few small improvement/fixes to the web framework: - allow placeholder attribute on input tags in form view - only bind click event handler to buttons managed by the framework, not custom ones - _onExecuteAction method in action manager properly fails if event cannot be properly handled closes odoo/odoo#32458 Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome/action_manager_act_window.js2
-rw-r--r--addons/web/static/src/js/views/basic/basic_renderer.js3
-rw-r--r--addons/web/static/src/js/views/form/form_controller.js3
-rw-r--r--addons/web/static/src/js/views/form/form_renderer.js14
4 files changed, 15 insertions, 7 deletions
diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js
index 00edadb312a..efa0f0b2d72 100644
--- a/addons/web/static/src/js/chrome/action_manager_act_window.js
+++ b/addons/web/static/src/js/chrome/action_manager_act_window.js
@@ -626,7 +626,7 @@ ActionManager.include({
active_id: recordID,
}));
} else {
- def = new Promise(function () {});
+ def = Promise.reject();
}
// use the DropPrevious to prevent from executing the handler if another
diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js
index 4ee2ef8fbb3..24182fa1a16 100644
--- a/addons/web/static/src/js/views/basic/basic_renderer.js
+++ b/addons/web/static/src/js/views/basic/basic_renderer.js
@@ -380,6 +380,9 @@ var BasicRenderer = AbstractRenderer.extend({
if (node.attrs.style) {
$el.attr('style', node.attrs.style);
}
+ if (node.attrs.placeholder) {
+ $el.attr('placeholder', node.attrs.placeholder);
+ }
},
/**
* Used by list and kanban renderers to determine whether or not to display
diff --git a/addons/web/static/src/js/views/form/form_controller.js b/addons/web/static/src/js/views/form/form_controller.js
index a351c8fa04f..827afbb99ed 100644
--- a/addons/web/static/src/js/views/form/form_controller.js
+++ b/addons/web/static/src/js/views/form/form_controller.js
@@ -511,6 +511,9 @@ var FormController = BasicController.extend({
} else if (!attrs.special || attrs.special === 'save') {
// save the record but don't switch to readonly mode
def = saveAndExecuteAction();
+ } else {
+ console.warn('Unhandled button event', ev);
+ return;
}
def.then(this._enableButtons.bind(this)).guardedCatch(this._enableButtons.bind(this));
diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js
index 96125727feb..e2249883f96 100644
--- a/addons/web/static/src/js/views/form/form_renderer.js
+++ b/addons/web/static/src/js/views/form/form_renderer.js
@@ -323,13 +323,15 @@ var FormRenderer = BasicRenderer.extend({
* @param {Object} node
*/
_addOnClickAction: function ($el, node) {
- var self = this;
- $el.click(function () {
- self.trigger_up('button_clicked', {
- attrs: node.attrs,
- record: self.state,
+ if (node.attrs.special || node.attrs.confirm || node.attrs.type || $el.hasClass('oe_stat_button')) {
+ var self = this;
+ $el.click(function () {
+ self.trigger_up('button_clicked', {
+ attrs: node.attrs,
+ record: self.state,
+ });
});
- });
+ }
},
/**
excludedElements: ".o_notebook .nav.nav-tabs",