Commit c7fd5b01 authored by 's avatar

Merged mgmt interface quick fix branch

parent 3509fc9a
...@@ -85,8 +85,8 @@ ...@@ -85,8 +85,8 @@
__doc__='''Support for owned objects __doc__='''Support for owned objects
$Id: Owned.py,v 1.8 2000/12/05 18:49:42 shane Exp $''' $Id: Owned.py,v 1.9 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.8 $'[11:-2] __version__='$Revision: 1.9 $'[11:-2]
import Globals, urlparse, SpecialUsers, ExtensionClass, string import Globals, urlparse, SpecialUsers, ExtensionClass, string
from AccessControl import getSecurityManager from AccessControl import getSecurityManager
...@@ -119,7 +119,7 @@ class Owned(ExtensionClass.Base): ...@@ -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): def owner_info(self):
"""Get ownership info for display """Get ownership info for display
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Access control support""" """Access control support"""
__version__='$Revision: 1.42 $'[11:-2] __version__='$Revision: 1.43 $'[11:-2]
from Globals import HTMLFile, MessageDialog, Dictionary from Globals import HTMLFile, MessageDialog, Dictionary
...@@ -186,7 +186,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager): ...@@ -186,7 +186,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
return result 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_topic='Security_Manage-Role.stx',
help_product='OFSP') help_product='OFSP')
...@@ -200,7 +201,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager): ...@@ -200,7 +201,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
if REQUEST is not None: return self.manage_access(self,REQUEST) 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_topic='Security_Manage-Acquisition.stx',
help_product='OFSP') help_product='OFSP')
...@@ -217,7 +219,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager): ...@@ -217,7 +219,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
if REQUEST is not None: return self.manage_access(self,REQUEST) 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_topic='Security_Manage-Permission.stx',
help_product='OFSP') help_product='OFSP')
...@@ -245,8 +248,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager): ...@@ -245,8 +248,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
def manage_access( def manage_access(
trueself, self, REQUEST, trueself, self, REQUEST,
_normal_manage_access=HTMLFile('access', globals()), _normal_manage_access=HTMLFile('dtml/access', globals()),
_method_manage_access=HTMLFile('methodAccess', globals()), _method_manage_access=HTMLFile('dtml/methodAccess', globals()),
**kw): **kw):
"Return an interface for making permissions settings" "Return an interface for making permissions settings"
if hasattr(self, '_isBeingUsedAsAMethod') and \ if hasattr(self, '_isBeingUsedAsAMethod') and \
...@@ -330,11 +333,13 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager): ...@@ -330,11 +333,13 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
__ac_local_roles__=None __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_topic='Security_Local-Roles.stx',
help_product='OFSP') 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_topic='Security_User-Local-Roles.stx',
help_product='OFSP') help_product='OFSP')
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Access control package""" """Access control package"""
__version__='$Revision: 1.122 $'[11:-2] __version__='$Revision: 1.123 $'[11:-2]
import Globals, socket, ts_regex, SpecialUsers import Globals, socket, ts_regex, SpecialUsers
import os import os
...@@ -587,10 +587,10 @@ class BasicUserFolder(Implicit, Persistent, Navigation, Tabs, RoleManager, ...@@ -587,10 +587,10 @@ class BasicUserFolder(Implicit, Persistent, Navigation, Tabs, RoleManager,
def __len__(self): def __len__(self):
return 1 return 1
_mainUser=HTMLFile('mainUser', globals()) _mainUser=HTMLFile('dtml/mainUser', globals())
_add_User=HTMLFile('addUser', globals(), _add_User=HTMLFile('dtml/addUser', globals(),
remote_user_mode__=_remote_user_mode) remote_user_mode__=_remote_user_mode)
_editUser=HTMLFile('editUser', globals(), _editUser=HTMLFile('dtml/editUser', globals(),
remote_user_mode__=_remote_user_mode) remote_user_mode__=_remote_user_mode)
manage=manage_main=_mainUser 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"> <dtml-var manage_page_header>
<HTML lang="en"> <dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<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> <p class="form-help">
The listing below shows the current security settings for this item. The listing below shows the current security settings for this item.
Permissions are rows and roles are columns. Checkboxes are used to Permissions are rows and roles are columns. Checkboxes are used to
indicate where roles are assigned permissions. You can also assign indicate where roles are assigned permissions. You can also assign
<strong><a href="manage_listLocalRoles">local roles</a></strong> to <strong><a href="manage_listLocalRoles">local roles</a></strong> to
users, which give users extra roles in the context of this object and users, which give users extra roles in the context of this object and
its subobjects. its subobjects.
</P> </p>
<P>
<p class="form-help">
When a role is assigned to a permission, users with the given role 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 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 then the containing objects's permission settings are used. Note: the
acquired permission settings may be augmented by selecting Roles for acquired permission settings may be augmented by selecting Roles for
a permission in addition to selecting to acquire permissions. a permission in addition to selecting to acquire permissions.
</P> </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>
<dtml-with expr="_.namespace(valid_roles=valid_roles())"> <dtml-with expr="_.namespace(valid_roles=valid_roles())">
<FORM ACTION="manage_changePermissions" METHOD="POST"> <form action="manage_changePermissions" method="post">
<TABLE>
<TR> <table width="100%" cellspacing="0" cellpadding="2" border="0" nowrap>
<tr class="list-header">
<dtml-unless isTopLevelPrincipiaApplicationObject> <dtml-unless isTopLevelPrincipiaApplicationObject>
<TD></TD> <td>&nbsp;</td>
</dtml-unless> </dtml-unless>
<TD> <td align="left" valign="top">
<STRONG> <div class="form-label">
Permission <strong>Permission</strong>
</STRONG> </div>
</TD> </td>
<TD ALIGN="LEFT" COLSPAN="<dtml-var expr="_.len(valid_roles)">"> <td align="left" colspan="<dtml-var expr="_.len(valid_roles)">">
<STRONG> <div class="form-label">
Roles <strong>Roles</strong>
</STRONG> </div>
</TD> </td>
</TR> </tr>
<TR>
<tr class="row-normal">
<dtml-unless isTopLevelPrincipiaApplicationObject> <dtml-unless isTopLevelPrincipiaApplicationObject>
<TD> <td align="left" valign="top">
<STRONG> <div class="form-label">
<strong>
<a href="manage_acquiredForm">Acquire<BR>permission<BR>settings</a>? <a href="manage_acquiredForm">Acquire<BR>permission<BR>settings</a>?
</STRONG> </strong>
</TD> </div>
</td>
</dtml-unless> </dtml-unless>
<TD></TD> <td></td>
<dtml-in valid_roles> <dtml-in valid_roles>
<TD CLASS="bold"> <td align="left">
<A HREF="manage_roleForm?role_to_manage=<dtml- <div class="list-item">
var sequence-item url_quote>"><dtml-var sequence-item></A> <a href="manage_roleForm?role_to_manage=<dtml-var
</TD> sequence-item url_quote>"><dtml-var sequence-item></a>
</div>
</td>
</dtml-in valid_roles> </dtml-in valid_roles>
</TR> </tr>
<dtml-in permission_settings mapping> <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> <dtml-unless isTopLevelPrincipiaApplicationObject>
<TD ALIGN="CENTER"> <td align="left" valign="top">
<INPUT TYPE="checkbox" NAME="a<dtml-var sequence-index>" <input type="checkbox" name="a<dtml-var sequence-index>" <dtml-var
<dtml-var acquire>> acquire> />
</TD> </td>
</dtml-unless> </dtml-unless>
<TD ALIGN="LEFT"> <td align="left" nowrap>
<A HREF="manage_permissionForm?permission_to_manage=<dtml- <div class="list-item">
var name url_quote>"> <a href="manage_permissionForm?permission_to_manage=<dtml-var
<dtml-var name></A> name url_quote>"><dtml-var name></a>
</TD> </div>
</td>
<dtml-in roles mapping> <dtml-in roles mapping>
<TD ALIGN="CENTER"> <td align="center">
<INPUT TYPE="CHECKBOX" NAME="<dtml-var name>" <dtml-var checked>> <input type="checkbox" name="<dtml-var name>" <dtml-var checked> />
</TD> </td>
</dtml-in> </dtml-in>
</TR> </tr>
</dtml-in permission_settings> </dtml-in permission_settings>
<TR>
<tr>
<dtml-if isTopLevelPrincipiaApplicationObject> <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> <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> </dtml-if>
<INPUT TYPE="SUBMIT" VALUE="Change"> <div class="form-element">
</TD> <input class="form-element" type="submit" name="submit" value="Save Changes" />
</TR> </div>
</TABLE> </td>
</FORM> </tr>
</table>
</form>
</dtml-with> </dtml-with>
<dtml-if "_['id'] != 'acl_users'"> <dtml-if "_['id'] != 'acl_users'">
<P> <p class="form-help" >
<FORM ACTION="manage_defined_roles" METHOD="POST"> You can define new roles by entering a role name and clicking the
<TABLE CELLPADDING="2"> &quot;Add Role&quot; button.
<TR> </p>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG> <form action="manage_defined_roles" method="post">
<table cellpadding="2">
<tr>
<td align="left" valign="top">
<div class="form-label">
User defined roles User defined roles
</STRONG> </td>
</TD> <td align="left" valign="top">
<TD ALIGN="LEFT" VALIGN="TOP"> &nbsp;
</TD> </td>
</TR> </tr>
<TR> <tr>
<TD ALIGN="LEFT" VALIGN="TOP"> <td align="left" valign="top">
<INPUT TYPE="TEXT" NAME="role" SIZE="16"> <input type="text" name="role" size="16" value="" />
</TD> </td>
<TD ALIGN="LEFT" VALIGN="TOP"> <td align="left" valign="top">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add Role"> <div class="form-element">
</TD> <input class="form-element" type="submit" name="submit" value="Add Role" />
</TR> </div>
</td>
</tr>
<dtml-if userdefined_roles> <dtml-if userdefined_roles>
<TR> <tr>
<TD ALIGN="LEFT" VALIGN="TOP"> <td align="left" valign="top">
<SELECT NAME="roles:list"> <div class="form-element">
<select name="roles:list">
<dtml-in userdefined_roles> <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> </dtml-in userdefined_roles>
</SELECT> </select>
</TD> </div>
<TD ALIGN="LEFT" VALIGN="TOP"> </td>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Delete Role"> <td align="left" valign="top">
</TD> <div class="form-element">
</TR> <input class="form-element" type="submit" name="submit"
value="Delete Role" />
</div>
</td>
</tr>
</dtml-if userdefined_roles> </dtml-if userdefined_roles>
</TABLE> </table>
</FORM> </form>
</dtml-if> </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"> <dtml-var manage_page_header>
<html lang="en"> <dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<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>
<p> <p class="form-help">
<strong>Local roles</strong> allow you to give particular users extra roles Local roles allow you to give particular users extra roles in the
in the context of this object, in addition to the roles they already have. context of this object, in addition to the roles they already have.
</p> </p>
<p> <p class="form-help">
To change the local roles for this user, select the extra roles this 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> user should have in the context of this object and click the <em>
button. Save Changes</em> button.
</p> </p>
<form action="manage_setLocalRoles" method="POST"> <form action="manage_setLocalRoles" method="post">
<table cellspacing="2" border="0"> <table cellspacing="0" cellpadding="2" border="0">
<tr> <tr>
<td align="left" valign="top"> <td align="left" valign="top">
<strong>User</strong> <div class="form-label">User</div>
<br>
<dtml-var userid>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<strong>Roles</strong> <div class="form-label">Roles</div>
<br> </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>"> <input type="hidden" name="userid" value="<dtml-var userid html_quote>">
<dtml-with "_(user_roles=get_local_roles_for_userid(userid))"> <dtml-with "_(user_roles=get_local_roles_for_userid(userid))">
<select name="roles:list" size="5" multiple> <select name="roles:list" size="5" multiple>
...@@ -43,16 +40,17 @@ sequence-item> ...@@ -43,16 +40,17 @@ sequence-item>
</dtml-in> </dtml-in>
</select> </select>
</dtml-with> </dtml-with>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="left" valign="top"> <td align="left" valign="top" colspan="2">
<input type="submit" value="Change"> <div class="form-element">
<input class="form-element" type="submit" value="Save Changes" />
</div>
</td> </td>
<td></td>
</tr> </tr>
</table> </table>
</form> </form>
</body> <dtml-var manage_page_footer>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <dtml-var manage_page_header>
<HTML lang="en">
<HEAD>
<TITLE>Change User</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Change User</H2> <dtml-var "manage_form_title(this(), _,
form_title='Change User',
<dtml-var "HelpSys.HelpButton('User-Folder_Edit-User.stx','OFSP')"> help_product='OFSP',
help_topic='User-Folder_Edit-User.stx'
)">
<FORM ACTION="manage_users" METHOD="POST"> <FORM ACTION="manage_users" METHOD="POST">
<TABLE> <TABLE>
<TR> <TR>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<STRONG>Name</STRONG> <div class="form-label">
Name
</div>
</TD> </TD>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<div class="form-text">
<dtml-var expr="user.name"> <dtml-var expr="user.name">
</div>
</TD> </TD>
</TR> </TR>
<TR><TD COLSPAN=2>&nbsp;</TD></TR> <TR><TD COLSPAN=2>&nbsp;</TD></TR>
<dtml-if remote_user_mode__> <dtml-if remote_user_mode__>
<INPUT TYPE="HIDDEN" NAME="password" value="<dtml-var password html_quote>"> <INPUT TYPE="HIDDEN" NAME="password" value="<dtml-var
<INPUT TYPE="HIDDEN" NAME="confirm" value="<dtml-var password html_quote>"> password html_quote>" />
<INPUT TYPE="HIDDEN" NAME="confirm" value="<dtml-var
password html_quote>" />
<dtml-else> <dtml-else>
<TR> <TR>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<STRONG>New Password</STRONG> <div class="form-label">
New Password
</div>
</TD> </TD>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="password" SIZE="40" value="password"> <INPUT TYPE="PASSWORD" NAME="password" SIZE="30" value="password" />
</TD> </TD>
</TR> </TR>
<TR> <TR>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<STRONG>(Confirm)</STRONG> <div class="form-label">
(Confirm)
</div>
</TD> </TD>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="confirm" SIZE="40" value="confirm"> <INPUT TYPE="PASSWORD" NAME="confirm" SIZE="30" value="confirm" />
</TD> </TD>
</TR> </TR>
</dtml-if> </dtml-if>
<TR><TD COLSPAN=2>&nbsp;</TD></TR>
<TR> <TR>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<STRONG>Domains</STRONG> <div class="form-optional">
Domains
</div>
</TD> </TD>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="domains:tokens" SIZE="40" <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>"> VALUE="<dtml-if expr="user.domains"><dtml-in expr="user.domains"><dtml-var sequence-item html_quote> </dtml-in></dtml-if>" />
</TD> </TD>
</TR> </TR>
<TR> <TR>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<STRONG>Roles</STRONG> <div class="form-label">
Roles
</div>
</TD> </TD>
<TD VALIGN="TOP"> <TD VALIGN="TOP">
<div class="form-element">
<SELECT NAME="roles:list" SIZE="5" MULTIPLE> <SELECT NAME="roles:list" SIZE="5" MULTIPLE>
<dtml-in valid_roles> <dtml-in valid_roles>
<dtml-if expr="_vars['sequence-item'] != 'Anonymous'"> <dtml-if expr="_vars['sequence-item'] != 'Anonymous'">
<dtml-if expr="_vars['sequence-item'] != 'Shared'"> <dtml-if expr="_vars['sequence-item'] != 'Shared'">
<dtml-if expr="_vars['sequence-item'] in user.roles"> <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> <dtml-else>
<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-if> </dtml-if>
...@@ -70,12 +82,15 @@ ...@@ -70,12 +82,15 @@
</dtml-if> </dtml-if>
</dtml-in valid_roles> </dtml-in valid_roles>
</SELECT> </SELECT>
<INPUT TYPE="HIDDEN" NAME="name" VALUE="<dtml-var expr="user.name" html_quote>">
<BR> <INPUT TYPE="HIDDEN" NAME="name" VALUE="<dtml-var
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Change"> expr="user.name" html_quote>" />
<br /><br />
<INPUT class="form-element" TYPE="SUBMIT" NAME="submit" VALUE="Change" />
</div>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
</FORM> </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"> <dtml-var manage_page_header>
<html lang="en"> <dtml-if manage_tabs><dtml-var manage_tabs></dtml-if>
<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-if stat> <dtml-if stat>
<hr> <hr>
...@@ -14,29 +7,33 @@ ...@@ -14,29 +7,33 @@
<hr> <hr>
</dtml-if> </dtml-if>
<p> <p class="form-help">
<strong>Local roles</strong> allow you to give particular users extra roles Local roles allow you to give particular users extra roles in the context
in the context of this object, in addition to the roles they already have. of this object, in addition to the roles they already have.
</p>
<dtml-if has_local_roles> <dtml-if has_local_roles>
<br> <p class="form-help">
The following users have been given local roles. To modify the local roles 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 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 local roles from a user, select the checkbox next to the name of the user
and click the <em>Remove</em> button. and click the <em>Remove</em> button.
</p> </p>
<form action="manage_delLocalRoles" method="POST"> <form action="manage_delLocalRoles" method="POST">
<table cellspacing="2" border="0"> <table cellspacing="0" cellpadding="2" border="0">
<dtml-in get_local_roles> <dtml-in get_local_roles>
<tr> <tr>
<td align="left" valign="top"> <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>
<td align="left" valign="top"> <td align="left" valign="top">
<div class="form-text">
<a href="manage_editLocalRoles?userid=<dtml-var sequence-key <a href="manage_editLocalRoles?userid=<dtml-var sequence-key
fmt="url-quote">"><dtml-var sequence-key></a> (<dtml-in fmt="url-quote">"><dtml-var sequence-key></a> (<dtml-in
sequence-item><dtml-var sequence-item><dtml-unless sequence-item><dtml-var sequence-item><dtml-unless
sequence-end>, </dtml-unless></dtml-in>) sequence-end>, </dtml-unless></dtml-in>)
</div>
</td> </td>
</tr> </tr>
</dtml-in> </dtml-in>
...@@ -44,7 +41,9 @@ and click the <em>Remove</em> button. ...@@ -44,7 +41,9 @@ and click the <em>Remove</em> button.
<td align="left" valign="top"> <td align="left" valign="top">
</td> </td>
<td align="left" valign="top"> <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> </td>
</tr> </tr>
</table> </table>
...@@ -55,43 +54,55 @@ and click the <em>Remove</em> button. ...@@ -55,43 +54,55 @@ and click the <em>Remove</em> button.
To give a user extra roles when accessing this object (and its children), 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 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. roles that should be given to that user from the <em>Roles</em> list.
</p>
<form action="manage_setLocalRoles" method="POST"> <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> <tr>
<td align="left" valign="top"> <td align="left" valign="top">
<strong>User</strong> <div class="form-element">
<br>
<select name="userid" size="5"> <select name="userid" size="5">
<dtml-in get_valid_userids> <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> </dtml-in>
</select> </select>
</div>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<strong>Roles</strong> <div class="form-element">
<br>
<select name="roles:list" size="5" multiple> <select name="roles:list" size="5" multiple>
<dtml-in valid_roles><dtml-if <dtml-in valid_roles><dtml-if
"_vars['sequence-item'] not in ('Anonymous', 'Shared')"> "_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-if>
</dtml-in> </dtml-in>
</select> </select>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="left" valign="top"> <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></td> <td></td>
</tr> </tr>
</table> </table>
</form> </form>
<dtml-var manage_page_footer>
</body>
</html>
<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 @@ ...@@ -83,7 +83,7 @@
# #
############################################################################## ##############################################################################
__doc__="""System management components""" __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 import sys,os,time,string,Globals, Acquisition, os, Undo
...@@ -107,7 +107,7 @@ class Fake: ...@@ -107,7 +107,7 @@ class Fake:
class DatabaseManager(Fake, SimpleItem.Item, Acquisition.Implicit): class DatabaseManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Database management""" """Database management"""
manage=manage_main=HTMLFile('dbMain', globals()) manage=manage_main=HTMLFile('dtml/dbMain', globals())
id ='DatabaseManagement' id ='DatabaseManagement'
name=title='Database Management' name=title='Database Management'
meta_type ='Database Management' meta_type ='Database Management'
...@@ -128,7 +128,7 @@ Globals.default__class_init__(DatabaseManager) ...@@ -128,7 +128,7 @@ Globals.default__class_init__(DatabaseManager)
class VersionManager(Fake, SimpleItem.Item, Acquisition.Implicit): class VersionManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Version management""" """Version management"""
manage=manage_main=HTMLFile('versionManager', globals()) manage=manage_main=HTMLFile('dtml/versionManager', globals())
id ='Versions' id ='Versions'
name=title='Version Management' name=title='Version Management'
meta_type ='Version Management' meta_type ='Version Management'
...@@ -152,7 +152,7 @@ _v_rst=None ...@@ -152,7 +152,7 @@ _v_rst=None
class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit): class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
"""Debug and profiling information""" """Debug and profiling information"""
manage=manage_main=HTMLFile('debug', globals()) manage=manage_main=HTMLFile('dtml/debug', globals())
id ='DebugInfo' id ='DebugInfo'
name=title='Debug Information' name=title='Debug Information'
meta_type = name meta_type = name
...@@ -166,7 +166,7 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit): ...@@ -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))): def refcount(self, n=None, t=(type(Fake), type(Acquisition.Implicit))):
# return class reference info # return class reference info
...@@ -230,7 +230,7 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit): ...@@ -230,7 +230,7 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
# Profiling support # Profiling support
manage_profile=HTMLFile('profile', globals()) manage_profile=HTMLFile('dtml/profile', globals())
def manage_profile_stats(self, sort='time', limit=200): def manage_profile_stats(self, sort='time', limit=200):
"""Return profile data if available""" """Return profile data if available"""
...@@ -259,8 +259,8 @@ class ApplicationManager(Folder,CacheManager): ...@@ -259,8 +259,8 @@ class ApplicationManager(Folder,CacheManager):
Versions= VersionManager() Versions= VersionManager()
DebugInfo=DebugManager() DebugInfo=DebugManager()
manage=manage_main=HTMLFile('cpContents', globals()) manage=manage_main=HTMLFile('dtml/cpContents', globals())
manage_undoForm=HTMLFile('undo', globals()) manage_undoForm=HTMLFile('dtml/undo', globals())
def version_txt(self): def version_txt(self):
if not hasattr(self, '_v_version_txt'): if not hasattr(self, '_v_version_txt'):
......
...@@ -85,8 +85,8 @@ ...@@ -85,8 +85,8 @@
__doc__='''Cache management support __doc__='''Cache management support
$Id: CacheManager.py,v 1.18 2000/05/23 15:38:43 brian Exp $''' $Id: CacheManager.py,v 1.19 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.18 $'[11:-2] __version__='$Revision: 1.19 $'[11:-2]
import Globals, time, sys import Globals, time, sys
...@@ -98,8 +98,8 @@ class CacheManager: ...@@ -98,8 +98,8 @@ class CacheManager:
_vcache_age=60 _vcache_age=60
_vcache_size=400 _vcache_size=400
manage_cacheParameters=Globals.HTMLFile('cacheParameters', globals()) manage_cacheParameters=Globals.HTMLFile('dtml/cacheParameters', globals())
manage_cacheGC=Globals.HTMLFile('cacheGC', globals()) manage_cacheGC=Globals.HTMLFile('dtml/cacheGC', globals())
def cache_length(self): def cache_length(self):
try: db=self._p_jar.db() try: db=self._p_jar.db()
......
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
############################################################################## ##############################################################################
__doc__='''Factory objects __doc__='''Factory objects
$Id: Factory.py,v 1.22 2000/08/14 15:08:37 shane Exp $''' $Id: Factory.py,v 1.23 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.22 $'[11:-2] __version__='$Revision: 1.23 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, AccessControl.Role import OFS.SimpleItem, Acquisition, Globals, AccessControl.Role
import Products, Product import Products, Product
...@@ -171,7 +171,7 @@ class Factory( ...@@ -171,7 +171,7 @@ class Factory(
product.aq_acquire('_manage_remove_product_meta_type')( product.aq_acquire('_manage_remove_product_meta_type')(
product, self.id, self.object_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): def index_html(self, REQUEST):
" " " "
......
...@@ -85,9 +85,9 @@ ...@@ -85,9 +85,9 @@
"""Standard management interface support """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 import sys, Globals, ExtensionClass, urllib
from Dialogs import MessageDialog from Dialogs import MessageDialog
...@@ -99,7 +99,7 @@ class Tabs(ExtensionClass.Base): ...@@ -99,7 +99,7 @@ class Tabs(ExtensionClass.Base):
"""Mix-in provides management folder tab support.""" """Mix-in provides management folder tab support."""
manage_tabs__roles__=('Anonymous',) manage_tabs__roles__=('Anonymous',)
manage_tabs =HTMLFile('manage_tabs', globals()) manage_tabs=HTMLFile('dtml/manage_tabs', globals())
manage_options =() manage_options =()
...@@ -195,16 +195,50 @@ class Tabs(ExtensionClass.Base): ...@@ -195,16 +195,50 @@ class Tabs(ExtensionClass.Base):
Globals.default__class_init__(Tabs) Globals.default__class_init__(Tabs)
class Navigation(ExtensionClass.Base): 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__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) Globals.default__class_init__(Navigation)
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
############################################################################## ##############################################################################
__doc__='''Zope registerable permissions __doc__='''Zope registerable permissions
$Id: Permission.py,v 1.4 2000/06/20 01:59:40 amos Exp $''' $Id: Permission.py,v 1.5 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.4 $'[11:-2] __version__='$Revision: 1.5 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, ExtensionClass, AccessControl.Role import OFS.SimpleItem, Acquisition, Globals, ExtensionClass, AccessControl.Role
...@@ -138,7 +138,7 @@ class Permission( ...@@ -138,7 +138,7 @@ class Permission(
product.aq_acquire('_manage_remove_product_permission')( product.aq_acquire('_manage_remove_product_permission')(
product, self.name) product, self.name)
manage_main=Globals.HTMLFile('editPermission',globals()) manage_main=Globals.HTMLFile('dtml/editPermission',globals())
index_html=None index_html=None
...@@ -153,7 +153,7 @@ class PermissionManager(ExtensionClass.Base): ...@@ -153,7 +153,7 @@ class PermissionManager(ExtensionClass.Base):
'name': Permission.meta_type, 'action': 'manage_addPermissionForm' 'name': Permission.meta_type, 'action': 'manage_addPermissionForm'
}, },
manage_addPermissionForm=Globals.HTMLFile('addPermission',globals()) manage_addPermissionForm=Globals.HTMLFile('dtml/addPermission',globals())
def manage_addPermission( def manage_addPermission(
self, id, title, permission, REQUEST=None): self, id, title, permission, REQUEST=None):
' ' ' '
......
...@@ -134,7 +134,7 @@ class ProductFolder(Folder): ...@@ -134,7 +134,7 @@ class ProductFolder(Folder):
def _product(self, name): return getattr(self, name) 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): def manage_addProduct(self, id, title, REQUEST=None):
' ' ' '
i=Product(id, title) i=Product(id, title)
...@@ -190,7 +190,8 @@ class Product(Folder, PermissionManager): ...@@ -190,7 +190,8 @@ class Product(Folder, PermissionManager):
) )
) )
manage_distributionView=Globals.HTMLFile('distributionView',globals()) manage_distributionView=Globals.HTMLFile(
'dtml/distributionView',globals())
_properties=Folder._properties+( _properties=Folder._properties+(
{'id':'version', 'type': 'string'}, {'id':'version', 'type': 'string'},
...@@ -198,7 +199,8 @@ class Product(Folder, PermissionManager): ...@@ -198,7 +199,8 @@ class Product(Folder, PermissionManager):
_reserved_names=('Help',) _reserved_names=('Help',)
manage_addPrincipiaFactoryForm=Globals.HTMLFile('addFactory',globals()) manage_addPrincipiaFactoryForm=Globals.HTMLFile(
'dtml/addFactory',globals())
def manage_addPrincipiaFactory( def manage_addPrincipiaFactory(
self, id, title, object_type, initial, permission=None, REQUEST=None): self, id, title, object_type, initial, permission=None, REQUEST=None):
' ' ' '
...@@ -314,8 +316,8 @@ class Product(Folder, PermissionManager): ...@@ -314,8 +316,8 @@ class Product(Folder, PermissionManager):
Distributions=Distributions() Distributions=Distributions()
manage_traceback=Globals.HTMLFile('traceback',globals()) manage_traceback=Globals.HTMLFile('dtml/traceback',globals())
manage_readme=Globals.HTMLFile('readme',globals()) manage_readme=Globals.HTMLFile('dtml/readme',globals())
def manage_get_product_readme__(self): def manage_get_product_readme__(self):
try: try:
return open(os.path.join(self.home, 'README.txt')).read() return open(os.path.join(self.home, 'README.txt')).read()
......
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
############################################################################## ##############################################################################
__doc__='''short description __doc__='''short description
$Id: Undo.py,v 1.22 2000/06/16 19:45:05 srichter Exp $''' $Id: Undo.py,v 1.23 2001/01/08 22:46:56 brian Exp $'''
__version__='$Revision: 1.22 $'[11:-2] __version__='$Revision: 1.23 $'[11:-2]
import Globals, ExtensionClass import Globals, ExtensionClass
from DateTime import DateTime from DateTime import DateTime
...@@ -96,7 +96,8 @@ class UndoSupport(ExtensionClass.Base): ...@@ -96,7 +96,8 @@ class UndoSupport(ExtensionClass.Base):
__ac_permissions__=( __ac_permissions__=(
('Undo changes', ( ('Undo changes', (
'manage_undo_transactions', 'undoable_transactions', 'manage_undo_transactions',
'undoable_transactions',
'manage_UndoForm', 'manage_UndoForm',
)), )),
) )
...@@ -107,9 +108,12 @@ class UndoSupport(ExtensionClass.Base): ...@@ -107,9 +108,12 @@ class UndoSupport(ExtensionClass.Base):
) )
manage_UndoForm=Globals.HTMLFile( manage_UndoForm=Globals.HTMLFile(
'undo', globals(), 'dtml/undo',
globals(),
PrincipiaUndoBatchSize=20, PrincipiaUndoBatchSize=20,
first_transaction=0, last_transaction=20) first_transaction=0,
last_transaction=20
)
def get_request_var_or_attr(self, name, default): def get_request_var_or_attr(self, name, default):
if hasattr(self, 'REQUEST'): 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"> <dtml-var manage_page_header>
<HTML lang="en">
<HEAD>
<TITLE>Cache</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs> <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> <tr>
<td colspan="2">
<br />&nbsp;
<table> </td>
</tr>
<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>
</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> <dtml-if cacheStatistics>
...@@ -80,5 +106,5 @@ of this text. ...@@ -80,5 +106,5 @@ of this text.
</table> </table>
</dtml-if> </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"> <dtml-var manage_page_header>
<HTML lang="en">
<HEAD>
<TITLE>Cache</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs> <dtml-var manage_tabs>
<h2>Cache Parameters and Statistics</h2>
<table> <table>
<tr><th align=left>Total number of objects in the database</th> <tr>
<td><dtml-var database_size></td></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> <tr>
<td><dtml-var cache_length></td></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> <tr>
<form action="<dtml-var URL1>/manage_cache_size" method=GET> <td align="left">
<input type="text" name="value:int" value="<dtml-var cache_size html_quote>" size=6> <div class="form-label">
<input type="submit" value="Change"> Target Size
</form></td></tr> </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> <tr>
<form action="<dtml-var URL1>/manage_cache_age" method=GET> <td align="left">
<input type="text" name="value:int" value="<dtml-var cache_age html_quote>" size=6> <div class="form-label">
<input type="submit" value="Change"> Target max time between accesses
</form></td></tr> </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> <dtml-in cacheStatistics>
<tr><th align=left><dtml-var sequence-key></th> <tr>
<td><dtml-var sequence-item></td> <th align=left>
<dtml-var sequence-key>
</th>
<td>
<dtml-var sequence-item>
</td>
</tr> </tr>
</dtml-in> </dtml-in>
</table> </table>
<dtml-if show_cache_detail> <dtml-if show_cache_detail>
...@@ -39,7 +79,8 @@ ...@@ -39,7 +79,8 @@
<table border><tr><th>Object Class</th><th>Count</th></tr> <table border><tr><th>Object Class</th><th>Count</th></tr>
<dtml-in cache_detail> <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> </dtml-in>
</table> </table>
</dtml-if> </dtml-if>
...@@ -62,5 +103,5 @@ ...@@ -62,5 +103,5 @@
</table> </table>
</dtml-if> </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"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en"> <html>
<HEAD> <head>
<TITLE>Copyright</TITLE> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</HEAD> <title>Zope Copyright</title>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555"> </head>
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099">
<P align="center"> <P align="center">
<a href="#ZPL">Zope License</a> | <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"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en"> <html>
<head> <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"> <style type="text/css">
<!-- <!--
.header { .header {
...@@ -16,13 +23,12 @@ font-size: 10pt; ...@@ -16,13 +23,12 @@ font-size: 10pt;
--> -->
</style> </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> </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-var manage_tabs>
<dtml-if update_snapshot> <dtml-if update_snapshot>
...@@ -100,5 +106,5 @@ Delta ...@@ -100,5 +106,5 @@ Delta
</p> </p>
</form> </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 @@ ...@@ -11,16 +11,17 @@
<dtml-call "REQUEST.set('a_', _['sequence-index'])"> <dtml-call "REQUEST.set('a_', _['sequence-index'])">
</dtml-if> </dtml-if>
</dtml-in> </dtml-in>
<table cellpadding="0" cellspacing="0" width="100%" border="0"> <table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr> <tr>
<td bgcolor="#003366" rowspan="5" width="10%" valign="bottom" <td bgcolor="#000000" rowspan="5" width="10%" valign="bottom"
align="left"><font face="Verdana, Arial, Helvetica" color="#ffffff" align="left">&nbsp;&nbsp;<img src="&dtml-BASEPATH1;/p_/sp"
size="1">&nbsp;&nbsp;<strong>Zope </strong></font><img width="2" height="1" alt="" />
src="&dtml-BASEPATH1;/p_/sp" width="2" height="1">
</td> </td>
<td bgcolor="#003366" colspan="<dtml-var "4 * (n_ + 1)">"><img <td bgcolor="#000000" colspan="<dtml-var "4 * (n_ + 1)">"><img
src="&dtml-BASEPATH1;/p_/sp" width="1" height="5"></td> src="&dtml-BASEPATH1;/p_/sp" width="1" height="5" alt="" /></td>
</tr> </tr>
<tr> <tr>
...@@ -28,49 +29,45 @@ ...@@ -28,49 +29,45 @@
<dtml-if "_['sequence-index']==a_"> <dtml-if "_['sequence-index']==a_">
<td bgcolor="#ffffff" rowspan="2" valign="top" <td bgcolor="#ffffff" rowspan="2" valign="top"
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5" 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" <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" <td bgcolor="#ffffff" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5" align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5"></td> height="5" alt="" /></td>
<td bgcolor="#003366" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp" <td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td> width="2" height="1" alt="" /></td>
<dtml-else> <dtml-else>
<td bgcolor="#efefef" rowspan="2" valign="top" <td bgcolor="#efefef" rowspan="2" valign="top"
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5" 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" <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" <td bgcolor="#efefef" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5" align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5"></td> height="5" alt="" /></td>
<td bgcolor="#003366" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp" <td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td> width="2" height="1" alt="" /></td>
</dtml-if> </dtml-if>
</dtml-in> </dtml-in>
</tr> </tr>
<tr> <tr>
<dtml-in manage_options mapping> <dtml-in manage_options mapping>
<dtml-if "_['sequence-index']==a_"> <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" align="center"><font face="Verdana, Arial, Helvetica"
size="1">&nbsp;<a size="1">&nbsp;<a <dtml-if
<dtml-if action>href="&dtml-action;" action>href="&dtml-action;"<dtml-else>href="&dtml-URL1;"</dtml-if
<dtml-else>href="&dtml-URL1;" ><dtml-if target> target="&dtml-target;"</dtml-if
</dtml-if> >><font color="#000000"><strong><dtml-var
<dtml-if target> target="&dtml-target;"</dtml-if>><font
color="#000000"><strong><dtml-var
label></strong></font></a>&nbsp;</font></td> label></strong></font></a>&nbsp;</font></td>
<dtml-else> <dtml-else>
<td bgcolor="#efefef" valign="bottom" <td bgcolor="#efefef" valign="bottom" class="tab-small"
align="center"><font face="Verdana, Arial, Helvetica" align="center"><font face="Verdana, Arial, Helvetica"
size="1">&nbsp;<a size="1">&nbsp;<a <dtml-if
<dtml-if action>href="&dtml-action;" action>href="&dtml-action;"<dtml-else>href="&dtml-URL1;"</dtml-if
<dtml-else>href="&dtml-URL1;" ><dtml-if target> target="&dtml-target;"</dtml-if
</dtml-if> >><font color="#000000"><strong><dtml-var
<dtml-if target> target="&dtml-target;"</dtml-if>><font
color="#000000"><strong><dtml-var
label></strong></font></a>&nbsp;</font></td> label></strong></font></a>&nbsp;</font></td>
</dtml-if> </dtml-if>
</dtml-in> </dtml-in>
...@@ -79,10 +76,10 @@ ...@@ -79,10 +76,10 @@
<dtml-in manage_options> <dtml-in manage_options>
<dtml-if "_['sequence-index']==a_"> <dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp" <td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td> width="2" height="1" alt="" /></td>
<dtml-else> <dtml-else>
<td colspan="3" bgcolor="#efefef"><img src="&dtml-BASEPATH1;/p_/sp" <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-if>
</dtml-in> </dtml-in>
</tr> </tr>
...@@ -90,30 +87,25 @@ ...@@ -90,30 +87,25 @@
<dtml-in manage_options> <dtml-in manage_options>
<dtml-if "_['sequence-index']==a_"> <dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp" <td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1"></td> width="2" height="1" alt="" /></td>
<dtml-else> <dtml-else>
<td colspan="3" bgcolor="#c0c0c0"><img src="&dtml-BASEPATH1;/p_/sp" <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-if>
</dtml-in> </dtml-in>
</tr> </tr>
</table> </table>
</dtml-if> </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> <dtml-unless MANAGE_TABS_NO_BANNER>
<br />
<table width="100%" cellspacing="0" cellpadding="2" border="0"> <table width="100%" cellspacing="0" cellpadding="2" border="0">
<tr> <tr class="location-bar">
<td align="left" valign="top"> <td align="left" valign="top">
<div class="std-text">
<dtml-if icon> <dtml-if icon>
<img src="&dtml-BASEPATH1;/&dtml-icon;" <img src="&dtml-BASEPATH1;/&dtml-icon;"
alt="&dtml-meta_type;" border="0"> alt="&dtml-meta_type;" border="0" />
<strong> <strong>
</dtml-if> </dtml-if>
<dtml-if meta_type> <dtml-if meta_type>
...@@ -125,40 +117,50 @@ ...@@ -125,40 +117,50 @@
</strong> </strong>
<dtml-if locked_in_version> <dtml-if locked_in_version>
<dtml-if modified_in_version> <dtml-if modified_in_version>
<IMG SRC="&dtml-BASEPATH1;/p_/locked" <img src="&dtml-BASEPATH1;/p_/locked"
ALT="This item has been modified in this version"> alt="This item has been modified in this version" />
<dtml-else> <dtml-else>
<IMG SRC="&dtml-BASEPATH1;/p_/lockedo" <img src="&dtml-BASEPATH1;/p_/lockedo"
ALT="This item has been modified in another version"> alt="This item has been modified in another version" />
(<em><dtml-var locked_in_version></em>) (<em><dtml-var locked_in_version></em>)
</dtml-if> </dtml-if>
</dtml-if> </dtml-if>
</div>
</td> </td>
<dtml-if "_.has_key('help_topic') and _.has_key('help_product')"> <dtml-if "_.has_key('help_topic') and _.has_key('help_product')">
<td align="right" valign="top"> <td align="right" valign="top">
<dtml-var "HelpSys.button(HelpSys, REQUEST, <div class="std-text">
product=help_product, <dtml-var "HelpSys.helpLink(help_product, help_topic)">
topic=help_topic)"> </div>
</td> </td>
<dtml-else> <dtml-else>
<dtml-if manage_options> <dtml-if manage_options>
<dtml-with "_(option=manage_options[a_])"> <dtml-with "_(option=manage_options[a_])">
<dtml-if "option.has_key('help')"> <dtml-if "option.has_key('help')">
<td align="right" valign="top"> <td align="right" valign="top">
<dtml-var "HelpSys.button(HelpSys, REQUEST, <div class="std-text">
product=option['help'][0], <dtml-var "HelpSys.helpLink(option['help'][0], option['help'][1])">
topic=option['help'][1])"> </div>
</td> </td>
</dtml-if></dtml-with></dtml-if>
</dtml-if> </dtml-if>
</dtml-with>
</dtml-if>
</dtml-if>
</tr> </tr>
</table> </table>
<dtml-if Zope-Version>
<p> <dtml-if Zope-Version>
<em>You are currently working in version &dtml-Zope-Version;</em> <div class="system-msg">
</p> <em>You are currently working in version &dtml-Zope-Version;</em>
</dtml-if> </div>
</dtml-if>
</dtml-unless> </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> </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"> <dtml-var manage_page_header>
<html lang="en"> <dtml-var manage_tabs>
<head>
<title>Profiler Information</title> <dtml-let sort="REQUEST.get('sort', 'time')"
<style type="text/css"> limit="REQUEST.get('limit', 100)"
<!-- stats="manage_profile_stats(sort, limit)">
.header { <dtml-if stats>
font-weight: bold; <form action="<dtml-var URL>" method="POST">
font-size: 10pt; <table>
} <tr>
<td><strong>Sort</strong>:
.cell { <select name="sort">
font-size: 10pt; <dtml-in "('time', 'cumulative', 'calls', 'pcalls',
} 'name', 'file', 'module', 'line',
'nfl', 'stdname')">
--> <option value="<dtml-var sequence-item>"<dtml-if
</style> "sort==_['sequence-item']"> selected</dtml-if>><dtml-var
</head> sequence-item>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555"> </dtml-in>
<dtml-var manage_tabs> </select>
</td>
<h3>Profile Information</h3> <td><strong>Limit</strong>:
<p> <select name="limit:int">
<dtml-in "(100, 200, 300, 400, 500)">
<dtml-let sort="REQUEST.get('sort', 'time')" <option value="<dtml-var sequence-item>"<dtml-if
limit="REQUEST.get('limit', 100)" "limit==_['sequence-item']"> selected</dtml-if>><dtml-var
stats="manage_profile_stats(sort, limit)"> sequence-item>
<dtml-if stats> </dtml-in>
<form action="<dtml-var URL>" method="POST"> </select>
<table> </td>
<tr> <td>
<td><strong>Sort</strong>: <input type="submit" name="submit" value="Update">
<select name="sort"> </td>
<dtml-in "('time', 'cumulative', 'calls', 'pcalls', </tr>
'name', 'file', 'module', 'line', </table>
'nfl', 'stdname')"> </form>
<option value="<dtml-var sequence-item>"<dtml-if <hr>
"sort==_['sequence-item']"> selected</dtml-if>><dtml-var <pre>
sequence-item> <dtml-var stats>
</dtml-in> </pre>
</select>
</td> <dtml-else>
<td><strong>Limit</strong>: <em>
<select name="limit:int"> Profiling is not currently enabled or there is not yet any profiling
<dtml-in "(100, 200, 300, 400, 500)"> data to report. To enable profiling, restart the Zope process with
<option value="<dtml-var sequence-item>"<dtml-if the environment variable PROFILE_PUBLISHER defined. The value of this
"limit==_['sequence-item']"> selected</dtml-if>><dtml-var variable should be the full system path to a file that will be used
sequence-item> to dump a profile report when the process restarts or exits.
</dtml-in> </em>
</select> </dtml-if>
</td> </dtml-let>
<td>
<input type="submit" name="submit" value="Update"> <dtml-var manage_page_footer>
</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-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,): ...@@ -105,7 +105,8 @@ class HTMLFile(DocumentTemplate.HTMLFile,MethodObject.Method,):
elif type(_prefix) is not type(''): elif type(_prefix) is not type(''):
_prefix=Common.package_home(_prefix) _prefix=Common.package_home(_prefix)
args=(self, os.path.join(_prefix, name + '.dtml')) 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) apply(HTMLFile.inheritedAttribute('__init__'),args,kw)
def __call__(self, *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 @@ ...@@ -382,11 +382,11 @@
''' #' ''' #'
__rcs_id__='$Id: DT_In.py,v 1.42 2000/12/18 22:59:06 adam Exp $' __rcs_id__='$Id: DT_In.py,v 1.43 2001/01/08 22:46:57 brian Exp $'
__version__='$Revision: 1.42 $'[11:-2] __version__='$Revision: 1.43 $'[11:-2]
from DT_Util import ParseError, parse_params, name_param, str 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 from string import find, atoi, join, split
import ts_regex import ts_regex
from DT_InSV import sequence_variables, opt from DT_InSV import sequence_variables, opt
...@@ -408,6 +408,7 @@ class InClass: ...@@ -408,6 +408,7 @@ class InClass:
expr=sort=batch=mapping=None expr=sort=batch=mapping=None
start_name_re=None start_name_re=None
reverse=None reverse=None
sort_expr=reverse_expr=None
def __init__(self, blocks): def __init__(self, blocks):
tname, args, section = blocks[0] tname, args, section = blocks[0]
...@@ -415,7 +416,7 @@ class InClass: ...@@ -415,7 +416,7 @@ class InClass:
orphan='3',overlap='1',mapping=1, orphan='3',overlap='1',mapping=1,
skip_unauthorized=1, skip_unauthorized=1,
previous=1, next=1, expr='', sort='', previous=1, next=1, expr='', sort='',
reverse=1) reverse=1, sort_expr='', reverse_expr='')
self.args=args self.args=args
has_key=args.has_key has_key=args.has_key
...@@ -423,6 +424,12 @@ class InClass: ...@@ -423,6 +424,12 @@ class InClass:
self.sort=sort=args['sort'] self.sort=sort=args['sort']
if sort=='sequence-item': self.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'): if has_key('reverse'):
self.reverse=args['reverse'] self.reverse=args['reverse']
...@@ -484,15 +491,21 @@ class InClass: ...@@ -484,15 +491,21 @@ class InClass:
raise 'InError', ( raise 'InError', (
'Strings are not allowed as input to the in tag.') 'Strings are not allowed as input to the in tag.')
section=self.section section=self.section
params=self.args params=self.args
mapping=self.mapping 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) 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) sequence=self.reverse_sequence(sequence)
next=previous=0 next=previous=0
...@@ -644,12 +657,18 @@ class InClass: ...@@ -644,12 +657,18 @@ class InClass:
section=self.section section=self.section
mapping=self.mapping 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) 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) sequence=self.reverse_sequence(sequence)
elif self.reverse is not None:
sequence=self.reverse_sequence(sequence)
vars=sequence_variables(sequence) vars=sequence_variables(sequence)
kw=vars.data kw=vars.data
kw['mapping']=mapping kw['mapping']=mapping
......
...@@ -126,7 +126,7 @@ class APIHelpTopic(HelpTopic.HelpTopic): ...@@ -126,7 +126,7 @@ class APIHelpTopic(HelpTopic.HelpTopic):
if not self.title: if not self.title:
self.title=self.apis[0].name self.title=self.apis[0].name
index_html=HTMLFile('APIHelpView', globals()) index_html=HTMLFile('dtml/APIHelpView', globals())
def SearchableText(self): def SearchableText(self):
"The full text of the Help Topic, for indexing purposes" "The full text of the Help Topic, for indexing purposes"
...@@ -190,7 +190,7 @@ class APIDoc(Persistent): ...@@ -190,7 +190,7 @@ class APIDoc(Persistent):
text="%s %s %s" % (text, method.name, method.doc) text="%s %s %s" % (text, method.name, method.doc)
return text return text
view=HTMLFile('APIView', globals()) view=HTMLFile('dtml/APIView', globals())
class AttributeDoc(Persistent): class AttributeDoc(Persistent):
...@@ -202,7 +202,7 @@ class AttributeDoc(Persistent): ...@@ -202,7 +202,7 @@ class AttributeDoc(Persistent):
self.name=name self.name=name
self.value=value self.value=value
view=HTMLFile('attributeView', globals()) view=HTMLFile('dtml/attributeView', globals())
class MethodDoc(Persistent): class MethodDoc(Persistent):
...@@ -249,7 +249,7 @@ class MethodDoc(Persistent): ...@@ -249,7 +249,7 @@ class MethodDoc(Persistent):
if func.func_code.co_flags & CO_VARKEYWORDS: if func.func_code.co_flags & CO_VARKEYWORDS:
self.kwargs=names[ix] self.kwargs=names[ix]
view=HTMLFile('methodView', globals()) view=HTMLFile('dtml/methodView', globals())
def trim_doc_string(text): def trim_doc_string(text):
......
...@@ -109,7 +109,8 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -109,7 +109,8 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
__ac_permissions__=( __ac_permissions__=(
('View', ('View',
('__call__', 'searchResults', 'HelpButton', '', ('__call__', 'searchResults', 'HelpButton', '',
'index_html', 'menu', 'search', 'results', 'main', )), 'index_html', 'menu', 'search', 'results', 'main',
'helpLink')),
('Access contents information', ('helpValues',)), ('Access contents information', ('helpValues',)),
) )
...@@ -145,15 +146,15 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -145,15 +146,15 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
searchResults=__call__ searchResults=__call__
index_html=HTMLFile('frame', globals()) index_html=HTMLFile('dtml/frame', globals())
menu=HTMLFile('menu', globals()) menu=HTMLFile('dtml/menu', globals())
search=HTMLFile('search', globals()) search=HTMLFile('dtml/search', globals())
results=HTMLFile('results', globals()) results=HTMLFile('dtml/results', globals())
main=HTML("""<html></html>""") main=HTML("""<html></html>""")
standard_html_header=HTMLFile('menu_header', globals()) standard_html_header=HTMLFile('dtml/menu_header', globals())
standard_html_footer=HTMLFile('menu_footer', globals()) standard_html_footer=HTMLFile('dtml/menu_footer', globals())
button=HTMLFile('button', globals()) button=HTMLFile('dtml/button', globals())
def HelpButton(self, topic, product): def HelpButton(self, topic, product):
""" """
...@@ -161,7 +162,7 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -161,7 +162,7 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
""" """
return self.button(self, self.REQUEST, product=product, topic=topic) 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'): def helpLink(self, product='OFSP', topic='ObjectManager_Contents.stx'):
# Generate an <a href...> tag linking to a help topic. This # Generate an <a href...> tag linking to a help topic. This
...@@ -173,9 +174,16 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -173,9 +174,16 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
topic topic
) )
help_url='%s?help_url=%s' % (self.absolute_url(), help_url) help_url='%s?help_url=%s' % (self.absolute_url(), help_url)
html='<a href="" onClick="return window.parent.openHelpWindow(' \
'\'%s\');">Help!</a>' % (help_url) script='window.open(\'%s\',\'zope_help\',\'width=600,' \
return html '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): def tpValues(self):
""" """
...@@ -284,7 +292,7 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -284,7 +292,7 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
c.addColumn('url') c.addColumn('url')
c.addColumn('id') c.addColumn('id')
addTopicForm=HTMLFile('addTopic', globals()) addTopicForm=HTMLFile('dtml/addTopic', globals())
def addTopic(self, id, title, REQUEST=None): def addTopic(self, id, title, REQUEST=None):
"Add a Help Topic" "Add a Help Topic"
...@@ -343,8 +351,8 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent): ...@@ -343,8 +351,8 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
""" """
return apply(self.catalog.__call__, args, kw) return apply(self.catalog.__call__, args, kw)
standard_html_header=HTMLFile('topic_header', globals()) standard_html_header=HTMLFile('dtml/topic_header', globals())
standard_html_footer=HTMLFile('topic_footer', globals()) standard_html_footer=HTMLFile('dtml/topic_footer', globals())
Globals.default__class_init__(ProductHelp) Globals.default__class_init__(ProductHelp)
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Object Reference implementation""" """Object Reference implementation"""
__version__='$Revision: 1.5 $'[11:-2] __version__='$Revision: 1.6 $'[11:-2]
import sys, os, string, Globals, Acquisition import sys, os, string, Globals, Acquisition
...@@ -100,7 +100,7 @@ class ObjectItem(HelpBase, classobject): ...@@ -100,7 +100,7 @@ class ObjectItem(HelpBase, classobject):
""" """ """ """
__roles__=None __roles__=None
hs_main=HTMLFile('objectitem', globals()) hs_main=HTMLFile('dtml/objectitem', globals())
hs_cicon='HelpSys/hs_dnode' hs_cicon='HelpSys/hs_dnode'
hs_eicon='HelpSys/hs_dnode' hs_eicon='HelpSys/hs_dnode'
...@@ -158,7 +158,7 @@ class ObjectRef(HelpBase): ...@@ -158,7 +158,7 @@ class ObjectRef(HelpBase):
__names__=None __names__=None
__roles__=None __roles__=None
hs_main=HTMLFile('objectref', globals()) hs_main=HTMLFile('dtml/objectref', globals())
hs_cicon='HelpSys/hs_cbook' hs_cicon='HelpSys/hs_cbook'
hs_eicon='HelpSys/hs_obook' hs_eicon='HelpSys/hs_obook'
......
...@@ -84,9 +84,9 @@ ...@@ -84,9 +84,9 @@
############################################################################## ##############################################################################
__doc__="""Cacheable object and cache management base classes. __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 import time, sys
from string import join from string import join
...@@ -176,7 +176,7 @@ class Cacheable: ...@@ -176,7 +176,7 @@ class Cacheable:
), ('Manager',)), ), ('Manager',)),
) )
ZCacheable_manage = HTMLFile('cacheable', globals()) ZCacheable_manage = HTMLFile('dtml/cacheable', globals())
_v_ZCacheable_cache = None _v_ZCacheable_cache = None
_v_ZCacheable_manager_timestamp = 0 _v_ZCacheable_manager_timestamp = 0
...@@ -547,7 +547,7 @@ class CacheManager: ...@@ -547,7 +547,7 @@ class CacheManager:
global manager_timestamp global manager_timestamp
manager_timestamp = time.time() manager_timestamp = time.time()
ZCacheManager_associate = HTMLFile('cmassoc', globals()) ZCacheManager_associate = HTMLFile('dtml/cmassoc', globals())
def ZCacheManager_locate(self, require_assoc, subfolders, def ZCacheManager_locate(self, require_assoc, subfolders,
meta_types=[], REQUEST=None): meta_types=[], REQUEST=None):
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
# #
############################################################################## ##############################################################################
__doc__="""Copy interface""" __doc__="""Copy interface"""
__version__='$Revision: 1.60 $'[11:-2] __version__='$Revision: 1.61 $'[11:-2]
import sys, string, Globals, Moniker, tempfile, ExtensionClass import sys, string, Globals, Moniker, tempfile, ExtensionClass
from marshal import loads, dumps from marshal import loads, dumps
...@@ -262,7 +262,7 @@ class CopyContainer(ExtensionClass.Base): ...@@ -262,7 +262,7 @@ class CopyContainer(ExtensionClass.Base):
return '' return ''
manage_renameForm=Globals.HTMLFile('renameForm', globals()) manage_renameForm=Globals.HTMLFile('dtml/renameForm', globals())
def manage_renameObjects(self, ids, new_ids, REQUEST=None): def manage_renameObjects(self, ids, new_ids, REQUEST=None):
"""Rename several sub-objects""" """Rename several sub-objects"""
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""DTML Document objects.""" """DTML Document objects."""
__version__='$Revision: 1.39 $'[11:-2] __version__='$Revision: 1.40 $'[11:-2]
from DocumentTemplate.DT_Util import InstanceDict, TemplateDict from DocumentTemplate.DT_Util import InstanceDict, TemplateDict
from ZPublisher.Converters import type_converters from ZPublisher.Converters import type_converters
from Globals import HTML, HTMLFile, MessageDialog from Globals import HTML, HTMLFile, MessageDialog
...@@ -116,7 +116,7 @@ class DTMLDocument(PropertyManager, DTMLMethod): ...@@ -116,7 +116,7 @@ class DTMLDocument(PropertyManager, DTMLMethod):
__ac_permissions__=( __ac_permissions__=(
('Change DTML Documents', ('Change DTML Documents',
('manage_editForm', 'manage', 'manage_main', 'manage_uploadForm', ('manage_editForm', 'manage', 'manage_main',
'manage_edit', 'manage_upload', 'PUT', 'manage_edit', 'manage_upload', 'PUT',
'manage_historyCopy', 'manage_historyCopy',
'manage_beforeHistoryCopy', 'manage_afterHistoryCopy', 'manage_beforeHistoryCopy', 'manage_afterHistoryCopy',
...@@ -150,10 +150,9 @@ class DTMLDocument(PropertyManager, DTMLMethod): ...@@ -150,10 +150,9 @@ class DTMLDocument(PropertyManager, DTMLMethod):
self._validateProxy(REQUEST) self._validateProxy(REQUEST)
if type(file) is not type(''): file=file.read() if type(file) is not type(''): file=file.read()
self.munge(file) self.munge(file)
if REQUEST: return MessageDialog( if REQUEST:
title ='Success!', message="Content uploaded."
message='Your changes have been saved', return self.manage_main(self,REQUEST,manage_tabs_message=message)
action ='manage_main')
def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw): def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw):
"""Render the document given a client object, REQUEST mapping, """Render the document given a client object, REQUEST mapping,
...@@ -201,7 +200,7 @@ This is the <dtml-var id> Document. ...@@ -201,7 +200,7 @@ This is the <dtml-var id> Document.
</p> </p>
<dtml-var standard_html_footer>""" <dtml-var standard_html_footer>"""
addForm=HTMLFile('documentAdd', globals()) addForm=HTMLFile('dtml/documentAdd', globals())
def addDTMLDocument(self, id, title='', file='', REQUEST=None, submit=None): def addDTMLDocument(self, id, title='', file='', REQUEST=None, submit=None):
"""Add a DTML Document object with the contents of file. If """Add a DTML Document object with the contents of file. If
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""DTML Method objects.""" """DTML Method objects."""
__version__='$Revision: 1.56 $'[11:-2] __version__='$Revision: 1.57 $'[11:-2]
import History import History
from Globals import HTML, HTMLFile, MessageDialog from Globals import HTML, HTMLFile, MessageDialog
...@@ -125,8 +125,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -125,8 +125,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
( (
{'label':'Edit', 'action':'manage_main', {'label':'Edit', 'action':'manage_main',
'help':('OFSP','DTML-DocumentOrMethod_Edit.stx')}, 'help':('OFSP','DTML-DocumentOrMethod_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm', #upload is deprecated
'help':('OFSP','DTML-DocumentOrMethod_Upload.stx')}, #{'label':'Upload', 'action':'manage_uploadForm',
# 'help':('OFSP','DTML-DocumentOrMethod_Upload.stx')},
{'label':'View', 'action':'', {'label':'View', 'action':'',
'help':('OFSP','DTML-DocumentOrMethod_View.stx')}, 'help':('OFSP','DTML-DocumentOrMethod_View.stx')},
{'label':'Proxy', 'action':'manage_proxyForm', {'label':'Proxy', 'action':'manage_proxyForm',
...@@ -142,7 +143,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -142,7 +143,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
('View management screens', ('View management screens',
('document_src', 'PrincipiaSearchSource')), ('document_src', 'PrincipiaSearchSource')),
('Change DTML Methods', ('Change DTML Methods',
('manage_editForm', 'manage', 'manage_main', 'manage_uploadForm', ('manage_editForm', 'manage', 'manage_main',
'manage_edit', 'manage_upload', 'PUT', 'manage_edit', 'manage_upload', 'PUT',
'manage_historyCopy', 'manage_historyCopy',
'manage_beforeHistoryCopy', 'manage_afterHistoryCopy', 'manage_beforeHistoryCopy', 'manage_afterHistoryCopy',
...@@ -228,7 +229,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -228,7 +229,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
kw[key] = val kw[key] = val
self.ZCacheable_set(result, keywords=kw) self.ZCacheable_set(result, keywords=kw)
ZCacheable_configHTML = HTMLFile('cacheNamespaceKeys', globals()) ZCacheable_configHTML = HTMLFile('dtml/cacheNamespaceKeys', globals())
def getCacheNamespaceKeys(self): def getCacheNamespaceKeys(self):
''' '''
...@@ -259,10 +260,13 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -259,10 +260,13 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
def validate(self, inst, parent, name, value, md): def validate(self, inst, parent, name, value, md):
return getSecurityManager().validate(inst, parent, name, value) return getSecurityManager().validate(inst, parent, name, value)
manage_editForm=HTMLFile('documentEdit', globals()) manage_editForm=HTMLFile('dtml/documentEdit', globals())
manage_uploadForm=HTMLFile('documentUpload', globals())
# deprecated!
manage_uploadForm=manage_editForm
manage=manage_main=manage_editDocument=manage_editForm manage=manage_main=manage_editDocument=manage_editForm
manage_proxyForm=HTMLFile('documentProxy', globals()) manage_proxyForm=HTMLFile('dtml/documentProxy', globals())
_size_changes={ _size_changes={
'Bigger': (5,5), 'Bigger': (5,5),
...@@ -306,7 +310,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -306,7 +310,7 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
self.munge(data) self.munge(data)
self.ZCacheable_invalidate() self.ZCacheable_invalidate()
if REQUEST: if REQUEST:
message="Content changed." message="Saved changes."
return self.manage_main(self,REQUEST,manage_tabs_message=message) return self.manage_main(self,REQUEST,manage_tabs_message=message)
def manage_upload(self,file='', REQUEST=None): def manage_upload(self,file='', REQUEST=None):
...@@ -315,10 +319,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -315,10 +319,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
if type(file) is not type(''): file=file.read() if type(file) is not type(''): file=file.read()
self.munge(file) self.munge(file)
self.ZCacheable_invalidate() self.ZCacheable_invalidate()
if REQUEST: return MessageDialog( if REQUEST:
title ='Success!', message="Saved changes."
message='Your changes have been saved', return self.manage_main(self,REQUEST,manage_tabs_message=message)
action ='manage_main')
...@@ -347,10 +350,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -347,10 +350,9 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
self._validateProxy(REQUEST) self._validateProxy(REQUEST)
self._proxy_roles=tuple(roles) self._proxy_roles=tuple(roles)
self.ZCacheable_invalidate() self.ZCacheable_invalidate()
if REQUEST: return MessageDialog( if REQUEST:
title ='Success!', message="Saved changes."
message='Your changes have been saved', return self.manage_proxyForm(self,REQUEST,manage_tabs_message=message)
action ='manage_main')
def PrincipiaSearchSource(self): def PrincipiaSearchSource(self):
"Support for searching - the document's contents are searched." "Support for searching - the document's contents are searched."
...@@ -423,7 +425,7 @@ in the <dtml-var title_and_id> Folder. ...@@ -423,7 +425,7 @@ in the <dtml-var title_and_id> Folder.
</p> </p>
<dtml-var standard_html_footer>""" <dtml-var standard_html_footer>"""
addForm=HTMLFile('methodAdd', globals()) addForm=HTMLFile('dtml/methodAdd', globals())
def addDTMLMethod(self, id, title='', file='', REQUEST=None, submit=None): def addDTMLMethod(self, id, title='', file='', REQUEST=None, submit=None):
"""Add a DTML Method object with the contents of file. If """Add a DTML Method object with the contents of file. If
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
# #
############################################################################## ##############################################################################
__doc__="""Find support""" __doc__="""Find support"""
__version__='$Revision: 1.21 $'[11:-2] __version__='$Revision: 1.22 $'[11:-2]
import sys, os, string, time, Globals, ExtensionClass import sys, os, string, time, Globals, ExtensionClass
...@@ -98,12 +98,16 @@ from AccessControl import getSecurityManager ...@@ -98,12 +98,16 @@ from AccessControl import getSecurityManager
class FindSupport(ExtensionClass.Base): class FindSupport(ExtensionClass.Base):
"""Find support for Zope Folders""" """Find support for Zope Folders"""
manage_findFrame=HTMLFile('findFrame', globals()) #findframe is deprecated
manage_findForm=HTMLFile('findForm', globals(), management_view='Find') manage_findFrame=HTMLFile('dtml/findFrame', globals())
manage_findAdv=HTMLFile('findAdv', globals(), management_view='Find', manage_findForm=HTMLFile('dtml/findForm', globals(),
management_view='Find')
manage_findAdv=HTMLFile('dtml/findAdv', globals(),
management_view='Find',
help_topic='Find_Advanced.stx', help_topic='Find_Advanced.stx',
help_product='OFSP') help_product='OFSP')
manage_findResult=HTMLFile('findResult', globals()) manage_findResult=HTMLFile('dtml/findResult', globals(),
management_view='Find')
__ac_permissions__=( __ac_permissions__=(
('View management screens', ('View management screens',
...@@ -112,7 +116,7 @@ class FindSupport(ExtensionClass.Base): ...@@ -112,7 +116,7 @@ class FindSupport(ExtensionClass.Base):
) )
manage_options=( manage_options=(
{'label':'Find', 'action':'manage_findFrame', 'target':'manage_main', {'label':'Find', 'action':'manage_findForm', 'target':'manage_main',
'help':('OFSP','Find.stx')}, 'help':('OFSP','Find.stx')},
) )
......
...@@ -87,9 +87,9 @@ ...@@ -87,9 +87,9 @@
Folders are the basic container objects and are analogous to directories. 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 Globals, SimpleItem, ObjectManager, PropertyManager
import AccessControl.Role, webdav.Collection, FindSupport import AccessControl.Role, webdav.Collection, FindSupport
...@@ -98,7 +98,7 @@ from Globals import HTMLFile ...@@ -98,7 +98,7 @@ from Globals import HTMLFile
from AccessControl import getSecurityManager from AccessControl import getSecurityManager
manage_addFolderForm=HTMLFile('folderAdd', globals()) manage_addFolderForm=HTMLFile('dtml/folderAdd', globals())
def manage_addFolder(self, id, title='', def manage_addFolder(self, id, title='',
createPublic=0, createPublic=0,
...@@ -161,7 +161,6 @@ class Folder( ...@@ -161,7 +161,6 @@ class Folder(
'help':('OFSP','Folder_View.stx')}, 'help':('OFSP','Folder_View.stx')},
)+ )+
PropertyManager.PropertyManager.manage_options+ PropertyManager.PropertyManager.manage_options+
(ObjectManager.ObjectManager.manage_options[1],)+
AccessControl.Role.RoleManager.manage_options+ AccessControl.Role.RoleManager.manage_options+
SimpleItem.Item.manage_options+ SimpleItem.Item.manage_options+
FindSupport.FindSupport.manage_options FindSupport.FindSupport.manage_options
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Object Histories""" """Object Histories"""
__version__='$Revision: 1.4 $'[11:-2] __version__='$Revision: 1.5 $'[11:-2]
import Globals, ndiff, ExtensionClass import Globals, ndiff, ExtensionClass
from DateTime import DateTime from DateTime import DateTime
...@@ -171,7 +171,7 @@ class Historical(ExtensionClass.Base): ...@@ -171,7 +171,7 @@ class Historical(ExtensionClass.Base):
) )
manage_change_history_page=Globals.HTMLFile( manage_change_history_page=Globals.HTMLFile(
'history', globals(), 'dtml/history', globals(),
HistoryBatchSize=20, HistoryBatchSize=20,
first_transaction=0, last_transaction=20) first_transaction=0, last_transaction=20)
...@@ -223,7 +223,7 @@ class Historical(ExtensionClass.Base): ...@@ -223,7 +223,7 @@ class Historical(ExtensionClass.Base):
_manage_historyComparePage=Globals.HTMLFile( _manage_historyComparePage=Globals.HTMLFile(
'historyCompare', globals(), management_view='History') 'dtml/historyCompare', globals(), management_view='History')
def manage_historyCompare(self, rev1, rev2, REQUEST, def manage_historyCompare(self, rev1, rev2, REQUEST,
historyComparisonResults=''): historyComparisonResults=''):
dt1=DateTime(rev1._p_mtime) dt1=DateTime(rev1._p_mtime)
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Image object""" """Image object"""
__version__='$Revision: 1.121 $'[11:-2] __version__='$Revision: 1.122 $'[11:-2]
import Globals, string, struct, content_types import Globals, string, struct, content_types
from OFS.content_types import guess_content_type from OFS.content_types import guess_content_type
...@@ -102,7 +102,7 @@ from Cache import Cacheable ...@@ -102,7 +102,7 @@ from Cache import Cacheable
StringType=type('') 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='', def manage_addFile(self,id,file='',title='',precondition='', content_type='',
REQUEST=None): REQUEST=None):
"""Add a new File object. """Add a new File object.
...@@ -141,16 +141,16 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -141,16 +141,16 @@ class File(Persistent, Implicit, PropertyManager,
precondition='' precondition=''
size=None size=None
manage_editForm =HTMLFile('fileEdit',globals(),Kind='File',kind='file') manage_editForm =HTMLFile('dtml/fileEdit',globals(),
manage_uploadForm=HTMLFile('imageUpload',globals(),Kind='File',kind='file') Kind='File',kind='file')
manage=manage_main=manage_editForm manage=manage_main=manage_editForm
manage_uploadForm=manage_editForm
manage_options=( manage_options=(
( (
{'label':'Edit', 'action':'manage_main', {'label':'Edit', 'action':'manage_main',
'help':('OFSP','File_Edit.stx')}, 'help':('OFSP','File_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm',
'help':('OFSP','File_Upload.stx')},
) )
+ PropertyManager.manage_options + + PropertyManager.manage_options +
( (
...@@ -165,7 +165,7 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -165,7 +165,7 @@ class File(Persistent, Implicit, PropertyManager,
__ac_permissions__=( __ac_permissions__=(
('View management screens', ('View management screens',
('manage', 'manage_main', 'manage_uploadForm',)), ('manage', 'manage_main',)),
('Change Images and Files', ('Change Images and Files',
('manage_edit','manage_upload','PUT')), ('manage_edit','manage_upload','PUT')),
('View', ('View',
...@@ -273,8 +273,8 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -273,8 +273,8 @@ class File(Persistent, Implicit, PropertyManager,
elif self.precondition: del self.precondition elif self.precondition: del self.precondition
self.ZCacheable_invalidate() self.ZCacheable_invalidate()
if REQUEST: if REQUEST:
message="Your changes have been saved" message="Saved changes."
return self.manage_main(self, REQUEST, manage_tabs_message=message) return self.manage_main(self,REQUEST,manage_tabs_message=message)
def manage_upload(self,file='',REQUEST=None): def manage_upload(self,file='',REQUEST=None):
""" """
...@@ -287,10 +287,9 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -287,10 +287,9 @@ class File(Persistent, Implicit, PropertyManager,
'application/octet-stream') 'application/octet-stream')
self.update_data(data, content_type, size) self.update_data(data, content_type, size)
if REQUEST: return MessageDialog( if REQUEST:
title ='Success!', message="Saved changes."
message='Your changes have been saved', return self.manage_main(self,REQUEST,manage_tabs_message=message)
action ='manage_main')
def _get_content_type(self, file, body, id, content_type=None): def _get_content_type(self, file, body, id, content_type=None):
headers=getattr(file, 'headers', None) headers=getattr(file, 'headers', None)
...@@ -410,7 +409,8 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -410,7 +409,8 @@ class File(Persistent, Implicit, PropertyManager,
manage_FTPget=index_html 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='', def manage_addImage(self, id, file, title='', precondition='', content_type='',
REQUEST=None): REQUEST=None):
""" """
...@@ -456,7 +456,7 @@ class Image(File): ...@@ -456,7 +456,7 @@ class Image(File):
__ac_permissions__=( __ac_permissions__=(
('View management screens', ('View management screens',
('manage', 'manage_main', 'manage_uploadForm',)), ('manage', 'manage_main',)),
('Change Images and Files', ('Change Images and Files',
('manage_edit','manage_upload','PUT')), ('manage_edit','manage_upload','PUT')),
('View', ('View',
...@@ -478,8 +478,6 @@ class Image(File): ...@@ -478,8 +478,6 @@ class Image(File):
( (
{'label':'Edit', 'action':'manage_main', {'label':'Edit', 'action':'manage_main',
'help':('OFSP','Image_Edit.stx')}, 'help':('OFSP','Image_Edit.stx')},
{'label':'Upload', 'action':'manage_uploadForm',
'help':('OFSP','File_Upload.stx')},
) )
+ PropertyManager.manage_options + + PropertyManager.manage_options +
( (
...@@ -491,12 +489,13 @@ class Image(File): ...@@ -491,12 +489,13 @@ class Image(File):
+ Cacheable.manage_options + Cacheable.manage_options
) )
manage_editForm =HTMLFile('imageEdit',globals(),Kind='Image',kind='image') manage_editForm =HTMLFile('dtml/imageEdit',globals(),
view_image_or_file =HTMLFile('imageView',globals()) Kind='Image',kind='image')
manage_uploadForm=HTMLFile('imageUpload',globals(),Kind='Image', view_image_or_file =HTMLFile('dtml/imageView',globals())
kind='image')
manage=manage_main=manage_editForm
manage=manage_main=manage_editForm
manage_uploadForm=manage_editForm
# private # private
update_data__roles__=() update_data__roles__=()
def update_data(self, data, content_type=None, size=None): def update_data(self, data, content_type=None, size=None):
...@@ -656,3 +655,12 @@ class Pdata(Persistent, Implicit): ...@@ -656,3 +655,12 @@ class Pdata(Persistent, Implicit):
next=self.next next=self.next
return string.join(r,'') 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