Mercurial > libervia-backend
diff frontends/src/jp/base.py @ 1840:9eabf7fadfdd
frontends (jp): onActionNew displays xmlui message if no meta_type is defined and xmlui is defined
author | souliane <souliane@mailoo.org> |
---|---|
date | Thu, 04 Feb 2016 11:48:37 +0100 |
parents | 39545dc527a1 |
children | afc7f6328394 |
line wrap: on
line diff
--- 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