diff --git a/frontends/src/jp/base.py b/frontends/src/jp/base.py index 00b7193d..6ae20bdb 100644 --- a/frontends/src/jp/base.py +++ b/frontends/src/jp/base.py @@ -37,6 +37,8 @@ from sat_frontends.bridge.DBus import DBusBridgeFrontend from sat.core import exceptions import sat_frontends.jp from sat_frontends.jp.constants import Const as C +import xml.etree.ElementTree as ET # FIXME: used temporarily to manage XMLUI + try: import progressbar except ImportError: @@ -621,7 +623,12 @@ class CommandAnswering(CommandBase): try: action_type = action_data['meta_type'] except KeyError: - pass + try: + xml_ui = action_data["xmlui"] + except KeyError: + pass + else: + self.onXMLUI(xml_ui) else: try: callback = self.action_callbacks[action_type] @@ -630,6 +637,19 @@ class CommandAnswering(CommandBase): else: callback(action_data, action_id, security_limit, profile) + def onXMLUI(self, xml_ui): + """Display a dialog received from the backend. + + @param xml_ui (unicode): dialog XML representation + """ + # FIXME: we temporarily use ElementTree, but a real XMLUI managing module + # should be available in the future + # TODO: XMLUI module + ui = ET.fromstring(xml_ui.encode('utf-8')) + dialog = ui.find("dialog") + if dialog is not None: + self.disp(dialog.findtext("message"), error=dialog.get("level") == "error") + def connected(self): """Auto reply to confirmations requests""" self.need_loop = True diff --git a/frontends/src/jp/cmd_blog.py b/frontends/src/jp/cmd_blog.py index 26d763db..f1c6c772 100644 --- a/frontends/src/jp/cmd_blog.py +++ b/frontends/src/jp/cmd_blog.py @@ -27,7 +27,7 @@ URL_REDIRECT_PREFIX = 'url_redirect_' __commands__ = ["Blog"] -class Import(base.CommandBase): +class Import(base.CommandAnswering): def __init__(self, host): super(Import, self).__init__(host, 'import', use_progress=True, help=_(u'import an external blog'))