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

Reply via email to