# HG changeset patch # User souliane # Date 1454582917 -3600 # Node ID 9eabf7fadfdd08de94f1f6c5b34efbc8aaee7527 # Parent cdecf553e051e0684e18492f7eb2eb9dd62adbc6 frontends (jp): onActionNew displays xmlui message if no meta_type is defined and xmlui is defined diff -r cdecf553e051 -r 9eabf7fadfdd frontends/src/jp/base.py --- a/frontends/src/jp/base.py Thu Feb 04 11:44:43 2016 +0100 +++ b/frontends/src/jp/base.py Thu Feb 04 11:48:37 2016 +0100 @@ -37,6 +37,8 @@ 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 @@ 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 @@ 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 -r cdecf553e051 -r 9eabf7fadfdd frontends/src/jp/cmd_blog.py --- a/frontends/src/jp/cmd_blog.py Thu Feb 04 11:44:43 2016 +0100 +++ b/frontends/src/jp/cmd_blog.py Thu Feb 04 11:48:37 2016 +0100 @@ -27,7 +27,7 @@ __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'))