[CalendarServer-changes] [12618] CalendarServer/trunk/calendarserver

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:24:04 PDT 2014


Revision: 12618
          http://trac.calendarserver.org//changeset/12618
Author:   wsanchez at apple.com
Date:     2014-02-07 18:41:32 -0800 (Fri, 07 Feb 2014)
Log Message:
-----------
Add admin home page

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/tap/util.py
    CalendarServer/trunk/calendarserver/webadmin/resource.py

Added Paths:
-----------
    CalendarServer/trunk/calendarserver/webadmin/landing.py
    CalendarServer/trunk/calendarserver/webadmin/landing.xhtml

Modified: CalendarServer/trunk/calendarserver/tap/util.py
===================================================================
--- CalendarServer/trunk/calendarserver/tap/util.py	2014-02-08 01:53:16 UTC (rev 12617)
+++ CalendarServer/trunk/calendarserver/tap/util.py	2014-02-08 02:41:32 UTC (rev 12618)
@@ -88,7 +88,7 @@
 from calendarserver.accesslog import DirectoryLogWrapperResource
 from calendarserver.provision.root import RootResource
 from calendarserver.tools.util import checkDirectory
-from calendarserver.webadmin.resource import WebAdminResource
+from calendarserver.webadmin.landing import WebAdminLandingResource
 from calendarserver.webcal.resource import WebCalendarResource
 
 from txdav.common.datastore.podding.resource import ConduitResource
@@ -403,7 +403,7 @@
     timezoneServiceResourceClass = TimezoneServiceResource
     timezoneStdServiceResourceClass = TimezoneStdServiceResource
     webCalendarResourceClass = WebCalendarResource
-    webAdminResourceClass = WebAdminResource
+    webAdminResourceClass = WebAdminLandingResource
     addressBookResourceClass = DirectoryAddressBookHomeProvisioningResource
     directoryBackedAddressBookResourceClass = DirectoryBackedAddressBookResource
     apnSubscriptionResourceClass = APNSubscriptionResource

Added: CalendarServer/trunk/calendarserver/webadmin/landing.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/landing.py	                        (rev 0)
+++ CalendarServer/trunk/calendarserver/webadmin/landing.py	2014-02-08 02:41:32 UTC (rev 12618)
@@ -0,0 +1,85 @@
+# -*- test-case-name: calendarserver.webadmin.test.test_landing -*-
+##
+# Copyright (c) 2009-2014 Apple Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##
+
+"""
+Calendar Server Web Admin UI.
+"""
+
+__all__ = [
+    "WebAdminLandingResource",
+]
+
+from twisted.python.modules import getModule
+from twisted.web.template import Element, renderer, XMLFile, tags
+
+from .resource import TemplateResource
+
+
+
+class WebAdminLandingPageElement(Element):
+    """
+    Web administration langing page element.
+    """
+
+    loader = XMLFile(
+        getModule(__name__).filePath.sibling("landing.xhtml")
+    )
+
+    pageSlots = {
+        u"title": u"Calendar & Contacts Server Administration",
+    }
+
+
+    def __init__(self):
+        Element.__init__(self)
+
+
+    @renderer
+    def main(self, request, tag):
+        """
+        Main renderer, which fills page-global slots like 'title'.
+        """
+        tag.fillSlots(**self.pageSlots)
+        return tag
+
+
+    @renderer
+    def stylesheet(self, request, tag):
+        return tags.link(
+            rel="stylesheet",
+            media="screen",
+            href="style.css",
+            type="text/css",
+        )
+
+
+
+class WebAdminLandingResource(TemplateResource):
+    """
+    Web administration landing page resource.
+    """
+
+    addSlash = True
+
+    def __init__(self, path, root, directory, store, principalCollections=()):
+        TemplateResource.__init__(self, WebAdminLandingPageElement())
+
+        self._path = path
+        self._root = root
+        self.directory = directory
+        self.store = store
+        self._principalCollections = principalCollections

Added: CalendarServer/trunk/calendarserver/webadmin/landing.xhtml
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/landing.xhtml	                        (rev 0)
+++ CalendarServer/trunk/calendarserver/webadmin/landing.xhtml	2014-02-08 02:41:32 UTC (rev 12618)
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html xmlns:t="http://twistedmatrix.com/ns/twisted.web.template/0.1" t:render="main">
+
+  <head>
+    <title><t:slot name="title" /></title>
+    <link t:render="stylesheet" />
+  </head>
+
+  <body>
+
+    <h1><t:slot name="title" /></h1>
+
+    <ul>
+    </ul>
+
+  </body>
+
+</html>

Modified: CalendarServer/trunk/calendarserver/webadmin/resource.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/resource.py	2014-02-08 01:53:16 UTC (rev 12617)
+++ CalendarServer/trunk/calendarserver/webadmin/resource.py	2014-02-08 02:41:32 UTC (rev 12618)
@@ -22,6 +22,7 @@
 __all__ = [
     "WebAdminResource",
     "WebAdminPage",
+    "TemplateResource",
 ]
 
 import operator
@@ -730,18 +731,39 @@
     Resource that renders a template.
     """
 
-    def __init__(self):
+    # @staticmethod
+    # def queryValue(request, argument):
+    #     for value in request.args.get(argument, []):
+    #         return value
+
+    #     return u""
+
+
+    # @staticmethod
+    # def queryValues(request, arguments):
+    #     return request.args.get(arguments, [])
+
+
+    def __init__(self, element):
         Resource.__init__(self)
 
+        self.element = element
 
+
+    # def handleQueryArguments(self, request):
+    #     return succeed(None)
+
+
     @inlineCallbacks
     def render(self, request):
         """
         Create a L{WebAdminPage} to render HTML content for this request, and
         return a response.
         """
-        htmlContent = yield flattenString(request, WebAdminPage(self))
+        # yield self.handleQueryArguments(request)
 
+        htmlContent = yield flattenString(request, self.element)
+
         response = Response()
         response.stream = MemoryStream(htmlContent)
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/41fd341b/attachment.html>


More information about the calendarserver-changes mailing list