Author: jmorliaguet Date: Sat Jun 10 23:00:15 2006 New Revision: 3393 Added: cpsskins/branches/paris-sprint-2006/ui/screens/common/images/arrow-down-16.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/screens/common/images/arrow-left-16.png (contents, props changed) Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/authoring.css cpsskins/branches/paris-sprint-2006/ui/screens/common/configure.zcml cpsskins/branches/paris-sprint-2006/ui/screens/common/content_factory.pt cpsskins/branches/paris-sprint-2006/ui/screens/common/images/configure.zcml cpsskins/branches/paris-sprint-2006/ui/screens/common/views.py cpsskins/branches/paris-sprint-2006/ui/screens/definitions.py cpsskins/branches/paris-sprint-2006/ui/screens/editor.pt
Log: - optimizations by splitting the remote scripting controllers by area. - the content factory is shown in an accordion menu: http://www.medic.chalmers.se/~jmo/Zope3/content-factory.png Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/authoring.css ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/common/authoring.css (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/common/authoring.css Sat Jun 10 23:00:15 2006 @@ -54,28 +54,26 @@ .toolbox .header { border-bottom: 1px solid #000; background-color: #999; - font-size: 1.1em; - color: white; + font-size: 13px; padding: 2px 0px 2px 30px; + color: #fff; } .toolbox .section { - border-bottom: 1px solid #999; - background-color: #ccc; - padding: 0px 0px 1px 30px; -} - -.toolbox div.item { - cursor: move; - padding: 6px; - border-bottom: 1px solid #999; + border-bottom: 1px solid #666; + padding: 3px 0px 3px 30px; + display: block; + color: #000; + background: #ccc url(++resource++arrow-left-16.png) 4px center no-repeat; } -.toolbox div.odd { +.toolbox .section.selected { + background: #ccc url(++resource++arrow-down-16.png) 4px center no-repeat; } -.toolbox div.item:hover { - background-color: #ffc; +.toolbox div.item { + cursor: default; + padding: 6px; border-bottom: 1px solid #999; } Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/configure.zcml ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/common/configure.zcml (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/common/configure.zcml Sat Jun 10 23:00:15 2006 @@ -46,6 +46,11 @@ /> <page + name="selectPortletProvider" + attribute="selectPortletProvider" + /> + + <page name="content-factory.html" template="content_factory.pt" /> Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/content_factory.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/common/content_factory.pt (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/common/content_factory.pt Sat Jun 10 23:00:15 2006 @@ -1,12 +1,16 @@ <tal:block i18n:domain="cpsskins"> <div class="header">Portlets</div> <tal:block repeat="info view/listPortlets"> - <div class="section" i18n:translate="" - tal:content="string:provider.${info/provider}" /> - <div class="factory" tal:repeat="factory info/factories" - tal:attributes="type_name factory/type_name"> + <a i18n:translate="" + tal:define="provider info/provider; selected info/selected" + tal:attributes="href string:@@selectPortletProvider?provider=$provider; + class python: selected and 'selected section' or 'section'" + tal:content="string:provider.$provider" /> + <div class="factory" tal:condition="info/selected" + tal:repeat="factory info/factories" + tal:attributes="type_name factory/type_name"> <div tal:define="title factory/title; odd repeat/factory/odd;" - tal:attributes="class python: odd and 'item odd' or 'item'"> + tal:attributes="class python: odd and 'item odd' or 'item'"> <img class="icon" i18n:attributes="title" tal:attributes="title title; src string:++resource++${factory/icon}" /> <span class="title" tal:content="factory/title" /> — Added: cpsskins/branches/paris-sprint-2006/ui/screens/common/images/arrow-down-16.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/screens/common/images/arrow-left-16.png ============================================================================== Binary file. No diff available. Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/images/configure.zcml ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/common/images/configure.zcml (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/common/images/configure.zcml Sat Jun 10 23:00:15 2006 @@ -102,4 +102,12 @@ name="li-16.png" file="li-16.png" layer="cpsskins.browser.skin.cpsskins" /> + <resource + name="arrow-left-16.png" file="arrow-left-16.png" + layer="cpsskins.browser.skin.cpsskins" /> + + <resource + name="arrow-down-16.png" file="arrow-down-16.png" + layer="cpsskins.browser.skin.cpsskins" /> + </configure> Modified: cpsskins/branches/paris-sprint-2006/ui/screens/common/views.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/common/views.py (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/common/views.py Sat Jun 10 23:00:15 2006 @@ -35,6 +35,7 @@ from cpsskins.browser.tree.interfaces import INodeMoving, INodeOrdering from cpsskins.browser.tree.interfaces import INodeDuplicating from cpsskins.browser.rendering.interfaces import IViewer +from cpsskins.clientstorage import ClientStorage from cpsskins.configuration.portlets.factory import IPortletFactory from cpsskins.configuration.portlets import DEFAULT_PROVIDER from cpsskins.elements.theme import Theme @@ -138,10 +139,19 @@ def __init__(self, context, request): self.context = context self.request = request + self.data = ClientStorage(u'panels') + + def selectPortletProvider(self, provider=DEFAULT_PROVIDER): + current_provider = self.data['provider'] + if provider == current_provider: + self.data['provider'] = u'' + else: + self.data['provider'] = provider def listPortlets(self): """Return the factories of all registered portlets by provider name. """ + current_provider = self.data['provider'] factories = getAllUtilitiesRegisteredFor(IPortletFactory) providers = {} for factory in factories: @@ -153,8 +163,8 @@ names.sort() names.insert(0, DEFAULT_PROVIDER) - return [{'provider': name, 'factories': providers[name]} - for name in names] + return [{'provider': name, 'selected': name == current_provider, + 'factories': providers[name]} for name in names] class IAuthoring(Interface): """ """ Modified: cpsskins/branches/paris-sprint-2006/ui/screens/definitions.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/definitions.py (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/definitions.py Sat Jun 10 23:00:15 2006 @@ -193,6 +193,16 @@ }, }, + 'panels': { + 'id': 'panels', + 'storage': { + 'type': 'local', + }, + 'data': { + 'provider': 'standard', + }, + }, + } VIEWS = { @@ -206,7 +216,7 @@ 'model': 'stylesheet', 'perspectives': ['page-designer', 'content-author', 'element-editor'], - 'controllers': ['main-editor-perspectives', 'main-editor-actions'], + 'controllers': ['main-editor-perspectives', 'element-editor-actions'], }, # the main editor action buttons @@ -441,7 +451,7 @@ }, 'model': 'element-editor', 'perspectives': ['element-editor'], - 'controllers': ['main-editor-perspectives', 'main-editor-actions'], + 'controllers': ['main-editor-perspectives', 'element-editor-actions'], }, # Bottom area @@ -452,7 +462,8 @@ }, 'model': 'content-factory', 'perspectives': ['page-designer', 'content-author'], - 'controllers': ['main-editor-perspectives', 'content-factory'], + 'controllers': ['main-editor-perspectives', 'content-factory', + 'factory-actions'], }, # Contextual menu @@ -614,6 +625,17 @@ 'type': 'remote scripting', }, + 'factory-actions': { + 'id': 'factory-actions', + 'type': 'remote scripting', + }, + + # remote scripting for the element editor / stylesheet + 'element-editor-actions': { + 'id': 'element-editor-actions', + 'type': 'remote scripting', + }, + # prevent links from being active 'disable-links': { 'id': 'disable-links', Modified: cpsskins/branches/paris-sprint-2006/ui/screens/editor.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/editor.pt (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/editor.pt Sat Jun 10 23:00:15 2006 @@ -37,6 +37,10 @@ <ins class="controller" tal:content="python: controller('main-editor-actions')" /> <ins class="controller" + tal:content="python: controller('element-editor-actions')" /> + <ins class="controller" + tal:content="python: controller('factory-actions')" /> + <ins class="controller" tal:content="python: controller('disable-links')" /> <!-- top tabs --> @@ -53,6 +57,8 @@ <ins class="controller" tal:content="python: controller('page-mode-perspectives')" /> + <ins class="model" tal:content="python: model('panels')" /> + <table style="width:100%"> <tr> <!-- left panel --> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins