[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ CSS for icons now comes from a view. Would like to be able to register the view just for the portal for better caching and needs a work around for News Item.
Charlie Clark
charlie at begeistert.org
Sat Apr 3 11:27:18 EDT 2010
Log message for revision 110458:
CSS for icons now comes from a view. Would like to be able to register the view just for the portal for better caching and needs a work around for News Item.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
A Products.CMFDefault/trunk/Products/CMFDefault/browser/icons.py
U Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/css/icons.css
U Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-04-03 11:04:00 UTC (rev 110457)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-04-03 15:27:17 UTC (rev 110458)
@@ -160,5 +160,13 @@
class=".ursa.UrsineGlobals"
permission="zope.Public"
/>
+
+ <browser:page
+ for="*"
+ layer="..interfaces.ICMFDefaultSkin"
+ name="icons.css"
+ class=".icons.View"
+ permission="zope.Public"
+ />
</configure>
Added: Products.CMFDefault/trunk/Products/CMFDefault/browser/icons.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/icons.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/icons.py 2010-04-03 15:27:17 UTC (rev 110458)
@@ -0,0 +1,73 @@
+"""CSS for action icons
+$Id$
+"""
+from logging import getLogger
+
+LOG = getLogger("Action Icons CSS")
+
+from zope.component import getUtility
+
+from Products.Five.browser import BrowserView
+
+from Products.CMFCore.interfaces import IPropertiesTool
+from Products.CMFCore.Expression import getExprContext
+from Products.CMFCore.utils import getToolByName
+
+from Products.CMFDefault.browser.utils import memoize
+
+class View(BrowserView):
+
+ def __init__(self, context, request):
+ super(View, self).__init__(context, request)
+ self.show_icons = self._show_icons
+
+ @property
+ @memoize
+ def _show_icons(self):
+ """Are action icons enabled?"""
+ ptool = getUtility(IPropertiesTool)
+ show = ptool.getProperty('enable_actionicons')
+ if show:
+ self.icon = ".icon {padding-left: 1.5em;}\n\n"
+ else:
+ self.icon = ".icon {padding-left: 0.5em;}\n\n"
+ return show
+
+ @property
+ @memoize
+ def template(self):
+ """Always return a template so there are no browser errors"""
+ if self.show_icons:
+ return ".%s {background: url(%s) no-repeat 0.1em}"
+ else:
+ return ".%s {/* %s */}"
+
+ @memoize
+ def actions(self):
+ """List all action icons"""
+ atool = getToolByName(self.context, 'portal_actions')
+ all_actions = atool.listFilteredActionsFor(self.context)
+ icons = []
+ for cat in ['user', 'object', 'folder', 'workflow', 'global']:
+ cat_actions = all_actions[cat]
+ icons.append("/* %s actions */" % cat)
+ for a in cat_actions:
+ icons.append(self.template % (a['id'], a['icon']))
+ return "\n\n".join(icons)
+
+ @memoize
+ def types(self):
+ """List all type icons"""
+ ttool = getToolByName(self.context, 'portal_types')
+ types = ttool.listTypeInfo()
+ econtext = getExprContext(self.context)
+ icons = [self.template % (t.id,
+ t.getIconExprObject()(econtext)) \
+ for t in types]
+ return "\n\n".join(icons)
+
+ def __call__(self):
+ self.request.response.setHeader("content-type", "text/css")
+ self.request.response.write(self.icon)
+ self.request.response.write(self.actions())
+ self.request.response.write(self.types())
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/browser/icons.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/css/icons.css
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/css/icons.css 2010-04-03 11:04:00 UTC (rev 110457)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/css/icons.css 2010-04-03 15:27:17 UTC (rev 110458)
@@ -1,7 +1,7 @@
/*Action and content icons*/
.icon {
- padding-left: 24px;
+ padding-left: 1.5em;
}
/*content icons*/
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt 2010-04-03 11:04:00 UTC (rev 110457)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt 2010-04-03 15:27:17 UTC (rev 110458)
@@ -26,7 +26,7 @@
tal:attributes="href string:${portal_url}/css/screen.css"
href="/screen.css" media="screen"/>
<link rel="stylesheet" type="text/css"
- tal:attributes="href string:${portal_url}/css/icons.css"
+ tal:attributes="href string:${context/absolute_url}/@@icons.css"
href="/icons.css" media="screen"/>
<link rel="stylesheet" type="text/css"
tal:attributes="href string:${portal_url}/css/print.css"
More information about the checkins
mailing list