[Zope3-checkins] CVS: Zope3/src/zope/app/zopetop - __init__.py:1.1
add_more.gif:1.1 arrowup.gif:1.1 bg_bar.jpg:1.1
bg_content.jpg:1.1 bg_root_folder.jpg:1.1 bg_top.jpg:1.1
closed_folder.gif:1.1 configure.zcml:1.1
control_panels.gif:1.1 control_panels_folder.gif:1.1
dialog_macros.pt:1.1 document_icon.gif:1.1
folder_icon.gif:1.1 help.gif:1.1 minus.gif:1.1
new_file.gif:1.1 new_folder.gif:1.1 new_template.gif:1.1
pdlib.js:1.1 plus.gif:1.1 service_manager.gif:1.1
spacer1.gif:1.1 spacer2.gif:1.1 spacer3.gif:1.1
standardmacros.py:1.1 system_security.gif:1.1
test_style.html:1.1 user_accounts.gif:1.1
users_folder.gif:1.1 view_macros.pt:1.1
website_settings.gif:1.1 widget_macros.pt:1.1 x.gif:1.1
zope3logo.jpg:1.1 zopetop.css:1.1
Philipp von Weitershausen
philikon at philikon.de
Tue Mar 2 12:11:34 EST 2004
Update of /cvs-repository/Zope3/src/zope/app/zopetop
In directory cvs.zope.org:/tmp/cvs-serv20275/zopetop
Added Files:
__init__.py add_more.gif arrowup.gif bg_bar.jpg bg_content.jpg
bg_root_folder.jpg bg_top.jpg closed_folder.gif configure.zcml
control_panels.gif control_panels_folder.gif dialog_macros.pt
document_icon.gif folder_icon.gif help.gif minus.gif
new_file.gif new_folder.gif new_template.gif pdlib.js plus.gif
service_manager.gif spacer1.gif spacer2.gif spacer3.gif
standardmacros.py system_security.gif test_style.html
user_accounts.gif users_folder.gif view_macros.pt
website_settings.gif widget_macros.pt x.gif zope3logo.jpg
zopetop.css
Log Message:
Moved browser skins to their individual packages below zope.app.
=== Added File Zope3/src/zope/app/zopetop/__init__.py ===
#
# This file is necessary to make this directory a package.
=== Added File Zope3/src/zope/app/zopetop/add_more.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/arrowup.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/bg_bar.jpg ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/bg_content.jpg ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/bg_root_folder.jpg ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/bg_top.jpg ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/closed_folder.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/configure.zcml ===
<zope:configure
xmlns:zope="http://namespaces.zope.org/zope"
xmlns="http://namespaces.zope.org/browser">
<layer name="templates" />
<layer name="images" />
<layer name="css" />
<skin name="ZopeTop" layers="templates images css rotterdam default" />
<page
for="*"
name="standard_macros"
permission="zope.View"
class=".standardmacros.StandardMacros"
allowed_interface="zope.interface.common.mapping.IItemMapping"
layer="templates" />
<page
for="*"
name="view_macros"
permission="zope.View"
template="view_macros.pt"
layer="templates" />
<page
for="*"
name="widget_macros"
permission="zope.View"
template="widget_macros.pt"
layer="templates" />
<page
for="*"
name="dialog_macros"
permission="zope.View"
template="dialog_macros.pt"
layer="templates" />
<resource name="pdlib.js" file="pdlib.js"
layer="templates" />
<resource name="zopetop.css" file="zopetop.css"
layer="css" />
<resource name="service_manager.gif" file="service_manager.gif"
layer="images" />
<resource name="arrowup.gif" file="arrowup.gif"
layer="images" />
<resource name="zope3logo.jpg" file="zope3logo.jpg"
layer="images" />
<resource name="bg_top.jpg" file="bg_top.jpg"
layer="images" />
<resource name="bg_bar.jpg" file="bg_bar.jpg"
layer="images" />
<resource name="closed_folder.gif" file="closed_folder.gif"
layer="images" />
<resource name="spacer1.gif" file="spacer1.gif"
layer="images" />
<resource name="spacer2.gif" file="spacer2.gif"
layer="images" />
<resource name="spacer3.gif" file="spacer3.gif"
layer="images" />
<resource name="x.gif" file="x.gif"
layer="images" />
<resource name="new_file.gif" file="new_file.gif"
layer="images" />
<resource name="new_folder.gif" file="new_folder.gif"
layer="images" />
<resource name="new_template.gif" file="new_template.gif"
layer="images" />
<resource name="control_panels.gif" file="control_panels.gif"
layer="images" />
<resource name="system_security.gif" file="system_security.gif"
layer="images" />
<resource name="user_accounts.gif" file="user_accounts.gif"
layer="images" />
<resource name="control_panels_folder.gif" file="control_panels_folder.gif"
layer="images" />
<resource name="add_more.gif" file="add_more.gif"
layer="images" />
<resource name="bg_root_folder.jpg" file="bg_root_folder.jpg"
layer="images" />
<resource name="plus.gif" file="plus.gif"
layer="images" />
<resource name="minus.gif" file="minus.gif"
layer="images" />
<resource name="users_folder.gif" file="users_folder.gif"
layer="images" />
<resource name="website_settings.gif" file="website_settings.gif"
layer="images"/>
<resource name="bg_content.jpg" file="bg_content.jpg"
layer="images"/>
<resource name="help.gif" file="help.gif"
layer="images"/>
</zope:configure>
=== Added File Zope3/src/zope/app/zopetop/control_panels.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/control_panels_folder.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/dialog_macros.pt ===
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html metal:define-macro="dialog" i18n:domain="zope">
<head metal:use-macro="views/standard_macros/head" />
<body>
<span metal:use-macro="views/standard_macros/breadcrumbs" />
<div metal:define-slot="body">
<p>Body here</p>
</div>
<div metal:use-macro="views/standard_macros/footer" />
</body>
</html>
=== Added File Zope3/src/zope/app/zopetop/document_icon.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/folder_icon.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/help.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/minus.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/new_file.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/new_folder.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/new_template.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/pdlib.js ===
// Copyright (c) 2002 Zope Corporation and Contributors.
// All Rights Reserved.
//
// This software is subject to the provisions of the Zope Public License,
// Version 2.0 (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.
// Page design Javascript library
// A library for manipulating objects on a page with object selection,
// context menus, and drag and drop. Mostly DOM 2 oriented, with bits
// for IE compatibility.
// $Id: pdlib.js,v 1.1 2004/03/02 17:11:32 philikon Exp $
// The following variables and functions are documented for use by
// scripts that use this library:
//
// pd_node_setup
// pd_selected_item
// pd_selected_items
// pd_library_version
//
// pd_stopEvent()
// pd_findEventTarget()
// pd_hideContextMenu()
// pd_isSelected()
// pd_select()
// pd_deselect()
// pd_clearSelection()
// pd_setupContextMenu() -- adds a context menu to an element
// pd_setupDragUI() -- adds drag/drop functionality to an element
// pd_setupDropTarget() -- turns an element into a drop target
// pd_setupContextMenuDefinition() -- turns an element into a context menu
// pd_setupPage() -- Page initialization (call at bottom of page)
//
// See the documentation for descriptions.
// All other names are subject to change in future revisions.
var pd_library_version = '0.1'; // The pdlib version. Avoid using this!
var pd_open_context_menu = null; // The context menu node being displayed
var pd_drag_event = null; // A pd_DragEvent object while dragging
var pd_selected_items = null; // List of selected items
var pd_selected_item = null; // Non-null when exactly one item is selected
var pd_drag_select_mode = null; // -1 or 1 in drag-select mode, otherwise null
var pd_node_setup = {}; // Object containing node setup functions
var pd_max_contextmenu_width = 250; // Threshold for faulty browsers
var pd_invisible_targets = []; // A list of normally invisible drop targets
var pd_target_normal_border = "2px solid transparent";
var pd_target_highlighted_border = "2px dotted red";
var pd_target_loading_border = "2px solid green";
function pd_hasAncestor(node, ancestor) {
var p = node;
while (p) {
if (p == ancestor)
return true;
p = p.parentNode;
}
return false;
}
function pd_stopEvent(e) {
if (!e)
e = event;
if (e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble = true;
return false;
}
function pd_findEventTarget(e, className, stop_className) {
// Search for a node of the given class among the ancestors of the
// target of an event, stopping if stop_className is encountered.
var node = e.target || e.srcElement;
while (node) {
if (node.className == className)
return node;
if (stop_className && node.className == stop_className)
return null;
node = node.parentNode;
}
// Not found.
return null;
}
function pd_highlight(node, enabled) {
node.style.color = enabled ? "HighlightText" : "";
node.style.backgroundColor = enabled ? "Highlight" : "";
}
//
// Context menu functions
//
function pd_showContextMenu(menunode, e) {
if (!e)
e = event;
// Close any open menu
pd_hideContextMenu();
var page_w = window.innerWidth || document.body.clientWidth;
var page_h = window.innerHeight || document.body.clientHeight;
var page_x = window.pageXOffset || document.body.scrollLeft;
var page_y = window.pageYOffset || document.body.scrollTop;
if (menunode.offsetWidth >= pd_max_contextmenu_width) {
// It's likely that the browser ignored "display: table"
// and used the full width of the page. Use a workaround.
menunode.style.width = pd_max_contextmenu_width;
}
// Choose a location for the menu based on where the user clicked
if (page_w - e.clientX < menunode.offsetWidth) {
// Close to the right edge
menunode.style.left = page_x + e.clientX - menunode.offsetWidth - 1;
}
else {
menunode.style.left = page_x + e.clientX + 1;
}
if (page_h - e.clientY < menunode.offsetHeight) {
// Close to the bottom
menunode.style.top = page_y + e.clientY - menunode.offsetHeight - 1;
}
else {
menunode.style.top = page_y + e.clientY + 1;
}
pd_open_context_menu = menunode;
menunode.style.visibility = "visible";
return false;
}
function pd_hideContextMenu() {
if (pd_open_context_menu) {
pd_open_context_menu.style.visibility = "hidden";
pd_open_context_menu = null;
}
}
function pd_getContextMenuItem(e) {
return pd_findEventTarget(e, "context-menu-item", "context-menu");
}
function pd_highlightContextMenuItem(e) {
if (!e)
e = event;
var node = pd_getContextMenuItem(e);
if (node)
pd_highlight(node, true);
}
function pd_unhighlightContextMenuItem(e) {
if (!e)
e = event;
var node = pd_getContextMenuItem(e);
if (node)
pd_highlight(node, false);
}
function pd_filterContextMenuItems(node) {
// Execute filter scripts and set the "display" style property
var i, f, enabled;
if (node.getAttribute) {
f = node.getAttribute("filter");
if (f) {
enabled = eval(f);
if (enabled)
node.style.display = "";
else
node.style.display = "none";
}
}
for (i = 0; i < node.childNodes.length; i++)
pd_filterContextMenuItems(node.childNodes[i]);
}
//
// Drag functions
//
function pd_DragEvent(e, move_func, checkmove_func) {
this.target = null;
this.move_func = move_func;
this.checkmove_func = checkmove_func;
this.start_x = e.pageX ? e.pageX : e.clientX + document.body.scrollLeft;
this.start_y = e.pageY ? e.pageY : e.clientY + document.body.scrollTop;
this.feedback_node = document.getElementById("drag-feedback-box");
this.began_moving = false;
this.revealed = [];
}
function pd_unhighlightDropTarget() {
if (pd_drag_event && pd_drag_event.target) {
pd_drag_event.target.style.border = pd_target_normal_border;
pd_drag_event.target = null;
}
}
function pd_allowDrop(target) {
if (!pd_drag_event)
return false;
var i;
for (i = 0; i < pd_selected_items.length; i++) {
if (pd_hasAncestor(target, pd_selected_items[i])) {
// Don't let the user drag an element inside itself.
return false;
}
}
if (pd_drag_event.checkmove_func) {
if (!pd_drag_event.checkmove_func(pd_selected_items, target))
return false;
}
return true;
}
function pd_highlightDropTarget(target) {
if (pd_allowDrop(target)) {
pd_unhighlightDropTarget();
target.style.border = pd_target_highlighted_border;
pd_drag_event.target = target;
}
}
function pd_firstDrag(x, y) {
if (!pd_drag_event)
return;
var i, target;
var feedback_node_style = pd_drag_event.feedback_node.style;
var item = pd_selected_items[0]; // TODO: expand box to include all items
pd_drag_event.began_moving = true;
feedback_node_style.left = x + 5;
feedback_node_style.top = y + 5;
feedback_node_style.width = item.offsetWidth - 2;
feedback_node_style.height = item.offsetHeight - 2;
feedback_node_style.display = "block";
// Show some of the normally invisible targets.
for (i = 0; i < pd_invisible_targets.length; i++) {
target = pd_invisible_targets[i];
if (pd_allowDrop(target)) {
if (pd_drag_event.revealed.push)
pd_drag_event.revealed.push(target);
else
pd_drag_event.revealed = pd_drag_event.revealed.concat([target]);
target.style.visibility = "visible";
}
}
}
function pd_dragging(e) {
if (!pd_drag_event)
return;
if (!e)
e = event;
var x = e.pageX ? e.pageX : e.clientX + document.body.scrollLeft;
var y = e.pageY ? e.pageY : e.clientY + document.body.scrollTop;
if (!pd_drag_event.began_moving) {
if (Math.abs(x - pd_drag_event.start_x) <= 3 &&
Math.abs(y - pd_drag_event.start_y) <= 3) {
// Didn't move far enough yet.
return;
}
pd_firstDrag(x, y);
}
pd_drag_event.feedback_node.style.left = x + 5;
pd_drag_event.feedback_node.style.top = y + 5;
}
function pd_finishDrag() {
var i;
for (i = 0; i < pd_drag_event.revealed.length; i++)
pd_drag_event.revealed[i].style.visibility = '';
document.onmousemove = null;
document.onmouseup = null;
document.onselectstart = null;
pd_drag_event.feedback_node.style.display = "none";
var ev = pd_drag_event;
pd_drag_event = null;
if (ev.target) {
ev.target.style.border = pd_target_loading_border;
if (ev.move_func)
ev.move_func(pd_selected_items, ev.target);
}
}
function pd_startDrag(e, move_func, checkmove_func) {
if (pd_drag_event) {
// Already dragging
return;
}
if (!e)
e = event;
pd_drag_event = new pd_DragEvent(e, move_func, checkmove_func);
document.onmousemove = pd_dragging;
document.onmouseup = pd_finishDrag;
document.onselectstart = pd_stopEvent; // IE: Don't start a selection.
if (e.preventDefault)
e.preventDefault(); // NS 6: Don't start a selection.
}
//
// Selection management functions
//
function pd_isSelected(node) {
if (pd_selected_items) {
for (var i = 0; i < pd_selected_items.length; i++) {
if (node == pd_selected_items[i]) {
return true;
}
}
}
return false;
}
function pd_changedSelection() {
if (pd_selected_items && pd_selected_items.length == 1)
pd_selected_item = pd_selected_items[0];
else
pd_selected_item = null;
}
function pd_deselect(node) {
var i, n;
if (pd_selected_items) {
var newsel = [];
// There must be a better way. This could be slow.
for (i = 0; i < pd_selected_items.length; i++) {
n = pd_selected_items[i];
if (n != node) {
if (newsel.push)
newsel.push(n)
else
newsel = newsel.concat([n]);
}
}
pd_selected_items = newsel;
pd_changedSelection();
}
pd_highlight(node, false);
}
function pd_select(node) {
if (!pd_isSelected(node)) {
if (!pd_selected_items)
pd_selected_items = [node];
else if (pd_selected_items.push)
pd_selected_items.push(node);
else
pd_selected_items = pd_selected_items.concat([node]);
pd_changedSelection();
}
pd_highlight(node, true);
}
function pd_clearSelection() {
var i, node, n;
if (pd_selected_items) {
for (i = 0; i < pd_selected_items.length; i++)
pd_highlight(pd_selected_items[i], false);
}
pd_selected_items = [];
pd_changedSelection();
}
function pd_dragSelecting(node) {
if (pd_drag_select_mode == 1)
pd_select(node);
else if (pd_drag_select_mode == -1)
pd_deselect(node);
}
function pd_endDragSelect() {
pd_drag_select_mode = null;
document.onmouseup = null;
}
function pd_startDragSelect(v) {
document.onmouseup = pd_endDragSelect;
pd_drag_select_mode = v;
}
//
// On-page object management functions
//
function pd_itemOnMousedown(mo, e, move_func, checkmove_func, box) {
if (!e)
e = event;
if (e.button == 0 || e.button == 1) {
pd_hideContextMenu();
if (!box)
box = mo;
if (e.shiftKey) {
// Toggle the selected state of this item and start drag select.
if (pd_isSelected(box)) {
pd_deselect(box);
pd_startDragSelect(-1);
}
else {
pd_select(box);
pd_startDragSelect(1);
}
}
else if (e.ctrlKey) {
if (pd_isSelected(box))
pd_deselect(box);
else
pd_select(box);
}
else {
if (!pd_isSelected(box)) {
pd_clearSelection();
pd_select(box);
}
pd_startDrag(e, move_func, checkmove_func);
}
}
return pd_stopEvent(e);
}
function pd_itemOnMouseover(mo, e, box) {
if (pd_drag_select_mode) {
pd_dragSelecting(box || mo);
return pd_stopEvent(e);
}
}
function pd_itemOnContextMenu(mo, e, contextMenuId, box) {
if (!e)
e = event;
if (!box)
box = mo;
if (!pd_isSelected(box)) {
pd_clearSelection();
pd_select(box);
}
var menu = document.getElementById(contextMenuId);
if (menu) {
pd_filterContextMenuItems(menu);
pd_showContextMenu(menu, e);
return pd_stopEvent(e);
}
}
function pd_setupDragUI(mo, move_func, checkmove_func, box) {
// Adds selection and drag and drop functionality to an element
function call_onmousedown(e) {
return pd_itemOnMousedown(mo, e, move_func, checkmove_func, box);
}
function call_onmouseover(e) {
return pd_itemOnMouseover(mo, e, box);
}
mo.onmousedown = call_onmousedown;
mo.onmouseover = call_onmouseover;
mo.onselectstart = pd_stopEvent; // IE: Don't start a selection.
}
function pd_setupContextMenu(mo, contextMenuId, box) {
// Adds context menu functionality to an element
function oncontextmenu(e) {
return pd_itemOnContextMenu(mo, e, contextMenuId, box);
}
mo.oncontextmenu = oncontextmenu;
}
function pd_documentOnMouseDown() {
pd_hideContextMenu();
pd_clearSelection();
}
function pd_setupNodeAndDescendants(node) {
var i, f;
if (node.className) {
f = pd_node_setup[node.className];
if (f)
f(node);
}
for (i = 0; i < node.childNodes.length; i++) {
pd_setupNodeAndDescendants(node.childNodes[i]);
}
}
function pd_setupPage(node) {
if (!node)
node = document;
if (!document.onmousedown)
document.onmousedown = pd_documentOnMouseDown;
pd_setupNodeAndDescendants(node);
}
function pd_setupDropTarget(node, selectable) {
function call_highlight() {
return pd_highlightDropTarget(node);
}
node.onmouseover = call_highlight;
node.onmouseout = pd_unhighlightDropTarget;
if (!selectable)
node.onmousedown = pd_stopEvent; // Prevent accidental selection
}
function pd_setupContextMenuDefinition(node) {
node.onmouseover = pd_highlightContextMenuItem;
node.onmouseout = pd_unhighlightContextMenuItem;
node.onmousedown = pd_stopEvent;
node.onmouseup = pd_hideContextMenu;
}
pd_node_setup['drop-target'] = pd_setupDropTarget;
pd_node_setup['context-menu'] = pd_setupContextMenuDefinition;
=== Added File Zope3/src/zope/app/zopetop/plus.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/service_manager.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/spacer1.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/spacer2.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/spacer3.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/standardmacros.py ===
##############################################################################
#
# Copyright (c) 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (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.
#
##############################################################################
"""Standard macros for page templates in the ZMI
The macros are drawn from various different page templates.
$Id: standardmacros.py,v 1.1 2004/03/02 17:11:32 philikon Exp $
"""
from zope.app.basicskin.standardmacros import StandardMacros as BaseMacros
class StandardMacros(BaseMacros):
macro_pages = ('view_macros', 'widget_macros', 'dialog_macros',
'navigation_macros')
=== Added File Zope3/src/zope/app/zopetop/system_security.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/test_style.html ===
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="zopetopBasic.css" rel="stylesheet" type="text/css" />
<link href="zopetopStructure.css" rel="stylesheet" type="text/css" />
<link href="zopetopWidgets.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Stylesheet Test Page</h1>
<h1>H1</h1>
<h2>H2</h2>
<h3>H3</h3>
<h4>H4</h4>
<h5>H5</h5>
<h6>H6</h6>
Default Text<br />
<b>Bold Text</b><br />
<em>Em Text</em><br />
<i>Italic</i><br />
<div>Standard Div</div>
<div class="background">Background Color</div>
<div class="hilite">Highlight Color</div>
<div class="darker">Highlight Color</div>
<pre>Preformatted Text
Preformatted Text
Preformatted Text
</pre>
<blockquote>Block Quote
Block Quote
Block Quote</blockquote>
<p>Paragraph
Paragraph
Paragraph
Paragraph
Paragraph
<a href="#" >A URL</a>
</p>
<form action="." method="post">
<fieldset>
<legend>Legend</legend><br />
<div class="row"><label>First Name: <input name="firstname" type="text" accesskey="n" tabindex="1" title="First Name" dir="ltr" lang="en" size="35" maxlength="30" /></label></div>
<div class="row"><label>Last Name:<input name="lastname" type="text" accesskey="n" tabindex="1" title="Last Name" dir="ltr" lang="en" size="35" maxlength="30" /></label></div>
<div class="row"><label>Free Form Text: <textarea name="text" cols="20" rows="20" accesskey="t" tabindex="3" title="Free Form Text" dir="ltr" lang="en" label="Free Form Text"></textarea></label><br /></div>
<div class="row"><label>CheckBox:<input name="checkbox" type="checkbox" accesskey="c" tabindex="4" title="A Checkbox" dir="ltr" lang="en" value="1" checked="checked" /> </label></div>
<div class="row">Radio Group:
<label>
<input type="radio" name="RadioGroiup" value="radio1" />
Radio1</label>
<label>
<input type="radio" name="RadioGroiup" value="radio2" />
Radio2</label>
</div>
<div class="row">
Select:
<select name="select" accesskey="s" tabindex="7" title="Select Box" dir="ltr" lang="en">
<option value="1" selected="selected">Value1</option>
<option value="2">Value2</option>
<option value="3">Value3</option>
</select>
</div>
<div class="row">
Multiple Select:
<select name="select_multiple" size="5" multiple="multiple" accesskey="m" tabindex="8" title="Select Multiple">
<option value="1" selected="selected">Value1</option>
<option value="2">Value2</option>
<option value="3" selected="selected">Value3</option>
</select>
</div>
<div class="row">
<input name="Image Field" type="image" accesskey="i" tabindex="9" title="Image Field" value="1" src="arrowUp.gif" alt="Arrow Up" /></div>
<div class="row">
<input name="file" type="file" accesskey="f" tabindex="10" title="File Upload" dir="ltr" lang="en" size="25" /></div>
<div class="row"> <input name="button" type="button" accesskey="b" tabindex="11" title="Button" value="button" />
<input name="submit" type="submit" accesskey="s" tabindex="12" title="Submit Button" dir="ltr" lang="en" value="submit" />
<input name="reset" type="reset" accesskey="r" tabindex="13" title="Reset" dir="ltr" lang="en" value="reset" />
</div>
</fieldset>
</form>
<table>
<caption>
Normal Table
</caption>
<thead>
<tr>
<th> TH </th>
<th> TH </th>
<th> TH </th>
</tr>
<tr class="even">
<td> TR</td>
<td> Class</td>
<td> Even</td>
</tr>
<tr class="odd">
<td> TR</td>
<td> Class</td>
<td> Odd</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table class="listing">
<caption>
Table Class: Listing
</caption>
<thead>
<tr>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
</tr>
</thead>
<tbody>
<tr>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
</tr>
</tbody>
</table>
<table class="box">
<caption>
Table Class: Box
</caption>
<tr>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
<th> TH </th>
</tr>
<tr>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
<td> TD </td>
</tr>
</table>
<div class="document">Document Style Div</div>
<div class="message">Message Style Div</div>
<div class="error">Error Style Div</div>
<div class="clock">Clock Style Div</div>
<div class="editableDocument">Editable Document Style Div</div>
<div class="personalBar">Personal Bar Style Div</div>
<div class="comment">Comment Style Div</div>
<div class="expired">Expired Style Div</div>
<div class="private">Private Style Div</div>
<div class="published">Published Style Div</div>
<div class="pending">Pending Style Div</div>
<div class="syndicated">Syndicated Style Div</div>
<div class="breadcrumbs">Breadcrumbs Style Div</div>
</body>
</html>
=== Added File Zope3/src/zope/app/zopetop/user_accounts.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/users_folder.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/view_macros.pt ===
<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">
Zope
</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="zopetop.css" rel="stylesheet" type="text/css"
tal:attributes="href context/++resource++zopetop.css" />
<script type="text/javascript" src="pdlib.js"
tal:attributes="src context/++resource++pdlib.js"></script>
<metal:tree use-macro="context/@@standard_macros/navigation_tree_js" />
<div metal:define-slot="headers">
</div>
</head>
<body tal:attributes="onload body_onload | nothing">
<div class="top">
<a href="#" tal:attributes="href string:${request/URL/1}/@@manage">
<img src="zope3logo.jpg" width="366" height="37"
alt="Zope 3 Logo"
tal:attributes="src context/++resource++zope3logo.jpg" />
</a>
<span metal:use-macro="views/standard_macros/logged_user">
Logged in as user
</span>
</div>
<table class="columns">
<tr>
<td class="left">
<span metal:use-macro="views/standard_macros/navigation_box" />
<span metal:use-macro="views/standard_macros/commontasks_box" />
<!--
<span metal:use-macro="views/standard_macros/metadata_box" />
<span metal:use-macro="views/standard_macros/views_box" />
<span metal:use-macro="views/standard_macros/actions_box" />
-->
</td>
<td class="main">
<span metal:use-macro="views/standard_macros/zmi_views" />
<span metal:use-macro="views/standard_macros/zmi_actions" />
<span metal:use-macro="views/standard_macros/content_header_bar" />
<span metal:define-slot="body"></span>
</td>
</tr>
</table>
<span metal:use-macro="views/standard_macros/footer" />
</body>
</html>
</metal:block>
=== Added File Zope3/src/zope/app/zopetop/website_settings.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/widget_macros.pt ===
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html i18n:domain="zope">
<head>
<link href="zopetopBasic.css" rel="stylesheet" type="text/css" />
<link href="zopetopStructure.css" rel="stylesheet" type="text/css" />
<link href="zopetopWidgets.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="user" metal:define-macro="logged_user" i18n:translate="">
Logged in as
<span tal:replace="request/user/getTitle" i18n:name="user_title">
dtremea</span>
</div>
<div class="box" id="navigationTree" metal:define-macro="navigation_box">
<metal:tree use-macro="context/@@standard_macros/navigation_tree_box" />
</div>
<div class="box" id="commonTasks"
tal:define="view context/@@commonTasks|nothing"
tal:condition="view/strip|nothing"
metal:define-macro="commontasks_box">
<h5 i18n:translate="">Common Tasks</h5>
<div class="body" tal:content="structure view">
CommonTasks
</div>
</div>
<div class="box" metal:define-macro="services_box">
<h5 i18n:translate="">Services</h5>
<div class="body">
<div class="content even">
<img src="user_accounts.gif" width="22" height="28"
tal:attributes="src context/++resource++user_accounts.gif"
alt="user accounts" i18n:attributes="alt"/>
<span i18n:translate="">User Accounts</span>
</div>
<div class="content odd">
<img src="control_panels.gif" width="24" height="28"
tal:attributes="src context/++resource++control_panels.gif"
alt="control panels" i18n:attributes="alt"/>
<span i18n:translate="">Control Panels</span>
</div>
<div class="content even">
<img src="system_security.gif" width="23" height="28"
tal:attributes="src context/++resource++system_security.gif"
alt="system security" i18n:attributes="alt" />
<span i18n:translate="">System Security</span>
</div>
<div class="content odd">
<img src="add_more.gif" width="26" height="28"
tal:attributes="src context/++resource++add_more.gif"
alt="add more" i18n:attributes="alt" />
<span i18n:translate="">Add More</span>
</div>
</div>
</div>
<table metal:define-macro="explorer_box" align="center" class="box" width="150">
<thead>
<tr>
<th align="center" class="boxtop" i18n:translate="">Root Folder</th>
<th class="empty"> </th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" class="odd"><a href="#">
<img src="plus.gif" width="19" height="25"
tal:attributes="src context/++resource++plus.gif"
alt="+" />
<img src="closed_folder.gif" width="26" height="25"
tal:attributes="src context/++resource++closed_folder.gif"
alt="folder" />
Folder Name</a>
</td>
</tr>
<tr>
<td colspan="2" class="odd"><a href="#">
<img src="plus.gif" width="19" height="25"
tal:attributes="src context/++resource++plus.gif"
alt="+" />
<img src="closed_folder.gif" width="26" height="25"
tal:attributes="src context/++resource++closed_folder.gif"
alt="folder" />
Folder Name</a>
</td>
</tr>
<tr>
<td colspan="2" class="even"><a href="#">
<img src="minus.gif" width="19" height="25"
tal:attributes="src context/++resource++minus.gif"
alt="-" />
<img src="closed_folder.gif" width="26" height="25"
tal:attributes="src context/++resource++closed_folder.gif"
alt="folder" />
Folder Name</a>
</td>
</tr>
</tbody>
</table>
<table metal:define-macro="search_box" align="center" class="box"
width="150">
<thead>
<tr>
<th align="center" class="boxtop">Search</th>
<th class="empty"> </th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" nowrap="nowrap">
<form name="search">
<input type="text" size="15" style="width: 85%;" />
<input type="submit" value="Go" style="width: 15%;" />
</form>
</td>
</tr>
</tbody>
</table>
<div class="box"
tal:define="views context/@@view_get_menu/zmi_views|nothing"
tal:condition="views"
metal:define-macro="views_box">
<h5 i18n:translate="">Views</h5>
<div class="body">
<div class="content" tal:repeat="view views">
<a href="" tal:attributes="href view/action"
tal:content="view/title">
View
</a>
</div>
</div>
</div>
<div class="box"
tal:define="actions context/@@view_get_menu/zmi_actions|nothing"
tal:condition="actions"
metal:define-macro="actions_box">
<h5 i18n:translate="">Actions</h5>
<div class="body">
<div class="content" tal:repeat="action actions">
<a href="" tal:attributes="href action/action"
tal:content="action/title">
Action
</a>
</div>
</div>
</div>
<div class="box"
tal:define="view context/@@MetaDataBox|nothing"
tal:condition="view/strip|nothing"
metal:define-macro="metadata_box">
<h5 i18n:translate="">Metadata</h5>
<div class="body">
<div class="content" tal:content="structure view">
Some metadata
</div>
</div>
</div>
<div class="breadcrumbs" metal:define-macro="content_header_bar">
<span i18n:translate="">Location:</span>
<span
metal:define-macro="breadcrumbs"
tal:omit-tag=""
tal:repeat="breadcrumb context/@@absolute_url/breadcrumbs"> <a href=""
tal:attributes="href string:${breadcrumb/url}/@@manage"
tal:content="string:${breadcrumb/name}/"
>name</a></span>
</div>
<div class="itemViews"
metal:define-macro="zmi_views">
<tal:block repeat="view context/@@view_get_menu/zmi_views">
<a href=""
tal:attributes="href view/action;
class view/selected;"
tal:content="view/title"
i18n:translate="">
label
</a>
</tal:block>
</div>
<div class="actions"
metal:define-macro="zmi_actions"
tal:define="actions context/@@view_get_menu/zmi_actions">
<span tal:condition="actions"
tal:omit-tag="">
<a href="#"
tal:repeat="info actions"
tal:attributes="href info/action"
tal:content="info/title"
i18n:translate="">
Action name
</a>
</span>
<span class="help">
<a href="#">
<span i18n:translate="">Help</span>
<img src="help.gif" width="25" height="25"
tal:attributes="src context/++resource++help.gif"
alt="help" />
</a>
</span>
</div>
<div metal:define-macro="footer"
tal:define="view context/@@MetaDataBox|nothing"
class="footer">
<div tal:condition="view/strip|nothing"
class="metadata" tal:content="structure view" />
<div i18n:translate="">Powered by Zope</div>
</div>
</body>
</html>
=== Added File Zope3/src/zope/app/zopetop/x.gif ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/zope3logo.jpg ===
<Binary-ish file>
=== Added File Zope3/src/zope/app/zopetop/zopetop.css ===
/*****************************************************************************
*
* 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.0 (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: zopetop.css,v 1.1 2004/03/02 17:11:32 philikon Exp $
*/
/* 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: #ccccff;
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_top.jpg');
height: 37px;
}
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: #ccccff;
border-right: 1px solid #7B7AC6;
border-bottom: 1px solid #7B7AC6;
padding: 0.5em 0;
width: 20%;
}
table.columns td.right {
background-color: #ccccff;
border-left: 1px solid #7B7AC6;
border-bottom: 1px solid #7B7AC6;
width: 20%;
}
div.breadcrumbs{
background-color: #ccccff;
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: #CCCCFF;
}
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: #CCCCFF;
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;
}
More information about the Zope3-Checkins
mailing list