diff options
| author | Géry Debongnie <ged@odoo.com> | 2019-04-05 12:56:58 +0000 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2019-05-02 07:14:52 +0000 |
| commit | 578c99475d6100157fc5f42509c2de0513d8fbb9 (patch) | |
| tree | c8a0d70e1e46072ad1fce56a8d370ec970ff3668 /addons/web/static/src/js | |
| parent | a25298e713f671b6337bea3e79044692fb6166c2 (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')
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", |
