Author: jmorliaguet
Date: Tue May 23 20:05:17 2006
New Revision: 3197

Modified:
   cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py
   cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js
   cpsskins/branches/paris-sprint-2006/ui/editing/views.py
   cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt
   cpsskins/branches/paris-sprint-2006/ui/panels/settings.pt
   cpsskins/branches/paris-sprint-2006/ui/panels/settings_section.pt
   
cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css
   cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/site_manager.css
   cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/views.py

Log:

- updated the UI to redirect the user to the settings panel when creating
  a setting from a given format.



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 Tue May 
23 20:05:17 2006
@@ -22,6 +22,7 @@
 from zope.app.session.interfaces import ISession
 from zope.component import getUtility, getUtilitiesFor
 
+from cpsskins import configuration
 from cpsskins import minjson as json
 from cpsskins import utils
 from cpsskins.elements.interfaces import IFormattable

Modified: cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js       
(original)
+++ cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js       Tue May 
23 20:05:17 2006
@@ -2,7 +2,16 @@
 function editSetting(uri) {
   CPSSkins.getModelById('setting-editor').updateData({'form': {'uri': uri} });
   CPSSkins.getControllerById('site-manager-perspectives').switchTo(
-  'setting-editor')
+  'setting-editor');
+}
+
+function createSetting(section, uri) {
+  CPSSkins.getModelById('settings-section').setData(
+  {form: {section: section, uri: uri, create: 1}});
+  CPSSkins.getControllerById('main-editor-perspectives').switchTo(
+  'site-manager');
+  CPSSkins.getControllerById('site-manager-perspectives').switchTo(
+  'settings');
 }
 
 function insertPortlet(info) {

Modified: cpsskins/branches/paris-sprint-2006/ui/editing/views.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/editing/views.py     (original)
+++ cpsskins/branches/paris-sprint-2006/ui/editing/views.py     Tue May 23 
20:05:17 2006
@@ -177,6 +177,7 @@
         viewer = getMultiAdapter((context, request), IViewer)
         preview = viewer()
 
+        uri = IIdentifiable(edited).getURI()
         return {
             'negotiation': negotiation,
             'perspective': perspective,
@@ -184,6 +185,7 @@
             'element': element_info,
             'formats': formats,
             'edited': edited,
+            'uri': uri,
             'setting': setting,
             'preview': preview,
             }
@@ -212,18 +214,20 @@
         self.context = context
         self.request = request
 
-    def createSetting(self, title=u''):
+    def createSetting(self, title=u'', uri=u''):
         """Create a setting from the context.
         """
-        context = self.context
-        container = getParent(context)
+        resources = getUtility(IResourceManager)
+        element = resources.resolve(uri, context)
+        if element is None:
+            raise ValueError("no such element: %s" % uri)
+        container = getParent(element)
         if not IStorage.providedBy(container):
             raise TypeError("The element is not located in a storage.")
 
-        resource = locationCopy(removeSecurityProxy(context))
+        resource = locationCopy(removeSecurityProxy(element))
         getThemeManager(context).registerElement(resource)
 
-        resources = getUtility(IResourceManager)
         resources.register(title=title, resource=resource, context=context)
 
     def useSettingAsFormat(self, uri=u''):

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 20:05:17 2006
@@ -9,6 +9,7 @@
   setting nocall:info/setting;
   edited nocall:info/edited;
   edited_type edited/type:resourcename;
+  format request/form/format|nothing;
   setting_info edited/@@getSettingsInfo">
 
   <a 
href="javascript:CPSSkins.getControllerById('main-editor-perspectives').goBack()">&lt;
 back to the editor</a>
@@ -43,9 +44,10 @@
   <div class="form" tal:condition="python: mode == 'preview'"
    tal:content="structure info/preview" />
 
-  <div style="float:right" tal:condition="request/form/format|nothing">
+  <div style="float:right" tal:define="tab request/form/tab|nothing"
+       tal:condition="tab">
     <p tal:condition="not:setting">
-      create a setting
+      <a tal:attributes="href string:javascript:createSetting('$tab', 
'${info/uri}')">create a setting</a>
     </p>
 
     <!--

