diff --git a/web_refresher/README.rst b/web_refresher/README.rst index b02c18448..2ef65c2aa 100644 --- a/web_refresher/README.rst +++ b/web_refresher/README.rst @@ -19,9 +19,9 @@ Web Refresher .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/web-16-0/web-16-0-web_refresher :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/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/web&target_branch=16.0 + :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -61,6 +61,7 @@ Contributors * João Marques * Alexandre D. Díaz + * Carlos Roca * Thanakrit Pintana * `Factorlibre `__: diff --git a/web_refresher/__manifest__.py b/web_refresher/__manifest__.py index a2dba50c3..7e8b0a339 100644 --- a/web_refresher/__manifest__.py +++ b/web_refresher/__manifest__.py @@ -10,8 +10,10 @@ "assets": { "web.assets_backend": [ "web_refresher/static/src/scss/refresher.scss", - "web_refresher/static/src/js/refresher.js", + "web_refresher/static/src/js/refresher.esm.js", + "web_refresher/static/src/js/pager.esm.js", "web_refresher/static/src/xml/refresher.xml", + "web_refresher/static/src/xml/pager.xml", ], }, } diff --git a/web_refresher/readme/CONTRIBUTORS.rst b/web_refresher/readme/CONTRIBUTORS.rst index 8dbf1e5c8..5fdce1e7d 100644 --- a/web_refresher/readme/CONTRIBUTORS.rst +++ b/web_refresher/readme/CONTRIBUTORS.rst @@ -3,6 +3,7 @@ * João Marques * Alexandre D. Díaz + * Carlos Roca * Thanakrit Pintana * `Factorlibre `__: diff --git a/web_refresher/static/description/index.html b/web_refresher/static/description/index.html index c6659cbb2..42180f5a2 100644 --- a/web_refresher/static/description/index.html +++ b/web_refresher/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

Adds a button next to the pager (in trees/kanban views) to refresh the displayed list.

https://raw.githubusercontent.com/OCA/web/16.0/web_refresher/static/description/refresh.png

Table of contents

@@ -406,6 +406,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Tecnativa:
    • João Marques
    • Alexandre D. Díaz
    • +
    • Carlos Roca
  • Thanakrit Pintana
  • diff --git a/web_refresher/static/src/js/pager.esm.js b/web_refresher/static/src/js/pager.esm.js new file mode 100644 index 000000000..06f9ec77c --- /dev/null +++ b/web_refresher/static/src/js/pager.esm.js @@ -0,0 +1,9 @@ +/** @odoo-module **/ +/* Copyright 2022 Tecnativa - Carlos Roca + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ +import {Pager} from "@web/core/pager/pager"; +import {Refresher} from "./refresher.esm"; + +Pager.components = Object.assign({}, Pager.components, { + Refresher, +}); diff --git a/web_refresher/static/src/js/refresher.esm.js b/web_refresher/static/src/js/refresher.esm.js new file mode 100644 index 000000000..ce7582d43 --- /dev/null +++ b/web_refresher/static/src/js/refresher.esm.js @@ -0,0 +1,16 @@ +/** @odoo-module **/ +/* Copyright 2022 Tecnativa - Alexandre D. Díaz + * Copyright 2022 Tecnativa - Carlos Roca + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +const {Component} = owl; + +export class Refresher extends Component { + _doRefresh() { + // Note: here we use the pager props, see xml + const {limit, offset} = this.props; + this.props.onUpdate({offset, limit}); + } +} + +Refresher.template = "web_refresher.Button"; diff --git a/web_refresher/static/src/js/refresher.js b/web_refresher/static/src/js/refresher.js deleted file mode 100644 index a3deae68a..000000000 --- a/web_refresher/static/src/js/refresher.js +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2022 Tecnativa - Alexandre D. Díaz - * License AGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ -odoo.define("refresher.Refresher", function (require) { - "use strict"; - - const ControlPanel = require("web.ControlPanel"); - - const {Component, hooks} = owl; - const {useRef} = hooks; - - class Refresher extends Component { - _doRefresh() { - // Note: here we use the pager props, see xml - const {limit, currentMinimum} = this.props; - this.trigger("pager-changed", {currentMinimum, limit}); - } - } - Refresher.template = "web_refresher.Button"; - - // Patch control panel to initialize refresher component - ControlPanel.components = Object.assign({}, ControlPanel.components, { - Refresher, - }); - ControlPanel.patch("web_refresher.ControlPanel", (T) => { - class ControlPanelRefresher extends T { - constructor() { - super(...arguments); - if ("cp_content" in this.props) { - const content = this.props.cp_content || {}; - if ("$refresher" in content) { - this.additionalContent.refresher = content.$refresher; - } - } - - this.contentRefs.refresher = useRef("refresher"); - } - } - return ControlPanelRefresher; - }); - - return Refresher; -}); diff --git a/web_refresher/static/src/xml/pager.xml b/web_refresher/static/src/xml/pager.xml new file mode 100644 index 000000000..67ed8c952 --- /dev/null +++ b/web_refresher/static/src/xml/pager.xml @@ -0,0 +1,17 @@ + + + diff --git a/web_refresher/static/src/xml/refresher.xml b/web_refresher/static/src/xml/refresher.xml index 9067dc0a2..5f44c1282 100644 --- a/web_refresher/static/src/xml/refresher.xml +++ b/web_refresher/static/src/xml/refresher.xml @@ -1,34 +1,7 @@ + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->