[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