Modified: cpsskins/branches/paris-sprint-2006/ui/panels/settings.pt
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/panels/settings.pt   (original)
+++ cpsskins/branches/paris-sprint-2006/ui/panels/settings.pt   Tue May 23 
20:05:17 2006
@@ -13,8 +13,10 @@
     <td class="section">
       <div class="sections">
         <ul class="items">
-          <li tal:repeat="section python: ['perspective', 'widget', 'style', 
'color', 'image']">
-            <a tal:attributes="href 
string:javascript:CPSSkins.getModelById('settings-section').setData({'form': 
{'section': '$section'}})" tal:content="section">SECTION</a></li>
+          <li tal:repeat="section python: ['perspective', 'format-widget', 
'format-style', 'field-color', 'field-image']">
+            <a i18n:translate=""
+            tal:attributes="href 
string:javascript:CPSSkins.getModelById('settings-section').setData({'form': 
{'section': '$section'}})"
+            tal:content="section">SECTION</a></li>
         </ul>
         <br style="clear:both"/>
       </div>

Modified: cpsskins/branches/paris-sprint-2006/ui/panels/settings_section.pt
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/panels/settings_section.pt   
(original)
+++ cpsskins/branches/paris-sprint-2006/ui/panels/settings_section.pt   Tue May 
23 20:05:17 2006
@@ -1,6 +1,7 @@
-<div class="sections" tal:define="section request/form/section|nothing">
-  <div tal:condition="section">
-    <ul style="height: 100px; overflow: auto;" class="items"
+<div class="sections" i18n:domain="cpsskins"
+ tal:define="section request/form/section|nothing">
+  <form tal:condition="section" action="@@createSetting">
+    <ul style="height: 120px; overflow: auto;" class="items"
         tal:define="setting_info context/@@getSettingsInfo">
       <li tal:repeat="info setting_info/?section|nothing">
         <span tal:content="info/setting/title" />
@@ -19,8 +20,14 @@
              tal:condition="not:readonly">[edit]</a>
         </tal:block>
       </li>
+      <li tal:condition="request/form/create|nothing">
+        <input type="text" class="text" name="title" />
+        <input type="hidden" name="uri"
+         tal:attributes="value request/form/uri" />
+        <input type="submit" class="submit" value="create" />
+      </li>
     </ul>
-  </div>
+  </form>
   <div tal:condition="not:section">
   </div>
 </div>

Modified: 
cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css
==============================================================================
--- 
cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css 
    (original)
+++ 
cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css 
    Tue May 23 20:05:17 2006
@@ -58,7 +58,7 @@
 div.inlineTabs a {
   margin-left: 0.2em;
   background-color: #efc;
-  border: 1px solid #eee;
+  border: 1px solid #ccc;
   color: #060;
   padding: 0 0.4em
 }

Modified: 
cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/site_manager.css
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/site_manager.css 
(original)
+++ cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/site_manager.css 
Tue May 23 20:05:17 2006
@@ -114,3 +114,15 @@
   padding: 0.15em;
 }
 
+input.text {
+  border: 1px dotted #999;
+  padding: 0
+}
+
+input.submit {
+  border: none;
+  padding: 0;
+  background-color: #fff;
+  font-size: 12px;
+  color: #006;
+}

Modified: cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/views.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/views.py 
(original)
+++ cpsskins/branches/paris-sprint-2006/ui/screens/sitemanager/views.py Tue May 
23 20:05:17 2006
@@ -54,7 +54,7 @@
         # get all settings
         for setting in resources.list(context=self.context):
             resource = IResource(setting).getResource()
-            info.setdefault(IType(resource).resourcename, []).append({
+            info.setdefault(IType(resource).getTypeName(), []).append({
                 'name': setting.name,
                 'uri': IIdentifiable(setting).getURI(),
                 'setting': setting,
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to