diff --git a/web_ir_actions_act_multi/README.rst b/web_ir_actions_act_multi/README.rst index 317b1956..152a3615 100644 --- a/web_ir_actions_act_multi/README.rst +++ b/web_ir_actions_act_multi/README.rst @@ -1,13 +1,37 @@ -.. image:: https://www.gnu.org/graphics/lgplv3-147x51.png - :target: https://www.gnu.org/licenses/lgpl-3.0.en.html - :alt: License: LGPL-v3 - ================= Web Actions Multi ================= +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github + :target: https://github.com/OCA/web/tree/12.0/web_ir_actions_act_multi + :alt: OCA/web +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_ir_actions_act_multi + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/162/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + This module provides a way to trigger more than one action on ActionManager +**Table of contents** + +.. contents:: + :local: + Usage ===== @@ -29,32 +53,42 @@ To use this functionality you need to return following action with list of actio Bug Tracker =========== -Bugs are tracked on `GitHub Issues -`_. In case of trouble, please -check there if your issue has already been reported. If you spotted it first, -help us smash it by providing detailed and welcomed feedback. +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* Modoolar +* Brainbean Apps + Contributors ------------- +~~~~~~~~~~~~ * Petar Najman * Mladen Meseldzija +* Alexey Pelykh +Maintainers +~~~~~~~~~~~ -Maintainer ----------- +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit https://odoo-community.org. +This module is part of the `OCA/web `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/web_ir_actions_act_multi/__manifest__.py b/web_ir_actions_act_multi/__manifest__.py index 4a7ed9d7..9e0221ad 100644 --- a/web_ir_actions_act_multi/__manifest__.py +++ b/web_ir_actions_act_multi/__manifest__.py @@ -1,15 +1,20 @@ # Copyright 2017 - 2018 Modoolar +# Copyright 2018 Brainbean Apps # License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). { "name": "Web Actions Multi", "summary": "Enables triggering of more than one action on ActionManager", "category": "Web", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "license": "LGPL-3", - "author": "Modoolar, Odoo Community Association (OCA)", + "author": "Modoolar, " + "Brainbean Apps, " + "Odoo Community Association (OCA)", "website": "https://github.com/OCA/web/", - "depends": ["web"], + "depends": [ + "web" + ], "data": [ "views/web_ir_actions_act_multi.xml", ], diff --git a/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst b/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..0bb36955 --- /dev/null +++ b/web_ir_actions_act_multi/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Petar Najman +* Mladen Meseldzija +* Alexey Pelykh diff --git a/web_ir_actions_act_multi/readme/DESCRIPTION.rst b/web_ir_actions_act_multi/readme/DESCRIPTION.rst new file mode 100644 index 00000000..6e6a6c79 --- /dev/null +++ b/web_ir_actions_act_multi/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module provides a way to trigger more than one action on ActionManager diff --git a/web_ir_actions_act_multi/readme/USAGE.rst b/web_ir_actions_act_multi/readme/USAGE.rst new file mode 100644 index 00000000..7fe7ca50 --- /dev/null +++ b/web_ir_actions_act_multi/readme/USAGE.rst @@ -0,0 +1,14 @@ +To use this functionality you need to return following action with list of actions to execute: + +.. code-block:: python + + @api.multi + def foo(): + self.ensure_one() + return { + 'type': 'ir.actions.act_multi', + 'actions': [ + {'type': 'ir.actions.act_window_close'}, + {'type': 'ir.actions.act_view_reload'}, + ] + } diff --git a/web_ir_actions_act_multi/static/description/index.html b/web_ir_actions_act_multi/static/description/index.html new file mode 100644 index 00000000..2b17691a --- /dev/null +++ b/web_ir_actions_act_multi/static/description/index.html @@ -0,0 +1,439 @@ + + + + + + +Web Actions Multi + + + +
+

Web Actions Multi

+ + +

Beta License: LGPL-3 OCA/web Translate me on Weblate Try me on Runbot

+

This module provides a way to trigger more than one action on ActionManager

+

Table of contents

+ +
+

Usage

+

To use this functionality you need to return following action with list of actions to execute:

+
+@api.multi
+def foo():
+   self.ensure_one()
+   return {
+      'type': 'ir.actions.act_multi',
+      'actions': [
+          {'type': 'ir.actions.act_window_close'},
+          {'type': 'ir.actions.act_view_reload'},
+      ]
+   }
+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Modoolar
  • +
  • Brainbean Apps
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/web project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js index e5c5d86e..b575c3ef 100644 --- a/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js +++ b/web_ir_actions_act_multi/static/src/js/web_ir_actions_act_multi.js @@ -1,29 +1,51 @@ // Copyright 2017 - 2018 Modoolar +// Copyright 2018 Brainbean Apps // License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). odoo.define('web_ir_actions_act_multi.ir_actions_act_multi', function (require) { -"use strict"; + "use strict"; var ActionManager = require('web.ActionManager'); ActionManager.include({ - execute_ir_actions_act_multi: function(actions, options, index){ + /** + * Intercept action handling to detect extra action type + * @override + */ + _handleAction: function (action, options) { + if (action.type === 'ir.actions.act_multi') { + return this._executeMultiAction(action, options); + } + + return this._super.apply(this, arguments); + }, + + /** + * Handle 'ir.actions.act_multi' action + * @param {Object} action see _handleAction() parameters + * @param {Object} options see _handleAction() parameters + * @param {integer|undefined} index Index of action being handled + * @returns {$.Promise} + */ + _executeMultiAction: function (action, options, index) { var self = this; - if (index >= actions.length){ - return actions[actions.length-1]; + if (index === undefined) { + index = 0; // eslint-disable-line no-param-reassign } - return self.do_action(actions[index],options) - .then(function(){ - index++; - return self.execute_ir_actions_act_multi(actions, options, index); - }); - }, + if (index === action.actions.length - 1) { + return this._handleAction(action.actions[index], options); + } else if (index >= action.actions.length) { + return $.when(); + } - ir_actions_act_multi: function(action, options){ - return this.execute_ir_actions_act_multi(action.actions, options, 0); + return this + ._handleAction(action.actions[index], options) + .then(function () { + return self._executeMultiAction(action, options, index + 1); + }); }, });