Commit c7fd5b01 authored by 's avatar

Merged mgmt interface quick fix branch

parent 3509fc9a
......@@ -85,8 +85,8 @@
__doc__='''Support for owned objects
$Id: Owned.py,v 1.8 2000/12/05 18:49:42 shane Exp $'''
__version__='$Revision: 1.8 $'[11:-2]
$Id: Owned.py,v 1.9 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.9 $'[11:-2]
import Globals, urlparse, SpecialUsers, ExtensionClass, string
from AccessControl import getSecurityManager
......@@ -119,7 +119,7 @@ class Owned(ExtensionClass.Base):
},
)
manage_owner=Globals.HTMLFile('owner', globals())
manage_owner=Globals.HTMLFile('dtml/owner', globals())
def owner_info(self):
"""Get ownership info for display
......
......@@ -84,7 +84,7 @@
##############################################################################
"""Access control support"""
__version__='$Revision: 1.42 $'[11:-2]
__version__='$Revision: 1.43 $'[11:-2]
from Globals import HTMLFile, MessageDialog, Dictionary
......@@ -186,7 +186,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
return result
manage_roleForm=HTMLFile('roleEdit', globals(), management_view='Security',
manage_roleForm=HTMLFile('dtml/roleEdit', globals(),
management_view='Security',
help_topic='Security_Manage-Role.stx',
help_product='OFSP')
......@@ -200,7 +201,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
if REQUEST is not None: return self.manage_access(self,REQUEST)
manage_acquiredForm=HTMLFile('acquiredEdit', globals(), management_view='Security',
manage_acquiredForm=HTMLFile('dtml/acquiredEdit', globals(),
management_view='Security',
help_topic='Security_Manage-Acquisition.stx',
help_product='OFSP')
......@@ -217,7 +219,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
if REQUEST is not None: return self.manage_access(self,REQUEST)
manage_permissionForm=HTMLFile('permissionEdit', globals(), management_view='Security',
manage_permissionForm=HTMLFile('dtml/permissionEdit', globals(),
management_view='Security',
help_topic='Security_Manage-Permission.stx',
help_product='OFSP')
......@@ -245,8 +248,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
def manage_access(
trueself, self, REQUEST,
_normal_manage_access=HTMLFile('access', globals()),
_method_manage_access=HTMLFile('methodAccess', globals()),
_normal_manage_access=HTMLFile('dtml/access', globals()),
_method_manage_access=HTMLFile('dtml/methodAccess', globals()),
**kw):
"Return an interface for making permissions settings"
if hasattr(self, '_isBeingUsedAsAMethod') and \
......@@ -330,11 +333,13 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
__ac_local_roles__=None
manage_listLocalRoles=HTMLFile('listLocalRoles', globals(), management_view='Security',
manage_listLocalRoles=HTMLFile('dtml/listLocalRoles', globals(),
management_view='Security',
help_topic='Security_Local-Roles.stx',
help_product='OFSP')
manage_editLocalRoles=HTMLFile('editLocalRoles', globals(), management_view='Security',
manage_editLocalRoles=HTMLFile('dtml/editLocalRoles', globals(),
management_view='Security',
help_topic='Security_User-Local-Roles.stx',
help_product='OFSP')
......
......@@ -84,7 +84,7 @@
##############################################################################
"""Access control package"""
__version__='$Revision: 1.122 $'[11:-2]
__version__='$Revision: 1.123 $'[11:-2]
import Globals, socket, ts_regex, SpecialUsers
import os
......@@ -587,10 +587,10 @@ class BasicUserFolder(Implicit, Persistent, Navigation, Tabs, RoleManager,
def __len__(self):
return 1
_mainUser=HTMLFile('mainUser', globals())
_add_User=HTMLFile('addUser', globals(),
_mainUser=HTMLFile('dtml/mainUser', globals())
_add_User=HTMLFile('dtml/addUser', globals(),
remote_user_mode__=_remote_user_mode)
_editUser=HTMLFile('editUser', globals(),
_editUser=HTMLFile('dtml/editUser', globals(),
remote_user_mode__=_remote_user_mode)
manage=manage_main=_mainUser
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Manage Acquired Permission Settings</title></head>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if manage_tabs>
<FORM ACTION="manage_acquiredPermissions" METHOD="POST">
Select permissions that acquire permission settings:<br>
<select name=permissions:list multiple size=10>
<dtml-in permission_settings mapping>
<option <dtml-if acquire>SELECTED</dtml-if>><dtml-var name></option>
</dtml-in>
</select><p>
<input type=submit value="Change">
</form></body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Add User</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Add User</H2>
<dtml-var "HelpSys.HelpButton('User-Folder_Add-User.stx','OFSP')">
<P>
To add a new user, enter the name,
<dtml-unless remote_user_mode__>
password, confirmation
</dtml-unless>
and roles for the new user and click &quot;Add&quot;.
<EM>Domains</EM> is an optional list of domains from
which the user is allowed to login.
</P>
<FORM ACTION="manage_users" METHOD="POST">
<TABLE>
<TR>
<TD VALIGN="TOP">
<STRONG>Name</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="name" SIZE="20">
</TD>
</TR>
<dtml-if remote_user_mode__>
<INPUT TYPE="HIDDEN" NAME="password" value="password">
<INPUT TYPE="HIDDEN" NAME="confirm" value="password">
<dtml-else>
<TR>
<TD VALIGN="TOP">
<STRONG>Password</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="password" SIZE="40">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>(Confirm)</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="confirm" SIZE="40">
</TD>
</TR>
</dtml-if>
<TR>
<TD VALIGN="TOP">
<EM><STRONG>Domains</STRONG></EM>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="domains:tokens" VALUE="" SIZE="40">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>Roles</STRONG>
</TD>
<TD VALIGN="TOP">
<SELECT NAME="roles:list" SIZE="5" MULTIPLE>
<dtml-in valid_roles>
<dtml-if expr="_vars['sequence-item'] != 'Anonymous'">
<dtml-if expr="_vars['sequence-item'] != 'Shared'">
<OPTION VALUE="<dtml-var sequence-item html_quote>"><dtml-var sequence-item>
</dtml-if>
</dtml-if>
</dtml-in valid_roles>
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Security</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if manage_tabs>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<P>
<p class="form-help">
The listing below shows the current security settings for this item.
Permissions are rows and roles are columns. Checkboxes are used to
indicate where roles are assigned permissions. You can also assign
<strong><a href="manage_listLocalRoles">local roles</a></strong> to
users, which give users extra roles in the context of this object and
its subobjects.
</P>
<P>
</p>
<p class="form-help">
When a role is assigned to a permission, users with the given role
will be able to perform tasks associated with the permission on this
item. When the <EM>Acquire permission settings</EM> checkbox is selected
item. When the <em>Acquire permission settings</em> checkbox is selected
then the containing objects's permission settings are used. Note: the
acquired permission settings may be augmented by selecting Roles for
a permission in addition to selecting to acquire permissions.
</P>
<dtml-if "_['id'] != 'acl_users'">
<P>
You can define new Roles by using the <EM>User defined roles</EM>
form below.
</P>
</dtml-if>
<style type="text/css">
<!--
td {
font-size: 10pt;
color: black;
}
>
</style>
</p>
<dtml-with expr="_.namespace(valid_roles=valid_roles())">
<FORM ACTION="manage_changePermissions" METHOD="POST">
<TABLE>
<TR>
<form action="manage_changePermissions" method="post">
<table width="100%" cellspacing="0" cellpadding="2" border="0" nowrap>
<tr class="list-header">
<dtml-unless isTopLevelPrincipiaApplicationObject>
<TD></TD>
<td>&nbsp;</td>
</dtml-unless>
<TD>
<STRONG>
Permission
</STRONG>
</TD>
<TD ALIGN="LEFT" COLSPAN="<dtml-var expr="_.len(valid_roles)">">
<STRONG>
Roles
</STRONG>
</TD>
</TR>
<TR>
<td align="left" valign="top">
<div class="form-label">
<strong>Permission</strong>
</div>
</td>
<td align="left" colspan="<dtml-var expr="_.len(valid_roles)">">
<div class="form-label">
<strong>Roles</strong>
</div>
</td>
</tr>
<tr class="row-normal">
<dtml-unless isTopLevelPrincipiaApplicationObject>
<TD>
<STRONG>
<td align="left" valign="top">
<div class="form-label">
<strong>
<a href="manage_acquiredForm">Acquire<BR>permission<BR>settings</a>?
</STRONG>
</TD>
</strong>
</div>
</td>
</dtml-unless>
<TD></TD>
<td></td>
<dtml-in valid_roles>
<TD CLASS="bold">
<A HREF="manage_roleForm?role_to_manage=<dtml-
var sequence-item url_quote>"><dtml-var sequence-item></A>
</TD>
<td align="left">
<div class="list-item">
<a href="manage_roleForm?role_to_manage=<dtml-var
sequence-item url_quote>"><dtml-var sequence-item></a>
</div>
</td>
</dtml-in valid_roles>
</TR>
</tr>
<dtml-in permission_settings mapping>
<TR>
<dtml-if sequence-odd>
<tr class="row-normal">
<dtml-else>
<tr class="row-hilite">
</dtml-if>
<dtml-unless isTopLevelPrincipiaApplicationObject>
<TD ALIGN="CENTER">
<INPUT TYPE="checkbox" NAME="a<dtml-var sequence-index>"
<dtml-var acquire>>
</TD>
<td align="left" valign="top">
<input type="checkbox" name="a<dtml-var sequence-index>" <dtml-var
acquire> />
</td>
</dtml-unless>
<TD ALIGN="LEFT">
<A HREF="manage_permissionForm?permission_to_manage=<dtml-
var name url_quote>">
<dtml-var name></A>
</TD>
<td align="left" nowrap>
<div class="list-item">
<a href="manage_permissionForm?permission_to_manage=<dtml-var
name url_quote>"><dtml-var name></a>
</div>
</td>
<dtml-in roles mapping>
<TD ALIGN="CENTER">
<INPUT TYPE="CHECKBOX" NAME="<dtml-var name>" <dtml-var checked>>
</TD>
<td align="center">
<input type="checkbox" name="<dtml-var name>" <dtml-var checked> />
</td>
</dtml-in>
</TR>
</tr>
</dtml-in permission_settings>
<TR>
<tr>
<dtml-if isTopLevelPrincipiaApplicationObject>
<TD COLSPAN="<dtml-var expr="_.len(valid_roles)+1">" ALIGN="CENTER">
<td colspan="<dtml-var expr="_.len(valid_roles)+1">" align="left">
<dtml-else>
<TD COLSPAN="<dtml-var expr="_.len(valid_roles)+2">" ALIGN="CENTER">
<td colspan="<dtml-var expr="_.len(valid_roles)+2">" align="left">
</dtml-if>
<INPUT TYPE="SUBMIT" VALUE="Change">
</TD>
</TR>
</TABLE>
</FORM>
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Save Changes" />
</div>
</td>
</tr>
</table>
</form>
</dtml-with>
<dtml-if "_['id'] != 'acl_users'">
<P>
<FORM ACTION="manage_defined_roles" METHOD="POST">
<TABLE CELLPADDING="2">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG>
<p class="form-help" >
You can define new roles by entering a role name and clicking the
&quot;Add Role&quot; button.
</p>
<form action="manage_defined_roles" method="post">
<table cellpadding="2">
<tr>
<td align="left" valign="top">
<div class="form-label">
User defined roles
</STRONG>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="role" SIZE="16">
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add Role">
</TD>
</TR>
</td>
<td align="left" valign="top">
&nbsp;
</td>
</tr>
<tr>
<td align="left" valign="top">
<input type="text" name="role" size="16" value="" />
</td>
<td align="left" valign="top">
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Add Role" />
</div>
</td>
</tr>
<dtml-if userdefined_roles>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<SELECT NAME="roles:list">
<tr>
<td align="left" valign="top">
<div class="form-element">
<select name="roles:list">
<dtml-in userdefined_roles>
<OPTION VALUE="<dtml-var sequence-item html_quote>"><dtml-var sequence-item>
<option value="<dtml-var sequence-item html_quote>" /><dtml-var
sequence-item>
</dtml-in userdefined_roles>
</SELECT>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Delete Role">
</TD>
</TR>
</select>
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<input class="form-element" type="submit" name="submit"
value="Delete Role" />
</div>
</td>
</tr>
</dtml-if userdefined_roles>
</TABLE>
</FORM>
</table>
</form>
</dtml-if>
<dtml-var manage_page_footer>
</BODY>
</HTML>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if manage_tabs>
<p class="form-help">
Select permissions that acquire permission settings:
</p>
<form action="manage_acquiredPermissions" method="post">
<select name="permissions:list" multiple size="10">
<dtml-in permission_settings mapping>
<option<dtml-if acquire> selected</dtml-if>><dtml-var name></option>
</dtml-in>
</select>
<p>
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Save Changes" />
</div>
</p>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add User',
help_product='OFSP',
help_topic='User-Folder_Add-User.stx'
)">
<p class="form-help">
To add a new user, enter the name <dtml-unless remote_user_mode__>
,password, confirmation</dtml-unless> and roles for the new user and
click &quot;Add&quot;. <em>Domains</em> is an optional list of domains
from which the user is allowed to login.
</p>
<form action="manage_users" method="post">
<table>
<tr>
<td align="left" valign="top">
<div class="form-label">
Name
</div>
</td>
<td align="left" valign="top">
<input type="text" name="name" size="30" />
</td>
</tr>
<dtml-if remote_user_mode__>
<input type="hidden" name="password" value="password" />
<input type="hidden" name="confirm" value="password" />
<dtml-else>
<tr>
<td align="left" valign="top">
<div class="form-label">
Password
</div>
</td>
<td align="left" valign="top">
<input type="password" name="password" size="30" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
(Confirm)
</div>
</td>
<td align="left" valign="top">
<input type="password" name="confirm" size="30" />
</td>
</tr>
</dtml-if>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Domains
</div>
</td>
<td align="left" valign="top">
<input type="text" name="domains:tokens" size="30" value="" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Roles
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<select name="roles:list" size="5" multiple>
<dtml-in valid_roles>
<dtml-if expr="_vars['sequence-item'] != 'Anonymous'">
<dtml-if expr="_vars['sequence-item'] != 'Shared'">
<option value="<dtml-var sequence-item html_quote>"><dtml-var
sequence-item>
</dtml-if>
</dtml-if>
</dtml-in valid_roles>
</select>
<br />
<input type="submit" name="submit" value="Add" />
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<title>Manage Local Roles</title>
</head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<p>
<strong>Local roles</strong> allow you to give particular users extra roles
in the context of this object, in addition to the roles they already have.
<p class="form-help">
Local roles allow you to give particular users extra roles in the
context of this object, in addition to the roles they already have.
</p>
<p>
<p class="form-help">
To change the local roles for this user, select the extra roles this
user should have in the context of this object and click the <em>Change</em>
button.
user should have in the context of this object and click the <em>
Save Changes</em> button.
</p>
<form action="manage_setLocalRoles" method="POST">
<table cellspacing="2" border="0">
<form action="manage_setLocalRoles" method="post">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<strong>User</strong>
<br>
<dtml-var userid>
<div class="form-label">User</div>
</td>
<td align="left" valign="top">
<strong>Roles</strong>
<br>
<div class="form-label">Roles</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-text"><dtml-var userid></div>
</td>
<td align="left" valign="top">
<div class="form-element">
<input type="hidden" name="userid" value="<dtml-var userid html_quote>">
<dtml-with "_(user_roles=get_local_roles_for_userid(userid))">
<select name="roles:list" size="5" multiple>
......@@ -43,16 +40,17 @@ sequence-item>
</dtml-in>
</select>
</dtml-with>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<input type="submit" value="Change">
<td align="left" valign="top" colspan="2">
<div class="form-element">
<input class="form-element" type="submit" value="Save Changes" />
</div>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Change User</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_page_header>
<H2>Change User</H2>
<dtml-var "HelpSys.HelpButton('User-Folder_Edit-User.stx','OFSP')">
<dtml-var "manage_form_title(this(), _,
form_title='Change User',
help_product='OFSP',
help_topic='User-Folder_Edit-User.stx'
)">
<FORM ACTION="manage_users" METHOD="POST">
<TABLE>
<TR>
<TD VALIGN="TOP">
<STRONG>Name</STRONG>
<div class="form-label">
Name
</div>
</TD>
<TD VALIGN="TOP">
<div class="form-text">
<dtml-var expr="user.name">
</div>
</TD>
</TR>
<TR><TD COLSPAN=2>&nbsp;</TD></TR>
<dtml-if remote_user_mode__>
<INPUT TYPE="HIDDEN" NAME="password" value="<dtml-var password html_quote>">
<INPUT TYPE="HIDDEN" NAME="confirm" value="<dtml-var password html_quote>">
<INPUT TYPE="HIDDEN" NAME="password" value="<dtml-var
password html_quote>" />
<INPUT TYPE="HIDDEN" NAME="confirm" value="<dtml-var
password html_quote>" />
<dtml-else>
<TR>
<TD VALIGN="TOP">
<STRONG>New Password</STRONG>
<div class="form-label">
New Password
</div>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="password" SIZE="40" value="password">
<INPUT TYPE="PASSWORD" NAME="password" SIZE="30" value="password" />
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>(Confirm)</STRONG>
<div class="form-label">
(Confirm)
</div>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="confirm" SIZE="40" value="confirm">
<INPUT TYPE="PASSWORD" NAME="confirm" SIZE="30" value="confirm" />
</TD>
</TR>
</dtml-if>
<TR><TD COLSPAN=2>&nbsp;</TD></TR>
<TR>
<TD VALIGN="TOP">
<STRONG>Domains</STRONG>
<div class="form-optional">
Domains
</div>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="domains:tokens" SIZE="40"
VALUE="<dtml-if expr="user.domains"><dtml-in expr="user.domains"><dtml-var sequence-item html_quote> </dtml-in></dtml-if>">
<INPUT TYPE="TEXT" NAME="domains:tokens" SIZE="30"
VALUE="<dtml-if expr="user.domains"><dtml-in expr="user.domains"><dtml-var sequence-item html_quote> </dtml-in></dtml-if>" />
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>Roles</STRONG>
<div class="form-label">
Roles
</div>
</TD>
<TD VALIGN="TOP">
<div class="form-element">
<SELECT NAME="roles:list" SIZE="5" MULTIPLE>
<dtml-in valid_roles>
<dtml-if expr="_vars['sequence-item'] != 'Anonymous'">
<dtml-if expr="_vars['sequence-item'] != 'Shared'">
<dtml-if expr="_vars['sequence-item'] in user.roles">
<OPTION VALUE="<dtml-var sequence-item html_quote>" SELECTED><dtml-var sequence-item>
<OPTION VALUE="<dtml-var sequence-item html_quote>" selected><dtml-var
sequence-item>
<dtml-else>
<OPTION VALUE="<dtml-var sequence-item html_quote>"><dtml-var sequence-item>
</dtml-if>
......@@ -70,12 +82,15 @@
</dtml-if>
</dtml-in valid_roles>
</SELECT>
<INPUT TYPE="HIDDEN" NAME="name" VALUE="<dtml-var expr="user.name" html_quote>">
<BR>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Change">
<INPUT TYPE="HIDDEN" NAME="name" VALUE="<dtml-var
expr="user.name" html_quote>" />
<br /><br />
<INPUT class="form-element" TYPE="SUBMIT" NAME="submit" VALUE="Change" />
</div>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<title>Manage Local Roles</title>
</head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<dtml-if stat>
<hr>
......@@ -14,29 +7,33 @@
<hr>
</dtml-if>
<p>
<strong>Local roles</strong> allow you to give particular users extra roles
in the context of this object, in addition to the roles they already have.
<p class="form-help">
Local roles allow you to give particular users extra roles in the context
of this object, in addition to the roles they already have.
</p>
<dtml-if has_local_roles>
<br>
<p class="form-help">
The following users have been given local roles. To modify the local roles
given to a particular user, click on the name of the user. To remove all
local roles from a user, select the checkbox next to the name of the user
and click the <em>Remove</em> button.
</p>
<form action="manage_delLocalRoles" method="POST">
<table cellspacing="2" border="0">
<table cellspacing="0" cellpadding="2" border="0">
<dtml-in get_local_roles>
<tr>
<td align="left" valign="top">
<input type="checkbox" name="userids:list" value="<dtml-var sequence-key html_quote>">
<input type="checkbox" name="userids:list" value="<dtml-var
sequence-key html_quote>" />
</td>
<td align="left" valign="top">
<div class="form-text">
<a href="manage_editLocalRoles?userid=<dtml-var sequence-key
fmt="url-quote">"><dtml-var sequence-key></a> (<dtml-in
sequence-item><dtml-var sequence-item><dtml-unless
sequence-end>, </dtml-unless></dtml-in>)
</div>
</td>
</tr>
</dtml-in>
......@@ -44,7 +41,9 @@ and click the <em>Remove</em> button.
<td align="left" valign="top">
</td>
<td align="left" valign="top">
<input type="submit" value="Remove">
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Remove" />
</div>
</td>
</tr>
</table>
......@@ -55,43 +54,55 @@ and click the <em>Remove</em> button.
To give a user extra roles when accessing this object (and its children),
select a user from the <em>User</em> list below, select the extra
roles that should be given to that user from the <em>Roles</em> list.
</p>
<form action="manage_setLocalRoles" method="POST">
<table cellspacing="2" border="0">
<table cellpadding="2" cellspacing="0" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
User
</div>
</td>
<td align="left" valign="top">
<div class="form-label">
Roles
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<strong>User</strong>
<br>
<div class="form-element">
<select name="userid" size="5">
<dtml-in get_valid_userids>
<option value="<dtml-var sequence-item html_quote>"><dtml-var sequence-item>
<option value="<dtml-var sequence-item html_quote>"><dtml-var
sequence-item></option>
</dtml-in>
</select>
</div>
</td>
<td align="left" valign="top">
<strong>Roles</strong>
<br>
<div class="form-element">
<select name="roles:list" size="5" multiple>
<dtml-in valid_roles><dtml-if
"_vars['sequence-item'] not in ('Anonymous', 'Shared')">
<option value="<dtml-var sequence-item html_quote>"><dtml-var sequence-item>
<option value="<dtml-var sequence-item html_quote>"><dtml-var
sequence-item></option>
</dtml-if>
</dtml-in>
</select>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<input type="submit" value="Add">
<div class="form-element">
<input class="form-element" type="submit" name="submit" value=" Add " />
</div>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<form action="manage_users" method="post">
<dtml-if user_names>
<p class="form-help">
The following users have been defined. Click on the name of a
user to edit that user.
</p>
<table cellspacing="0" cellpadding="2" border="0">
<dtml-in user_names>
<tr>
<td align="left" valign="top">
<input type="checkbox" name="names:list" value="<dtml-var
sequence-item html_quote>" />
</td>
<td align="left" valign="top">
<div class="list-item">
<a href="manage_users?name=<dtml-var
sequence-item fmt=url-quote>&submit=Edit"><img src="<dtml-var
BASEPATH1>/p_/User_icon" alt="" border="0" /></a>
<a href="manage_users?name=<dtml-var sequence-item
fmt=url-quote>&submit=Edit"><dtml-var sequence-item></a>
</div>
</td>
</tr>
</dtml-in user_names>
<tr>
<td align="left" valign="top">
</td>
<td align="left" valign="top">
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Add..." />
<input class="form-element" type="submit" name="submit" value="Delete" />
</div>
</td>
</tr>
</table>
<dtml-else user_names>
<p class="std-text">
There are no users defined.
</p>
<p>
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Add..." />
</div>
</p>
</dtml-if user_names>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if manage_tabs>
<p class="form-help">
This interface is used to define how the operations of this object
correspond to the operations defined by your product or ZClass.
</p>
<p class="form-help">
The first column below lists the permissions for this object. The second
specifies the permissions that should have this permission in this product
or ZClass. For ZClass methods, only permissions that are defined for the
ZClass are permitted.
</p>
<p class="form-help">
In general, any permissions that include operations that change (mutate)
an object should be disabled. The listing below shows the current permission
mappings for this item.
</p>
<dtml-with "_(valid=permissionMappingPossibleValues())">
<form action="manage_setPermissionMapping" method="post">
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr class="list-header">
<td align="left" valign="top">
<div class="form-label">
Permission for this object
</div>
</td>
<td align="left" valign="top">
<div class="form-label">
Permissions that correspond <br>
to (i.e. have) this permission
</div>
</td>
</tr>
<dtml-in manage_getPermissionMapping mapping>
<dtml-if sequence-odd>
<tr class="row-normal">
<dtml-else>
<tr class="row-hilite">
</dtml-if>
<td align="left" valign="top">
<div class="form-text">
<dtml-var permission_name>
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<input type="hidden" name="permission_names:list" value="<dtml-var
permission_name html_quote>" />
<select name="class_permissions:list">
<option value=""<dtml-unless
class_permission> selected</dtml-unless>>(disabled)</option>
<dtml-in valid>
<option<dtml-if "_['sequence-item']==class_permission"
> selected</dtml-if>><dtml-var sequence-item></option>
</dtml-in>
</select>
</div>
</td>
</tr>
</dtml-in>
<tr>
<td colspan="2" align="center">
<div class="form-element">
<input type="submit" name="submit" value="Save Changes">
</div>
</td>
</tr>
</table>
</form>
</dtml-with>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<p class="form-help">
Almost all Zope objects can be owned. When you create an object you
become its owner. Ownership matters for method objects since
it determines what roles they have when they are executed. See the
<em>Proxy Roles</em> view of method objects for more information.
</p>
<p>
<strong>
This object is <dtml-if owner_info><dtml-with
owner_info mapping>owned by &dtml-id; (&dtml-path;).</dtml-with
><dtml-else>unowned.</dtml-if>
</strong>
</p>
<dtml-if userCanTakeOwnership>
<br />
<p class="form-help">
If you have the <i>Take Ownership</i> role you can take ownership
of an object. Usually when taking ownership you should also take
ownership of sub-objects as well.
</p>
<form action="manage_takeOwnership">
<p>
<div class="form-element">
<input class="form-element" name="submit" type="submit"
value="Take Ownership" />
</div>
</p>
<p>
<div class="form-text">
<input name="recursive" type="checkbox" checked>
Also take ownership of all sub-objects
</div>
</p>
</form>
</dtml-if>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if manage_tabs>
<p class="form-text">
Roles assigned to the permission <strong><dtml-var
permission_to_manage></strong>
</p>
<form action="manage_permission" method="post">
<p>
<input type="hidden" name="permission_to_manage" value="<dtml-var
permission_to_manage html_quote>" />
<div class="form-element">
<select name="roles:list" multiple size="10">
<dtml-in expr="rolesOfPermission(permission_to_manage)" mapping=1>
<option <dtml-var selected>><dtml-var name></option>
</dtml-in>
</select>
</div>
</p>
<dtml-unless isTopLevelPrincipiaApplicationObject>
<p>
<div class="form-text">
<input type="checkbox" name="acquire" <dtml-var
expr="acquiredRolesAreUsedBy(permission_to_manage)">>
Also use roles acquired from folders containing this object
</p>
</dtml-unless>
<p>
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Save Changes" />
</div>
</p>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-if manage_tabs><dtml-var manage_tabs></dtml-if manage_tabs>
<p class="form-text">
Permissions assigned to the role <strong><dtml-var role_to_manage></strong>
</p>
<form action="manage_role" method="post">
<p>
<input type=hidden name=role_to_manage value="<dtml-var
role_to_manage html_quote>">
<div class="form-element">
<select name="permissions:list" multiple size="10">
<dtml-in expr="permissionsOfRole(role_to_manage)" mapping=1>
<option <dtml-var selected>><dtml-var name></option>
</dtml-in>
</select>
</div>
</p>
<p>
<div class="form-element">
<input class="form-element" type="submit" name="submit" value="Save Changes" />
</div>
</p>
</form>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Contents</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<FORM ACTION="manage_users" METHOD="POST">
<dtml-if user_names>
The following users have been defined. Click on a user to edit
that user.
<P>
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="2">
<dtml-in user_names>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="CHECKBOX" NAME="names:list" VALUE="<dtml-var sequence-item html_quote>">
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<A HREF="manage_users?name=<dtml-var sequence-item fmt=url-quote>&submit=Edit">
<IMG SRC="&dtml-BASEPATH1;/p_/User_icon" ALT="Click to edit user"
BORDER="0">
</A>
<A HREF="manage_users?name=<dtml-var sequence-item fmt=url-quote>&submit=Edit">
<dtml-var sequence-item>
</A>
</TD>
</TR>
</dtml-in user_names>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add...">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Delete">
</TD>
</TR>
</TABLE>
<dtml-else user_names>
<P>
<EM>There are no users defined.</EM>
<P>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add...">
</dtml-if user_names>
</FORM>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Security</title></head>
<body bgcolor="#ffffff" link="#000099" vlink="#555555" alink="#77003b">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if manage_tabs>
<p>This interface is used to define how the operations of this object
(or objects that acquire permission settings from this object)
correspond to the operations defined by your product or ZClass.</p>
<p>The table below has two columns. The first column
lists the permissions for this object. The second column specifies
the permissions that should have this permission in this product or
ZClass. For ZClass methods, only permissions that are defined for the
ZClass are permitted.</p>
<p>In general, any permissions that include operations that change
(mutate) an object should be disabled.</p>
<p>The listing below shows the current permission mappings for this item.</p>
<dtml-with "_(valid=permissionMappingPossibleValues())">
<form action="manage_setPermissionMapping" method="POST">
<table>
<tr><th align=left>Permission for this object</th>
<th align=left>Permissions that correspond to<br>
(i.e. have) this permission</th></tr>
<dtml-in manage_getPermissionMapping mapping>
<tr>
<th align=left><dtml-var permission_name></th>
<td>
<input type=hidden name="permission_names:list"
value="<dtml-var permission_name html_quote>">
<select name="class_permissions:list">
<option value="" <dtml-unless class_permission
>selected</dtml-unless>>(disabled)</option>
<dtml-in valid>
<option <dtml-if "_['sequence-item']==class_permission"
>selected</dtml-if>><dtml-var sequence-item></option>
</dtml-in>
</select>
</td>
</tr>
</dtml-in>
<tr><td colspan=2 align=center><input type=submit value=" Change "></td></tr>
</table></form>
</dtml-with>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>&dtml-id; Owner</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<p>Almost all Zope objects can be owned. When you create an object you
become its owner. Ownership matters for method objects since
it determines what roles they have when they are executed. See the
<i>Proxy Roles</i> view of method objects for more information.</p>
<p><b><dtml-var title_and_id> is
<dtml-if owner_info>
<dtml-with owner_info mapping>
owned
by &dtml-id; (&dtml-path;).
</dtml-with>
<dtml-else>
unowned.
</dtml-if>
</b>
</p>
<dtml-if userCanTakeOwnership>
<p>If you have the <i>Take Ownership</i> roles you can take ownership
of an object. You should do this when the owner of an object is
deleted from Zope. Normally when taking ownership you should also take
ownership of sub-objects as well.
</p>
<form action="manage_takeOwnership">
<p><input name="submit" type="submit" value="Take ownership of object">
</p>
<p><input name="recursive" type="checkbox" checked>
Also take ownership of all sub-objects.
</p>
</form>
</dtml-if>
</BODY></HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Manage Permission</title></head>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if manage_tabs>
<FORM ACTION="manage_permission" METHOD="POST">
<input type=hidden name=permission_to_manage
value="<dtml-var permission_to_manage html_quote>">
Roles assigned to permission
<strong><em><dtml-var permission_to_manage></em></strong>:<br>
<select name=roles:list multiple size=10>
<dtml-in expr="rolesOfPermission(permission_to_manage)" mapping=1>
<option <dtml-var selected>><dtml-var name></option>
</dtml-in>
</select>
<dtml-unless isTopLevelPrincipiaApplicationObject>
<br>Also use roles acquired from folders containing this object:
<input type=checkbox name=acquire
<dtml-var expr="acquiredRolesAreUsedBy(permission_to_manage)">>
</dtml-unless>
<p><input type=submit value="Change">
</form></body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Manage Role</title></head>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-if manage_tabs>
<dtml-var manage_tabs>
</dtml-if manage_tabs>
<FORM ACTION="manage_role" METHOD="POST">
<input type=hidden name=role_to_manage
value="<dtml-var role_to_manage html_quote>">
Permissions assigned to role
<strong><em><dtml-var role_to_manage></em></strong>:<br>
<select name=permissions:list multiple size=10>
<dtml-in expr="permissionsOfRole(role_to_manage)" mapping=1>
<option <dtml-var selected>><dtml-var name></option>
</dtml-in>
</select><p>
<input type=submit value="Change">
</form></body></html>
......@@ -83,7 +83,7 @@
#
##############################################################################
__doc__="""System management components"""
__version__='$Revision: 1.62 $'[11:-2]
__version__='$Revision: 1.63 $'[11:-2]
import sys,os,time,string,Globals, Acquisition, os, Undo
......@@ -107,7 +107,7 @@ class Fake:
class DatabaseManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Database management"""
manage=manage_main=HTMLFile('dbMain', globals())
manage=manage_main=HTMLFile('dtml/dbMain', globals())
id ='DatabaseManagement'
name=title='Database Management'
meta_type ='Database Management'
......@@ -128,7 +128,7 @@ Globals.default__class_init__(DatabaseManager)
class VersionManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Version management"""
manage=manage_main=HTMLFile('versionManager', globals())
manage=manage_main=HTMLFile('dtml/versionManager', globals())
id ='Versions'
name=title='Version Management'
meta_type ='Version Management'
......@@ -152,7 +152,7 @@ _v_rst=None
class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Debug and profiling information"""
manage=manage_main=HTMLFile('debug', globals())
manage=manage_main=HTMLFile('dtml/debug', globals())
id ='DebugInfo'
name=title='Debug Information'
meta_type = name
......@@ -166,7 +166,7 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
)
)
manage_debug=HTMLFile('debug', globals())
manage_debug=HTMLFile('dtml/debug', globals())
def refcount(self, n=None, t=(type(Fake), type(Acquisition.Implicit))):
# return class reference info
......@@ -230,7 +230,7 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
# Profiling support
manage_profile=HTMLFile('profile', globals())
manage_profile=HTMLFile('dtml/profile', globals())
def manage_profile_stats(self, sort='time', limit=200):
"""Return profile data if available"""
......@@ -259,8 +259,8 @@ class ApplicationManager(Folder,CacheManager):
Versions= VersionManager()
DebugInfo=DebugManager()
manage=manage_main=HTMLFile('cpContents', globals())
manage_undoForm=HTMLFile('undo', globals())
manage=manage_main=HTMLFile('dtml/cpContents', globals())
manage_undoForm=HTMLFile('dtml/undo', globals())
def version_txt(self):
if not hasattr(self, '_v_version_txt'):
......
......@@ -85,8 +85,8 @@
__doc__='''Cache management support
$Id: CacheManager.py,v 1.18 2000/05/23 15:38:43 brian Exp $'''
__version__='$Revision: 1.18 $'[11:-2]
$Id: CacheManager.py,v 1.19 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.19 $'[11:-2]
import Globals, time, sys
......@@ -98,8 +98,8 @@ class CacheManager:
_vcache_age=60
_vcache_size=400
manage_cacheParameters=Globals.HTMLFile('cacheParameters', globals())
manage_cacheGC=Globals.HTMLFile('cacheGC', globals())
manage_cacheParameters=Globals.HTMLFile('dtml/cacheParameters', globals())
manage_cacheGC=Globals.HTMLFile('dtml/cacheGC', globals())
def cache_length(self):
try: db=self._p_jar.db()
......
......@@ -84,8 +84,8 @@
##############################################################################
__doc__='''Factory objects
$Id: Factory.py,v 1.22 2000/08/14 15:08:37 shane Exp $'''
__version__='$Revision: 1.22 $'[11:-2]
$Id: Factory.py,v 1.23 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.23 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, AccessControl.Role
import Products, Product
......@@ -171,7 +171,7 @@ class Factory(
product.aq_acquire('_manage_remove_product_meta_type')(
product, self.id, self.object_type)
manage_main=Globals.HTMLFile('editFactory',globals())
manage_main=Globals.HTMLFile('dtml/editFactory',globals())
def index_html(self, REQUEST):
" "
......
......@@ -85,9 +85,9 @@
"""Standard management interface support
$Id: Management.py,v 1.35 2000/12/13 20:11:20 brian Exp $"""
$Id: Management.py,v 1.36 2001/01/08 22:46:56 brian Exp $"""
__version__='$Revision: 1.35 $'[11:-2]
__version__='$Revision: 1.36 $'[11:-2]
import sys, Globals, ExtensionClass, urllib
from Dialogs import MessageDialog
......@@ -99,7 +99,7 @@ class Tabs(ExtensionClass.Base):
"""Mix-in provides management folder tab support."""
manage_tabs__roles__=('Anonymous',)
manage_tabs =HTMLFile('manage_tabs', globals())
manage_tabs=HTMLFile('dtml/manage_tabs', globals())
manage_options =()
......@@ -195,16 +195,50 @@ class Tabs(ExtensionClass.Base):
Globals.default__class_init__(Tabs)
class Navigation(ExtensionClass.Base):
"""Basic (very) navigation UI support"""
"""Basic navigation UI support"""
__ac_permissions__=(
('View management screens',
('manage', 'manage_menu', 'manage_top_frame',
'manage_page_header',
'manage_page_footer',
)),
)
manage =HTMLFile('dtml/manage', globals())
manage_menu =HTMLFile('dtml/menu', globals())
manage_top_frame =HTMLFile('dtml/manage_top_frame', globals())
manage_page_header=HTMLFile('dtml/manage_page_header', globals())
manage_page_footer=HTMLFile('dtml/manage_page_footer', globals())
manage_form_title__roles__=None
manage_form_title =HTMLFile('dtml/manage_form_title', globals(),
form_title='Add Form',
help_product=None,
help_topic=None)
manage =HTMLFile('manage', globals())
manage_menu =HTMLFile('menu', globals())
manage_copyright=HTMLFile('copyright', globals())
manage_copyright__roles__=None
manage_copyright=HTMLFile('dtml/copyright', globals())
__ac_permissions__=(
('View management screens', ('manage', 'manage_menu',)),
manage_logout__roles__=None
def manage_logout(self):
"""Logout current user"""
return """<html>
<head><title>Not implmented</title></head>
<body>
Sorry, this is not yet implemented.
</body>
</html>"""
setattr(Navigation, 'manage_page_style.css',
HTMLFile('dtml/manage_page_style.css', globals())
)
setattr(Navigation, 'manage_page_style.css__roles__', None)
Globals.default__class_init__(Navigation)
......@@ -84,8 +84,8 @@
##############################################################################
__doc__='''Zope registerable permissions
$Id: Permission.py,v 1.4 2000/06/20 01:59:40 amos Exp $'''
__version__='$Revision: 1.4 $'[11:-2]
$Id: Permission.py,v 1.5 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.5 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, ExtensionClass, AccessControl.Role
......@@ -138,7 +138,7 @@ class Permission(
product.aq_acquire('_manage_remove_product_permission')(
product, self.name)
manage_main=Globals.HTMLFile('editPermission',globals())
manage_main=Globals.HTMLFile('dtml/editPermission',globals())
index_html=None
......@@ -153,7 +153,7 @@ class PermissionManager(ExtensionClass.Base):
'name': Permission.meta_type, 'action': 'manage_addPermissionForm'
},
manage_addPermissionForm=Globals.HTMLFile('addPermission',globals())
manage_addPermissionForm=Globals.HTMLFile('dtml/addPermission',globals())
def manage_addPermission(
self, id, title, permission, REQUEST=None):
' '
......
......@@ -134,7 +134,7 @@ class ProductFolder(Folder):
def _product(self, name): return getattr(self, name)
manage_addProductForm=Globals.HTMLFile('addProduct',globals())
manage_addProductForm=Globals.HTMLFile('dtml/addProduct',globals())
def manage_addProduct(self, id, title, REQUEST=None):
' '
i=Product(id, title)
......@@ -190,7 +190,8 @@ class Product(Folder, PermissionManager):
)
)
manage_distributionView=Globals.HTMLFile('distributionView',globals())
manage_distributionView=Globals.HTMLFile(
'dtml/distributionView',globals())
_properties=Folder._properties+(
{'id':'version', 'type': 'string'},
......@@ -198,7 +199,8 @@ class Product(Folder, PermissionManager):
_reserved_names=('Help',)
manage_addPrincipiaFactoryForm=Globals.HTMLFile('addFactory',globals())
manage_addPrincipiaFactoryForm=Globals.HTMLFile(
'dtml/addFactory',globals())
def manage_addPrincipiaFactory(
self, id, title, object_type, initial, permission=None, REQUEST=None):
' '
......@@ -314,8 +316,8 @@ class Product(Folder, PermissionManager):
Distributions=Distributions()
manage_traceback=Globals.HTMLFile('traceback',globals())
manage_readme=Globals.HTMLFile('readme',globals())
manage_traceback=Globals.HTMLFile('dtml/traceback',globals())
manage_readme=Globals.HTMLFile('dtml/readme',globals())
def manage_get_product_readme__(self):
try:
return open(os.path.join(self.home, 'README.txt')).read()
......
......@@ -84,8 +84,8 @@
##############################################################################
__doc__='''short description
$Id: Undo.py,v 1.22 2000/06/16 19:45:05 srichter Exp $'''
__version__='$Revision: 1.22 $'[11:-2]
$Id: Undo.py,v 1.23 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.23 $'[11:-2]
import Globals, ExtensionClass
from DateTime import DateTime
......@@ -96,7 +96,8 @@ class UndoSupport(ExtensionClass.Base):
__ac_permissions__=(
('Undo changes', (
'manage_undo_transactions', 'undoable_transactions',
'manage_undo_transactions',
'undoable_transactions',
'manage_UndoForm',
)),
)
......@@ -107,9 +108,12 @@ class UndoSupport(ExtensionClass.Base):
)
manage_UndoForm=Globals.HTMLFile(
'undo', globals(),
'dtml/undo',
globals(),
PrincipiaUndoBatchSize=20,
first_transaction=0, last_transaction=20)
first_transaction=0,
last_transaction=20
)
def get_request_var_or_attr(self, name, default):
if hasattr(self, 'REQUEST'):
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Add an Object Factory</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<h2>Add an Object Factory</h2>
<dtml-var "HelpSys.HelpButton('Zope-Factory_Add.stx','OFSP')">
<P>A Factory allows you to place entries in the Zope Product add
list.</P>
<P>In the form below the <EM>Add list name</EM> is the name under which
your entry will appear in the Zope Product add list.
The <EM>Method</EM> is the method that will be invoked when a
user adds a new object. This must be one of the objects in the
product, typically a Document.
</P>
<dtml-if objectIds>
<form action="manage_addPrincipiaFactory" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="id"
size="40"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Title</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="title"
size="40"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Add list name</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="object_type"
size="40"></td>
</tr>
<tr><th ALIGN="LEFT">Method</th>
<td ALIGN="LEFT"><select name="initial">
<dtml-in objectItems>
<dtml-if "meta_type != 'Principia Factory'">
<option><dtml-var sequence-key></option>
</dtml-if>
</dtml-in>
</select></td></tr>
<tr><td></td><td><br><input type="SUBMIT" value="Generate"></td></tr>
</table></form>
<dtml-else>
Before you can define a factory, you have to define one or more "methods",
such as Document or other objects that do the factory's work.
</dtml-if>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Define a permission</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<h2>Define a permission</h2>
<dtml-var "HelpSys.HelpButton('Zope-Permission_Add.stx','OFSP')">
<form action="manage_addPermission" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="id"
size="40"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Title</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="title"
size="40"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Name</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="permission"
size="40"></td>
</tr>
<tr><td></td><td><br><input type="SUBMIT" value="Generate"></td></tr>
</table></form>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Add a product</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<h2>Add a Product</h2>
<dtml-var "HelpSys.HelpButton('Product_Add.stx','OFSP')">
<P>
Products allows you to define new types of Zope objects. A Product contains
other objects including a Factory which allows you to make your Product objects
available via the Product add list.
</p>
<form action="manage_addProduct" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="id"
size="40"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Title</th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40">
</td>
</tr>
<tr><td></td><td><br><input type="submit" value="Generate"></td></tr>
</table></form>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Contents</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<p>
The Control Panel provides access to system management functions,
such as database and product management.
<FORM ACTION="manage_shutdown" METHOD="POST" onSubmit="">
<ul>
<li><em>Zope</em> version: <dtml-var version_txt>
<li>Python version: <dtml-var sys_version>
<li>System Platform: <dtml-var sys_platform>
<li>Process ID: <dtml-var process_id> (<dtml-var thread_get_ident>)
<li>Running for: <dtml-var process_time>
</ul>
<P>
<table CELLPADDING="5">
<tr>
<td ALIGN="center">
<FONT COLOR="#FF5060">
<INPUT TYPE="SUBMIT" VALUE="Shutdown" STYLE="color: #ff5060;">
</FONT>
</td>
<td> Click &quot;Shutdown&quot; to shutdown the <em>Zope</em>
process.
</td>
</tr>
</table>
</FORM>
<dtml-if manage_restartable>
<FORM ACTION="manage_restart" METHOD="POST">
<table CELLPADDING="5">
<tr>
<td ALIGN="center">
<FONT COLOR="#FF5060">
<INPUT TYPE="SUBMIT" VALUE="Restart" STYLE="color: #ff5060;">
</FONT>
</td>
<td> Click &quot;Restart&quot; to restart the <em>Zope</em>
process.
</td>
</tr>
</table>
</FORM>
</dtml-if>
<dtml-if Principia-Version>
<EM>You are currently working in version <dtml-var Principia-Version></EM>
</dtml-if Principia-Version>
<P>
<TABLE>
<dtml-in objectItems>
<TR>
<td> </td>
<TD ALIGN="LEFT" VALIGN="TOP">
<A HREF="<dtml-var sequence-key url_quote>/manage_workspace">
<IMG SRC="&dtml-BASEPATH1;/<dtml-var icon>"
ALT="Click to open this item" BORDER="0"></A>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<A HREF="<dtml-var sequence-key url_quote>/manage_workspace">
<dtml-var title>
</A>
<dtml-if locked_in_version>
<dtml-if modified_in_version>
<IMG SRC="&dtml-BASEPATH1;/p_/locked"
ALT="This item has been modified in this version">
<dtml-else>
<IMG SRC="&dtml-BASEPATH1;/p_/lockedo"
ALT="This item has been modified in another version">
</dtml-if>
</dtml-if>
</TD>
</TR>
</dtml-in objectValues>
</TABLE>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE><dtml-var title></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<P>
The Database Manager allows you to view database status information.
It also allows you to perform maintenance tasks such as
database packing, cache management,
and &quot;undoing&quot; previous changes to your site.
<P>
<TABLE CELLPADDING="4" BORDER="1">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG>Database Size</STRONG>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<dtml-var db_size>
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG>Database Location</STRONG>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<font size="-1"><dtml-var db_name></font>
</TD>
</TR>
</TABLE>
<TABLE CELLPADDING="4">
<TR>
<FORM ACTION="manage_pack" METHOD="POST">
<TD ALIGN="LEFT" VALIGN="TOP">
<BR>Click &quot;Pack&quot; to pack the Zope database, removing
previous revisions of objects that are older than
<INPUT TYPE="TEXT" VALUE="0" NAME="days:float" SIZE="3"> days.
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<BR><INPUT TYPE="SUBMIT" VALUE=" Pack ">
</TD>
</FORM>
</TR>
</TABLE>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head>
<title>Create a Distribution Archive</title>
</head><body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-var manage_tabs>
<H2>Create a Distribution Archive</H2>
<form action="manage_distribute"><table>
<tr><th align="LEFT" valign="TOP">Version</th>
<td align="LEFT" valign="TOP">
<input type=text name="version" value="<dtml-var new_version html_quote>">
</td>
</tr>
<tr><th align="LEFT" valign="TOP" colspan="2"><input type="radio"
name="redistributable" value="1" checked> Allow redistribution</th>
</tr>
<tr><th align="LEFT" valign="TOP" colspan="2"><input type="radio"
name="redistributable" value="0"> Disallow redistribution and
allow the user to configure only the selected objects:
</th>
</tr>
<tr>
<td align="LEFT" valign="TOP" colspan="2">
<select name="configurable_objects:list" size=10 multiple>
<dtml-in objectItems>
<option value="<dtml-var sequence-key html_quote>" <dtml-
if "_['sequence-key'] in configurable_objects_"
>SELECTED</dtml-if>><dtml-
var title_and_id></option>
</dtml-in>
</select>
</td>
</tr>
<tr><th></th>
<td align="LEFT" valign="TOP">
<input type=submit value="Create a distribution archive"
</td>
</tr>
</table></form>
</body></html>
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Object Factory',
help_product='OFSP',
help_topic='Zope-Factory_Add.stx'
)">
<p class="form-help">
A Factory allows you to place entries in the Zope Product add list. In the
form below the <em>add list name</em> is the name under which your entry will
appear in the Zope Product add list. The <em>method</em> is the method that
will be invoked when a user adds a new object. This must be one of the
objects in the product, typically a Python Script or DTML object.
</p>
<dtml-if objectIds>
<form action="manage_addPrincipiaFactory" method="post">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Id
</div>
</td>
<td align="left" valign="top">
<input type="text" name="id" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Title
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Add list name
</div>
</td>
<td align="left" valign="top">
<input type="text" name="object_type" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Method
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<select name="initial">
<dtml-in objectItems>
<dtml-if "meta_type != 'Principia Factory'">
<option><dtml-var sequence-key></option>
</dtml-if>
</dtml-in>
</select>
</div>
</td>
</tr>
<tr>
<td></td>
<td align="left" valign="top">
<div class="form-element">
<br />
<input type="submit" name="submit" value="Generate" />
</div>
</td>
</tr>
</table>
</form>
<dtml-else>
<p class="form-help">
Before you can define a factory, you have to define one or more "methods",
such as Document or other objects that do the factory's work.
</p>
</dtml-if>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Permission',
help_product='OFSP',
help_topic='Zope-Permission_Add.stx'
)">
<form action="manage_addPermission" method="POST">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Id
</div>
</td>
<td align="left" valign="top">
<input type="text" name="id" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Title
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Name
</div>
</td>
<td align="left" valign="top">
<input type="text" name="permission" size="40" />
</td>
</tr>
<tr>
<td></td>
<td align="left" valign="top">
<div class="form-element">
<br />
<input type="submit" name="submit" value="Generate" />
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Product',
help_product='OFSP',
help_topic='Product_Add.stx'
)">
<p class="form-help">
Products allows you to define new types of Zope objects. A Product contains
other objects including a Factory which allows you to make your Product
objects available via the Product add list.
</p>
<form action="manage_addProduct" method="POST">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Id
</div>
</td>
<td align="left" valign="top">
<input type="text" name="id" size="40" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Title
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title" size="40" />
</td>
</tr>
<tr>
<td></td>
<td align="left" valign="top">
<div class="form-element">
<br />
<input type="submit" name="submit" value="Generate" />
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Cache</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<table width="100%" cellspacing="0" cellpadding="2" border="0">
<tr class="section-bar">
<td colspan="2" align="left">
<div class="form-label">
Full Sweep
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-text">
Make a single pass through the cache, removing any objects that are no
longer referenced, and deactivating objects that have not been
accessed in the number of seconds given in the input box to the right
of this text.
</div>
</td>
<td>
<form action="<dtml-var URL1>/manage_full_sweep" method="get">
<input type="text" name="value:int" value="<dtml-var
cache_age html_quote>" size="6" />
<br />
<div class="form-element">
<input type="submit" name="submit" value="Full Sweep" />
</div>
</form>
</td>
</tr>
<h2>Manual Cache Garbage Collection</h2><P>
<table>
<tr><td>
<strong>Full Sweep</strong><br>
Make a single pass through the cache, removing any objects that are no
longer referenced, and deactivating objects that have not been
accessed in the number of seconds given in the input box to the right
of this text.
</td><td>
<form action="<dtml-var URL1>/manage_full_sweep" method=GET>
<input type="text" name="value:int" value="<dtml-var cache_age html_quote>" size=6><br>
<input type="submit" value="Full Sweep">
</form></td></tr>
<tr><td>
<strong>Minimize</strong><br>
Make multiple passes through the cache, removing any objects that are no
longer referenced, and deactivating objects that have not been
accessed in the number of seconds given in the input box to the right
of this text.
</td><td>
<form action="<dtml-var URL1>/manage_minimize" method=GET>
<input type="text" name="value:int" value="<dtml-var cache_age html_quote>" size=6><br>
<input type="submit" value="Minimize">
</form></td></tr>
<tr>
<td colspan="2">
<br />&nbsp;
</td>
</tr>
</table
<tr class="section-bar">
<td colspan="2" align="left">
<div class="form-label">
Minimize
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-text">
Make multiple passes through the cache, removing any objects that are no
longer referenced, and deactivating objects that have not been
accessed in the number of seconds given in the input box to the right
of this text.
</td>
<td>
<form action="<dtml-var URL1>/manage_minimize" method=GET>
<input type="text" name="value:int" value="<dtml-var
cache_age html_quote>" size="6" />
<br />
<div class="form-element">
<input type="submit" name="submit" value="Minimize" />
</div>
</form>
</td>
</tr>
</table>
<dtml-if cacheStatistics>
......@@ -80,5 +106,5 @@ of this text.
</table>
</dtml-if>
</BODY></HTML>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Cache</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<h2>Cache Parameters and Statistics</h2>
<table>
<tr><th align=left>Total number of objects in the database</th>
<td><dtml-var database_size></td></tr>
<tr>
<td align="left">
<div class="form-label">
Total number of objects in the database
</div>
</td>
<td>
<div class="form-text">
<dtml-var database_size>
</div>
</td>
</tr>
<tr><th align=left>Total number of objects in all of the caches combined</th>
<td><dtml-var cache_length></td></tr>
<tr>
<td align="left">
<div class="form-label">
Total number of objects in all caches
</div>
</td>
<td>
<div class="form-text">
<dtml-var cache_length>
</div>
</td>
</tr>
<tr><th valign=top align=left>Target size</th><td>
<form action="<dtml-var URL1>/manage_cache_size" method=GET>
<input type="text" name="value:int" value="<dtml-var cache_size html_quote>" size=6>
<input type="submit" value="Change">
</form></td></tr>
<tr>
<td align="left">
<div class="form-label">
Target Size
</div>
</td>
<td>
<form action="<dtml-var URL1>/manage_cache_size" method="get">
<input type="text" name="value:int" value="<dtml-var
cache_size html_quote>" size="6" />
<span class="form-element">
<input type="submit" name="submit" value="Change">
</span>
</form>
</td>
</tr>
<tr><th valign=top align=left>Target maximum time between accesses</th><td>
<form action="<dtml-var URL1>/manage_cache_age" method=GET>
<input type="text" name="value:int" value="<dtml-var cache_age html_quote>" size=6>
<input type="submit" value="Change">
</form></td></tr>
<tr>
<td align="left">
<div class="form-label">
Target max time between accesses
</div>
</td>
<td>
<form action="<dtml-var URL1>/manage_cache_age" method="get">
<input type="text" name="value:int" value="<dtml-var
cache_age html_quote>" size="6" />
<span class="form-element">
<input type="submit" name="submit" value="Change">
</div>
</form>
</td>
</tr>
<dtml-in cacheStatistics>
<tr><th align=left><dtml-var sequence-key></th>
<td><dtml-var sequence-item></td>
<tr>
<th align=left>
<dtml-var sequence-key>
</th>
<td>
<dtml-var sequence-item>
</td>
</tr>
</dtml-in>
</table>
<dtml-if show_cache_detail>
......@@ -39,7 +79,8 @@
<table border><tr><th>Object Class</th><th>Count</th></tr>
<dtml-in cache_detail>
<tr><td><dtml-var sequence-key></td><td><dtml-var sequence-item></td></tr>
<tr><td><dtml-var sequence-key></td><td><dtml-var
sequence-item></td></tr>
</dtml-in>
</table>
</dtml-if>
......@@ -62,5 +103,5 @@
</table>
</dtml-if>
</BODY></HTML>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Copyright</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Zope Copyright</title>
</head>
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099">
<P align="center">
<a href="#ZPL">Zope License</a> |
......
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<p class="form-help">
The Control Panel provides access to system information and management
functions such as database and product management.
</p>
<form action="<dtml-var URL1>" method="post" onSubmit="">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Zope Version
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var version_txt>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Python Version
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var sys_version>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
System Platform
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var sys_platform>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Process Id
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var process_id> (<dtml-var thread_get_ident>)
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Running For
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var process_time>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
&nbsp;
</td>
<td align="left" valign="top">
<div class="form-element">
<dtml-if manage_restartable>
<input type="submit" name="manage_restart:action" value="Restart" />
</dtml-if>
<input type="submit" name="manage_shutdown:action" value="Shutdown" />
</div>
</td>
</tr>
</table>
</form>
<p>
<table cellspacing="0" cellpadding="2" border="0">
<dtml-in objectItems>
<tr>
<td width="16" align="left" valign="top">
<a href="<dtml-var sequence-key url_quote>/manage_workspace">
<img src="&dtml-BASEPATH1;/<dtml-var icon>" alt="" border="0" /></a>
</td>
<td align="left" valign="top">
<div class="list-item">
<a href="<dtml-var sequence-key url_quote>/manage_workspace">
<dtml-var title>
</a>
<dtml-if locked_in_version>
<dtml-if modified_in_version>
<img src="&dtml-BASEPATH1;/p_/locked"
alt="This item has been modified in this version" />
<dtml-else>
<img src="&dtml-BASEPATH1;/p_/lockedo"
alt="This item has been modified in another version" />
</dtml-if>
</dtml-if>
</div>
</td>
</tr>
</dtml-in objectValues>
</table>
</p>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<p class="form-help">
The Database Manager allows you to view database status information.
It also allows you to perform maintenance tasks such as database packing
and cache management.
</p>
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Database Location
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var db_name>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Database Size
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var db_size>
</div>
</td>
</tr>
</table>
<form action="manage_pack" method="post">
<table cellspacing="0" cellpadding="2" border="0">
<tr>
<td align="left" valign="top">
Click <em>pack</em> to pack the Zope database, removing previous revisions
of objects that are older than
<input type="text" name="days:float" value="0" size="3"> days.
</td>
<td align="left" valign="top">
<div class="form-element">
<input type="submit" name="submit" value="Pack">
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<html>
<head>
<title>Debug Information</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title><dtml-if title><dtml-var title></dtml-if></title>
<link rel="stylesheet" type="text/css" href="<dtml-var BASEPATH1>/manage_page_style.css">
<dtml-if debug_auto_reload>
<meta HTTP-EQUIV="Refresh"
CONTENT="&dtml-debug_auto_reload;; URL=&dtml-URL;?debug_auto_reload=&dtml-debug_auto_reload;">
</dtml-if>
<style type="text/css">
<!--
.header {
......@@ -16,13 +23,12 @@ font-size: 10pt;
-->
</style>
<dtml-if debug_auto_reload>
<meta HTTP-EQUIV="Refresh"
CONTENT="&dtml-debug_auto_reload;; URL=&dtml-URL;?debug_auto_reload=&dtml-debug_auto_reload;">
</dtml-if>
</head>
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099">
<font face="verdana, helvetica, sans-serif" size="2" color="#333333">
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555">
<dtml-var manage_tabs>
<dtml-if update_snapshot>
......@@ -100,5 +106,5 @@ Delta
</p>
</form>
</body>
</html>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<p class="form-help">
You can create a packaged version of this product that can be
distributed to other Zope users using the form below.
</p>
<form action="manage_distribute" method="post">
<table>
<tr>
<td align="left" valign="top">
<div class="form-label">
Version
</div>
</td>
<td align="left" valign="top">
<input type="text" name="version" value="<dtml-var new_version html_quote>">
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Policy
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<input type="radio" name="redistributable" value="1" checked>
Allow redistribution
<br />
<input type="radio" name="redistributable" value="0"> Disallow
redistribution and allow user to configure
<br />&nbsp;&nbsp;&nbsp;&nbsp;
only the objects selected below
</div>
</td>
</tr>
<tr>
<td></td>
<td align="left" valign="top">
<select name="configurable_objects:list" size=10 multiple>
<dtml-in objectItems>
<option value="<dtml-var sequence-key html_quote>" <dtml-
if "_['sequence-key'] in configurable_objects_"
>SELECTED</dtml-if>><dtml-var title_and_id></option>
</dtml-in>
</select>
</td>
</tr>
<tr>
<td></td>
<td align="left" valign="top">
<div class="form-element">
<input type="submit" name="submit" value="Create distribution archive">
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<p class="form-help">
The <strong>initial method</strong> is the method that will be invoked
when a user adds a new object. This must be one of the objects in the
product, typically a Document.
</p>
<form action="manage_edit" method="POST">
<table cellpadding="2" cellspacing="0" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Id
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var id>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Title
</div>
</td>
<td align="left" valign="top">
<input type="TEXT" name="title"size="40" value="<dtml-var
title html_quote>" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Add list name
</div>
</td>
<td align="left" valign="top">
<input type="TEXT" name="object_type" size="40" value="<dtml-var
object_type html_quote>" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Initial method
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<select name="initial">
<dtml-in objectIds>
<option <dtml-if
expr="_.string.strip(_['sequence-item'])==initial"> selected</dtml-if
>><dtml-var sequence-item></option>
</dtml-in>
</select>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Permission
</div>
</td>
<td align="left" valign="top">
<div class="form-element">
<select name=permission>
<dtml-in possible_permissions>
<option <dtml-if
"_['sequence-item']==permission">selected</dtml-if
>><dtml-var sequence-item></option>
</dtml-in>
</select>
</td>
</tr>
<tr>
<td></td>
<td>
<div class="form-element">
<input type="submit" name="submit" value="Save Changes">
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<form action="manage_edit" method="POST">
<table cellpadding="2" cellspacing="0" border="0">
<tr>
<td align="left" valign="top">
<div class="form-label">
Id
</div>
</td>
<td align="left" valign="top">
<div class="form-text">
<dtml-var id>
</div>
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-optional">
Title
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title"size="40" value="<dtml-var
title html_quote>" />
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Name
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title"size="40" value="<dtml-var
name html_quote>" />
</td>
</tr>
<tr>
<td></td>
<td>
<div class="form-element">
<input type="submit" name="submit" value="Save Changes">
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Zope on <dtml-var SERVER_NAME></title>
<script language="javascript">
<!--
function update_menu() {
window.manage_menu.location.href=window.manage_menu.location.href;
}
//-->
</script>
</head>
<dtml-if "_.string.find(REQUEST.get('HTTP_USER_AGENT', ''), 'MSIE') > -1">
<frameset rows="34, *">
<dtml-else>
<frameset rows="40, *">
</dtml-if>
<frame src="<dtml-var URL1>/manage_top_frame" name="manage_top_frame"
marginwidth="0" marginheight="0" scrolling="no"/>
<frameset cols="175,*">
<frame src="<dtml-var URL1>/manage_menu" name="manage_menu"
marginwidth="2" marginheight="2" scrolling="auto"/>
<frame src="<dtml-var URL1>/manage_workspace" name="manage_main"
marginwidth="2" marginheight="2" scrolling="auto"/>
</frameset>
</frameset>
<noframes>
Management interfaces require the use of a <B>frames-capable</B> web browser.
</noframes>
</html>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr class="location-bar">
<td align="left" valign="top">
<div class="form-title">
<dtml-var form_title>
</div>
</td>
<td align="right" valign="top">
<div class="std-text">
<dtml-if "help_topic and help_product">
<dtml-var "HelpSys.helpLink(help_product, help_topic)">
<dtml-else>
&nbsp;
</dtml-if>
</div>
</td>
</tr>
</table>
<!--
</font>
-->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title><dtml-if title><dtml-var title></dtml-if></title>
<link rel="stylesheet" type="text/css" href="<dtml-var BASEPATH1>/manage_page_style.css">
</head>
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099">
<!--
<font face="verdana, helvetica, sans-serif" size="2" color="#333333">
-->
/* Zope management interface stylesheet */
<dtml-if "1">
b, strong {
font-weight: bold;
}
h1 {
font-family: Verdana, Helvetica, sans-serif;
font-size: 24pt;
font-weight: bold;
}
h2 {
font-family: Verdana, Helvetica, sans-serif;
font-size: 18pt;
font-weight: bold;
}
h3 {
font-family: Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: bold;
}
a:hover {
font-family: Verdana, Helvetica, sans-serif;
text-decoration: underline;
color: #333333;
}
a:link {
font-family: Verdana, Helvetica, sans-serif;
text-decoration: none;
color: #000099;
}
a {
font-family: Verdana, Helvetica, sans-serif;
text-decoration: none;
color: #000099;
}
p {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
color: #333333;
}
/*
td {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
color: #333333;
}
*/
th {
font-family: Verdana, Helvetica, sans-serif;
font-weight: bold;
font-size: 10pt;
color: #333333;
}
code {
font-family: monospace;
font-size: 10pt;
color: #000000;
}
.instructions {
font-size: 8pt;
color: #333333;
margin-top: 2;
margin-left: 2;
}
.form-help {
font-size: 10pt;
color: #333333;
}
.location-bar {
background-color: #efefef;
border: none;
}
.list-header {
background-color: #c0c0c0;
border: none;
}
.list-item {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
}
.list-nav {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
.row-normal {
background-color: #ffffff;
border: none;
}
.row-hilite {
background-color: #efefef;
border: none;
}
.section-bar {
background-color: #c0c0c0;
border: none;
}
.system-msg {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
background-color: #ffffff;
border: 1px solid #000000;
margin-bottom: 6px;
margin-top: 6px;
padding: 4px;
width: 100%;
color: #660033;
}
/* Form element styles */
.form-title {
font-family: Verdana, Helvetica, sans-serif;
font-weight: bold;
font-size: 12pt;
color: #000000;
}
.form-label {
font-family: Verdana, Helvetica, sans-serif;
font-weight: bold;
font-size: 10pt;
color: #333333;
}
.form-optional {
font-family: Verdana, Helvetica, sans-serif;
font-weight: bold;
font-style: italic;
font-size: 10pt;
color: #333333;
}
.form-element {
font-family: Verdana, Helvetica, aans-serif;
font-size: 10pt;
color: #000000;
}
.form-text {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
color: #333333;
}
.form-mono {
font-family: monospace;
font-size: 12px;
text-decoration: none;
}
.std-text {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
color: #333333;
}
.tab-small {
font-family: Verdana, Helvetica, sans-serif;
font-size: 8pt;
color: #333333;
}
.small-st {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
font-weight: bold;
text-decoration: none;
}
.small-un {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
text-decoration: underline;
}
.small-em {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
font-style: italic;
}
.small-tx {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
}
.normal-st {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
.normal-un {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
text-decoration: underline;
}
.normal-em {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
font-style: italic;
}
.normal-tx {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
}
.large-st {
font-family: Verdana, Arial, Helvetica;
font-size: 15px;
font-weight: bold;
text-decoration: none;
}
.large-un {
font-family: Verdana, Arial, Helvetica;
font-size: 15px;
text-decoration: underline;
}
.large-em {
font-family: Verdana, Arial, Helvetica;
font-size: 15px;
font-style: italic;
}
.large-tx {
font-family: Verdana, Arial, Helvetica;
font-size: 15px;
}
.infobox {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
margin-left: 0;
text-align: center;
background: #efefef;
background-image: url(/misc_/OFSP/Folder_icon.gif);
border-top: 2px solid #ffff99;
border-left: 2px solid #ffff99;
border-right: 2px solid #cc9933;
border-bottom: 2px solid #cc9933;
}
.listctl {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
line-height: 11px;
background: #efefef;
border-top: 2px solid #003366;
border-left: 2px solid #003366;
border-right: 2px solid #003366;
border-bottom: 2px solid #003366;
}
.listitem {
font-family: Verdana, Arial, Helvetica;
font-size: 12px;
line-height: 16px;
text-align: left;
align: left;
margin-left: 0;
/*
margin-top: 2;
margin-left: 2;
margin-right: 2;
margin-bottom: 2;
*/
}
.menu-bar {
font-family: Verdana, Arial, Helvetica;
font-size: 10px;
font-weight: bold;
line-height: 12px;
}
</dtml-if>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<title>System Stylesheet Test</title>
<link rel="stylesheet" type="text/css" href="<dtml-var SCRIPT_NAME>/manage_style_css">
</head>
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#555555">
<dtml-var HTTP_USER_AGENT>
<h3>Text Styles</h3>
<p class="small-st">
This is small-st.
This is small-st.
This is small-st.
This is small-st.
</p>
<p class="small-un">
This is small-un.
This is small-un.
This is small-un.
This is small-un.
</p>
<p class="small-em">
This is small-em.
This is small-em.
This is small-em.
This is small-em.
</p>
<p class="small-tx">
This is small-tx.
This is small-tx.
This is small-tx.
This is small-tx.
</p>
<p class="normal-st">
This is normal-st.
This is normal-st.
This is normal-st.
This is normal-st.
</p>
<p class="normal-un">
This is normal-un.
This is normal-un.
This is normal-un.
This is normal-un.
</p>
<p class="normal-em">
This is normal-em.
This is normal-em.
This is normal-em.
This is normal-em.
</p>
<p class="normal-tx">
This is normal-tx.
This is normal-tx.
This is normal-tx.
This is normal-tx.
</p>
<p class="large-st">
This is large-st.
This is large-st.
This is large-st.
This is large-st.
</p>
<p class="large-un">
This is large-un.
This is large-un.
This is large-un.
This is large-un.
</p>
<p class="large-em">
This is large-em.
This is large-em.
This is large-em.
This is large-em.
</p>
<p class="large-tx">
This is large-tx.
This is large-tx.
This is large-tx.
This is large-tx.
</p>
<table><tr>
<td class="infobox" background="/misc_/OFSP/Folder_icon.gif">
<div background="/misc_/OFSP/Folder_icon.gif">
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
</div>
</td></tr></table>
<h3>Form Elements</h3>
<form>
<div class="form-element">
<input type="text" size="30" class="form-element" value="This is some text"/>
</div>
<br>
<div class="form-element">
<select name="dummy_1" class="form-element" size="1">
<option>This is option 1</option>
<option>This is option 2</option>
<option>This is option 3</option>
<option>This is option 4</option>
</select>
</div>
<br>
<div class="form-element">
<input type="checkbox" name="c_1" class="form-element" value="1"/> This is option 1<br>
<input type="checkbox" name="c_2" class="form-element" value="1"/> This is option 2<br>
<input type="checkbox" name="c_3" class="form-element" value="1"/> This is option 3
</div>
<br>
<div class="form-element">
<input type="radio" name="r_1" class="form-element" value="1"/> This is option 1<br>
<input type="radio" name="r_1" class="form-element" value="1"/> This is option 2<br>
<input type="radio" name="r_1" class="form-element" value="1"/> This is option 3
</div>
<br>
<div class="form-mono">
<textarea name="dummy_2" rows="4" cols="60">This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
This is some text. This is some text. This is some text.
</textarea>
</div>
<br>
<div class="form-element">
<input type="button" name="b1" value="Action 1" class="form-element"/>
<input type="submit" name="b1" value="Action 2" class="form-element"/>
<input type="submit" name="b1" value="Action 3" class="form-element"/>
<input type="submit" name="b1" value="Action 4" class="form-element"/>
</div>
</body>
</html>
......@@ -11,16 +11,17 @@
<dtml-call "REQUEST.set('a_', _['sequence-index'])">
</dtml-if>
</dtml-in>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td bgcolor="#003366" rowspan="5" width="10%" valign="bottom"
align="left"><font face="Verdana, Arial, Helvetica" color="#ffffff"
size="1">&nbsp;&nbsp;<strong>Zope </strong></font><img
src="&dtml-BASEPATH1;/p_/sp" width="2" height="1">
<td bgcolor="#000000" rowspan="5" width="10%" valign="bottom"
align="left">&nbsp;&nbsp;<img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" />
</td>
<td bgcolor="#003366" colspan="<dtml-var "4 * (n_ + 1)">"><img
src="&dtml-BASEPATH1;/p_/sp" width="1" height="5"></td>
<td bgcolor="#000000" colspan="<dtml-var "4 * (n_ + 1)">"><img
src="&dtml-BASEPATH1;/p_/sp" width="1" height="5" alt="" /></td>
</tr>
<tr>
......@@ -28,49 +29,45 @@
<dtml-if "_['sequence-index']==a_">
<td bgcolor="#ffffff" rowspan="2" valign="top"
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5"
height="5"></td>
height="5" alt="" /></td>
<td bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="1" height="2"></td>
width="1" height="2" alt="" /></td>
<td bgcolor="#ffffff" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5"></td>
<td bgcolor="#003366" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
height="5" alt="" /></td>
<td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
<dtml-else>
<td bgcolor="#efefef" rowspan="2" valign="top"
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5"
height="5"></td>
height="5" alt="" /></td>
<td bgcolor="#efefef"><img src="&dtml-BASEPATH1;/p_/sp"
width="1" height="2"></td>
width="1" height="2" alt="" /></td>
<td bgcolor="#efefef" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5"></td>
<td bgcolor="#003366" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
height="5" alt="" /></td>
<td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
</dtml-if>
</dtml-in>
</tr>
<tr>
<dtml-in manage_options mapping>
<dtml-if "_['sequence-index']==a_">
<td bgcolor="#ffffff" valign="bottom"
<td bgcolor="#ffffff" valign="bottom" class="tab-small"
align="center"><font face="Verdana, Arial, Helvetica"
size="1">&nbsp;<a
<dtml-if action>href="&dtml-action;"
<dtml-else>href="&dtml-URL1;"
</dtml-if>
<dtml-if target> target="&dtml-target;"</dtml-if>><font
color="#000000"><strong><dtml-var
size="1">&nbsp;<a <dtml-if
action>href="&dtml-action;"<dtml-else>href="&dtml-URL1;"</dtml-if
><dtml-if target> target="&dtml-target;"</dtml-if
>><font color="#000000"><strong><dtml-var
label></strong></font></a>&nbsp;</font></td>
<dtml-else>
<td bgcolor="#efefef" valign="bottom"
<td bgcolor="#efefef" valign="bottom" class="tab-small"
align="center"><font face="Verdana, Arial, Helvetica"
size="1">&nbsp;<a
<dtml-if action>href="&dtml-action;"
<dtml-else>href="&dtml-URL1;"
</dtml-if>
<dtml-if target> target="&dtml-target;"</dtml-if>><font
color="#000000"><strong><dtml-var
size="1">&nbsp;<a <dtml-if
action>href="&dtml-action;"<dtml-else>href="&dtml-URL1;"</dtml-if
><dtml-if target> target="&dtml-target;"</dtml-if
>><font color="#000000"><strong><dtml-var
label></strong></font></a>&nbsp;</font></td>
</dtml-if>
</dtml-in>
......@@ -79,10 +76,10 @@
<dtml-in manage_options>
<dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
width="2" height="1" alt="" /></td>
<dtml-else>
<td colspan="3" bgcolor="#efefef"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
width="2" height="1" alt="" /></td>
</dtml-if>
</dtml-in>
</tr>
......@@ -90,30 +87,25 @@
<dtml-in manage_options>
<dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
width="2" height="1" alt="" /></td>
<dtml-else>
<td colspan="3" bgcolor="#c0c0c0"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td>
width="2" height="1" alt="" /></td>
</dtml-if>
</dtml-in>
</tr>
</table>
</dtml-if>
<dtml-if manage_tabs_message>
<hr>
<dtml-var manage_tabs_message><br>
<dtml-var ZopeTime>
<hr>
</dtml-if>
<br>
<dtml-unless MANAGE_TABS_NO_BANNER>
<br />
<table width="100%" cellspacing="0" cellpadding="2" border="0">
<tr>
<tr class="location-bar">
<td align="left" valign="top">
<div class="std-text">
<dtml-if icon>
<img src="&dtml-BASEPATH1;/&dtml-icon;"
alt="&dtml-meta_type;" border="0">
alt="&dtml-meta_type;" border="0" />
<strong>
</dtml-if>
<dtml-if meta_type>
......@@ -125,40 +117,50 @@
</strong>
<dtml-if locked_in_version>
<dtml-if modified_in_version>
<IMG SRC="&dtml-BASEPATH1;/p_/locked"
ALT="This item has been modified in this version">
<img src="&dtml-BASEPATH1;/p_/locked"
alt="This item has been modified in this version" />
<dtml-else>
<IMG SRC="&dtml-BASEPATH1;/p_/lockedo"
ALT="This item has been modified in another version">
<img src="&dtml-BASEPATH1;/p_/lockedo"
alt="This item has been modified in another version" />
(<em><dtml-var locked_in_version></em>)
</dtml-if>
</dtml-if>
</div>
</td>
<dtml-if "_.has_key('help_topic') and _.has_key('help_product')">
<td align="right" valign="top">
<dtml-var "HelpSys.button(HelpSys, REQUEST,
product=help_product,
topic=help_topic)">
<div class="std-text">
<dtml-var "HelpSys.helpLink(help_product, help_topic)">
</div>
</td>
<dtml-else>
<dtml-if manage_options>
<dtml-with "_(option=manage_options[a_])">
<dtml-if "option.has_key('help')">
<td align="right" valign="top">
<dtml-var "HelpSys.button(HelpSys, REQUEST,
product=option['help'][0],
topic=option['help'][1])">
<div class="std-text">
<dtml-var "HelpSys.helpLink(option['help'][0], option['help'][1])">
</div>
</td>
</dtml-if></dtml-with></dtml-if>
</dtml-if>
</dtml-with>
</dtml-if>
</dtml-if>
</tr>
</table>
<dtml-if Zope-Version>
<p>
<em>You are currently working in version &dtml-Zope-Version;</em>
</p>
</dtml-if>
<dtml-if Zope-Version>
<div class="system-msg">
<em>You are currently working in version &dtml-Zope-Version;</em>
</div>
</dtml-if>
</dtml-unless>
<dtml-if manage_tabs_message>
<div class="system-msg">
<dtml-var manage_tabs_message>
(<dtml-var ZopeTime fmt="%Y-%m-%d %I:%M %p">)
</div>
</dtml-if>
</dtml-with>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title></title>
<link rel="stylesheet" type="text/css" href="<dtml-var
BASEPATH1>/manage_page_style.css">
</head>
<body bgcolor="#000000" link="#000099" alink="#000099" vlink="#000099"
topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"
marginwidth="0" marginheight="0">
<table width="100%" cellpadding="0" cellspacing="0" border="0" hspace="0">
<tr>
<td valign="top" align="left">
<a href="http://www.zope.org/" target="_new"><img src="<dtml-var
BASEPATH1>/p_/zopelogo_jpg" height="32" width="145" border="0"
alt="This is a placeholder image for a prettier one we will use for 2.3!" />
</td>
<td valign="top" align="right" width="70%">
<div class="small-tx">
<font color="#ffffff">
Logged in as <strong><dtml-var
AUTHENTICATED_USER></strong>
<dtml-if "AUTHENTICATED_USER.getUserName() != 'Anonymous User'">
| <a href="<dtml-var BASEPATH1>/manage_logout" target="_top">
<font color="#ffffff">Logout</font></a>
</dtml-if>
&nbsp;&nbsp;
</div>
</td>
</tr>
</table>
</body>
</html>
<dtml-var manage_page_header>
<style type="text/css">
<!--
td {
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
color: #333333;
}
-->
</style>
<table width="100%" cellspacing="0" border="0">
<tr bgcolor="#000000">
<td valign="top" nowrap>
<dtml-if icon>
<a href="manage_workspace" target="manage_main"><img
src="&dtml-BASEPATH1;/&dtml-icon;" border="0"
title="Click to open this item" alt="&dtml-meta_type;" /></a>
</dtml-if>
<strong>
<a href="manage_workspace" target="manage_main">
<font color="#ffffff">
<dtml-if expr="URLPATH1==BASEPATH1">
Root Folder
<dtml-else>
<dtml-var id>
</dtml-if>
</font>
</a>
</strong>
</td>
</tr>
</table>
<dtml-tree sort=id nowrap=1>
<dtml-if icon>
<a href="<dtml-var tree-item-url fmt=url-quote>/manage_workspace"
target="manage_main"><img src="&dtml-BASEPATH1;/&dtml-icon;" border="0"
title="Click to open this item" alt="&dtml-meta_type;" /></a>
</dtml-if>
<a href="<dtml-var tree-item-url fmt=url-quote>/manage_workspace"
target="manage_main">&dtml-id;</a>
</dtml-tree>
<table cellspacing="0">
<tr>
<td width="16"></td>
<td valign="top" nowrap>
<strong>
<a href="manage_copyright" target="manage_main">
&copy; Digital Creations
</a>
</strong>
</td>
</tr>
<tr>
<td width="16"></td>
<td valign="top" nowrap>
<strong>
<a href="manage_menu">Refresh</a>
</strong>
</td>
</tr>
</table>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<title>Profiler Information</title>
<style type="text/css">
<!--
.header {
font-weight: bold;
font-size: 10pt;
}
.cell {
font-size: 10pt;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555">
<dtml-var manage_tabs>
<h3>Profile Information</h3>
<p>
<dtml-let sort="REQUEST.get('sort', 'time')"
limit="REQUEST.get('limit', 100)"
stats="manage_profile_stats(sort, limit)">
<dtml-if stats>
<form action="<dtml-var URL>" method="POST">
<table>
<tr>
<td><strong>Sort</strong>:
<select name="sort">
<dtml-in "('time', 'cumulative', 'calls', 'pcalls',
'name', 'file', 'module', 'line',
'nfl', 'stdname')">
<option value="<dtml-var sequence-item>"<dtml-if
"sort==_['sequence-item']"> selected</dtml-if>><dtml-var
sequence-item>
</dtml-in>
</select>
</td>
<td><strong>Limit</strong>:
<select name="limit:int">
<dtml-in "(100, 200, 300, 400, 500)">
<option value="<dtml-var sequence-item>"<dtml-if
"limit==_['sequence-item']"> selected</dtml-if>><dtml-var
sequence-item>
</dtml-in>
</select>
</td>
<td>
<input type="submit" name="submit" value="Update">
</td>
</tr>
</table>
</form>
<hr>
<pre>
<dtml-var stats>
</pre>
<dtml-else>
<em>
Profiling is not currently enabled or there is not yet any profiling
data to report. To enable profiling, restart the Zope process with
the environment variable PROFILE_PUBLISHER defined. The value of this
variable should be the full system path to a file that will be used
to dump a profile report when the process restarts or exits.
</em>
</dtml-if>
</dtml-let>
</body>
</html>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<dtml-let sort="REQUEST.get('sort', 'time')"
limit="REQUEST.get('limit', 100)"
stats="manage_profile_stats(sort, limit)">
<dtml-if stats>
<form action="<dtml-var URL>" method="POST">
<table>
<tr>
<td><strong>Sort</strong>:
<select name="sort">
<dtml-in "('time', 'cumulative', 'calls', 'pcalls',
'name', 'file', 'module', 'line',
'nfl', 'stdname')">
<option value="<dtml-var sequence-item>"<dtml-if
"sort==_['sequence-item']"> selected</dtml-if>><dtml-var
sequence-item>
</dtml-in>
</select>
</td>
<td><strong>Limit</strong>:
<select name="limit:int">
<dtml-in "(100, 200, 300, 400, 500)">
<option value="<dtml-var sequence-item>"<dtml-if
"limit==_['sequence-item']"> selected</dtml-if>><dtml-var
sequence-item>
</dtml-in>
</select>
</td>
<td>
<input type="submit" name="submit" value="Update">
</td>
</tr>
</table>
</form>
<hr>
<pre>
<dtml-var stats>
</pre>
<dtml-else>
<em>
Profiling is not currently enabled or there is not yet any profiling
data to report. To enable profiling, restart the Zope process with
the environment variable PROFILE_PUBLISHER defined. The value of this
variable should be the full system path to a file that will be used
to dump a profile report when the process restarts or exits.
</em>
</dtml-if>
</dtml-let>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<dtml-var manage_get_product_readme__ fmt=structured-text>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<h3>Import Traceback</h3>
<pre><dtml-var import_error_></pre>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<dtml-if undoable_transactions>
<form action="manage_undo_transactions" method="post">
<p class="form-help">
This application's transactional feature allows you to easily undo changes
made to the application's settings or data. You can revert the application
to a &quot;snapshot&quot; of it's state at a previous point in time.
</p>
<p class="form-help">
Select one or more transactions below and then click on the &quot;Undo&quot;
button to undo those transactions. Note that even though a transaction
is shown below, you may not be able to undo it if later transactions
modified objects that were modified by a selected transaction.
</p>
<dtml-unless first_transaction>
<dtml-call "REQUEST.set('first_transaction', _.None)">
</dtml-unless>
<a name="t_list" />
<table width="100%" cellspacing="0" cellpadding="2" border="0">
<tr class="list-header">
<td align="left" valign="top">
<div class="list-nav">
<dtml-if first_transaction>
<a href="manage_UndoForm?first_transaction:int=<dtml-var
expr="first_transaction*2-last_transaction"
>&last_transaction:int=<dtml-var first_transaction
>&PrincipiaUndoBatchSize:int=<dtml-var PrincipiaUndoBatchSize
>"
onMouseOver="window.status='View later transactions'; return true"
onMouseOut="window.status=''; return true">&lt; Later Transactions</a>
<dtml-else>
&nbsp;
</dtml-if>
</div>
</td>
<td align="right" valign="top" nowrap>
<div class="list-nav">
<dtml-if expr="_.len(undoable_transactions) == PrincipiaUndoBatchSize">
<a href="manage_UndoForm?first_transaction:int=<dtml-var
last_transaction>&last_transaction:int=<dtml-var
expr="last_transaction+PrincipiaUndoBatchSize"
>&PrincipiaUndoBatchSize:int=<dtml-var PrincipiaUndoBatchSize
>"
onMouseOver="window.status='View earlier transactions'; return true"
onMouseOut="window.status=''; return true">Earlier Transactions &gt;</a>
<dtml-else>
&nbsp;
</dtml-if>
</div>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="2" border="0">
<dtml-in undoable_transactions mapping>
<dtml-if sequence-odd>
<tr class="row-normal">
<dtml-else>
<tr class="row-hilite">
</dtml-if>
<td width="16" align="left" valign="top">
<input type="checkbox" name="transaction_info:list"
value="<dtml-var id html_quote>" />
</td>
<td align="left" valign="top">
<div class="list-item">
<dtml-var description html_quote> by <strong><dtml-if
user_name><dtml-var user_name html_quote><dtml-else
><em>Zope</em></dtml-if></strong>
</div>
</td>
<td align="right" valign="top" colspan="2" nowrap>
<div class="list-item">
<dtml-var time fmt="%Y-%m-%d %I:%M:%S %p">
</div>
</td>
</tr>
</dtml-in>
<tr>
<td></td>
<td align="left" valign="top" colspan="2">
<div class="form-element">
<input class="form-element" type="submit" name="submit" value=" Undo " />
</div>
</td>
</tr>
</table>
</form>
<dtml-else>
<p>
There are no transactions that can be undone.
</p>
</dtml-if>
<dtml-var manage_page_footer>
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<dtml-if version_info>
<p class="form-help">
Select one or more versions below and then click on the &quot;Save&quot;
button to save the versions or click on the &quot;Discard&quot; button to
discard changes made in the versions.
</p>
<form action="&dtml-URL1;" method="post">
<table>
<dtml-in version_info mapping>
<tr>
<td align="left" valign="top">
<input type="checkbox" name="versions:list" value="&dtml-id;">
</td>
<td align="left" valign="top">
<div class="form-text">
<a href="&dtml-id;/manage_workspace">&dtml-id;</a>
</div>
</td>
</tr>
</dtml-in>
<tr>
<td></td>
<td align="left" valign="top">
<div class="form-element">
<input type="submit" name="manage_saveVersions:method" value=" Save ">
<input type="submit" name="manage_discardVersions:method" value="Discard">
</div>
</td>
</tr>
</table>
</form>
<dtml-else>
<p class="form-help">
There are no non-empty versions.
</p>
</dtml-if>
<dtml-var manage_page_footer>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Change a factory</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-var manage_tabs>
<form action="manage_edit" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><dtml-var id></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Title</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="title"
size="40" value="<dtml-var title html_quote>"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Add list name</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="object_type"
size="40" value="<dtml-var object_type html_quote>"></td>
</tr>
<tr><th ALIGN="LEFT">Initial method</th>
<td ALIGN="LEFT">
<select name="initial">
<dtml-in objectIds>
<option
<dtml-if expr="_.string.strip(_['sequence-item'])==initial">
SELECTED</dtml-if>
><dtml-var sequence-item></option>
</dtml-in>
</select></td></tr>
<tr>
<th align="LEFT" valign="TOP">Permission</th>
<td align="LEFT" valign="TOP">
<select name=permission>
<dtml-in possible_permissions>
<option
<dtml-if "_['sequence-item']==permission">selected</dtml-if>
><dtml-var sequence-item></option>
</dtml-in>
</select>
</td>
</tr>
<tr><td></td><td><br><input type="SUBMIT" value="Change"></td></tr>
</table></form>
The <strong>initial method</strong> is the method that will be invoked when a
user adds a new object. This must be one of the objects in the
product, typically a Document.
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"><head><title>Change a permission</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-var manage_tabs>
<form action="manage_edit" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><dtml-var id></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Title</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="title"
size="40" value="<dtml-var title html_quote>"></td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Name</th>
<td align="LEFT" valign="TOP"><input type="TEXT" name="name"
size="40" value="<dtml-var name html_quote>"></td>
</tr>
<tr><td></td><td><br><input type="SUBMIT" value="Change"></td></tr>
</table></form>
</body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Navigator</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-if AUTHENTICATED_USER>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td bgcolor="#003366" valign="bottom" align="left">
<font face="Verdana, Arial, Helvetica" color="#ffffff" size="1">
<strong> &nbsp; <dtml-var AUTHENTICATED_USER> </strong>
</font>
<img src="<dtml-var BASEPATH1>/p_/sp" width="2" height="1">
</td>
<td bgcolor="#003366">
<img src="<dtml-var BASEPATH1>/p_/sp" width="1" height="5">
</td>
</tr>
</table>
</dtml-if>
<TABLE CELLSPACING="0">
<TR>
<TD VALIGN="TOP" NOWRAP>
<dtml-if icon>
<A HREF="manage_workspace" TARGET="manage_main">
<IMG SRC="&dtml-BASEPATH1;/&dtml-icon;" BORDER="0"
ALT="&dtml-meta_type;" TITLE="Click to open this item"></A>
</dtml-if>
<STRONG>
<A HREF="manage_workspace" TARGET="manage_main">
<dtml-if expr="URLPATH1==BASEPATH1">
<dtml-var expr="BASEPATH1[1:]">
<dtml-else>
<dtml-var id>
</dtml-if>
</A>
</STRONG>
</TD>
</TR>
</TABLE>
<dtml-tree sort=id nowrap=1>
<dtml-if icon>
<A HREF="<dtml-var tree-item-url fmt=url-quote>/manage_workspace" TARGET="manage_main">
<IMG SRC="&dtml-BASEPATH1;/&dtml-icon;" BORDER="0"
TITLE="Click to open this item" ALT="&dtml-meta_type;"></A>
</dtml-if>
<A HREF="<dtml-var tree-item-url fmt=url-quote>/manage_workspace" TARGET="manage_main">
&dtml-id;
</A>
</dtml-tree>
<TABLE CELLSPACING="0">
<TR>
<TD WIDTH="16"></TD>
<TD VALIGN="TOP" NOWRAP>
<STRONG>
<A HREF="manage_copyright" TARGET="manage_main">
&copy; Digital Creations
</A>
</STRONG>
</TD>
</TR>
<TR>
<TD WIDTH="16"></TD>
<TD VALIGN="TOP" NOWRAP>
<STRONG><A HREF="manage_menu">Refresh</A></STRONG>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en"><HEAD><TITLE><dtml-var id> README</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<dtml-var manage_get_product_readme__ fmt=structured-text>
</BODY>
</HTML>
......@@ -105,7 +105,8 @@ class HTMLFile(DocumentTemplate.HTMLFile,MethodObject.Method,):
elif type(_prefix) is not type(''):
_prefix=Common.package_home(_prefix)
args=(self, os.path.join(_prefix, name + '.dtml'))
if not kw.has_key('__name__'): kw['__name__']=name
if not kw.has_key('__name__'):
kw['__name__']=os.path.split(name)[-1]
apply(HTMLFile.inheritedAttribute('__init__'),args,kw)
def __call__(self, *args, **kw):
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en"><HEAD><TITLE><dtml-var id> Import Traceback</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<h3><dtml-var id> Import Traceback</h3>
<pre>
<dtml-var import_error_>
</pre>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Undo Changes</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-var manage_tabs>
<P>
<dtml-if undoable_transactions>
<FORM ACTION="manage_undo_transactions" METHOD="POST">
This application's transactional feature allows you to easily undo changes
made to the application's settings or data. You can revert the application
to a &quot;snapshot&quot; of it's state at a previous point in time.
<P>
Select one or more transactions below and then click on the &quot;Undo&quot;
button to undo the transactions. Note that even though a transaction
is shown below, you will not be able to undo it if later transactions
modified objects that were modified by the transaction.
<table>
<tr><td colspan=2 align=center><INPUT TYPE="SUBMIT" VALUE=" Undo ">
</td></tr>
<tr><td></td></tr>
<dtml-if first_transaction>
<tr><td colspan=2 align=center>
<a href="manage_UndoForm?first_transaction:int=<dtml-var
expr="first_transaction*2-last_transaction"
>&last_transaction:int=<dtml-var first_transaction
>&PrincipiaUndoBatchSize:int=<dtml-var PrincipiaUndoBatchSize
>">
Later Transactions</a>
</td></tr>
</dtml-if>
<dtml-in undoable_transactions mapping>
<tr>
<td valign=top><input type=checkbox name="transaction_info:list"
value="<dtml-var id html_quote>"></td>
<td valign=top>
<strong><dtml-var description html_quote></strong> by <strong>
<dtml-if user_name>
<dtml-var user_name html_quote>
<dtml-else>
<em>Zope</em>
</dtml-if>
</strong> on <dtml-var time fmt=Mon> <dtml-var time fmt=day> at
<dtml-var time fmt=Time>
</td>
</tr>
</dtml-in>
<dtml-if expr="_.len(undoable_transactions) == PrincipiaUndoBatchSize">
<tr><td colspan=2 align=center>
<a href="manage_UndoForm?first_transaction:int=<dtml-var
last_transaction>&last_transaction:int=<dtml-var
expr="last_transaction+PrincipiaUndoBatchSize"
>&PrincipiaUndoBatchSize:int=<dtml-var PrincipiaUndoBatchSize
>">
Earlier Transactions</a>
</td></tr>
</dtml-if>
<tr><td></td></tr>
<tr><td colspan=2 align=center><INPUT TYPE="SUBMIT" VALUE=" Undo ">
</td></tr>
</table>
</FORM>
<dtml-else>
There are no transactions that can be undone.
</dtml-if>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Manage Versions</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<dtml-var manage_tabs>
<P>
<dtml-if version_info>
<FORM ACTION="&dtml-URL1;" METHOD="POST">
Select one or more versions below and then click on the &quot;Save&quot;
button to save the versions or click on the &quot;Discard&quot; button to
discard changes made in the versions.
<table>
<dtml-in version_info mapping>
<tr>
<td valign=top><input type=checkbox name="versions:list"
value="&dtml-id;"></td>
<td valign=top>
<a href="&dtml-BASEPATH1;/&dtml-id;/manage_workspace">&dtml-id;</a>
</td>
</tr>
</dtml-in>
<tr><td colspan=2 align=center>
</td></tr>
<tr><td></td></tr>
<tr><td colspan=2 align=center>
<INPUT TYPE="SUBMIT" name="manage_saveVersions:method" VALUE=" Save ">
<INPUT TYPE="SUBMIT" name="manage_discardVersions:method"
VALUE=" Discard ">
</td></tr>
</table>
</FORM>
<dtml-else>
There are no non-empty versions.
</dtml-if>
</BODY>
</HTML>
......@@ -382,11 +382,11 @@
''' #'
__rcs_id__='$Id: DT_In.py,v 1.42 2000/12/18 22:59:06 adam Exp $'
__version__='$Revision: 1.42 $'[11:-2]
__rcs_id__='$Id: DT_In.py,v 1.43 2001/01/08 22:46:57 brian Exp $'
__version__='$Revision: 1.43 $'[11:-2]
from DT_Util import ParseError, parse_params, name_param, str
from DT_Util import render_blocks, InstanceDict, ValidationError
from DT_Util import render_blocks, InstanceDict, ValidationError, VSEval, expr_globals
from string import find, atoi, join, split
import ts_regex
from DT_InSV import sequence_variables, opt
......@@ -408,6 +408,7 @@ class InClass:
expr=sort=batch=mapping=None
start_name_re=None
reverse=None
sort_expr=reverse_expr=None
def __init__(self, blocks):
tname, args, section = blocks[0]
......@@ -415,7 +416,7 @@ class InClass:
orphan='3',overlap='1',mapping=1,
skip_unauthorized=1,
previous=1, next=1, expr='', sort='',
reverse=1)
reverse=1, sort_expr='', reverse_expr='')
self.args=args
has_key=args.has_key
......@@ -423,6 +424,12 @@ class InClass:
self.sort=sort=args['sort']
if sort=='sequence-item': self.sort=''
if has_key('sort_expr'):
self.sort_expr=VSEval.Eval(args['sort_expr'], expr_globals)
if has_key('reverse_expr'):
self.reverse_expr=VSEval.Eval(args['reverse_expr'], expr_globals)
if has_key('reverse'):
self.reverse=args['reverse']
......@@ -484,15 +491,21 @@ class InClass:
raise 'InError', (
'Strings are not allowed as input to the in tag.')
section=self.section
params=self.args
mapping=self.mapping
if self.sort is not None:
if self.sort_expr is not None:
self.sort=self.sort_expr.eval(md)
sequence=self.sort_sequence(sequence)
elif self.sort is not None:
sequence=self.sort_sequence(sequence)
if self.reverse is not None:
if self.reverse_expr is not None and self.reverse_expr.eval(md):
sequence=self.reverse_sequence(sequence)
elif self.reverse is not None:
sequence=self.reverse_sequence(sequence)
next=previous=0
......@@ -644,12 +657,18 @@ class InClass:
section=self.section
mapping=self.mapping
if self.sort is not None:
if self.sort_expr is not None:
self.sort=self.sort_expr.eval(md)
sequence=self.sort_sequence(sequence)
elif self.sort is not None:
sequence=self.sort_sequence(sequence)
if self.reverse is not None:
if self.reverse_expr is not None and self.reverse_expr.eval(md):
sequence=self.reverse_sequence(sequence)
elif self.reverse is not None:
sequence=self.reverse_sequence(sequence)
vars=sequence_variables(sequence)
kw=vars.data
kw['mapping']=mapping
......
......@@ -126,7 +126,7 @@ class APIHelpTopic(HelpTopic.HelpTopic):
if not self.title:
self.title=self.apis[0].name
index_html=HTMLFile('APIHelpView', globals())
index_html=HTMLFile('dtml/APIHelpView', globals())
def SearchableText(self):
"The full text of the Help Topic, for indexing purposes"
......@@ -190,7 +190,7 @@ class APIDoc(Persistent):
text="%s %s %s" % (text, method.name, method.doc)
return text
view=HTMLFile('APIView', globals())
view=HTMLFile('dtml/APIView', globals())
class AttributeDoc(Persistent):
......@@ -202,7 +202,7 @@ class AttributeDoc(Persistent):
self.name=name
self.value=value
view=HTMLFile('attributeView', globals())
view=HTMLFile('dtml/attributeView', globals())
class MethodDoc(Persistent):
......@@ -249,7 +249,7 @@ class MethodDoc(Persistent):
if func.func_code.co_flags & CO_VARKEYWORDS:
self.kwargs=names[ix]
view=HTMLFile('methodView', globals())
view=HTMLFile('dtml/methodView', globals())
def trim_doc_string(text):
......
......@@ -109,7 +109,8 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
__ac_permissions__=(
('View',
('__call__', 'searchResults', 'HelpButton', '',
'index_html', 'menu', 'search', 'results', 'main', )),
'index_html', 'menu', 'search', 'results', 'main',
'helpLink')),
('Access contents information', ('helpValues',)),
)
......@@ -145,15 +146,15 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
searchResults=__call__
index_html=HTMLFile('frame', globals())
menu=HTMLFile('menu', globals())
search=HTMLFile('search', globals())
results=HTMLFile('results', globals())
index_html=HTMLFile('dtml/frame', globals())
menu=HTMLFile('dtml/menu', globals())
search=HTMLFile('dtml/search', globals())
results=HTMLFile('dtml/results', globals())
main=HTML("""<html></html>""")
standard_html_header=HTMLFile('menu_header', globals())
standard_html_footer=HTMLFile('menu_footer', globals())
standard_html_header=HTMLFile('dtml/menu_header', globals())
standard_html_footer=HTMLFile('dtml/menu_footer', globals())
button=HTMLFile('button', globals())
button=HTMLFile('dtml/button', globals())
def HelpButton(self, topic, product):
"""
......@@ -161,7 +162,7 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
"""
return self.button(self, self.REQUEST, product=product, topic=topic)
helpURL=HTMLFile('helpURL',globals())
helpURL=HTMLFile('dtml/helpURL',globals())
def helpLink(self, product='OFSP', topic='ObjectManager_Contents.stx'):
# Generate an <a href...> tag linking to a help topic. This
......@@ -173,9 +174,16 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
topic
)
help_url='%s?help_url=%s' % (self.absolute_url(), help_url)
html='<a href="" onClick="return window.parent.openHelpWindow(' \
'\'%s\');">Help!</a>' % (help_url)
return html
script='window.open(\'%s\',\'zope_help\',\'width=600,' \
'height=500,menubar=yes,toolbar=yes,scrollbars=yes,' \
'resizable=yes\').focus(); return false;' % help_url
h_link='<a href="" onClick="%s" onMouseOver="window.status=' \
'\'Open online help\'; return true;" onMouseOut="' \
'window.status=\'\'; return true;">Help!</a>' % script
return h_link
def tpValues(self):
"""
......@@ -284,7 +292,7 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
c.addColumn('url')
c.addColumn('id')
addTopicForm=HTMLFile('addTopic', globals())
addTopicForm=HTMLFile('dtml/addTopic', globals())
def addTopic(self, id, title, REQUEST=None):
"Add a Help Topic"
......@@ -343,8 +351,8 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
"""
return apply(self.catalog.__call__, args, kw)
standard_html_header=HTMLFile('topic_header', globals())
standard_html_footer=HTMLFile('topic_footer', globals())
standard_html_header=HTMLFile('dtml/topic_header', globals())
standard_html_footer=HTMLFile('dtml/topic_footer', globals())
Globals.default__class_init__(ProductHelp)
......@@ -84,7 +84,7 @@
##############################################################################
"""Object Reference implementation"""
__version__='$Revision: 1.5 $'[11:-2]
__version__='$Revision: 1.6 $'[11:-2]
import sys, os, string, Globals, Acquisition
......@@ -100,7 +100,7 @@ class ObjectItem(HelpBase, classobject):
""" """
__roles__=None
hs_main=HTMLFile('objectitem', globals())
hs_main=HTMLFile('dtml/objectitem', globals())
hs_cicon='HelpSys/hs_dnode'
hs_eicon='HelpSys/hs_dnode'
......@@ -158,7 +158,7 @@ class ObjectRef(HelpBase):
__names__=None
__roles__=None
hs_main=HTMLFile('objectref', globals())
hs_main=HTMLFile('dtml/objectref', globals())
hs_cicon='HelpSys/hs_cbook'
hs_eicon='HelpSys/hs_obook'
......
......@@ -84,9 +84,9 @@
##############################################################################
__doc__="""Cacheable object and cache management base classes.
$Id: Cache.py,v 1.3 2000/12/13 16:20:15 shane Exp $"""
$Id: Cache.py,v 1.4 2001/01/08 22:46:58 brian Exp $"""
__version__='$Revision: 1.3 $'[11:-2]
__version__='$Revision: 1.4 $'[11:-2]
import time, sys
from string import join
......@@ -176,7 +176,7 @@ class Cacheable:
), ('Manager',)),
)
ZCacheable_manage = HTMLFile('cacheable', globals())
ZCacheable_manage = HTMLFile('dtml/cacheable', globals())
_v_ZCacheable_cache = None
_v_ZCacheable_manager_timestamp = 0
......@@ -547,7 +547,7 @@ class CacheManager:
global manager_timestamp
manager_timestamp = time.time()
ZCacheManager_associate = HTMLFile('cmassoc', globals())
ZCacheManager_associate = HTMLFile('dtml/cmassoc', globals())
def ZCacheManager_locate(self, require_assoc, subfolders,
meta_types=[], REQUEST=None):
......
......@@ -83,7 +83,7 @@
#
##############################################################################
__doc__="""Copy interface"""
__version__='$Revision: 1.60 $'[11:-2]
__version__='$Revision: 1.61 $'[11:-2]
import sys, string, Globals, Moniker, tempfile, ExtensionClass
from marshal import loads, dumps
......@@ -262,7 +262,7 @@ class CopyContainer(ExtensionClass.Base):
return ''
manage_renameForm=Globals.HTMLFile('renameForm', globals())
manage_renameForm=Globals.HTMLFile('dtml/renameForm', globals())
def manage_renameObjects(self, ids, new_ids, REQUEST=None):
"""Rename several sub-objects"""
......
......@@ -84,7 +84,7 @@
##############################################################################
"""DTML Document objects."""
__version__='$Revision: 1.39 $'[11:-2]
__version__='$Revision: 1.40 $'[11:-2]
from DocumentTemplate.DT_Util import InstanceDict, TemplateDict
from ZPublisher.Converters import type_converters
from Globals import HTML, HTMLFile, MessageDialog
......@@ -116,7 +116,7 @@ class DTMLDocument(PropertyManager, DTMLMethod):
__ac_permissions__=(
('Change DTML Documents',
('manage_editForm', 'manage', 'manage_main', 'manage_uploadForm',
('manage_editForm', 'manage', 'manage_main',
'manage_edit', 'manage_upload', 'PUT',
'manage_historyCopy',
'manage_beforeHistoryCopy', 'manage_afterHistoryCopy',
......@@ -150,10 +150,9 @@ class DTMLDocument(PropertyManager, DTMLMethod):
self._validateProxy(REQUEST)
if type(file) is not type(''): file=file.read()
self.munge(file)
if REQUEST: return MessageDialog(
title ='Success!',
message='Your changes have been saved',
action ='manage_main')
if REQUEST:
message="Content uploaded."
return self.manage_main(self,REQUEST,manage_tabs_message=message)
def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw):
"""Render the document given a client object, REQUEST mapping,
......@@ -201,7 +200,7 @@ This is the <dtml-var id> Document.
</p>
<dtml-var standard_html_footer>"""
addForm=HTMLFile('documentAdd', globals())
addForm=HTMLFile('dtml/documentAdd', globals())
def addDTMLDocument(self, id, title='', file='', REQUEST=None, submit=None):
"""Add a DTML Document object with the contents of file. If
......
......@@ -84,7 +84,7 @@
##############################################################################
"""DTML Method objects."""
__version__='$Revision: 1.56 $'[11:-2]
__version__='$Revision: 1.57 $'[11:-2]
import History
from Globals import HTML, HTMLFile, MessageDialog
......@@ -125,8 +125,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','DTML-DocumentOrMethod_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm',
'help':('OFSP','DTML-DocumentOrMethod_Upload.stx')},
#upload is deprecated
#{'label':'Upload', 'action':'manage_uploadForm',
# 'help':('OFSP','DTML-DocumentOrMethod_Upload.stx')},
{'label':'View', 'action':'',
'help':('OFSP','DTML-DocumentOrMethod_View.stx')},
{'label':'Proxy', 'action':'manage_proxyForm',
......@@ -142,7 +143,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
('View management screens',
('document_src', 'PrincipiaSearchSource')),
('Change DTML Methods',
('manage_editForm', 'manage', 'manage_main', 'manage_uploadForm',
('manage_editForm', 'manage', 'manage_main',
'manage_edit', 'manage_upload', 'PUT',
'manage_historyCopy',
'manage_beforeHistoryCopy', 'manage_afterHistoryCopy',
......@@ -228,7 +229,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
kw[key] = val
self.ZCacheable_set(result, keywords=kw)
ZCacheable_configHTML = HTMLFile('cacheNamespaceKeys', globals())
ZCacheable_configHTML = HTMLFile('dtml/cacheNamespaceKeys', globals())
def getCacheNamespaceKeys(self):
'''
......@@ -259,10 +260,13 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
def validate(self, inst, parent, name, value, md):
return getSecurityManager().validate(inst, parent, name, value)
manage_editForm=HTMLFile('documentEdit', globals())
manage_uploadForm=HTMLFile('documentUpload', globals())
manage_editForm=HTMLFile('dtml/documentEdit', globals())
# deprecated!
manage_uploadForm=manage_editForm
manage=manage_main=manage_editDocument=manage_editForm
manage_proxyForm=HTMLFile('documentProxy', globals())
manage_proxyForm=HTMLFile('dtml/documentProxy', globals())
_size_changes={
'Bigger': (5,5),
......@@ -306,7 +310,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
self.munge(data)
self.ZCacheable_invalidate()
if REQUEST:
message="Content changed."
message="Saved changes."
return self.manage_main(self,REQUEST,manage_tabs_message=message)
def manage_upload(self,file='', REQUEST=None):
......@@ -315,10 +319,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
if type(file) is not type(''): file=file.read()
self.munge(file)
self.ZCacheable_invalidate()
if REQUEST: return MessageDialog(
title ='Success!',
message='Your changes have been saved',
action ='manage_main')
if REQUEST:
message="Saved changes."
return self.manage_main(self,REQUEST,manage_tabs_message=message)
......@@ -347,10 +350,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
self._validateProxy(REQUEST)
self._proxy_roles=tuple(roles)
self.ZCacheable_invalidate()
if REQUEST: return MessageDialog(
title ='Success!',
message='Your changes have been saved',
action ='manage_main')
if REQUEST:
message="Saved changes."
return self.manage_proxyForm(self,REQUEST,manage_tabs_message=message)
def PrincipiaSearchSource(self):
"Support for searching - the document's contents are searched."
......@@ -423,7 +425,7 @@ in the <dtml-var title_and_id> Folder.
</p>
<dtml-var standard_html_footer>"""
addForm=HTMLFile('methodAdd', globals())
addForm=HTMLFile('dtml/methodAdd', globals())
def addDTMLMethod(self, id, title='', file='', REQUEST=None, submit=None):
"""Add a DTML Method object with the contents of file. If
......
......@@ -83,7 +83,7 @@
#
##############################################################################
__doc__="""Find support"""
__version__='$Revision: 1.21 $'[11:-2]
__version__='$Revision: 1.22 $'[11:-2]
import sys, os, string, time, Globals, ExtensionClass
......@@ -98,12 +98,16 @@ from AccessControl import getSecurityManager
class FindSupport(ExtensionClass.Base):
"""Find support for Zope Folders"""
manage_findFrame=HTMLFile('findFrame', globals())
manage_findForm=HTMLFile('findForm', globals(), management_view='Find')
manage_findAdv=HTMLFile('findAdv', globals(), management_view='Find',
#findframe is deprecated
manage_findFrame=HTMLFile('dtml/findFrame', globals())
manage_findForm=HTMLFile('dtml/findForm', globals(),
management_view='Find')
manage_findAdv=HTMLFile('dtml/findAdv', globals(),
management_view='Find',
help_topic='Find_Advanced.stx',
help_product='OFSP')
manage_findResult=HTMLFile('findResult', globals())
manage_findResult=HTMLFile('dtml/findResult', globals(),
management_view='Find')
__ac_permissions__=(
('View management screens',
......@@ -112,7 +116,7 @@ class FindSupport(ExtensionClass.Base):
)
manage_options=(
{'label':'Find', 'action':'manage_findFrame', 'target':'manage_main',
{'label':'Find', 'action':'manage_findForm', 'target':'manage_main',
'help':('OFSP','Find.stx')},
)
......
......@@ -87,9 +87,9 @@
Folders are the basic container objects and are analogous to directories.
$Id: Folder.py,v 1.91 2000/07/26 15:43:13 brian Exp $"""
$Id: Folder.py,v 1.92 2001/01/08 22:46:58 brian Exp $"""
__version__='$Revision: 1.91 $'[11:-2]
__version__='$Revision: 1.92 $'[11:-2]
import Globals, SimpleItem, ObjectManager, PropertyManager
import AccessControl.Role, webdav.Collection, FindSupport
......@@ -98,7 +98,7 @@ from Globals import HTMLFile
from AccessControl import getSecurityManager
manage_addFolderForm=HTMLFile('folderAdd', globals())
manage_addFolderForm=HTMLFile('dtml/folderAdd', globals())
def manage_addFolder(self, id, title='',
createPublic=0,
......@@ -161,7 +161,6 @@ class Folder(
'help':('OFSP','Folder_View.stx')},
)+
PropertyManager.PropertyManager.manage_options+
(ObjectManager.ObjectManager.manage_options[1],)+
AccessControl.Role.RoleManager.manage_options+
SimpleItem.Item.manage_options+
FindSupport.FindSupport.manage_options
......
......@@ -84,7 +84,7 @@
##############################################################################
"""Object Histories"""
__version__='$Revision: 1.4 $'[11:-2]
__version__='$Revision: 1.5 $'[11:-2]
import Globals, ndiff, ExtensionClass
from DateTime import DateTime
......@@ -171,7 +171,7 @@ class Historical(ExtensionClass.Base):
)
manage_change_history_page=Globals.HTMLFile(
'history', globals(),
'dtml/history', globals(),
HistoryBatchSize=20,
first_transaction=0, last_transaction=20)
......@@ -223,7 +223,7 @@ class Historical(ExtensionClass.Base):
_manage_historyComparePage=Globals.HTMLFile(
'historyCompare', globals(), management_view='History')
'dtml/historyCompare', globals(), management_view='History')
def manage_historyCompare(self, rev1, rev2, REQUEST,
historyComparisonResults=''):
dt1=DateTime(rev1._p_mtime)
......
......@@ -84,7 +84,7 @@
##############################################################################
"""Image object"""
__version__='$Revision: 1.121 $'[11:-2]
__version__='$Revision: 1.122 $'[11:-2]
import Globals, string, struct, content_types
from OFS.content_types import guess_content_type
......@@ -102,7 +102,7 @@ from Cache import Cacheable
StringType=type('')
manage_addFileForm=HTMLFile('imageAdd', globals(),Kind='File',kind='file')
manage_addFileForm=HTMLFile('dtml/imageAdd', globals(),Kind='File',kind='file')
def manage_addFile(self,id,file='',title='',precondition='', content_type='',
REQUEST=None):
"""Add a new File object.
......@@ -141,16 +141,16 @@ class File(Persistent, Implicit, PropertyManager,
precondition=''
size=None
manage_editForm =HTMLFile('fileEdit',globals(),Kind='File',kind='file')
manage_uploadForm=HTMLFile('imageUpload',globals(),Kind='File',kind='file')
manage_editForm =HTMLFile('dtml/fileEdit',globals(),
Kind='File',kind='file')
manage=manage_main=manage_editForm
manage_uploadForm=manage_editForm
manage_options=(
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','File_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm',
'help':('OFSP','File_Upload.stx')},
)
+ PropertyManager.manage_options +
(
......@@ -165,7 +165,7 @@ class File(Persistent, Implicit, PropertyManager,
__ac_permissions__=(
('View management screens',
('manage', 'manage_main', 'manage_uploadForm',)),
('manage', 'manage_main',)),
('Change Images and Files',
('manage_edit','manage_upload','PUT')),
('View',
......@@ -273,8 +273,8 @@ class File(Persistent, Implicit, PropertyManager,
elif self.precondition: del self.precondition
self.ZCacheable_invalidate()
if REQUEST:
message="Your changes have been saved"
return self.manage_main(self, REQUEST, manage_tabs_message=message)
message="Saved changes."
return self.manage_main(self,REQUEST,manage_tabs_message=message)
def manage_upload(self,file='',REQUEST=None):
"""
......@@ -287,10 +287,9 @@ class File(Persistent, Implicit, PropertyManager,
'application/octet-stream')
self.update_data(data, content_type, size)
if REQUEST: return MessageDialog(
title ='Success!',
message='Your changes have been saved',
action ='manage_main')
if REQUEST:
message="Saved changes."
return self.manage_main(self,REQUEST,manage_tabs_message=message)
def _get_content_type(self, file, body, id, content_type=None):
headers=getattr(file, 'headers', None)
......@@ -410,7 +409,8 @@ class File(Persistent, Implicit, PropertyManager,
manage_FTPget=index_html
manage_addImageForm=HTMLFile('imageAdd',globals(),Kind='Image',kind='image')
manage_addImageForm=HTMLFile('dtml/imageAdd',globals(),
Kind='Image',kind='image')
def manage_addImage(self, id, file, title='', precondition='', content_type='',
REQUEST=None):
"""
......@@ -456,7 +456,7 @@ class Image(File):
__ac_permissions__=(
('View management screens',
('manage', 'manage_main', 'manage_uploadForm',)),
('manage', 'manage_main',)),
('Change Images and Files',
('manage_edit','manage_upload','PUT')),
('View',
......@@ -478,8 +478,6 @@ class Image(File):
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','Image_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm',
'help':('OFSP','File_Upload.stx')},
)
+ PropertyManager.manage_options +
(
......@@ -491,12 +489,13 @@ class Image(File):
+ Cacheable.manage_options
)
manage_editForm =HTMLFile('imageEdit',globals(),Kind='Image',kind='image')
view_image_or_file =HTMLFile('imageView',globals())
manage_uploadForm=HTMLFile('imageUpload',globals(),Kind='Image',
kind='image')
manage=manage_main=manage_editForm
manage_editForm =HTMLFile('dtml/imageEdit',globals(),
Kind='Image',kind='image')
view_image_or_file =HTMLFile('dtml/imageView',globals())
manage=manage_main=manage_editForm
manage_uploadForm=manage_editForm
# private
update_data__roles__=()
def update_data(self, data, content_type=None, size=None):
......@@ -656,3 +655,12 @@ class Pdata(Persistent, Implicit):
next=self.next
return string.join(r,'')
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment