clean-up of cybertools.browser
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1136 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
65cf93e338
commit
c84daaf067
26 changed files with 73 additions and 969 deletions
|
@ -1,11 +1,8 @@
|
|||
Use Content Providers and Viewlets for setting up web pages
|
||||
===========================================================
|
||||
Browser View Tools
|
||||
==================
|
||||
|
||||
We first set up a test and working environment:
|
||||
|
||||
>>> from zope.app import zapi
|
||||
>>> from zope.app.testing import ztapi
|
||||
>>> from cybertools.browser.pageprovider import BaseView, PageProviderView
|
||||
>>> from cybertools.browser.pageprovider import PageProvider
|
||||
|
||||
|
|
@ -6,20 +6,13 @@
|
|||
i18n_domain="zope"
|
||||
>
|
||||
|
||||
<menu
|
||||
id="mmain"
|
||||
title="main Menu"
|
||||
/>
|
||||
<page name="controller" for="*"
|
||||
class="cybertools.browser.controller.Controller"
|
||||
permission="zope.Public"
|
||||
/>
|
||||
|
||||
<menuItem
|
||||
action="demo"
|
||||
for="zope.interface.Interface"
|
||||
menu="mmain"
|
||||
title="Demo"
|
||||
permission="zope.Public"
|
||||
/>
|
||||
<!-- a tableless layout skin -->
|
||||
|
||||
<include package=".skin" />
|
||||
<include package=".liquid" />
|
||||
|
||||
</configure>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2005 Helmut Merz helmutm@cy55.de
|
||||
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -17,13 +17,30 @@
|
|||
#
|
||||
|
||||
"""
|
||||
cybertools regions.
|
||||
Controller for views, templates, macros.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope.viewlet.interfaces import IViewletManager
|
||||
from zope.app import zapi
|
||||
from zope.cachedescriptors.property import Lazy
|
||||
|
||||
class ILeft(IViewletManager):
|
||||
""" Left slot.
|
||||
"""
|
||||
|
||||
class Controller(object):
|
||||
|
||||
@Lazy
|
||||
def macros(self):
|
||||
return Macros(self)
|
||||
|
||||
|
||||
class Macros(object):
|
||||
|
||||
def __init__(self, controller):
|
||||
self.controller = controller
|
||||
self.context = controller.context
|
||||
self.request = controller.request
|
||||
|
||||
@Lazy
|
||||
def css(self):
|
||||
return 'Here comes the CSS stuff...'
|
||||
|
|
@ -7,7 +7,7 @@ from zope.app.testing.functional import FunctionalDocFileSuite
|
|||
|
||||
def test_suite():
|
||||
flags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
|
||||
browser = FunctionalDocFileSuite('skin/cyberview.txt', optionflags=flags)
|
||||
browser = FunctionalDocFileSuite('liquid.txt', optionflags=flags)
|
||||
return unittest.TestSuite((browser,))
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Using the CyberView Skin
|
||||
========================
|
||||
The Liquid Skin and Related Stuff
|
||||
=================================
|
||||
|
||||
We first set up a test and working environment:
|
||||
|
||||
|
@ -14,10 +14,10 @@ We first set up a test and working environment:
|
|||
We can now open a page using the CyberView skin:
|
||||
|
||||
>>> browser.addHeader('Accept-Language', 'en-US')
|
||||
>>> browser.open('http://localhost/++skin++CyberView')
|
||||
>>> browser.open('http://localhost/++skin++Liquid')
|
||||
>>> print browser.headers
|
||||
Status: 200 Ok...
|
||||
|
||||
>>> browser.url
|
||||
'http://localhost/++skin++CyberView'
|
||||
'http://localhost/++skin++Liquid'
|
||||
|
|
@ -2,3 +2,9 @@
|
|||
$Id$
|
||||
"""
|
||||
|
||||
from zope.publisher.interfaces.browser import IBrowserRequest
|
||||
|
||||
class liquid(IBrowserRequest):
|
||||
"""The `liquid` layer."""
|
||||
|
||||
|
|
@ -47,10 +47,3 @@ body {
|
|||
|
||||
#footer { border-bottom: none; }
|
||||
|
||||
/* cyberconcepts specialties */
|
||||
|
||||
.top {
|
||||
background-image: url('bg_cyberview.gif');
|
||||
height: 75px;
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 100 B |
|
@ -6,7 +6,8 @@
|
|||
i18n_domain="zope"
|
||||
>
|
||||
|
||||
<layer name="liquid" />
|
||||
<layer name="liquid"
|
||||
interface="cybertools.browser.liquid.liquid" />
|
||||
|
||||
<skin name="Liquid"
|
||||
layers="liquid rotterdam default" />
|
||||
|
@ -16,16 +17,13 @@
|
|||
permission="zope.View"
|
||||
layer="liquid" />
|
||||
|
||||
<resource name="liquid.css" file="liquid4.css"
|
||||
<resource name="base.css" file="base.css"
|
||||
layer="liquid" />
|
||||
|
||||
<resource name="print.css" file="print.css"
|
||||
layer="liquid" />
|
||||
|
||||
<resource name="cyberconcepts.gif" file="cyc-logo03.gif"
|
||||
layer="liquid" />
|
||||
|
||||
<resource name="bg_cyberview.gif" file="bg_cyberview.gif"
|
||||
<resource name="custom.css" file="custom.css"
|
||||
layer="liquid" />
|
||||
|
||||
</configure>
|
||||
|
|
7
browser/liquid/custom.css
Normal file
7
browser/liquid/custom.css
Normal file
|
@ -0,0 +1,7 @@
|
|||
/*
|
||||
$Id$
|
||||
|
||||
Copy this to your custom skin directory and add custom settings.
|
||||
|
||||
*/
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB |
|
@ -1,35 +1,40 @@
|
|||
<metal:block define-macro="page"><metal:block define-slot="doctype"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></metal:block>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
i18n:domain="zope">
|
||||
i18n:domain="zope"
|
||||
tal:define="resourceBase view/resourceBase | string:${request/URL/0}/@@/">
|
||||
|
||||
<head metal:define-macro="head">
|
||||
<title metal:define-slot="title"
|
||||
tal:content="options/getTitle|view/getTitle|context/getTitle|default">
|
||||
cyberconcepts IT-Consulting
|
||||
tal:content="options/title|view/title|context/title|default">
|
||||
Powered by Zope 3
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<style type="text/css" media="all"
|
||||
tal:content="string:@import url(${view/resourceBase}/zope3_tablelayout.css);">
|
||||
tal:content="string:@import url(${resourceBase}zope3_tablelayout.css);">
|
||||
@import url(zope3_tablelayout.css);
|
||||
</style>
|
||||
<metal:block metal:define-slot="headers">
|
||||
<script type="text/javascript" src="zope3.js"
|
||||
tal:attributes="src string:${view/resourceBase}/zope3.js" >
|
||||
tal:attributes="src string:${resourceBase}zope3.js" >
|
||||
</script>
|
||||
<span metal:use-macro="context/@@standard_macros/navigation_tree_js" />
|
||||
</metal:block>
|
||||
<metal:block define-slot="style_slot" />
|
||||
<style type="text/css" media="screen"
|
||||
tal:content="string:@import url(${view/resourceBase}/liquid.css);">
|
||||
@import url(liquid.css);
|
||||
tal:content="string:@import url(${resourceBase}base.css);">
|
||||
@import url(base.css);
|
||||
</style>
|
||||
<style type="text/css" media="all"
|
||||
tal:content="string:@import url(${resourceBase}custom.css);">
|
||||
@import url(custom.css);
|
||||
</style>
|
||||
<style type="text/css" media="print"
|
||||
tal:content="string:@import url(${view/resourceBase}/print.css);">
|
||||
tal:content="string:@import url(${resourceBase}print.css);">
|
||||
@import url(print.css);
|
||||
</style>
|
||||
<metal:block define-slot="ecmascript_slot" />
|
||||
<link rel="icon" type="image/png"
|
||||
tal:attributes="href string:${view/resourceBase}/favicon.png" />
|
||||
tal:attributes="href string:${resourceBase}favicon.png" />
|
||||
</head>
|
||||
|
||||
<body tal:attributes="onload body_onload | nothing">
|
||||
|
@ -38,9 +43,9 @@
|
|||
<div class="top">
|
||||
<a href="#" name="top" metal:define-slot="logo"
|
||||
tal:attributes="href string:${request/URL/1}"><img
|
||||
src="cyberconcepts.gif" height="75" border="0"
|
||||
alt="cyberconcepts IT-Consulting"
|
||||
tal:attributes="src string:${view/resourceBase}/cyberconcepts.gif" /></a>
|
||||
src="logo.gif" border="0"
|
||||
alt="Home"
|
||||
tal:attributes="src string:${resourceBase}logo.gif" /></a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="menu">
|
||||
|
@ -67,7 +72,8 @@
|
|||
</a>
|
||||
</tal:block>
|
||||
</div>
|
||||
|
||||
|
||||
<!--<tal:test content="views/controller/macros/css" />-->
|
||||
<metal:content define-slot="body">Here comes the body</metal:content>
|
||||
|
||||
</div>
|
||||
|
@ -77,9 +83,8 @@
|
|||
</div>
|
||||
|
||||
<div id="footer" class="footer">
|
||||
© Copyright 2006, cyberconcepts IT-Consulting Dr. Helmut Merz<br />
|
||||
<a href="#"
|
||||
tal:attributes="href string:${view/menu/url}/impressum">Impressum</a>
|
||||
Powered by <b><a href="http://www.python.org">Python</a></b> ·
|
||||
<b><a href="http://www.zope.org/DevHome/Wikis/DevSite/Projects/ComponentArchitecture/FrontPage">Zope 3</a></b>
|
||||
<metal:footer define-slot="footer"></metal:footer>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
#
|
||||
# Copyright (c) 2005 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
"""
|
||||
cybertools menu.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope.app import zapi
|
||||
from zope.app.pagetemplate.simpleviewclass import simple
|
||||
from zope.viewlet.viewlet import ViewletBase, SimpleViewletClass
|
||||
from zope.app.publisher.interfaces.browser import IBrowserMenu
|
||||
|
||||
|
||||
class MenuViewlet(ViewletBase):
|
||||
""" Menu viewlet.
|
||||
"""
|
||||
|
||||
def getMenu(self):
|
||||
menu = zapi.getUtility(IBrowserMenu, name='mmain')
|
||||
return menu
|
||||
|
||||
|
||||
def GenericMenuViewlet(template, offering=None, bases=(), name=u'', weight=0):
|
||||
#return SimpleViewletClass(template, offering,
|
||||
# bases + (MenuViewletBase,), name, weight)
|
||||
if offering is None:
|
||||
offering = sys._getframe(1).f_globals
|
||||
bases += (MenuViewletBase, simple)
|
||||
class_ = type("GenericMenuViewlet from %s" % template, bases,
|
||||
{'index' : ViewletPageTemplateFile(template, offering),
|
||||
'_weight' : weight,
|
||||
'__name__' : name})
|
||||
return class_
|
||||
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
#
|
||||
# Copyright (c) 2005 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
"""
|
||||
This is intended to replace the page macro - we just use a view that renders
|
||||
a standard template (main.pt). This calls a set of viewlet managers that
|
||||
do the real work.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
from zope.interface import implements
|
||||
import zope.component
|
||||
from zope.app.publisher.interfaces.browser import IBrowserView
|
||||
from zope.app.publisher.browser import BrowserView
|
||||
from zope.contentprovider.interfaces import IContentProvider
|
||||
from zope.viewlet.manager import ViewletManagerBase
|
||||
|
||||
|
||||
class BaseView(object):
|
||||
""" Basic view class using a template and possibly doing some other
|
||||
setup stuff.
|
||||
"""
|
||||
|
||||
implements(IBrowserView)
|
||||
|
||||
def __call__(self):
|
||||
# render the template associated with this view:
|
||||
return self.index()
|
||||
|
||||
|
||||
class PageProviderView(object):
|
||||
""" Simple view class using a content provider for setting up a page.
|
||||
"""
|
||||
|
||||
implements(IBrowserView)
|
||||
|
||||
def __call__(self):
|
||||
context = self.context
|
||||
request = self.request
|
||||
name = 'cybertools.pageprovider'
|
||||
provider = zope.component.queryMultiAdapter(
|
||||
(context, request, self), IContentProvider, name)
|
||||
provider.update()
|
||||
return provider.render()
|
||||
|
||||
|
||||
class PageProvider(ViewletManagerBase):
|
||||
""" Simple implementation that provides a whole page.
|
||||
"""
|
||||
|
||||
implements(IContentProvider)
|
||||
|
||||
def __init__(self, context, request, view):
|
||||
self.context = context
|
||||
self. request = request
|
||||
self.view = view
|
||||
self.__parent__ = view
|
||||
|
||||
def update(self):
|
||||
return ViewletManagerBase.update(self)
|
||||
|
||||
def render(self):
|
||||
return ViewletManagerBase.render(self)
|
|
@ -1,4 +0,0 @@
|
|||
"""
|
||||
$Id$
|
||||
"""
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 100 B |
|
@ -1,90 +0,0 @@
|
|||
<!-- $Id$ -->
|
||||
|
||||
<configure
|
||||
xmlns:zope="http://namespaces.zope.org/zope"
|
||||
xmlns="http://namespaces.zope.org/browser"
|
||||
i18n_domain="zope"
|
||||
>
|
||||
|
||||
<layer name="cyberview" />
|
||||
|
||||
<skin name="CyberView"
|
||||
layers="cyberview
|
||||
zope.app.zopetop.css
|
||||
zope.app.zopetop.images
|
||||
zope.app.zopetop.templates
|
||||
rotterdam default" />
|
||||
|
||||
<!--<page for="*"
|
||||
name="view_macros" template="view_macros.pt"
|
||||
permission="zope.View"
|
||||
layer="cyberview" />-->
|
||||
|
||||
<view for="*"
|
||||
name="default.html"
|
||||
class="cybertools.browser.pageprovider.PageProviderView"
|
||||
permission="zope.View"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<defaultView
|
||||
for="*"
|
||||
name="default.html"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<resource name="cyberview.css" file="cyberview.css"
|
||||
layer="cyberview" />
|
||||
|
||||
<resource name="cyberconcepts.png" image="cyc-logo02.png"
|
||||
layer="cyberview" />
|
||||
|
||||
<resource name="cyberconcepts.gif" image="cyc-logo03.gif"
|
||||
layer="cyberview" />
|
||||
|
||||
<resource name="bg_cyberview.gif" image="bg_cyberview.gif"
|
||||
layer="cyberview" />
|
||||
|
||||
<viewletManager
|
||||
name="cybertools.pageprovider"
|
||||
provides="zope.contentprovider.interfaces.IContentProvider"
|
||||
class="cybertools.browser.pageprovider.PageProvider"
|
||||
template="main.pt"
|
||||
permission="zope.Public"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<viewletManager
|
||||
name="cybertools.body"
|
||||
provides="cybertools.browser.IBody"
|
||||
permission="zope.Public"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<viewlet
|
||||
name="body"
|
||||
manager="cybertools.browser.IBody"
|
||||
template="index.pt"
|
||||
class="zope.app.container.browser.contents.Contents"
|
||||
permission="zope.Public"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<viewletManager
|
||||
name="cybertools.left"
|
||||
provides="cybertools.browser.ILeft"
|
||||
template="left_slot.pt"
|
||||
permission="zope.Public"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
<viewlet
|
||||
name="navmenu"
|
||||
manager="cybertools.browser.ILeft"
|
||||
template="viewlet_menu.pt"
|
||||
class="cybertools.browser.menu.MenuViewlet"
|
||||
permission="zope.Public"
|
||||
layer="cyberview"
|
||||
/>
|
||||
|
||||
</configure>
|
|
@ -1,523 +0,0 @@
|
|||
/*****************************************************************************
|
||||
*
|
||||
* Copyright (c) 2001, 2002 Zope Corporation and Contributors.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This software is subject to the provisions of the Zope Public License,
|
||||
* Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
|
||||
* WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*****************************************************************************
|
||||
|
||||
These are the basic CSS declarations.
|
||||
|
||||
$Id$
|
||||
*/
|
||||
|
||||
/* Start CSS for fluid multi-column form layout */
|
||||
|
||||
div.row {
|
||||
float: left;
|
||||
clear: none;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.separator {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
div.controls {
|
||||
float:left;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* End CSS for fluid multi-column form layout */
|
||||
|
||||
div.label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.field {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
div.required:after{
|
||||
content: " *";
|
||||
}
|
||||
|
||||
body {
|
||||
font: 0.8em Tahoma, Helvetica, Arial, sans-serif;
|
||||
background-color: white;
|
||||
color: #000066;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#drag-feedback-box {
|
||||
border: 1px dotted black;
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
div.top {
|
||||
background-image: url('bg_cyberview.gif');
|
||||
height: 75px;
|
||||
}
|
||||
|
||||
div.top div.user {
|
||||
position: absolute;
|
||||
top: 1em;
|
||||
right: 1em;
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #000066;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
table {
|
||||
font: 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
img {
|
||||
/* turn off image borders. */
|
||||
border: none;
|
||||
}
|
||||
|
||||
p {
|
||||
/* Default paragraph style*/
|
||||
font: 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
margin: 1em 0em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
p a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
p a:visited {
|
||||
color: Purple;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
p a:active {
|
||||
color: Red;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
p img {
|
||||
border: 1px solid Black;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
|
||||
hr {
|
||||
clear: both;
|
||||
height: 1px;
|
||||
color: #8CACBB;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: Black;
|
||||
padding: 0 0;
|
||||
margin: .5em 0;
|
||||
font-family: Tahoma, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1.0em;
|
||||
}
|
||||
|
||||
ul {
|
||||
/* list-style-image: url("bullet.gif"); */
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
margin-left: 2em;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* we advise you to use the div.group and span.legend elements instead of
|
||||
these, as the only browser showing legends correctly is IE. They are just
|
||||
included here for completeness */
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #8cacbb;
|
||||
margin: 2em 0em 1em 0em;
|
||||
padding: 1em 0em;
|
||||
}
|
||||
|
||||
legend {
|
||||
background: White;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
|
||||
form {
|
||||
border: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
/* Small cosmetic hack which makes textarea gadgets look nicer.*/
|
||||
font: bold 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
border: 1px solid #8cacbb;
|
||||
width: 100%;
|
||||
color: Black;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
input {
|
||||
/* Small cosmetic fix which makes input gadgets look nicer. */
|
||||
font: 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
color: Black;
|
||||
margin: 1px 1px 1px 1px;
|
||||
}
|
||||
|
||||
select {
|
||||
font: 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
margin: 1px 1px 1px 1px;
|
||||
}
|
||||
|
||||
abbr, acronym, .explain {
|
||||
/* Help classes */
|
||||
border-bottom: 1px dotted Black;
|
||||
background-color: transparent;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 1.2em;
|
||||
color: Black;
|
||||
background-color: #dee7ec;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 1.2em;
|
||||
padding: 1em;
|
||||
border: 1px solid #8cacbb;
|
||||
color: Black;
|
||||
background-color: #dee7ec;
|
||||
}
|
||||
|
||||
.netscape4 {
|
||||
/* This hides elements necessary for getting Netscape 4.x to look better.
|
||||
Mostly strategically placed hr tags and ·'s */
|
||||
display: none;
|
||||
}
|
||||
|
||||
table.listing {
|
||||
/* The default table for document listings. Contains name, document types, modification times etc in a file-browser-like fashion */
|
||||
border-collapse: collapse;
|
||||
border-left: 1px solid #7B7AC6;
|
||||
border-bottom: 1px solid #7B7AC6;
|
||||
margin: 1em 0em 1em 0em;
|
||||
}
|
||||
|
||||
table.listing th {
|
||||
background: #A1A1F1;
|
||||
border-top: 1px solid #7B7AC6;
|
||||
border-bottom: 1px solid #7B7AC6;
|
||||
border-right: 1px solid #7B7AC6;
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
padding: 0em 1em 0em 1em;
|
||||
}
|
||||
|
||||
table.listing tr.odd {
|
||||
/*every second line should be shaded */
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
table.listing tr.even {
|
||||
background: #ECFAFF;
|
||||
}
|
||||
|
||||
table.listing td {
|
||||
border-right: 1px solid #7B7AC6;
|
||||
padding: 0.1em 0.4em 0.1em 0.4em;
|
||||
}
|
||||
|
||||
table.listing a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
table.listing img{
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table.columns {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table.columns td{
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.columns td.main {
|
||||
background-color: white;
|
||||
padding: 0 0.5em;
|
||||
//border-bottom: 1px solid #7B7AC6;
|
||||
}
|
||||
|
||||
table.columns td.left {
|
||||
background-color: #eeeeee;
|
||||
//border-right: 1px solid #7B7AC6;
|
||||
//border-bottom: 1px solid #7B7AC6;
|
||||
padding: 0.5em 0;
|
||||
width: 114px;
|
||||
}
|
||||
|
||||
table.columns td.right {
|
||||
background-color: white;
|
||||
border-left: 1px solid #7B7AC6;
|
||||
border-bottom: 1px solid #7B7AC6;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
div.breadcrumbs{
|
||||
background-color: white;
|
||||
margin-top: 0em;
|
||||
padding: 0 0.5em 0.5em 0.5em;
|
||||
}
|
||||
|
||||
span.help img{
|
||||
vertical-align: middle;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.box {
|
||||
border: none;
|
||||
margin: 0.5em 0.5em 0em 0.5em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.box h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
div.box h5 {
|
||||
background: #E5E5E5;
|
||||
border: 1px solid #A3A3A3;
|
||||
border-style: solid solid none solid;
|
||||
color: #808080;
|
||||
padding: 0em 1em 0em 1em;
|
||||
text-transform: lowercase;
|
||||
display: inline;
|
||||
font-size: 1em;
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
div.box h6 {
|
||||
background: #E5E5E5;
|
||||
border: 1px solid #A3A3A3;
|
||||
border-style: solid solid none solid;
|
||||
color: #808080;
|
||||
padding: 0em 1em 0em 1em;
|
||||
text-transform: lowercase;
|
||||
display: block;
|
||||
font-size: 1em;
|
||||
height: 1.2em;
|
||||
}
|
||||
|
||||
div.box div.body {
|
||||
background: transparent;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #A3A3A3;
|
||||
}
|
||||
|
||||
div.box .content {
|
||||
padding-left: 0.6em;
|
||||
padding-right: 0.6em;
|
||||
padding-top: 0.4em;
|
||||
padding-bottom: 0.4em;
|
||||
}
|
||||
|
||||
div.box .even {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
div.box .odd {
|
||||
background-color: White;
|
||||
}
|
||||
|
||||
.darker {
|
||||
background-color: #7B7AC6;
|
||||
}
|
||||
|
||||
.hilite {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.background {
|
||||
border-bottom: 1px solid #7B7AC6;
|
||||
}
|
||||
|
||||
.description {
|
||||
/* The summary text describing the document */
|
||||
font: bold 1em Tahoma, Helvetica, Arial, sans-serif;
|
||||
display: block;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: #eeeeee;
|
||||
padding: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.metadata {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.context-menu {
|
||||
position: absolute;
|
||||
border: 1px outset;
|
||||
background-color: Menu;
|
||||
color: MenuText;
|
||||
cursor: default;
|
||||
z-index: 1000;
|
||||
visibility: hidden;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.context-menu-item {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.drop-target {
|
||||
border: 2px solid transparent;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#navtreecontents a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#navtreecontents loading {
|
||||
display: block;
|
||||
padding-left: 31px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#navtreecontents expand {
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 14px;
|
||||
display: inline;
|
||||
cursor: pointer;
|
||||
padding-bottom: 0.2em;
|
||||
padding-top: 0.2em;
|
||||
}
|
||||
|
||||
#navtreecontents icon {
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 20px;
|
||||
display: inline;
|
||||
cursor: auto;
|
||||
padding-bottom: 0.2em;
|
||||
padding-top: 0.2em;
|
||||
}
|
||||
|
||||
#navtreecontents collection {
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
/* border: red solid 1pt; */
|
||||
height: auto;
|
||||
padding-bottom: 0em;
|
||||
padding-top: 0.4em;
|
||||
}
|
||||
|
||||
.preclass {
|
||||
font-family : monospace;
|
||||
white-space : pre;
|
||||
}
|
||||
|
||||
th.introspector {
|
||||
vertical-align: top;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.itemViews {
|
||||
border-collapse: collapse;
|
||||
padding-bottom: 2px;
|
||||
padding-top: 6px;
|
||||
margin-top: 0.5em;
|
||||
white-space: nowrap;
|
||||
background: transparent;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.itemViews a {
|
||||
background: transparent;
|
||||
border: 1px solid #ccccff;
|
||||
color: #000066;
|
||||
font-weight: normal;
|
||||
margin-right: 0.3em;
|
||||
padding: 0.1em 0.5em 0.1em 0.5em;
|
||||
}
|
||||
|
||||
.itemViews a.selected {
|
||||
background-color: #CCCCFF;
|
||||
border-bottom: #CCCCFF 1px solid;
|
||||
color: #000066;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.itemViews a:hover {
|
||||
background-color: #CCCCFF;
|
||||
color: #000066;
|
||||
}
|
||||
|
||||
.actions {
|
||||
background-color: #CCCCFF;
|
||||
text-align: right;
|
||||
padding-top: 0.3em;
|
||||
color: Black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.actions a{
|
||||
color: #000066;
|
||||
border-left: 1px dashed #000066;
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
|
||||
.actions a:hover {
|
||||
background-color: White;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB |
|
@ -1,44 +0,0 @@
|
|||
<table
|
||||
id="sortable" class="listing" summary="Content listing"
|
||||
cellpadding="2" cellspacing="0"
|
||||
i18n:attributes="summary">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th i18n:translate="">Name</th>
|
||||
<th i18n:translate="">Title</th>
|
||||
<th i18n:translate="">Created</th>
|
||||
<th i18n:translate="">Modified</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<tr tal:repeat="info view/listContentInfo">
|
||||
<td>
|
||||
<a
|
||||
href="#"
|
||||
tal:attributes="href string:${request/URL}/${info/url}"
|
||||
tal:content="structure info/icon|default" />
|
||||
</td>
|
||||
|
||||
<td class="ContentTitle">
|
||||
<a href="subfolder_id"
|
||||
tal:attributes="href info/url"
|
||||
tal:content="info/id"
|
||||
i18n:translate=""
|
||||
>ID here</a>
|
||||
</td>
|
||||
|
||||
<td><span tal:content="info/title|default"
|
||||
i18n:translate=""> </span></td>
|
||||
<td><span tal:content="info/created|default"
|
||||
i18n:translate=""> </span></td>
|
||||
<td><span tal:content="info/modified|default"
|
||||
i18n:translate=""> </span></td>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</table>
|
|
@ -1,7 +0,0 @@
|
|||
<div>
|
||||
Headline
|
||||
</div>
|
||||
<div tal:repeat="viewlet options/viewlets">
|
||||
<div tal:content="structure python: viewlet(viewlet=viewlet)">Left Slot
|
||||
</div>
|
||||
</div>
|
|
@ -1,53 +0,0 @@
|
|||
<metal:block define-macro="page"><metal:block define-slot="doctype"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></metal:block>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
i18n:domain="zope">
|
||||
|
||||
<head metal:define-macro="head">
|
||||
<title metal:define-slot="title"
|
||||
tal:content="options/getTitle|view/getTitle|context/getTitle|default">
|
||||
cyberconcepts IT-Consulting
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<link href="cyberview.css" rel="stylesheet" type="text/css"
|
||||
tal:attributes="href context/++resource++cyberview.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="top">
|
||||
<a href="#" name="top" tal:attributes="href string:${request/URL/1}">
|
||||
<img src="cyberconcepts.gif" height="75"
|
||||
alt="cyberconcepts IT-Consulting"
|
||||
tal:attributes="src context/++resource++cyberconcepts.gif" />
|
||||
</a>
|
||||
<span metal:use-macro="context/@@standard_macros/logged_user">
|
||||
Logged in as user
|
||||
</span>
|
||||
</div>
|
||||
<table class="columns">
|
||||
<tr>
|
||||
<td class="left">
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/commontasks_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/metadata_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/views_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/actions_box" />
|
||||
-->
|
||||
<div tal:replace="structure provider:cybertools.left" />
|
||||
</td>
|
||||
<td class="main">
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/zmi_views" />
|
||||
<span metal:use-macro="context/@@standard_macros/zmi_actions" />
|
||||
<span metal:use-macro="context/@@standard_macros/content_header_bar" />
|
||||
-->
|
||||
<div tal:replace="structure provider:cybertools.body" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/footer" />
|
||||
-->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</metal:block>
|
|
@ -1,2 +0,0 @@
|
|||
<div tal:define="menu options/viewlet/getMenu"
|
||||
tal:content="python: menu.getMenuItems(context, request)" />
|
|
@ -1,55 +0,0 @@
|
|||
<metal:block define-macro="page"><metal:block define-slot="doctype"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></metal:block>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
i18n:domain="zope">
|
||||
|
||||
<head metal:define-macro="head">
|
||||
<title metal:define-slot="title"
|
||||
tal:content="options/getTitle|view/getTitle|context/getTitle|default">
|
||||
cyberconcepts IT-Consulting
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<link href="cyberview.css" rel="stylesheet" type="text/css"
|
||||
tal:attributes="href context/++resource++cyberview.css" />
|
||||
<div metal:define-slot="headers" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="top">
|
||||
<a href="#" name="top" tal:attributes="href string:${request/URL/1}/@@manage">
|
||||
<img src="cyberconcepts.gif" height="75"
|
||||
alt="cyberconcepts IT-Consulting"
|
||||
tal:attributes="src context/++resource++cyberconcepts.gif" />
|
||||
</a>
|
||||
<span metal:use-macro="context/@@standard_macros/logged_user">
|
||||
Logged in as user
|
||||
</span>
|
||||
</div>
|
||||
<table class="columns">
|
||||
<tr>
|
||||
<td class="left">
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/commontasks_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/metadata_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/views_box" />
|
||||
<span metal:use-macro="context/@@standard_macros/actions_box" />
|
||||
-->
|
||||
<div tal:replace="structure provider:navMenu" />
|
||||
</td>
|
||||
<td class="main">
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/zmi_views" />
|
||||
<span metal:use-macro="context/@@standard_macros/zmi_actions" />
|
||||
<span metal:use-macro="context/@@standard_macros/content_header_bar" />
|
||||
-->
|
||||
<span metal:define-slot="body">Here comes the body</span>
|
||||
<!--<p tal:content="provider:cybertools.pageprovider" />-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--
|
||||
<span metal:use-macro="context/@@standard_macros/footer" />
|
||||
-->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</metal:block>
|
|
@ -1,2 +0,0 @@
|
|||
<div tal:define="menu options/viewlet/getMenu"
|
||||
tal:content="python: menu.getMenuItems(context, request)" />
|
Loading…
Add table
Reference in a new issue