Author: jmorliaguet Date: Tue May 23 21:33:36 2006 New Revision: 3201 Added: cpsskins/branches/paris-sprint-2006/ui/zmi/ cpsskins/branches/paris-sprint-2006/ui/zmi/__init__.py (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/configure.zcml (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/ cpsskins/branches/paris-sprint-2006/ui/zmi/icons/__init__.py (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/cell.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/cellblock.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/configure.zcml (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/pageblock.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/portlet.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/slot.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/theme.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/icons/themepage.png (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/registration.pt (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/themes_manager.pt (contents, props changed) cpsskins/branches/paris-sprint-2006/ui/zmi/views.py (contents, props changed) Removed: cpsskins/branches/paris-sprint-2006/ui/icons/ Modified: cpsskins/branches/paris-sprint-2006/ui/configure.zcml cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt
Log: - reorganization Modified: cpsskins/branches/paris-sprint-2006/ui/configure.zcml ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/configure.zcml (original) +++ cpsskins/branches/paris-sprint-2006/ui/configure.zcml Tue May 23 21:33:36 2006 @@ -15,9 +15,6 @@ <include package=".screens" /> - <include package=".icons" /> - - <include package=".manager" /> - + <include package=".zmi" /> </configure> Modified: cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt (original) +++ cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt Tue May 23 21:33:36 2006 @@ -38,17 +38,20 @@ href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: '$id', mode: 'preview'}})">Preview</a> </div> - <div class="form" tal:condition="python: mode == 'edit' and setting is None" - tal:content="structure edited/@@edit.html" /> + <div class="form"> + <tal:block condition="python: mode == 'edit' and setting is None" + content="structure edited/@@edit.html" /> - <div class="form" tal:condition="python: mode == 'preview'" - tal:content="structure info/preview" /> + <tal:block condition="python: mode == 'preview'" + content="structure info/preview" /> - <div style="float:right" tal:define="tab request/form/tab|nothing" - tal:condition="tab"> - <p tal:condition="not:setting"> - <a tal:attributes="href string:javascript:createSetting('$tab', '${info/uri}')">create a setting</a> - </p> + </div> + + <div tal:define="tab request/form/tab|nothing" + tal:condition="tab"> + <a class="inlineTabs" tal:condition="not:setting" + tal:attributes="href string:javascript:createSetting('$tab', '${info/uri}')">create a setting</a> + </div> <!-- <div tal:condition="not:setting"> @@ -74,8 +77,5 @@ </tal:block> --> - </div> - - <br style="clear:both"/> </tal:block> Added: cpsskins/branches/paris-sprint-2006/ui/zmi/__init__.py ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/__init__.py Tue May 23 21:33:36 2006 @@ -0,0 +1,20 @@ +############################################################################## +# +# Copyright (c) 2005-2006 Nuxeo and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +""" + +$Id$ +""" +__docformat__ = "reStructuredText" + +from cpsskins.ui.manager.views import ThemeManagerView Added: cpsskins/branches/paris-sprint-2006/ui/zmi/configure.zcml ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/configure.zcml Tue May 23 21:33:36 2006 @@ -0,0 +1,54 @@ +<configure + xmlns="http://namespaces.zope.org/browser" + xmlns:zope="http://namespaces.zope.org/zope"> + + <include package=".icons" /> + + <page + for="cpsskins.thememanager.IThemeManagementFolder" + name="themes-manager.html" + menu="zmi_views" + title="Themes" + permission="zope.Public" + class=".ThemeManagerView" + template="themes_manager.pt" + /> + + <pages + for="cpsskins.thememanager.IThemeManagementFolder" + permission="zope.ManageContent" + class=".ThemeManagerView"> + + <page + name="activateThemes.html" + attribute="activateThemes" + /> + + <page + name="deactivateThemes.html" + attribute="deactivateThemes" + /> + <page + name="addTheme.html" + attribute="addTheme" + /> + + <page + name="editTheme.html" + attribute="editTheme" + /> + + </pages> + + <!-- registration management --> + + <page + for="cpsskins.thememanager.IThemeManagementFolder" + name="registration.html" + menu="zmi_views" title="Registration" + permission="zope.ManageSite" + class=".views.ThemeManagerView" + template="registration.pt" + /> + +</configure> Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/__init__.py ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/icons/__init__.py Tue May 23 21:33:36 2006 @@ -0,0 +1,19 @@ +############################################################################## +# +# Copyright (c) 2005-2006 Nuxeo and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +""" + +$Id$ +""" +__docformat__ = "reStructuredText" +pass Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/cell.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/cellblock.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/configure.zcml ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/icons/configure.zcml Tue May 23 21:33:36 2006 @@ -0,0 +1,32 @@ +<configure + xmlns="http://namespaces.zope.org/browser" + xmlns:zope="http://namespaces.zope.org/zope"> + + <!-- + <icon name="zmi_icon" + for="cpsskins.elements.interfaces.ITheme" + file="theme.png" + /> + + <icon name="zmi_icon" + for="cpsskins.elements.interfaces.IThemePage" + file="themepage.png" + /> + + <icon name="zmi_icon" + for="cpsskins.elements.interfaces.IPageBlock" + file="pageblock.png" + /> + + <icon name="zmi_icon" + for="cpsskins.elements.interfaces.ICell" + file="cell.png" + /> + + <icon name="zmi_icon" + for="cpsskins.elements.interfaces.ISlot" + file="slot.png" + /> + --> + +</configure> Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/pageblock.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/portlet.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/slot.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/theme.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/icons/themepage.png ============================================================================== Binary file. No diff available. Added: cpsskins/branches/paris-sprint-2006/ui/zmi/registration.pt ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/registration.pt Tue May 23 21:33:36 2006 @@ -0,0 +1,25 @@ +<html metal:use-macro="context/@@standard_macros/view"> + <body> + <div metal:fill-slot="body" + tal:define="enabled view/isEnabled"> + + <h4>Registration</h4> + <form tal:condition="not:enabled" + action="./@@activateThemes.html" method="post"> + <p style="color:red">Themes are currently deactivated.</p> + <p> + <input type="submit" value="Activate themes" /> + </p> + </form> + + <form tal:condition="enabled" + action="./@@deactivateThemes.html" method="post"> + <p style="color:green">Themes are currently activated.</p> + <p> + <input type="submit" value="Deactivate themes" /> + </p> + </form> + + </div> + </body> +</html> Added: cpsskins/branches/paris-sprint-2006/ui/zmi/themes_manager.pt ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/themes_manager.pt Tue May 23 21:33:36 2006 @@ -0,0 +1,27 @@ +<html metal:use-macro="context/@@standard_macros/view"> + <body> + <div metal:fill-slot="body" + tal:define="enabled view/isEnabled"> + <h4>Themes</h4> + <tal:block define="themes view/listThemeInfo"> + <ul> + <li tal:repeat="theme themes"> + <a href="" tal:omit-tag="not:enabled" + tal:content="theme/id" + tal:attributes="href theme/edit_url" /> + (<span tal:content="theme/title" />) + </li> + </ul> + <p tal:condition="not:themes">There are no themes</p> + </tal:block> + <form action="./@@addTheme.html" method="post" tal:condition="enabled"> + <p> + <input type="submit" value="Add a theme" /> + </p> + </form> + <p tal:condition="not:enabled"> + Themes are deactived. Use the registration tab to activate them. + </p> + </div> + </body> +</html> Added: cpsskins/branches/paris-sprint-2006/ui/zmi/views.py ============================================================================== --- (empty file) +++ cpsskins/branches/paris-sprint-2006/ui/zmi/views.py Tue May 23 21:33:36 2006 @@ -0,0 +1,118 @@ +############################################################################## +# +# Copyright (c) 2005-2006 Nuxeo and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +""" + +$Id$ +""" +__docformat__ = "reStructuredText" + +from zope.app import zapi +from zope.component import getSiteManager +from zope.interface import implements, Interface +from zope.security.proxy import removeSecurityProxy +from zope.traversing.api import getParent + +from cpsskins.elements.theme import Theme +from cpsskins.ui.authoring.views import IAuthoring +from cpsskins.utils import getThemeManager, addThemeSkeleton +from cpsskins.thememanager import IThemeManagementFolder + +class IThemeManagerView(Interface): + + def getThemes(): + """Return the list of themes.""" + + def listThemeInfo(): + """Return a dictionary with some information about the themes + (id, title, url) + """ + + def activateThemes(): + """Activate themes.""" + + def deactivateThemes(): + """Deactivate themes.""" + +class ThemeManagerView: + """Themes manager view. + """ + implements(IThemeManagerView) + + def __init__(self, context, request): + self.context = context + self.request = request + + self.tmutil = getThemeManager(context) + + def _getSiteManager(self): + sm = getSiteManager(self.context) + if sm == self.context: + sm = getSiteManager(getParent(self.context)) + return sm + + def isEnabled(self): + sm = self._getSiteManager() + for r in sm.registeredUtilities(): + if r.component == self.context: + return True + return False + + def activateThemes(self): + sm = self._getSiteManager() + sm.registerUtility(removeSecurityProxy(self.context), + IThemeManagementFolder) + self.request.response.redirect('@@registration.html') + + def deactivateThemes(self): + sm = self._getSiteManager() + sm.unregisterUtility(self.context, IThemeManagementFolder) + self.request.response.redirect('@@registration.html') + + def getThemes(self): + return self.tmutil.getThemes() + + def listThemeInfo(self): + info = [] + edit_url = '/++skin++cpsskins%s/editTheme.html' % \ + zapi.getPath(self.context) + for theme in self.getThemes(): + path = zapi.getPath(theme) + info.append({ + 'id': zapi.name(theme), + 'title': theme.title, + 'edit_url': '%s?name=%s' % (edit_url, theme.name) + }) + return info + + def editTheme(self, name=u''): + """Enter the theme editor + """ + context = self.context + request = self.request + authoring = zapi.getMultiAdapter((context, request), IAuthoring, + name='authoring') + authoring.setWorkTheme(name) + request.response.redirect('./@@editor.html') + + def addTheme(self): + """Creates a theme skeleton (mostly for demo purposes until some theme + export / import functionality is available). + """ + theme = addThemeSkeleton(self.context) + + # set as the default theme + if len(self.getThemes()) == 1: + theme.setAsDefault() + + self.request.response.redirect('@@themes-manager.html') -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins