Author: rspivak
Date: Wed Nov  2 00:10:01 2005
New Revision: 28876

Added:
   z3lab/cpsblog/trunk/browser/pageform.pt   (contents, props changed)
Removed:
   z3lab/cpsblog/trunk/browser/blogentryform.pt
   z3lab/cpsblog/trunk/browser/blogform.pt
Modified:
   z3lab/cpsblog/trunk/browser/blog.py
   z3lab/cpsblog/trunk/browser/blogentry.py
   z3lab/cpsblog/trunk/browser/skin/blog.pt
   z3lab/cpsblog/trunk/browser/skin/blogentry.pt
   z3lab/cpsblog/trunk/browser/skin/blogportal.py
   z3lab/cpsblog/trunk/browser/skin/template.pt
Log:
- Refactored macro stuff for menu actions
- Blog and BlogEntry now use general pageform.pt template for formlib
  based 'edit' view


Modified: z3lab/cpsblog/trunk/browser/blog.py
==============================================================================
--- z3lab/cpsblog/trunk/browser/blog.py (original)
+++ z3lab/cpsblog/trunk/browser/blog.py Wed Nov  2 00:10:01 2005
@@ -6,12 +6,10 @@
 from zope.component.interfaces import IFactory
 from zope.formlib import form
 
-from cpsblog.interfaces import IBlog
-
-from zope.app import zapi
 from zope.app.catalog.interfaces import ICatalog
 from zope.index.text.parsetree import ParseError
 
+from cpsblog.interfaces import IBlog
 from cpsblog.browser.widgets import FCKEditorWidget
 
 class BlogListing:
@@ -27,7 +25,7 @@
 class BlogEditView(form.EditForm):
     form_fields = form.Fields(IBlog)
 
-    template = ViewPageTemplateFile('blogform.pt')
+    template = ViewPageTemplateFile('pageform.pt')
 
     form_fields['description'].custom_widget = FCKEditorWidget
 

Modified: z3lab/cpsblog/trunk/browser/blogentry.py
==============================================================================
--- z3lab/cpsblog/trunk/browser/blogentry.py    (original)
+++ z3lab/cpsblog/trunk/browser/blogentry.py    Wed Nov  2 00:10:01 2005
@@ -18,7 +18,7 @@
     form_fields['content'].custom_widget = FCKEditorWidget
     form_fields['summary'].custom_widget = FCKEditorWidget
 
-    template = ViewPageTemplateFile('blogentryform.pt')
+    template = ViewPageTemplateFile('pageform.pt')
 
 class BlogEntryAddView(form.AddForm):
     form_fields = form.Fields(IBlogEntry)

Added: z3lab/cpsblog/trunk/browser/pageform.pt
==============================================================================
--- (empty file)
+++ z3lab/cpsblog/trunk/browser/pageform.pt     Wed Nov  2 00:10:01 2005
@@ -0,0 +1,155 @@
+<html metal:extend-macro="context/@@standard_macros/view"
+      metal:define-macro="main">
+<head>
+<!-- XXX Need test -->
+</head>
+
+<body>
+
+  <div metal:fill-slot="menu_actions">
+    <tal:block define="actions context/@@blogportal/menu_actions">
+      <tal:block condition="python:actions=='blogmainmenu'">
+        <metal:block use-macro="context/@@blogmenu_macros/mainmenu" />
+      </tal:block>
+      <tal:block condition="python:actions=='entrymainmenu'">
+        <metal:block use-macro="context/@@blogmenu_macros/entrymainmenu" />
+      </tal:block>
+    </tal:block>
+  </div>
+
+<div metal:fill-slot="body">
+
+<div metal:define-macro="form">
+
+<form action="." metal:define-macro="master"
+      tal:attributes="action request/URL" method="post"
+      class="edit-form" enctype="multipart/form-data"
+      id="zc.page.browser_form">
+
+<script type="text/javascript"><!--
+
+function toggleFormFieldHelp(ob,state) {
+  // ob is the label element
+  var field = ob.form[ob.htmlFor];
+  if (field) {
+    field.style.visibility = state && 'hidden' || 'visible';
+    var help = document.getElementById("field-help-for-" + field.name);
+    if (help) {
+      help.style.visibility = state && 'visible' || 'hidden';
+    }
+  }
+}
+
+//-->
+</script>
+
+<div id="viewspace" metal:define-slot="viewspace">
+
+  <h1  i18n:translate=""
+       tal:condition="view/label"
+       tal:content="view/label"
+       metal:define-slot="heading"
+       >Do something</h1>
+
+  <metal:block define-macro="header">
+
+    <div class="form-status"
+       tal:define="status view/status"
+       tal:condition="status">
+
+      <div class="summary"
+           i18n:translate=""
+           tal:content="view/status">
+        Form status summary
+      </div>
+
+      <ul class="errors" tal:condition="view/errors">
+         <li tal:repeat="error view/error_views">
+            <span tal:replace="structure error">Error Type</span>
+         </li>
+      </ul>
+    </div>
+
+  </metal:block>
+
+  <div metal:define-slot="extra_info" tal:replace="nothing">
+  </div>
+
+  <table class="form-fields">
+    <tr class="row" metal:define-slot="extra_top" tal:replace="nothing">
+        <td class="label">Extra top</td>
+        <td class="label"><input type="text" /></td>
+    </tr>
+    <tbody metal:define-slot="formbody" tal:omit-tag="">
+      <tr tal:repeat="widget view/widgets">
+        <td class="label" tal:define="hint widget/hint"
+          metal:define-macro="labelcell">
+          <label tal:condition="python:hint"
+                 tal:attributes="for widget/name"
+                 onmousedown="toggleFormFieldHelp(this,1)"
+                 onmouseup="toggleFormFieldHelp(this,0)"
+                 onmouseout="toggleFormFieldHelp(this,0)"
+                 style="cursor: help">
+            <span class="required" tal:condition="widget/required"
+            >*</span><span i18n:translate=""
+                           tal:content="widget/label">label</span>
+          </label>
+          <label tal:condition="python:not hint"
+                 tal:attributes="for widget/name">
+            <span class="required" tal:condition="widget/required"
+            >*</span><span i18n:translate=""
+                           tal:content="widget/label">label</span>
+          </label>
+        </td>
+        <td class="field" tal:define="hint widget/hint"
+            metal:define-macro="widgetcell">
+          <div class="form-fields-help"
+               i18n:translate=""
+               tal:content="hint"
+               tal:condition="hint"
+               tal:attributes="id string:field-help-for-${widget/name}"
+               onclick="this.style.visibility='hidden';"
+               style="visibility: hidden; position: absolute;"
+               >Title of this content object.</div>
+          <div class="widget" tal:content="structure widget">
+          <input type="text" /></div>
+          <div class="error"
+               tal:condition="widget/error"
+               >
+            <!-- XXX Put this back, the Zope3 way.
+            <img src="alert.gif" alt="Error"
+            tal:replace="structure context/alert.gif" />
+            -->
+            <span tal:replace="structure widget/error">error</span>
+          </div>
+        </td>
+      </tr>
+    </tbody>
+    <tr class="row" metal:define-slot="extra_bottom" tal:replace="nothing">
+      <td class="label">Extra bottom</td>
+      <td class="label"><input type="text" /></td>
+    </tr>
+  </table>
+  <metal:block define-slot="above_buttons" />
+</div>
+<div id="actionsView">
+  <span class="actionButtons"
+        tal:condition="view/availableActions"
+        metal:define-slot="bottom_buttons">
+    <input tal:repeat="action view/actions"
+           tal:replace="structure action/render"
+           />
+  </span>
+</div>
+
+</form>
+<script type="text/javascript" metal:define-slot="trackChanges">
+  zc_trackChanges(document.getElementById('zc.page.browser_form'));
+</script>
+
+<script type="text/javascript"
+    tal:define="extra_script view/extra_script | nothing"
+    tal:condition="extra_script"
+    tal:content="structure extra_script" />
+
+</div></div></body></html>

