equal
deleted
inserted
replaced
27 |
27 |
28 from logilab.mtconverter import xml_escape |
28 from logilab.mtconverter import xml_escape |
29 from logilab.common.deprecation import class_renamed |
29 from logilab.common.deprecation import class_renamed |
30 from rql import parse |
30 from rql import parse |
31 |
31 |
32 from cubicweb.selectors import (yes, no_cnx, match_form_params, match_context, |
32 from cubicweb.selectors import (yes, match_form_params, match_context, |
33 multi_etypes_rset, configuration_values, |
33 multi_etypes_rset, configuration_values, |
34 anonymous_user, authenticated_user) |
34 anonymous_user, authenticated_user) |
35 from cubicweb.schema import display_name |
35 from cubicweb.schema import display_name |
36 from cubicweb.utils import wrap_on_write |
36 from cubicweb.utils import wrap_on_write |
37 from cubicweb.uilib import toggle_action |
37 from cubicweb.uilib import toggle_action |
179 |
179 |
180 class ApplicationMessage(component.Component): |
180 class ApplicationMessage(component.Component): |
181 """display messages given using the __message parameter into a special div |
181 """display messages given using the __message parameter into a special div |
182 section |
182 section |
183 """ |
183 """ |
184 __select__ = ~no_cnx() |
184 __select__ = yes() |
185 __regid__ = 'applmessages' |
185 __regid__ = 'applmessages' |
186 # don't want user to hide this component using an cwproperty |
186 # don't want user to hide this component using an cwproperty |
187 cw_property_defs = {} |
187 cw_property_defs = {} |
188 |
188 |
189 def call(self): |
189 def call(self, msg=None): |
190 msgs = [msg for msg in (self._cw.get_shared_data('sources_error', pop=True), |
190 if msg is None: |
191 self._cw.message) if msg] |
191 msgs = [] |
|
192 if self._cw.cnx: |
|
193 srcmsg = self._cw.get_shared_data('sources_error', pop=True) |
|
194 msgs.append(srcmsg) |
|
195 reqmsg = self._cw.message # XXX don't call self._cw.message twice |
|
196 if reqmsg: |
|
197 msgs.append(reqmsg) |
|
198 else: |
|
199 msgs = [msg] |
192 self.w(u'<div id="appMsg" onclick="%s" class="%s">\n' % |
200 self.w(u'<div id="appMsg" onclick="%s" class="%s">\n' % |
193 (toggle_action('appMsg'), (msgs and ' ' or 'hidden'))) |
201 (toggle_action('appMsg'), (msgs and ' ' or 'hidden'))) |
194 for msg in msgs: |
202 for msg in msgs: |
195 self.w(u'<div class="message" id="%s">%s</div>' % (self.domid, msg)) |
203 self.w(u'<div class="message" id="%s">%s</div>' % (self.domid, msg)) |
196 self.w(u'</div>') |
204 self.w(u'</div>') |