Commit 2f63d12a authored by Jim Fulton's avatar Jim Fulton

added Draft objects

parent c8788e84
#!/bin/env python
##############################################################################
#
# Copyright
#
# Copyright 1996 Digital Creations, L.C., 910 Princess Anne
# Street, Suite 300, Fredericksburg, Virginia 22401 U.S.A. All
# rights reserved.
#
##############################################################################
import Globals, AccessControl.User
from Globals import Persistent
from Acquisition import Implicit
from OFS import SimpleItem
from string import rfind
manage_addPrincipiaDraftForm=Globals.HTMLFile('draftAdd',globals())
def manage_addPrincipiaDraft(self, id, baseid, PATH_INFO, REQUEST=None):
"Add a draft object"
self._setObject(id, Draft(id, baseid, PATH_INFO))
if REQUEST is not None: return self.manage_main(self,REQUEST)
class Draft(Persistent, Implicit, SimpleItem.Item):
"Daft objects"
_refid=''
_session='/session'
icon ='misc_/OFSP/draft'
meta_type='Principia Draft'
__ac_permissions__=(
('Approve draft changes',
['manage_approve__draft__',
'manage_Save__draft__','manage_Discard__draft__']
),
)
def __init__(self, id, baseid, PATH_INFO):
self.id=id
self._refid=baseid
session=PATH_INFO
l=rfind(session,'/')
if l >= 0: session=session[:l]
self._session="%s/%s" % (session, id)
self.users__draft__=uf=AccessControl.User.UserFolder()
self.__allow_groups__=uf
def icon(self):
return getattr(self.aq_parent.aq_base,self._refid).icon
def manage_options(self):
return getattr(self.aq_parent.aq_base,self._refid).manage_options
def title(self):
return 'draft of '+self._refid
def title_and_id(self):
nonempty=self.nonempty()
if nonempty:
return ('draft of %s (%s)'
'</a> <a href="%s/users__draft__/manage_main">[Users]'
'</a> <a href="%s/manage_approve__draft__">[Approve]'
% (self._refid, self.id,
self.id,
self.id,
))
else:
return ('draft of %s (%s)'
'</a> <a href="%s/users__draft__/manage_main">[Users]'
% (self._refid, self.id,
self.id,
))
def __bobo_traverse__(self, REQUEST, name):
if name[-9:]=='__draft__': return getattr(self, name)
dself=getdraft(self, self._session)
ref=getattr(dself.aq_parent.aq_base,dself._refid).aq_base.__of__(dself)
if hasattr(ref, name): return dself, ref, getattr(ref, name)
return getattr(self, name)
def nonempty(self): return Globals.SessionBase[self._session].nonempty()
manage_approve__draft__=Globals.HTMLFile('draftApprove', globals())
def manage_Save__draft__(self, remark, REQUEST=None):
"""Make session changes permanent"""
Globals.SessionBase[self._session].commit(remark)
if REQUEST:
REQUEST['RESPONSE'].redirect(REQUEST['URL2']+'/manage_main')
def manage_Discard__draft__(self, REQUEST=None):
'Discard changes made during the session'
Globals.SessionBase[self._session].abort()
if REQUEST:
REQUEST['RESPONSE'].redirect(REQUEST['URL2']+'/manage_main')
def getdraft(ob, session):
if hasattr(ob,'aq_parent'):
return getdraft(ob.aq_self, session).__of__(
getdraft(ob.aq_parent, session))
if hasattr(ob,'_p_oid'):
ob=Globals.SessionBase[session].jar[ob._p_oid]
return ob
#!/bin/env python
##############################################################################
#
# Copyright
#
# Copyright 1996 Digital Creations, L.C., 910 Princess Anne
# Street, Suite 300, Fredericksburg, Virginia 22401 U.S.A. All
# rights reserved.
#
##############################################################################
__doc__='''\
Provide an area where people can work without others seeing their changes.
A Draft folder is a surrogate for a folder. It get\'s subobjects by
gettingthem from a session copy of a base folder.
$Id: DraftFolder.py,v 1.10 1998/01/02 18:35:04 jim Exp $'''
__version__='$Revision: 1.10 $'[11:-2]
import time, OFS.SimpleItem, AccessControl.Role, App.Management, App.Undo
import AccessControl.User
import Persistence, Acquisition, Globals
import AccessControl.User, Session
from string import rfind
from Globals import HTMLFile
from string import rfind
addForm=HTMLFile('draftFolderAdd', globals())
def add(self,id,baseid,title='',REQUEST=None):
"""Add a new Folder object"""
i=DraftFolder()
i._init(id, baseid, title, self,REQUEST)
self._setObject(id,i)
if REQUEST is not None: return self.manage_main(self,REQUEST)
def hack(self):
return ({'icon':icon, 'label':'Contents',
'action':'manage_main', 'target':'manage_main'},
{'icon':'OFS/Properties_icon.gif', 'label':'Properties',
'action':'manage_propertiesForm', 'target':'manage_main'},
{'icon':'', 'label':'Security',
'action':'manage_access', 'target':'manage_main'},
{'icon':'App/undo_icon.gif', 'label':'Undo',
'action':'manage_UndoForm', 'target':'manage_main'},
{'icon':'OFS/DraftFolderControl.gif', 'label':'Supervise',
'action':'manage_Supervise', 'target':'manage_main'},
)
class DraftFolder(
Persistence.Persistent,
AccessControl.Role.RoleManager,
OFS.SimpleItem.Item,
Acquisition.Implicit,
App.Management.Navigation,
App.Undo.UndoSupport,
):
""" """
meta_type='Draft Folder'
icon='misc_/OFSP/DraftFolderIcon'
isPrincipiaFolderish=1
manage_options=(
{'label':'Contents', 'action':'manage_main',
'target':'manage_main'},
{'label':'Properties', 'action':'manage_propertiesForm',
'target':'manage_main'},
{'label':'Security', 'action':'manage_access',
'target':'manage_main'},
{'label':'Undo', 'action':'manage_UndoForm',
'target':'manage_main'},
{'label':'Supervise', 'action':'manage_Supervise',
'target':'manage_main'},
)
def __init__(self, id, baseid, title, parent, REQUEST):
if hasattr(parent, 'aq_self'): parent=parent.aq_self
if not hasattr(parent, baseid):
raise 'Input Error', (
'The specified base folder, %s, does not exist'
% baseid
)
self.id=id
self.baseid=baseid
self.title=title
cookie=REQUEST['PATH_INFO']
if cookie[:1] != '/': cookie='/'+cookie
l=rfind(cookie,'/')
if l >= 0: cookie=cookie[:l]
self.cookie="%s/%s" % (cookie, id)
self.cookie_name="%s-Draft-Folder-%s" % (id,baseid)
self.__allow_groups__=Supervisor()
def title_and_id(self):
r=DraftFolder.inheritedAttribute('title_and_id')(self)
r='%s *' % r
try: base=getattr(self.aq_parent, self.baseid)
except: base=None
if base is not None:
r="%s Draft Folder: %s" % (base.title_or_id(), r)
return r
def _base(self, cookie):
# Check for base object
if hasattr(self, 'aq_parent'): parent=self.aq_parent
else: parent=None
if hasattr(parent, 'aq_self'): ps=parent.aq_self
else: ps=parent
baseid=self.baseid
if not hasattr(ps, baseid):
raise 'Draft Folder Error', (
'''The base folder for the draft folder, <em>%s</em>,
does not exist.'''
% self.cookie
)
base=getattr(parent, baseid)
pd=Globals.SessionBase[cookie]
oids=[base._p_oid]
while hasattr(base, 'aq_parent'):
base=base.aq_parent
if hasattr(base, '_p_oid'): oids.append(base._p_oid)
else: break
while oids:
oid=oids[-1]
del oids[-1]
base=pd.jar[oid].__of__(base)
return base
def __bobo_traverse__(self, REQUEST, name):
cookie_name=self.cookie_name
cookie=''
if REQUEST.has_key(cookie_name):
if REQUEST[cookie_name] == self.cookie:
cookie=self.cookie
else:
# Oops, the cookie is broken, better erase it:
RESPONSE=REQUEST['RESPONSE']
RESPONSE.setCookie(
self.cookie_name,'No longer active',
expires="Mon, 27-Aug-84 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME']+self.cookie,
)
REQUEST[self.cookie_name]=''
PATH_INFO=REQUEST['PATH_INFO']
if PATH_INFO[:1] != '/': PATH_INFO='/'+PATH_INFO
if PATH_INFO==self.cookie+'/manage':
if not cookie: return self.manage
return App.Management.Navigation.manage
if PATH_INFO==self.cookie+'/manage_menu': return self.manage_menu
if name=='manage_Supervise':
raise 'Redirect', (
"%s/manage_draftFolder-%s/manage"
% (REQUEST['URL2'], self.id))
if not cookie:
# Just set cookie here, rather than redirect!
cookie=self.cookie
cookie_name=self.cookie_name
REQUEST['RESPONSE'].setCookie(cookie_name, cookie,
expires="Mon, 27-Dec-99 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME']+cookie,)
REQUEST[cookie_name]=cookie
__traceback_info__=PATH_INFO, cookie, self.cookie
self=self._base(cookie)
try:
v=getattr(self, name)
if hasattr(v, 'isDocTemp') and v.isDocTemp and (
PATH_INFO=="%s/%s" % (cookie, name) or
PATH_INFO==cookie and name=='index_html'
):
def v(REQUEST, _dt_=v, _self_=self):
"Damn, need this so template gets called with right thing"
return _dt_(_self_, REQUEST)
return v
except AttributeError:
try: return self[name]
except KeyError:
raise 'NotFound',(
"Sorry, the requested document does not exist.<p>"
"\n<!--\n%s\n%s\n-->" % (name,REQUEST['REQUEST_METHOD']))
def manage_supervisor(self): return self.__allow_groups__
def parentObject(self):
try: return (self.aq_parent,)
except: return ()
class Supervisor(AccessControl.User.UserFolder, Session.Session):
manage=manage_main=HTMLFile('DraftFolderSupervisor', globals())
manage_options=()
def __init__(self):
AccessConreol.User.UserFolder.__init__(self)
##############################################################################
#
# $Log: DraftFolder.py,v $
# Revision 1.10 1998/01/02 18:35:04 jim
# Factored old Management mix-in into Navigation and Tabs.
#
# Revision 1.9 1998/01/02 17:41:19 brian
# Made undo available only in folders
#
# Revision 1.8 1997/12/31 19:27:10 jim
# *** empty log message ***
#
# Revision 1.7 1997/12/31 17:17:04 brian
# Security update
#
# Revision 1.6 1997/12/19 17:06:20 jim
# moved Sessions and Daft folders here.
#
# Revision 1.5 1997/12/18 16:45:40 jeffrey
# changeover to new ImageFile and HTMLFile handling
#
# Revision 1.4 1997/12/12 21:49:42 brian
# ui update
#
# Revision 1.3 1997/12/05 20:33:02 brian
# *** empty log message ***
#
# Revision 1.2 1997/11/11 21:25:28 brian
# Added copy/paste support, restricted unpickling, fixed DraftFolder bug
#
# Revision 1.1 1997/11/11 21:05:44 jim
# Draft Folders
#
#
<HTML>
<HEAD>
<TITLE>Draft Supervisor</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555" ALINK="#77003B">
<H2>Draft Supervision</H2>
<h3>Draft Folder Approval</h3>
<!--#if nonempty-->
<p><form action=save>
You can make work done in <!--#var title_and_id--> permanent by
entering a remark in the space below and then
clicking on the "Save" button.<br>
<textarea name=remark rows=10 cols=50></textarea><br>
<input type=submit value="Save">
</form>
<hr>
<p><form action=discard>
You can throw away work done in <!--#var title_and_id--> by
clicking on the "Discard" button.
<input type=submit value="Discard">
</form>
<!--#else-->
<p>No work has been done in <!--#var title_and_id--> yet.</p>
<!--#/if-->
<hr>
<h3>Draft Folder Users</h3>
<!--#if userNames-->
<FORM ACTION="manage_editForm" METHOD="POST">
The following users have been defined. To edit a user,
select a user and click &quot;Edit&quot;.
<BR>
<SELECT NAME="name">
<!--#in userNames-->
<OPTION VALUE="<!--#var sequence-item-->"> <!--#var sequence-item-->
<!--#/in userNames-->
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE=" Change ">
</FORM>
<!--#else userNames-->
<EM>There are no users defined.</EM>
<!--#/if userNames-->
<P>
<TABLE>
<TR>
<TD COLSPAN="2" VALIGN="TOP">
To add a new user, enter the name, password, confirmation and
roles for the new user and click &quot;Add&quot;.
</TD>
</TR>
<TR>
<TD COLSPAN="2" VALIGN="TOP">
<FORM ACTION="manage_addUser" METHOD="POST">
<TABLE>
<TR>
<TD VALIGN="TOP">
<STRONG>Name</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="name" SIZE="20">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>Password</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="password" SIZE="20">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>(Confirm)</STRONG>
</TD>
<TD VALIGN="TOP">
<INPUT TYPE="PASSWORD" NAME="confirm" SIZE="20">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<STRONG>Roles</STRONG>
</TD>
<TD VALIGN="TOP">
<SELECT NAME="roles:list" SIZE="5" MULTIPLE>
<!--#if roleNames-->
<!--#in roleNames-->
<OPTION><!--#var sequence-item-->
<!--#/in roleNames-->
<!--#/if roleNames-->
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE=" Add ">
</TD>
</TR>
</TABLE>
</FORM>
</TD>
</TR>
</TABLE>
<P>
<!--#if userNames-->
<FORM ACTION="manage_deleteUser" METHOD="POST">
To delete users, select one or more users and click &quot;Delete&quot;.
<BR>
<SELECT NAME="names:list" MULTIPLE SIZE="4" >
<!--#in userNames-->
<OPTION><!--#var sequence-item-->
<!--#/in userNames-->
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Delete">
</FORM>
<!--#/if userNames-->
</BODY>
</HTML>
"""Session object"""
__version__='$Revision: 1.19 $'[11:-2]
__version__='$Revision: 1.20 $'[11:-2]
import Globals, time
from AccessControl.Role import RoleManager
......@@ -9,7 +9,8 @@ from Persistence import Persistent
from Acquisition import Implicit
from OFS.SimpleItem import Item
from string import rfind
from Globals import HTML
from App.Dialogs import MessageDialog
manage_addSessionForm=Globals.HTMLFile('sessionAdd', globals())
......@@ -68,6 +69,15 @@ class Session(Persistent,Implicit,RoleManager,Item):
#expires="Mon, 27-Dec-99 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME'],
)
if (REQUEST.has_key('SERVER_SOFTWARE') and
REQUEST['SERVER_SOFTWARE'][:9]=='Microsoft'):
# IIS doesn't handle redirect headers correctly
return MessageDialog(
action=REQUEST['URL1']+'/manage_main',
message=('If cookies are enabled by your browser, then '
'you should have joined session %s.'
% self.id)
)
return RESPONSE.redirect(REQUEST['URL1']+'/manage_main')
def leave(self, REQUEST, RESPONSE):
......@@ -77,6 +87,15 @@ class Session(Persistent,Implicit,RoleManager,Item):
expires="Mon, 27-Aug-84 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME'],
)
if (REQUEST.has_key('SERVER_SOFTWARE') and
REQUEST['SERVER_SOFTWARE'][:9]=='Microsoft'):
# IIS doesn't handle redirect headers correctly
return MessageDialog(
action=REQUEST['URL1']+'/manage_main',
message=('If cookies are enabled by your browser, then '
'you should have left session %s.'
% self.id)
)
return RESPONSE.redirect(REQUEST['URL1']+'/manage_main')
def leave_another(self, REQUEST, RESPONSE):
......@@ -97,7 +116,6 @@ class Session(Persistent,Implicit,RoleManager,Item):
import __init__
__init__.need_license=1
......@@ -105,6 +123,9 @@ __init__.need_license=1
##############################################################################
#
# $Log: Session.py,v $
# Revision 1.20 1998/09/24 19:21:52 jim
# added Draft objects
#
# Revision 1.19 1998/05/20 22:07:32 jim
# Updated permissions.
#
......
# install DraftFolder.py
# install DraftFolderSupervisor.dtml
# install Session.py
# install __init__.py
# install draftFolderAdd.dtml
# install Draft.py
# install draftAdd.dtml
# install draftApprove.dtml
# install Session.py
# install session.dtml
# install sessionAdd.dtml
# install sessionEdit.dtml
......
"""Session object"""
__version__='$Revision: 1.19 $'[11:-2]
__version__='$Revision: 1.20 $'[11:-2]
import Globals, time
from AccessControl.Role import RoleManager
......@@ -9,7 +9,8 @@ from Persistence import Persistent
from Acquisition import Implicit
from OFS.SimpleItem import Item
from string import rfind
from Globals import HTML
from App.Dialogs import MessageDialog
manage_addSessionForm=Globals.HTMLFile('sessionAdd', globals())
......@@ -68,6 +69,15 @@ class Session(Persistent,Implicit,RoleManager,Item):
#expires="Mon, 27-Dec-99 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME'],
)
if (REQUEST.has_key('SERVER_SOFTWARE') and
REQUEST['SERVER_SOFTWARE'][:9]=='Microsoft'):
# IIS doesn't handle redirect headers correctly
return MessageDialog(
action=REQUEST['URL1']+'/manage_main',
message=('If cookies are enabled by your browser, then '
'you should have joined session %s.'
% self.id)
)
return RESPONSE.redirect(REQUEST['URL1']+'/manage_main')
def leave(self, REQUEST, RESPONSE):
......@@ -77,6 +87,15 @@ class Session(Persistent,Implicit,RoleManager,Item):
expires="Mon, 27-Aug-84 23:59:59 GMT",
path=REQUEST['SCRIPT_NAME'],
)
if (REQUEST.has_key('SERVER_SOFTWARE') and
REQUEST['SERVER_SOFTWARE'][:9]=='Microsoft'):
# IIS doesn't handle redirect headers correctly
return MessageDialog(
action=REQUEST['URL1']+'/manage_main',
message=('If cookies are enabled by your browser, then '
'you should have left session %s.'
% self.id)
)
return RESPONSE.redirect(REQUEST['URL1']+'/manage_main')
def leave_another(self, REQUEST, RESPONSE):
......@@ -97,7 +116,6 @@ class Session(Persistent,Implicit,RoleManager,Item):
import __init__
__init__.need_license=1
......@@ -105,6 +123,9 @@ __init__.need_license=1
##############################################################################
#
# $Log: Version.py,v $
# Revision 1.20 1998/09/24 19:21:52 jim
# added Draft objects
#
# Revision 1.19 1998/05/20 22:07:32 jim
# Updated permissions.
#
......
......@@ -8,10 +8,10 @@
#
##############################################################################
__doc__='''Base Principia
$Id: __init__.py,v 1.15 1998/05/21 13:52:23 jim Exp $'''
__version__='$Revision: 1.15 $'[11:-2]
$Id: __init__.py,v 1.16 1998/09/24 19:21:53 jim Exp $'''
__version__='$Revision: 1.16 $'[11:-2]
import Session, DraftFolder
import Session, Draft
from ImageFile import ImageFile
import OFS.Image, OFS.Document, OFS.Folder, AccessControl.User
......@@ -22,13 +22,13 @@ classes=('Session.Session', 'OFS.Image.File',
klasses=('OFS.Folder.Folder', 'AccessControl.User.UserFolder')
meta_types=(
# {'name':'Draft Folder', 'action':'manage_addDraftFolderForm'},
{'name':'User Folder', 'action':'manage_addUserFolder'},
{'name':'Session', 'action':'manage_addSessionForm'},
{'name':'File', 'action':'manage_addFileForm'},
{'name':'Image', 'action':'manage_addImageForm'},
{'name':'Folder', 'action':'manage_addFolderForm'},
{'name':'Document', 'action':'manage_addDocumentForm'},
{'name': Draft.Draft.meta_type, 'action':'manage_addPrincipiaDraftForm'},
{'name': 'User Folder', 'action':'manage_addUserFolder'},
{'name': 'Session', 'action':'manage_addSessionForm'},
{'name': 'File', 'action':'manage_addFileForm'},
{'name': 'Image', 'action':'manage_addImageForm'},
{'name': 'Folder', 'action':'manage_addFolderForm'},
{'name': 'Document', 'action':'manage_addDocumentForm'},
)
......@@ -50,15 +50,11 @@ methods={
'PUT': PUT,
'PUT__roles__': ('Manager',),
'manage_addUserFolder': AccessControl.User.manage_addUserFolder,
# 'manage_addDraftFolderForm': DraftFolder.addForm,
# 'manage_addDraftFolder': DraftFolder.add,
'manage_addPrincipiaDraftForm': Draft.manage_addPrincipiaDraftForm,
'manage_addPrincipiaDraft': Draft.manage_addPrincipiaDraft,
}
misc_={
'draft': ImageFile('images/DraftFolder.gif', globals()),
'sup': ImageFile('images/DraftFolderControl.gif', globals()),
'session': ImageFile('images/session.gif', globals()),
}
......@@ -86,6 +82,9 @@ __ac_permissions__=(
##############################################################################
#
# $Log: __init__.py,v $
# Revision 1.16 1998/09/24 19:21:53 jim
# added Draft objects
#
# Revision 1.15 1998/05/21 13:52:23 jim
# Updated permissions.
#
......
<HTML>
<HEAD>
<TITLE>Add Draft</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Add Draft Object</H2>
<FORM ACTION="manage_addPrincipiaDraft" 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">Base Object</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<SELECT NAME=baseid size=7>
<!--#in objectValues sort=title_or_id-->
<!--#unless "meta_type in ('Session', 'Principia Draft', 'User Folder')"-->
<OPTION VALUE="<!--#var id-->">
<!--#if title-->
<!--#var title size=25--> (<!--#var id-->)
<!--#else-->
<!--#var id-->
<!--#endif-->
</OPTION>
<!--#/unless-->
<!--#/in-->
</SELECT>
</TD>
</TR>
<TR><TD></TD><TD><INPUT TYPE="SUBMIT" VALUE=" Add "></TD></TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE><!--#var title_or_id--></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<!--#var manage_tabs-->
<!--#if nonempty-->
<h2>Approve</h2>
<p><form action=manage_Save__draft__>
You can make work done in <!--#var id--> (<!--#var title-->) permanent by
entering a remark in the space below and then
clicking on the "Approve" button.<br>
<textarea name=remark rows=10 cols=50></textarea><br>
<input type=submit value="Approve">
</form>
<h2>Discard</h2>
<p><form action=manage_Discard__draft__>
You can throw away work done in <!--#var id--> (<!--#var title-->) by
clicking on the "Discard" button.<br>
<input type=submit value="Discard">
</form>
<!--#else-->
There is nothing to approve. Nothing has been changed yet.
<!--#endif-->
</body> </html>
<HTML>
<HEAD>
<TITLE>Add Draft Folder</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Add Draft Folder</H2>
<FORM ACTION="manage_addDraftFolder" METHOD="POST">
<TABLE CELLSPACING="2">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG>Id</STRONG>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="id" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<EM><STRONG>Title</STRONG></EM>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="title" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<EM><STRONG>Base Folder</STRONG></EM>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<SELECT NAME=baseid>
<!--#in folderValues-->
<OPTION VALUE="<!--#var id-->">
<!--#if title-->
<!--#var title size=25--> (<!--#var id-->)
<!--#else-->
<!--#var id-->
<!--#endif-->
<!--#/in folderValues-->
</SELECT>
</TD>
</TR>
<TR>
<TD></TD>
<TD>
<BR><INPUT TYPE="SUBMIT" VALUE=" Add ">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
......@@ -45,7 +45,7 @@
<hr>
<p><form action=save>
<p><form action=manage_draftSave__>
You can make work done in <!--#var title_and_id--> permanent by
entering a remark in the space below and then
clicking on the "Save" button.<br>
......@@ -55,7 +55,7 @@
<hr>
<p><form action=discard>
<p><form action=manage_draftDiscard__>
You can throw away work done in <!--#var title_and_id--> by
clicking on the "Discard" button.
<input type=submit value="Discard">
......
......@@ -45,7 +45,7 @@
<hr>
<p><form action=save>
<p><form action=manage_draftSave__>
You can make work done in <!--#var title_and_id--> permanent by
entering a remark in the space below and then
clicking on the "Save" button.<br>
......@@ -55,7 +55,7 @@
<hr>
<p><form action=discard>
<p><form action=manage_draftDiscard__>
You can throw away work done in <!--#var title_and_id--> by
clicking on the "Discard" button.
<input type=submit value="Discard">
......
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