Modified: z3lab/cpsblog/trunk/browser/skin/blog.pt
==============================================================================
--- z3lab/cpsblog/trunk/browser/skin/blog.pt    (original)
+++ z3lab/cpsblog/trunk/browser/skin/blog.pt    Wed Nov  2 00:10:01 2005
@@ -1,7 +1,6 @@
 <html metal:use-macro="views/@@standard_macros/page">
-  <div metal:fill-slot="header">
+  <div metal:fill-slot="menu_actions">
     <metal:block use-macro="context/@@blogmenu_macros/mainmenu" />
-    <metal:block use-macro="context/@@blogmenu_macros/searchfield" />
   </div>
 
   <body>

Modified: z3lab/cpsblog/trunk/browser/skin/blogentry.pt
==============================================================================
--- z3lab/cpsblog/trunk/browser/skin/blogentry.pt       (original)
+++ z3lab/cpsblog/trunk/browser/skin/blogentry.pt       Wed Nov  2 00:10:01 2005
@@ -1,7 +1,6 @@
 <html metal:use-macro="views/standard_macros/page">
-  <div metal:fill-slot="header">
+  <div metal:fill-slot="menu_actions">
     <metal:block use-macro="context/@@blogmenu_macros/entrymainmenu" />
-    <metal:block use-macro="context/@@blogmenu_macros/searchfield" />
   </div>
 
   <div metal:fill-slot="body">

Modified: z3lab/cpsblog/trunk/browser/skin/blogportal.py
==============================================================================
--- z3lab/cpsblog/trunk/browser/skin/blogportal.py      (original)
+++ z3lab/cpsblog/trunk/browser/skin/blogportal.py      Wed Nov  2 00:10:01 2005
@@ -1,5 +1,6 @@
 # $Id$
 from zope.app.security.interfaces import IUnauthenticatedPrincipal
+from cpsblog.interfaces import IBlog, IBlogEntry
 
 class BlogPortalView(object):
 
@@ -12,3 +13,11 @@
             self.authenticated = False
         else:
             self.authenticated = True
+
+    def getMenuActions(self):
+        if IBlog.providedBy(self.context):
+            return 'blogmainmenu'
+        elif IBlogEntry.providedBy(self.context):
+            return 'entrymainmenu'
+
+    menu_actions = property(getMenuActions)

Modified: z3lab/cpsblog/trunk/browser/skin/template.pt
==============================================================================
--- z3lab/cpsblog/trunk/browser/skin/template.pt        (original)
+++ z3lab/cpsblog/trunk/browser/skin/template.pt        Wed Nov  2 00:10:01 2005
@@ -46,7 +46,10 @@
         <a href=""
            tal:attributes="href 
string:${context/@@absolute_url}/++site++">logo</a>
       </h1>
-      <metal:block define-slot="header" />
+      <div>
+        <metal:block define-slot="menu_actions" />
+        <metal:block use-macro="context/@@blogmenu_macros/searchfield" />
+      </div>
     </div>
 
     <metal:slot define-slot="breadcrumbs">
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to