web/views/management.py
changeset 607 47f2ee781d6d
parent 604 e85042d18b48
child 631 99f5852f8604
child 1333 85d1bc9da0ad
equal deleted inserted replaced
606:40c7c2cf0797 607:47f2ee781d6d
   282 _('boxes')
   282 _('boxes')
   283 _('components')
   283 _('components')
   284 _('contentnavigation')
   284 _('contentnavigation')
   285 
   285 
   286 
   286 
   287 def make_togglable_link(nodeid, label, cookiename, cookievalue):
   287 def make_togglable_link(nodeid, label, cookiename):
   288     """builds a HTML link that switches the visibility & remembers it"""
   288     """builds a HTML link that switches the visibility & remembers it"""
   289     action = u"javascript: toggle_and_remember_visibility('%s', '%s', '%s')" % \
   289     action = u"javascript: toggle_and_remember_visibility('%s', '%s')" % \
   290         (nodeid, cookiename, cookievalue)
   290         (nodeid, cookiename)
   291     return u'<a href="%s">%s</a>' % (action, label)
   291     return u'<a href="%s">%s</a>' % (action, label)
       
   292 
       
   293 def css_class(someclass):
       
   294     return someclass and 'class="%s"' % someclass or ''
   292 
   295 
   293 class SystemEpropertiesForm(FormMixIn, StartupView):
   296 class SystemEpropertiesForm(FormMixIn, StartupView):
   294     controller = 'edit'
   297     controller = 'edit'
   295     id = 'systemepropertiesform'
   298     id = 'systemepropertiesform'
   296     title = _('site configuration')
   299     title = _('site configuration')
   302 
   305 
   303     def url(self):
   306     def url(self):
   304         """return the url associated with this view. We can omit rql here"""
   307         """return the url associated with this view. We can omit rql here"""
   305         return self.build_url('view', vid=self.id)
   308         return self.build_url('view', vid=self.id)
   306 
   309 
   307     def _cookie_name_from_group(self, group):
   310     def _cookie_name(self, somestr):
   308         return str('%s_property_%s' % (self.config.appid, group))
   311         return str('%s_property_%s' % (self.config.appid, somestr))
   309 
   312 
   310     def _group_status(self, group, default=u'hidden'):
   313     def _group_status(self, group, default=u'hidden'):
   311         cookies = self.req.get_cookie()
   314         cookies = self.req.get_cookie()
   312         cookiename = self._cookie_name_from_group(group)
   315         cookiename = self._cookie_name(group)
   313         cookie = cookies.get(cookiename)
   316         cookie = cookies.get(cookiename)
   314         if cookie is None:
   317         if cookie is None:
   315             cookies[cookiename] = default
   318             cookies[cookiename] = default
   316             self.req.set_cookie(cookies, cookiename, maxage=None)
   319             self.req.set_cookie(cookies, cookiename, maxage=None)
   317             status = default
   320             status = default
   349         _ = req._
   352         _ = req._
   350         w(u'<h1>%s</h1>\n' % _(self.title))
   353         w(u'<h1>%s</h1>\n' % _(self.title))
   351         w(self.error_message())
   354         w(self.error_message())
   352         for label, group, form in sorted((_(g), g, f)
   355         for label, group, form in sorted((_(g), g, f)
   353                                          for g, f in mainopts.iteritems()):
   356                                          for g, f in mainopts.iteritems()):
   354             status = self._group_status(group) #hidden, or not ?
   357             status = css_class(self._group_status(group)) #'hidden' (collapsed), or '' (open) ?
   355             w(u'<h2 class="propertiesform">%s</h2>\n' %
   358             w(u'<h2 class="propertiesform">%s</h2>\n' %
   356               (make_togglable_link('fieldset_' + group, label,
   359               (make_togglable_link('fieldset_' + group, label,
   357                                    self._cookie_name_from_group(group), status)))
   360                                    self._cookie_name(group))))
   358             statusclass = status and 'class="%s"' % status or ''
   361             w(u'<div id="fieldset_%s" %s>' % (group, status))
   359             w(u'<div id="fieldset_%s" %s>' % (group, statusclass))
       
   360             w(u'<fieldset class="subentity">')
   362             w(u'<fieldset class="subentity">')
   361             w(form)
   363             w(form)
   362             w(u'</fieldset></div>')
   364             w(u'</fieldset></div>')
   363         for label, group, objects in sorted((_(g), g, o)
   365         for label, group, objects in sorted((_(g), g, o)
   364                                             for g, o in groupedopts.iteritems()):
   366                                             for g, o in groupedopts.iteritems()):
   365             status = self._group_status(group)
   367             status = css_class(self._group_status(group))
   366             w(u'<h2 class="propertiesform">%s</h2>\n' %
   368             w(u'<h2 class="propertiesform">%s</h2>\n' %
   367               (make_togglable_link('fieldset_' + group, label,
   369               (make_togglable_link('fieldset_' + group, label,
   368                                    self._cookie_name_from_group(group), status)))
   370                                    self._cookie_name(group))))
   369             statusclass = status and 'class="%s"' % status or ''
   371             w(u'<div id="fieldset_%s" %s>' % (group, status))
   370             w(u'<div id="fieldset_%s" %s>' % (group, statusclass))
       
   371             for label, oid, form in sorted((self.req.__('%s_%s' % (group, o)), o, f)
   372             for label, oid, form in sorted((self.req.__('%s_%s' % (group, o)), o, f)
   372                                            for o, f in objects.iteritems()):
   373                                            for o, f in objects.iteritems()):
   373                 w(u'<fieldset class="subentity">')
   374                 w(u'<fieldset class="subentity">')
   374                 w(u'<legend class="componentTitle">%s</legend>\n' % label)
   375                 w(u'<legend class="componentTitle">%s</legend>\n' % label)
   375                 docmsgid = '%s_%s_description' % (group, oid)
   376                 docmsgid = '%s_%s_description' % (group, oid)