Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ addon | version | maintainers | summary
[web_help](web_help/) | 18.0.1.0.0 | | Help Framework
[web_ir_actions_act_multi](web_ir_actions_act_multi/) | 18.0.1.0.0 | | Enables triggering of more than one action on ActionManager
[web_ir_actions_act_window_message](web_ir_actions_act_window_message/) | 18.0.1.0.1 | | Show a message box to users
[web_loading_block_ui](web_loading_block_ui/) | 18.0.1.0.0 | | Block the screen with a centered loading overlay while requests are pending
[web_m2x_options](web_m2x_options/) | 18.0.1.0.3 | | web_m2x_options
[web_m2x_options_manager](web_m2x_options_manager/) | 18.0.1.0.0 | | Adds an interface to manage the "Create" and "Create and Edit" options for specific models and fields.
[web_no_bubble](web_no_bubble/) | 18.0.1.0.0 | | Remove the bubbles from the web interface
Expand All @@ -65,7 +66,7 @@ addon | version | maintainers | summary
[web_systray_button_init_action](web_systray_button_init_action/) | 18.0.1.0.2 | | Add a button to go to the user init action.
[web_theme_classic](web_theme_classic/) | 18.0.1.2.1 | <a href='https://github.com/legalsylvain'><img src='https://github.com/legalsylvain.png' width='32' height='32' style='border-radius:50%;' alt='legalsylvain'/></a> | Contrasted style on fields to improve the UI.
[web_time_range_menu_custom](web_time_range_menu_custom/) | 18.0.1.0.0 | | Web Time Range Menu Custom
[web_timeline](web_timeline/) | 18.0.1.0.3 | | Interactive visualization chart to show events in time
[web_timeline](web_timeline/) | 18.0.1.0.4 | | Interactive visualization chart to show events in time
[web_toggle_chatter](web_toggle_chatter/) | 18.0.1.0.0 | | Toggle chatter in backend form views
[web_touchscreen](web_touchscreen/) | 18.0.1.0.0 | <a href='https://github.com/yajo'><img src='https://github.com/yajo.png' width='32' height='32' style='border-radius:50%;' alt='yajo'/></a> <a href='https://github.com/rafaelbn'><img src='https://github.com/rafaelbn.png' width='32' height='32' style='border-radius:50%;' alt='rafaelbn'/></a> | UX improvements for touch screens
[web_tree_column_keyboard_resize](web_tree_column_keyboard_resize/) | 18.0.1.0.0 | | Allow resizing tree view columns using keyboard shortcuts
Expand Down
3 changes: 2 additions & 1 deletion setup/_metapackage/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "odoo-addons-oca-web"
version = "18.0.20260914.0"
version = "18.0.20261005.0"
dependencies = [
"odoo-addon-web_action_conditionable==18.0.*",
"odoo-addon-web_calendar_slot_duration==18.0.*",
Expand All @@ -23,6 +23,7 @@ dependencies = [
"odoo-addon-web_help==18.0.*",
"odoo-addon-web_ir_actions_act_multi==18.0.*",
"odoo-addon-web_ir_actions_act_window_message==18.0.*",
"odoo-addon-web_loading_block_ui==18.0.*",
"odoo-addon-web_m2x_options==18.0.*",
"odoo-addon-web_m2x_options_manager==18.0.*",
"odoo-addon-web_no_bubble==18.0.*",
Expand Down
33 changes: 33 additions & 0 deletions web_copy_confirm/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_copy_confirm
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"

#. module: web_copy_confirm
#. odoo-javascript
#: code:addons/web_copy_confirm/static/src/js/web_copy_confirm.esm.js:0
msgid "Are you sure that you would like to copy this record?"
msgstr ""

#. module: web_copy_confirm
#. odoo-javascript
#: code:addons/web_copy_confirm/static/src/js/web_copy_confirm.esm.js:0
msgid "Are you sure that you would like to duplicate the selected records?"
msgstr ""

#. module: web_copy_confirm
#. odoo-javascript
#: code:addons/web_copy_confirm/static/src/js/web_copy_confirm.esm.js:0
msgid "Duplicate"
msgstr ""
110 changes: 110 additions & 0 deletions web_loading_block_ui/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
====================
Web Loading Block UI
====================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:68b714c85edf983690119636c79f95be1709ed62f4291605430ee21fff7781b2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/18.0/web_loading_block_ui
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_loading_block_ui
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Since Odoo 17.0 the loading indicator is a small badge in the bottom
right corner of the screen and the user interface keeps accepting input
while a request is still running. Odoo 16.0 and earlier blocked the
whole screen with a blurred overlay and a centered spinner when a
request took longer than a few seconds.

This module restores that behaviour on top of the current loading
indicator: when a request stays pending for longer than a configurable
delay, the screen is blocked with the standard Odoo overlay (blurred
background and centered "Loading..." spinner) until every pending
request has been answered.

**Table of contents**

.. contents::
:local:

Configuration
=============

The delay before the screen is blocked is stored in the system parameter
``web_loading_block_ui.delay``, expressed in milliseconds and counted
from the moment the first request starts. The default value is ``3000``,
which matches the behaviour of Odoo 16.0 and earlier.

To change it, enable developer mode and go to *Settings > Technical >
System Parameters*. Set the value to ``0`` to block the screen as soon
as a request starts. Users need to reload the page for a new value to be
applied.

Usage
=====

Trigger any action that takes longer than the configured delay, for
example opening a heavy report or saving a large record. The screen is
blurred and a centered "Loading..." spinner is shown until the action
finishes. Requests marked as silent by Odoo (background polling,
notifications) never block the screen.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_loading_block_ui%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
-------

* ForgeFlow

Contributors
------------

- `ForgeFlow <https://www.forgeflow.com>`__:

- David Jiménez <david.jimenez@forgeflow.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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 <https://github.com/OCA/web/tree/18.0/web_loading_block_ui>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions web_loading_block_ui/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
25 changes: 25 additions & 0 deletions web_loading_block_ui/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
{
"name": "Web Loading Block UI",
"summary": "Block the screen with a centered loading overlay "
"while requests are pending",
"version": "18.0.1.0.0",
"category": "Web",
"website": "https://github.com/OCA/web",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"license": "LGPL-3",
"depends": ["web"],
"data": [
"data/ir_config_parameter.xml",
],
"assets": {
"web.assets_backend": [
"web_loading_block_ui/static/src/loading_indicator.esm.js",
],
"web.assets_unit_tests": [
"web_loading_block_ui/static/tests/**/*",
],
},
"installable": True,
}
9 changes: 9 additions & 0 deletions web_loading_block_ui/data/ir_config_parameter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com)
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -->
<odoo noupdate="1">
<record id="config_parameter_delay" model="ir.config_parameter">
<field name="key">web_loading_block_ui.delay</field>
<field name="value">3000</field>
</record>
</odoo>
22 changes: 22 additions & 0 deletions web_loading_block_ui/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_loading_block_ui
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-10-07 08:46+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"

#. module: web_loading_block_ui
#: model:ir.model,name:web_loading_block_ui.model_ir_http
msgid "HTTP Routing"
msgstr "Instradamento HTTP"
19 changes: 19 additions & 0 deletions web_loading_block_ui/i18n/web_loading_block_ui.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_loading_block_ui
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: web_loading_block_ui
#: model:ir.model,name:web_loading_block_ui.model_ir_http
msgid "HTTP Routing"
msgstr ""
1 change: 1 addition & 0 deletions web_loading_block_ui/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import ir_http
18 changes: 18 additions & 0 deletions web_loading_block_ui/models/ir_http.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from odoo import models

DEFAULT_BLOCK_DELAY = "3000"


class IrHttp(models.AbstractModel):
_inherit = "ir.http"

def session_info(self):
session_info = super().session_info()
session_info["web_loading_block_ui_delay"] = (
self.env["ir.config_parameter"]
.sudo()
.get_param("web_loading_block_ui.delay", DEFAULT_BLOCK_DELAY)
)
return session_info
3 changes: 3 additions & 0 deletions web_loading_block_ui/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
8 changes: 8 additions & 0 deletions web_loading_block_ui/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
The delay before the screen is blocked is stored in the system parameter
`web_loading_block_ui.delay`, expressed in milliseconds and counted from the
moment the first request starts. The default value is `3000`, which matches
the behaviour of Odoo 16.0 and earlier.

To change it, enable developer mode and go to *Settings > Technical > System
Parameters*. Set the value to `0` to block the screen as soon as a request
starts. Users need to reload the page for a new value to be applied.
2 changes: 2 additions & 0 deletions web_loading_block_ui/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [ForgeFlow](https://www.forgeflow.com):
- David Jiménez \<<david.jimenez@forgeflow.com>\>
10 changes: 10 additions & 0 deletions web_loading_block_ui/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Since Odoo 17.0 the loading indicator is a small badge in the bottom right
corner of the screen and the user interface keeps accepting input while a
request is still running. Odoo 16.0 and earlier blocked the whole screen with
a blurred overlay and a centered spinner when a request took longer than a few
seconds.

This module restores that behaviour on top of the current loading indicator:
when a request stays pending for longer than a configurable delay, the screen
is blocked with the standard Odoo overlay (blurred background and centered
"Loading..." spinner) until every pending request has been answered.
5 changes: 5 additions & 0 deletions web_loading_block_ui/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Trigger any action that takes longer than the configured delay, for example
opening a heavy report or saving a large record. The screen is blurred and a
centered "Loading..." spinner is shown until the action finishes. Requests
marked as silent by Odoo (background polling, notifications) never block the
screen.
Binary file added web_loading_block_ui/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading