Author: jmorliaguet
Date: Wed May 10 13:44:57 2006
New Revision: 3094

Modified:
   cpsskins/branches/paris-sprint-2006/standard/filters/style/configure.zcml
   cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js
   cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt
   
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor_form.ctal
   cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py

Log:

- misc fixes



Modified: 
cpsskins/branches/paris-sprint-2006/standard/filters/style/configure.zcml
==============================================================================
--- cpsskins/branches/paris-sprint-2006/standard/filters/style/configure.zcml   
(original)
+++ cpsskins/branches/paris-sprint-2006/standard/filters/style/configure.zcml   
Wed May 10 13:44:57 2006
@@ -32,13 +32,13 @@
       layer="cpsskins.browser.skin.cpsskins" />
 
   <browser:pages
-      for="cpsskins.standard.formats.style.IStyle"
+      for="*"
       class=".views.StyleEditor"
       permission="zope.ManageContent">
 
     <browser:page
-        name="renderPreview"
-        attribute="renderPreview"
+        name="renderStylePreview"
+        attribute="renderStylePreview"
     />
 
     <browser:page
@@ -47,13 +47,13 @@
     />
 
     <browser:page
-        name="getData"
-        attribute="getData"
+        name="getStyleData"
+        attribute="getStyleData"
     />
 
     <browser:page
-        name="setData"
-        attribute="setData"
+        name="setStyleData"
+        attribute="setStyleData"
     />
 
   </browser:pages>

Modified: 
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js
==============================================================================
--- cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js  
(original)
+++ cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js  
Wed May 10 13:44:57 2006
@@ -4,7 +4,9 @@
       var target = info.target;
       target.style.backgroundColor = '#ffc';
       var selector = getSelectorInContext(target, $('previewArea'));
-      CPSSkins.getModelById('style-editor').updateData({'selector': selector});
+      var style_id = 
CPSSkins.getModelById('element-editor').getData().form.format;
+
+      CPSSkins.getModelById('style-editor').updateData({'selector': selector, 
'style_id': style_id});
     }
   });
 
@@ -30,5 +32,6 @@
     }
     // reverse the array
     selectors.reverse();
+    selectors.shift();
     return selectors.join(" ");
   }

Modified: 
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt
==============================================================================
--- cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt  
(original)
+++ cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt  
Wed May 10 13:44:57 2006
@@ -5,7 +5,9 @@
                widget display/formattable:widget;
                widget_types widget/types">
 
