view libervia/cli/output_xmlui.py @ 4247:4aa62767f501

plugin app manager: various improvements: - Generated password must now be named and are stored, so they are re-used on following restarts. Password size can now be specified. - New `not` filter for `!libervia_param` to inverse a boolean value. - Former `front_url` field has been renamed to `web_url_path` as it is the URL path used for web frontend. All Web frontend related field are prefixed with `web_`. - `front_url` is now used to specify a whole front URL (notably useful if an app uses its own domain). A list can be used to retrieve a key, like for `url_prefix`, and `https` scheme is added if no scheme is specified. - An abstract class is now used for App Managers. - Last application start time is stored in persistent data.
author Goffi <goffi@goffi.org>
date Fri, 31 May 2024 11:08:14 +0200
parents 47401850dec6
children 0d7bb4df2343
line wrap: on
line source

#! /usr/bin/env python3


# Libervia CLI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""Standard outputs"""


from libervia.cli.constants import Const as C
from libervia.cli import xmlui_manager
from libervia.backend.core.log import getLogger

log = getLogger(__name__)


__outputs__ = ["XMLUI"]


class XMLUI(object):
    """Outputs for XMLUI"""

    def __init__(self, host):
        self.host = host
        host.register_output(C.OUTPUT_XMLUI, "simple", self.xmlui, default=True)
        host.register_output(
            C.OUTPUT_LIST_XMLUI, "simple", self.xmlui_list, default=True
        )

    async def xmlui(self, data):
        xmlui = xmlui_manager.create(self.host, data)
        await xmlui.show(values_only=True, read_only=True)
        self.host.disp("")

    async def xmlui_list(self, data):
        for d in data:
            await self.xmlui(d)