[CalendarServer-changes] [7973] CalendarServer/branches/users/glyph/imip-and-admin-html/ calendarserver/webadmin

source_changes at macosforge.org source_changes at macosforge.org
Thu Aug 11 21:53:59 PDT 2011


Revision: 7973
          http://trac.macosforge.org/projects/calendarserver/changeset/7973
Author:   glyph at apple.com
Date:     2011-08-11 21:53:59 -0700 (Thu, 11 Aug 2011)
Log Message:
-----------
noProxyResults / hasProxyResults renderers

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py
    CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/template.html

Modified: CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py
===================================================================
--- CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py	2011-08-12 04:53:47 UTC (rev 7972)
+++ CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py	2011-08-12 04:53:59 UTC (rev 7973)
@@ -361,6 +361,34 @@
 
     @renderer
     @inlineCallbacks
+    def noProxyResults(self, request, tag):
+        """
+        Renderer which shows its tag if there are no proxy search results for
+        this request.
+        """
+        results = yield self.performProxySearch()
+        if results:
+            returnValue("")
+        else:
+            returnValue(tag)
+
+
+    @renderer
+    @inlineCallbacks
+    def hasProxyResults(self, request, tag):
+        """
+        Renderer which shows its tag if there are any proxy search results for
+        this request.
+        """
+        results = yield self.performProxySearch()
+        if results:
+            returnValue(tag)
+        else:
+            returnValue("")
+
+
+    @renderer
+    @inlineCallbacks
     def proxyRows(self, request, tag):
         """
         Renderer which does zipping logic to render read-only and read-write
@@ -373,10 +401,16 @@
         returnValue(result)
 
 
-    def performProxySearch(self, request):
+    _proxySearchResults = None
+
+    def performProxySearch(self):
+        if self._proxySearchResults is not None:
+            return succeed(self._proxySearchResults)
+
         if self.proxySearch:
             def nameSorted(records):
                 records.sort(key=operator.attrgetter('fullName'))
+                self._proxySearchResults = records
                 return records
             return self.adminResource.search(
                 self.proxySearch).addCallback(nameSorted)
@@ -389,7 +423,7 @@
         """
         Renderer which renders search results for the proxy form.
         """
-        d = self.performProxySearch(request)
+        d = self.performProxySearch()
         return d.addCallback(searchToSlots, tag)
 
 

Modified: CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/template.html
===================================================================
--- CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/template.html	2011-08-12 04:53:47 UTC (rev 7972)
+++ CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/template.html	2011-08-12 04:53:59 UTC (rev 7973)
@@ -119,7 +119,7 @@
       <t:transparent t:render="autoSchedule">
       <div style="margin-top:15px; border-bottom:1px #444444 dotted"></div>
       <form id="frm_autoSchedule" name="autoScheduleForm" action="/admin/"
-            style="margin-top:15px">
+        style="margin-top:15px">
         <input type="hidden" id="hdn_resourceId" name="resourceId"
         ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
         <div style="margin-top:7px">
@@ -136,13 +136,13 @@
       <!-- currentProxiesHtml -->
       <div style="margin-top:15px; border-bottom:1px #444444 dotted"></div>
       <form id="frm_proxies" name="proxiesForm" action="/admin/"
-            style="margin-top:15px">
+        style="margin-top:15px">
         <input type="hidden" id="hdn_resourceId" name="resourceId"
         ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
         <div t:render="noProxies" style="margin-top:15px"
-            >This resource has no proxies.</div>
+          >This resource has no proxies.</div>
         <table cellspacing="0" cellpadding="3" border="1"
-               t:render="hasProxies">
+          t:render="hasProxies">
           <tr class="odd">
             <th colspan="2">Read-Only Proxies</th>
             <th colspan="2">Read-Write Proxies</th>
@@ -168,11 +168,11 @@
             <td><t:slot name="proxy" /></td>
             <td>
               <input type="submit" value="Make Read-Only"><t:attr
-                     name="name">mkReadProxy|<t:slot name="type" />:<t:slot
-                     name="shortName"/></t:attr></input>
+              name="name">mkReadProxy|<t:slot name="type" />:<t:slot
+              name="shortName"/></t:attr></input>
               <input type="submit" value="Remove Proxy"><t:attr
-                     name="name">rmProxy|<t:slot name="type" />:<t:slot
-                     name="shortName"/></t:attr></input>
+              name="name">rmProxy|<t:slot name="type" />:<t:slot
+              name="shortName"/></t:attr></input>
             </td>
             </t:transparent>
             <t:transparent t:render="noReadWriteProxies">
@@ -185,46 +185,48 @@
       <!-- proxySearchHtml -->
 
       <div style="margin-top:15px; border-bottom:1px #444444 dotted"></div>
+      <div t:render="noProxyResults"
+        style="margin-top:4px"
+        >No matches found for proxy resource <b><t:slot
+          name="proxySearch" /></b>.</div>
       <form id="frm_proxySearch" name="proxySearchForm" action="/admin/"
-          style="margin-top:15px; margin-bottom:0; padding-bottom:0">
-          Search to add proxies:
-          <input type="hidden" id="hdn_resourceId" name="resourceId"
-          ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
-          <input type="text" id="txt_proxySearch" name="proxySearch" size="40"
-          ><t:attr name="value"><t:slot name="proxySearch" /></t:attr></input>
-          <input type="submit" value="Search"></input>
+        style="margin-top:15px; margin-bottom:0; padding-bottom:0">
+        Search to add proxies:
+        <input type="hidden" id="hdn_resourceId" name="resourceId"
+        ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
+        <input type="text" id="txt_proxySearch" name="proxySearch" size="40"
+        ><t:attr name="value"><t:slot name="proxySearch" /></t:attr></input>
+        <input type="submit" value="Search"></input>
       </form>
-      <div style="margin-top:4px"
-          >No matches found for proxy resource <b><t:slot
-              name="proxySearch" /></b>.</div>
-      <form id="frm_proxyAdd" name="proxyAddForm" action="/admin/"
-          style="margin-top:2px; padding-top:0">
-          <input type="hidden" id="hdn_resourceId" name="resourceId"
-          ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
-          <table cellspacing="0" cellpadding="3" border="1">
-              <tr class="odd">
-                  <th>Full Name</th>
-                  <th>Type</th>
-                  <th>Short Names</th>
-                  <th>Email Addresses</th>
-                  <th></th>
-              </tr>
-              <tr t:render="proxySearchRows">
-                  <t:attr name="class"><t:slot name="rowClass" /> </t:attr>
-                  <td><t:slot name="name" /></td>
-                  <td><t:slot name="typeStr" /></td>
-                  <td><t:slot name="shortNames" /></td>
-                  <td><t:slot name="emails" /></td>
-                  <td>
-                      <input type="submit" value="Make Read-Only Proxy"><t:attr
-                      name="name">mkReadProxy|<t:slot name="type" />:<t:slot
-                      name="shortName"/></t:attr></input>
-                      <input type="submit" value="Make Read-Write Proxy"><t:attr
-                      name="name">mkWriteProxy|<t:slot name="type" />:<t:slot
-                      name="shortName"/></t:attr></input>
-                  </td>
-              </tr>
-          </table>
+      <form t:render="hasProxyResults"
+        id="frm_proxyAdd" name="proxyAddForm" action="/admin/"
+        style="margin-top:2px; padding-top:0">
+        <input type="hidden" id="hdn_resourceId" name="resourceId"
+        ><t:attr name="value"><t:slot name="resourceId" /></t:attr></input>
+        <table cellspacing="0" cellpadding="3" border="1">
+          <tr class="odd">
+            <th>Full Name</th>
+            <th>Type</th>
+            <th>Short Names</th>
+            <th>Email Addresses</th>
+            <th></th>
+          </tr>
+          <tr t:render="proxySearchRows">
+            <t:attr name="class"><t:slot name="rowClass" /> </t:attr>
+            <td><t:slot name="name" /></td>
+            <td><t:slot name="typeStr" /></td>
+            <td><t:slot name="shortNames" /></td>
+            <td><t:slot name="emails" /></td>
+            <td>
+              <input type="submit" value="Make Read-Only Proxy"><t:attr
+              name="name">mkReadProxy|<t:slot name="type" />:<t:slot
+              name="shortName"/></t:attr></input>
+              <input type="submit" value="Make Read-Write Proxy"><t:attr
+              name="name">mkWriteProxy|<t:slot name="type" />:<t:slot
+              name="shortName"/></t:attr></input>
+            </td>
+          </tr>
+        </table>
       </form>
       </t:transparent>
     </div>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110811/de6b312f/attachment-0001.html>


More information about the calendarserver-changes mailing list