-  <ins class="model" tal:content="python: view.getModelDef(id)" />
+  <tal:block content="context/identifier" />
+
+  <ins class="model" tal:content="python: view.getModelDef()" />
 
   <ins class="controller">
   {"id": "style-editor-preview",
@@ -35,12 +37,12 @@
       <td width="50%" valign="top">
         <h3>Preview</h3>
         <div id="previewArea">
-          <ins class="view" tal:content="python: view.getPreviewDef(id)" />
+          <ins class="view" tal:content="python: view.getPreviewDef()" />
         </div>
       </td>
       <td width="50%" valign="top">
         <h3>Style properties</h3>
-        <ins class="view" tal:content="python: view.getFormDef(id)" />
+        <ins class="view" tal:content="python: view.getFormDef()" />
       </td>
     </tr>
   </table>

Modified: 
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor_form.ctal
==============================================================================
--- 
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor_form.ctal
   (original)
+++ 
cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor_form.ctal
   Wed May 10 13:44:57 2006
@@ -1,6 +1,5 @@
-<form ctal:attributes="action javascript:style_path + '/@@setFormData'"
-      ctal:condition="selector"
-      action="." method="post" onsubmit="return false">
+<form ctal:condition="selector"
+      action="@@setFormData" method="post" onsubmit="return false">
 
   <div ctal:content="selector">SELECTOR</div>
 

Modified: cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py 
(original)
+++ cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py Wed May 
10 13:44:57 2006
@@ -40,37 +40,38 @@
         self.session = ISession(request)['cpsskins']
         self.tmutil = getThemeManager(context)
 
-    def renderPreview(self):
+    def renderStylePreview(self):
         """Render a style preview based on the specified widget.
         """
-        widget_type = self.data.get(u'widget', u'standard.plain_html')
+        widget_type = self.data.get(u'widget')
+        if widget_type is None:
+            return u''
         widget = getUtility(configuration.IWidget, widget_type)
         markup = widget.view(None, None).renderPreview()
         return utils.insertCSSClass(markup, utils.camelize(widget_type))
 
-    def getModelDef(self, id):
-        style = self.tmutil.getElementById(id)
-        style_path = zapi.getPath(style)
+    def getModelDef(self):
+        path = zapi.getPath(self.context)
         return json.write({
             'id': 'style-editor',
             'storage': {
                 'type': 'remote',
                 'accessors': {
-                    'get': '/++skin++cpsskins/%s/@@getData' % style_path,
-                    'set': '/++skin++cpsskins/%s/@@setData' % style_path,
+                    'get': '/++skin++cpsskins/%s/@@getStyleData' % path,
+                    'set': '/++skin++cpsskins/%s/@@setStyleData' % path,
                 }
             },
             'data': {
-                'preview_url': '/++skin++cpsskins/%s/@@renderPreview' % \
-                               style_path,
+                'preview_url': '/++skin++cpsskins/%s/@@renderStylePreview' % \
+                               path,
                 'widget': '',
                 'selector': '',
                 'fields': [],
-                'style_path': style_path,
+                'style_id': '',
             },
         })
 
-    def getPreviewDef(self, id):
+    def getPreviewDef(self):
         return json.write({
             'id': 'style-editor-preview',
             'widget': {
@@ -82,11 +83,13 @@
             'perspectives': ['element-editor'],
         })
 
-    def getFormDef(self, id):
+    def getFormDef(self):
+        path = zapi.getPath(self.context)
         return json.write({
             'id': 'style-editor-form',
             'widget': {
-                'template': '/++skin++cpsskins/@@style-editor-form.html',
+                'template': '/++skin++cpsskins/%s/@@style-editor-form.html' % \
+                            path,
             },
             'model': 'style-editor',
             'controllers': ['style-editor-preview', 
'main-editor-perspectives'],
@@ -94,38 +97,50 @@
         })
 
     def setFormData(self):
-        selector = self.data.get(u'selector')
+        data = self.data
+        selector = data.get(u'selector')
+        style_id = data.get(u'style_id')
+        style = self.tmutil.getElementById(style_id)
+
         if selector is None:
             raise ValueError("The CSS selector is not set.")
 
         props = {}
-        for f in self.data[u'fields']:
-            name = f[u'name']
+        for name in self.getFieldNames():
             value = self.request.form.get(name)
             if value is None:
                 continue
             props[name] = value
 
-        self.context[selector] = props
+        style[selector] = props
 
-    def setData(self, data):
+    def setStyleData(self, data):
         self.data = json.read(data)
         self.request.response.setHeader('content-type', 'text/x-json')
-        return self.getData()
+        return self.getStyleData()
+
+    def getFieldNames(self):
+        return u'color', u'background-color', u'padding', u'border'
+
+    def getStyleData(self):
+        data = self.data
+        selector = data.get(u'selector', u'')
+        widget = data.get(u'widget', u'')
+        style_id = data.get(u'style_id')
+        style = self.tmutil.getElementById(style_id)
 
-    def getData(self):
-        selector = self.data.get(u'selector', u'')
         data = {
-            'widget': self.data[u'widget'],
+            'widget': widget,
             'selector': selector,
             'fields': [],
+            'style_id': style_id,
         }
         if selector:
             fields = []
-            sel = self.context.get(selector)
+            sel = style.get(selector)
             if sel is None:
-                self.context[sel] = sel = {}
-            for f in u'color', u'background-color', u'padding', u'border':
+                style[sel] = sel = {}
+            for f in self.getFieldNames():
                 fields.append({
                     'name': f,
                     'label': f,
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to