[Mailman-Developers] my page updates for 2.0b4

Chuq Von Rospach chuqui@plaidworks.com
Sat, 8 Jul 2000 23:34:35 -0700


I'd previously made a bunch of changes to the web interface (most of 
them cleaning up the UI for the listinfo page), and i had a number of 
requests for them, so now that b4 is out, I've rolled my changes into 
b4 (so far, so good!), and I thought I'd repost them, this time as a 
diff that can be run through patch.

Barry, I don't know if these changes can be rolled into 2.0 or later, 
but I really think the listinfo page needs help, and this is a good 
start. My test users were constantly getting lost, and have been 
really happy with this new version. There's still a bunch of work 
left tweaking the pages, but I don't know how quickly I'll get to it. 
This was the big problem area my users found. (for 2.1, I'd really 
like to see this stuff simplified, since there are some pages that 
are generated in three different places, making working on them a 
royal pain, but it's definitely not doable in 2.0's timeframe...)

The one thing folks will have to be wary of in this patch is that 
I've tweaked the system to change the footer and add some 
site-specific header stuff. Both should be easy to back out or simply 
not install...


chuq
------

diff -r -c mailman-2.0beta4/Mailman/Cgi/listinfo.py 
mailman/Mailman/Cgi/listinfo.py
*** mailman-2.0beta4/Mailman/Cgi/listinfo.py	Thu Jun 22 23:20:55 2000
--- mailman/Mailman/Cgi/listinfo.py	Sat Jul  8 22:49:48 2000
***************
*** 71,83 ****
   	host_name = mm_cfg.DEFAULT_HOST_NAME

       doc = Document()
!     legend = "%s mailing lists" % host_name
       doc.SetTitle(legend)

       table = Table(border=0, width="100%")
       table.AddRow([Center(Header(2, legend))])
       table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0,
!                       colspan=2, bgcolor="#99ccff")

       advertised = []
       names = Utils.list_names()
--- 71,83 ----
   	host_name = mm_cfg.DEFAULT_HOST_NAME

       doc = Document()
!     legend = "%s Mailing Lists" % host_name
       doc.SetTitle(legend)

       table = Table(border=0, width="100%")
       table.AddRow([Center(Header(2, legend))])
       table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0,
!                       colspan=2, bgcolor="#cccccc")

       advertised = []
       names = Utils.list_names()
***************
*** 98,104 ****
       if error:
   	greeting = FontAttr(error, color="ff5060", size="+1")
       else:
! 	greeting = "Welcome!"

       if not advertised:
           welcome_items = (greeting,
--- 98,104 ----
       if error:
   	greeting = FontAttr(error, color="ff5060", size="+1")
       else:
! 	greeting = "<FONT SIZE='+2'>Welcome!</FONT>"

       if not advertised:
           welcome_items = (greeting,
***************
*** 110,147 ****
       else:
           welcome_items = (
   	    greeting,
!             "<p>"
!             " Below is the collection of publicly-advertised ",
!             Link(mm_cfg.MAILMAN_URL, "Mailman"),
!             " mailing lists on %s." % host_name,
!             (' Click on a list name to visit the info page'
!              ' for that list.  There you can learn more about the list,'
!              ' subscribe to it, or find the roster of current subscribers.'),
               )

       welcome_items = (welcome_items +
!                      (" To visit the info page for an unadvertised list,"
!                       " open a URL similar to this one, but with a '/' and"
!                       +
!                       (" the %slist name appended."
!                        % ((error and "right ") or ""))
!                       +
!                       '<p> List administrators, you can visit ',
!                       Link("%sadmin%s/" % ('../' * Utils.GetNestingLevel(),
!                                            mm_cfg.CGIEXT),
!                            "the list admin overview page"),
!                       " to find the management interface for your list."
!                       "<p>(Send questions or comments to ",
                         Link("mailto:%s" % mm_cfg.MAILMAN_OWNER,
!                            mm_cfg.MAILMAN_OWNER),
!                       ".)<p>"))

       table.AddRow([apply(Container, welcome_items)])
       table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0, colspan=2)

       if advertised:
           table.AddRow(['&nbsp;', '&nbsp;'])
!         table.AddRow([Bold("List"), Bold("Description")])
       for mlist in advertised:
           table.AddRow(
               [Link(mlist.GetRelativeScriptURL('listinfo'),
--- 110,146 ----
       else:
           welcome_items = (
   	    greeting,
!             "<p>Below is a listing of public mailing lists on %s." 
% host_name,
!             (' Click on a list name to get more information '
!              ' about the list, where you can learn more about the list,'
!
!              ' subscribe, unsubscribe, and change the preferences 
on your subscription.'),
               )

       welcome_items = (welcome_items +
!                      (" To visit the info page for a private list,"
!                       " use the URL provided to you by the list admin. "
! 		      "<P>Before you subscribe, please read the ",
! 		      "<A HREF=\"/listrules.html\">Mailing List rules</a>",
! 		      " we ask everyone to follow. If you are unwilling ",
! 		      "to abide by our rules, please don't subscribe.<P>",
!                       "<p>If you have questions or problems, please ",
! 		      "check our <A HREF=\"/faq.html\">Frequently Asked ",
! 		      "Questions</a> page, and for users who are new to ",
! 		      "mailing lists, some ideas on <A ",
! 		      "HREF=\"/manners.html\">mailing list netiquette</a>. ",
! 		      "If none of these answer your question, please ",
                         Link("mailto:%s" % mm_cfg.MAILMAN_OWNER,
!                            "contact us for help") , " and we'll help you ",
! 			   "get your problem resolved.<p>"))

       table.AddRow([apply(Container, welcome_items)])
       table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0, colspan=2)

       if advertised:
           table.AddRow(['&nbsp;', '&nbsp;'])
!         table.AddRow([Bold("<font size=\"+2\">List</font>"),
! 		Bold("<font size=\"+2\">Description</font>")])
       for mlist in advertised:
           table.AddRow(
               [Link(mlist.GetRelativeScriptURL('listinfo'),
Only in mailman/Mailman/Cgi: listinfo.py.orig
diff -r -c mailman-2.0beta4/Mailman/Cgi/subscribe.py 
mailman/Mailman/Cgi/subscribe.py
*** mailman-2.0beta4/Mailman/Cgi/subscribe.py	Tue Jun 27 21:44:04 2000
--- mailman/Mailman/Cgi/subscribe.py	Sat Jul  8 23:11:50 2000
***************
*** 184,193 ****
               results = results + ("The list is not fully functional, and "
                                    "can not accept subscription requests.<p>")
           except Errors.MMSubscribeNeedsConfirmation:
!             results = results + ("Confirmation from your email address is "
!                                  "required, to prevent anyone from covertly "
!                                  "subscribing you.  Instructions are being "
!                                  "sent to you at %s." % email)

           except Errors.MMNeedApproval, x:
               results = results + ("Subscription was <em>deferred</em> "
--- 184,196 ----
               results = results + ("The list is not fully functional, and "
                                    "can not accept subscription requests.<p>")
           except Errors.MMSubscribeNeedsConfirmation:
!              results = results + ("Confirmation from your email address is "
!                                   "required, to prevent anyone from "
!                                   "subscribing you without permission. "
!                                 "Instructions are being "
!                                   "sent to you at %s. Please note your "
!                                 "subscription will not start until you "
!                                 "confirm your subscription." % email)

           except Errors.MMNeedApproval, x:
               results = results + ("Subscription was <em>deferred</em> "
Only in mailman/Mailman/Cgi: subscribe.py.orig
diff -r -c mailman-2.0beta4/Mailman/htmlformat.py mailman/Mailman/htmlformat.py
*** mailman-2.0beta4/Mailman/htmlformat.py	Mon Jun 19 22:38:42 2000
--- mailman/Mailman/htmlformat.py	Sat Jul  8 22:53:46 2000
***************
*** 508,550 ****
   # points at the gnu.org site instead of the www.list.org mirror.
   #
   from mm_cfg import MAILMAN_URL
! PYTHON_URL  = 'http://www.python.org/'
! GNU_URL     = 'http://www.gnu.org/'
!
! # The names of the image logo files.  These are concatentated onto
! # mm_cfg.IMAGE_LOGOS (not urljoined).
! DELIVERED_BY = 'mailman.jpg'
! PYTHON_POWERED = 'PythonPowered.png'
! GNU_HEAD = 'gnu-head-tiny.jpg'
!

   def MailmanLogo():
!     t = Table(border=0, width='100%')
!     if mm_cfg.IMAGE_LOGOS:
!         def logo(file):
!             return mm_cfg.IMAGE_LOGOS + file
!         mmlink = Link(MAILMAN_URL,
!                       '<img src="%s" alt="Delivered by Mailman" border=0>'
!                       '<br>version %s'
!                       % (logo(DELIVERED_BY), mm_cfg.VERSION))
!         pylink = Link(PYTHON_URL,
!                       '<img src="%s" alt="Python Powered" border=0>' %
!                       logo(PYTHON_POWERED))
!         gnulink = Link(GNU_URL,
!                        '<img src="%s" alt="GNU\'s Not Unix" border=0>' %
!                        logo(GNU_HEAD))
!         text = Container(Link(MAILMAN_URL, 'Mailman home page'),
!                          '<br>',
!                          Link(PYTHON_URL, 'Python home page'),
!                          '<br>',
!                          Link(GNU_URL, 'GNU home page'),
!                          )
!         t.AddRow([mmlink, pylink, gnulink, text])
!     else:
!         # use only textual links
!         mmlink = Link(MAILMAN_URL,
!                       'Delivered by Mailman<br>version %s' % mm_cfg.VERSION)
!         pylink = Link(PYTHON_URL, 'Python Powered')
!         gnulink = Link(GNU_URL, "Gnu's Not Unix")
!         t.AddRow([mmlink, pylink, gnulink])
       return t
--- 508,570 ----
   # points at the gnu.org site instead of the www.list.org mirror.
   #
   from mm_cfg import MAILMAN_URL
! # PYTHON_URL  = 'http://www.python.org/'
! # GNU_URL     = 'http://www.gnu.org/'
! #
! # # The names of the image logo files.  These are concatentated onto
! # # mm_cfg.IMAGE_LOGOS (not urljoined).
! # DELIVERED_BY = 'mailman.jpg'
! # PYTHON_POWERED = 'PythonPowered.png'
! # GNU_HEAD = 'gnu-head-tiny.jpg'
! #
! #
! # def MailmanLogo():
! #     t = Table(border=0, width='100%')
! #     if mm_cfg.IMAGE_LOGOS:
! #         def logo(file):
! #             return mm_cfg.IMAGE_LOGOS + file
! #         mmlink = Link(MAILMAN_URL,
! #                       '<img src="%s" alt="Delivered by Mailman" border=0>'
! #                       '<br>version %s'
! #                       % (logo(DELIVERED_BY), mm_cfg.VERSION))
! #         pylink = Link(PYTHON_URL,
! #                       '<img src="%s" alt="Python Powered" border=0>' %
! #                       logo(PYTHON_POWERED))
! #         gnulink = Link(GNU_URL,
! #                        '<img src="%s" alt="GNU\'s Not Unix" border=0>' %
! #                        logo(GNU_HEAD))
! #         text = Container(Link(MAILMAN_URL, 'Mailman home page'),
! #                          '<br>',
! #                          Link(PYTHON_URL, 'Python home page'),
! #                          '<br>',
! #                          Link(GNU_URL, 'GNU home page'),
! #                          )
! #         t.AddRow([mmlink, pylink, gnulink, text])
! #     else:
! #         # use only textual links
! #         mmlink = Link(MAILMAN_URL,
! #                       'Delivered by Mailman<br>version %s' % 
mm_cfg.VERSION)
! #         pylink = Link(PYTHON_URL, 'Python Powered')
! #         gnulink = Link(GNU_URL, "Gnu's Not Unix")
! #         t.AddRow([mmlink, pylink, gnulink])
! #     return t

   def MailmanLogo():
!     t=Table(border='0', width='100%', bgcolor='#cccccc')
!     text = "<div align=\"right\"><font size=\"2\" 
face=\"Lucida,Arial,Helvetica\">"
!     text = text + "Site Copyright 2000 <A HREF=\"/\">Plaidworks "
!     text = text + "Consulting</a>. All Rights Reserved | "
!     text = text + "<a 
href=\"http://www.gnu.org/software/mailman/mailman.html\""
!     text = text + " target=\"_blank\">Mailman 2.0b4</a></font></div>"
!     t.AddRow([text])
       return t
+
+ def MailmanHeader():
+
+    text = '<table width="600" border="0" cellpadding="10">'
+    text = text + '<tr><td><A HREF="/"><img src="/images/plaidworks.logo.gif"'
+    text = text + ' width="168" height="169"></a></td><td><img '
+    text = text + 'src="/images/mainlogo.gif" width="601" height="124">'
+    text = text + '</td></tr></table>'
+    return text
+
Only in mailman/Mailman: htmlformat.py.orig
diff -r -c mailman-2.0beta4/templates/listinfo.html 
mailman/templates/listinfo.html
*** mailman-2.0beta4/templates/listinfo.html	Tue Nov 16 08:50:33 1999
--- mailman/templates/listinfo.html	Sat Jul  8 23:16:30 2000
***************
*** 1,124 ****
   <!-- $Revision: 1.20 $ -->
   <HTML>
!   <HEAD>
!     <TITLE><MM-List-Name> Info Page</TITLE>
!
!   </HEAD>
!   <BODY BGCOLOR="#ffffff">
!
!     <MM-Subscribe-Form-Start>
!     <P>
!       <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
! 	<TR>
! 	  <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
! 	    <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
! 	<MM-List-Description></FONT></B>
! 	  </TD>
! 	</TR>
! 	<tr>
! 	    <td colspan="2">
! 	      <p>&nbsp;
! 	    </td>
! 	  </tr>
! 	  <tr>
! 	    <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
! 	      <B><FONT COLOR="#000000">About <MM-List-Name></FONT></B>
! 	    </TD>
! 	  </TR>
! 	    <tr>
! 	      <td colspan="2">
! 		<P><MM-List-Info></P>
! 	  <p> To see the collection of prior postings to the list,
! 	      visit the <MM-Archive><MM-List-Name>
! 		  Archives</MM-Archive>.
! 	      <MM-Restricted-List-Message>
! 	  </p>
! 	</TD>
!       </TR>
!       <TR>
! 	<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
! 	  <B><FONT COLOR="#000000">Using <MM-List-Name></FONT></B>
! 	</TD>
!       </TR>
!       <tr>
! 	<td colspan="2">
! 	  To post a message to all the list members, send email to
! 	  <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
!
! 	  <p>You can subscribe to the list, or change your existing
! 	    subscription, in the sections below.
! 	</td>
!       </tr>
!       <TR>
! 	<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
! 	  <B><FONT COLOR="#000000">Subscribing to <MM-List-Name></FONT></B>
! 	</TD>
!       </TR>
!       <tr>
! 	<td colspan="2">
! 	  <P>
! 	    Subscribe to <MM-List-Name> by filling out the following
! 	      form.
! 	  <MM-List-Subscription-Msg>
! 	  <ul>
! 	      <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
   		WIDTH="70%" HEIGHT= "112">
! 		<TR>
! 		  <TD BGCOLOR="#dddddd" WIDTH="55%">Your email address:</TD>
! 		  <TD WIDTH="33%"><MM-Subscribe-Box>
! 	</TD>
! 	<TD WIDTH="12%">&nbsp;</TD></TR>
!       <TR>
! 	<TD COLSPAN="3"><FONT SIZE=-1>You must enter a
! 	    privacy password. This provides only mild security,
! 	    but should prevent others from messing with your
! 	    subscription.  <b>Do not use a valuable password</b> as
! 	    it will occasionally be emailed back to you in cleartext.
! 	    <MM-Reminder>
! 	</TD>
!       </TR>
!       <TR>
! 	<TD BGCOLOR="#dddddd">Pick a password:</TD>
! 	<TD><MM-New-Password-Box></TD>
! 	<TD>&nbsp;</TD></TR>
!       <TR>
! 	<TD BGCOLOR="#dddddd">Reenter password to confirm:</TD>
! 	<TD><MM-Confirm-Password></TD>
! 	<TD>&nbsp; </TD></TR>
!       <tr>
! 	<td>Would you like to receive list mail batched in a daily
! 	  digest?
! 	  </td>
! 	<td><MM-Undigest-Radio-Button> No
! 	    <MM-Digest-Radio-Button>  Yes
! 	</TD>
!       </tr>
!       <tr>
! 	<td colspan="3">
! 	  <center><MM-Subscribe-Button></P></center>
!     </TABLE>
!     <MM-Form-End>
!     </ul>
!     </td>
!     </tr>
!     <TR>
!       <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
! 	<a name="subscribers">
!         <B><FONT COLOR="#000000"><MM-List-Name> Subscribers</FONT></B></a>
!       </TD>
!     </TR>
!     <tr>
!       <TD COLSPAN="2" WIDTH="100%">
! 	<MM-Roster-Form-Start>
! 	<MM-Roster-Option>
   	    <MM-Form-End>
! 	  <p>
! 	<MM-Subscribe-Form-Start>
! 	<MM-Editing-Options>
   		<MM-Form-End>
!       </td>
!     </tr>
!   </table>
! <MM-Mailman-Footer>
   </BODY>
   </HTML>
--- 1,134 ----
   <!-- $Revision: 1.20 $ -->
   <HTML>
!     <HEAD>
! 	<TITLE>The <MM-List-Name> Mailing List</TITLE>
!     </HEAD>
!     <BODY BGCOLOR="#ffffff">
! 	<table width="100%" border="0" cellpadding="10">
! 	    <tr><td><A HREF="/"><img src="/images/plaidworks.logo.gif"
! 		width="168" height="169"></a>
! 	    </td><td> <img src="/images/mainlogo.gif" width="601" height="124">
! 	    </td></tr>
! 	    <tr><td COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC" ALIGN="RIGHT">
! 		<B>
! 		<A HREF="/">Home</a> -+-
! 		<A HREF="/lists">Mailing Lists home</a> -+-
! 		<A HREF="#About">About <MM-List-Name></a> -+-
! 		<A HREF="#Subscribe">Subscribe</a>
! 		<BR>
! 		<A HREF="#Unsubscribe">Unsubscribe</a> -+-
! 		<A HREF="#Unsubscribe">Change Subscription</a> -+-
! 		<A HREF="#Posting">Posting</a> -+-
! 		<A HREF="#Archives">Archives</a>
! 		<BR>
! 		<A HREF="#Subscribers">Subscribers</a> -+-
! 		<A HREF="/listrules.html">List Rules</a> -+-
! 		<A HREF="/faq.html">FAQ</a> -+-
! 		<A HREF="/manners.html">Netiquette</a>
! 		</B>
! 	    </td></tr>
! 	</table>
! 	<MM-Subscribe-Form-Start>
! 	<P>
! 	<TABLE COLS="2" BORDER="0" CELLSPACING="4" CELLPADDING="5">
! 	<TR><TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
! 	    <A NAME="About"><B><FONT COLOR="#000000" SIZE="+2"><MM-List-Name>:
! 	    <MM-List-Description></FONT></B>
! 	</TD></TR>
! 	<tr><td colspan="2"><p>&nbsp;
! 	</td></tr>
! 	<tr> <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 	    <B><FONT COLOR="#000000" SIZE="+1">About The <MM-List-Name>
! 	    Mailing List</FONT></B>
! 	</TD></TR>
! 	<tr><TD COLSPAN="2" WIDTH="100%">
! 	    <P><MM-List-Info></P>
! 	</TD></TR>
! 	<TR><TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 	    <A NAME="Subscribe">
! 	    <B><FONT COLOR="#000000" SIZE="+1">Subscribing to <MM-List-Name>
! 	    </FONT></B>
! 	</TD></TR>
! 	<tr><td colspan="2">
! 	    <P>To subscribe to <B><MM-List-Name></B>, fill out this form.
! 	    <MM-List-Subscription-Msg>
! 	    <BLOCKQUOTE>
! 	    <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
   		WIDTH="70%" HEIGHT= "112">
! 		<TR><TD BGCOLOR="#cccccc" WIDTH="55%">Your email address:</TD>
! 		<TD WIDTH="33%"><MM-Subscribe-Box></TD>
! 		<TD WIDTH="12%">&nbsp;</TD></TR><TR>
! 		<TD COLSPAN="3">
! 		    <BLOCKQUOTE>
! 		    You must enter a privacy
! 		    password. This provides only mild security, but should
! 		    prevent others from modifying your subscription.  <b>Do
! 		    not use the password to your account</b>. Use something
! 		    you will remember, but which won't give someone access to
! 		    your accounts if they somehow get their hands on it.
! 		    <MM-Reminder>
! 		    </BLOCKQUOTE>
! 		</TD></TR>
! 		<TR><TD BGCOLOR="#cccccc">Pick a password:</TD>
! 		<TD><MM-New-Password-Box></TD>
! 		<TD>&nbsp;</TD></TR>
! 		<TR> <TD BGCOLOR="#cccccc">Re-enter password to confirm:</TD>
! 		<TD><MM-Confirm-Password></TD>
! 		<TD>&nbsp; </TD></TR>
! 		<tr><td>Would you like to receive list mail batched in a daily
! 		    digest?
! 		</td><td><MM-Undigest-Radio-Button> No
! 		    <MM-Digest-Radio-Button>  Yes
! 		</TD></tr>
! 		<tr><td colspan="3">
! 		    <center><MM-Subscribe-Button></P></center>
! 		</TD></tr>
! 	    </TABLE>
   	    <MM-Form-End>
! 	    </BLOCKQUOTE>
! 	    </td></tr>
! 	    <TR><TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 		<a name="Unsubscribe">
! 		<B><FONT COLOR="#000000" SIZE="+1">Unsubscribe and Change
! 		    Subscription Options</FONT></B>
! 	    </TD></TR>
! 	    <TR><TD COLSPAN="2" WIDTH="100%">
! 		<MM-Subscribe-Form-Start>
! 		<MM-Editing-Options>
   		<MM-Form-End>
! 	    </td></tr>
! 	</TR>
! 	<TR><TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 	    <A NAME="Posting">
! 	    <B><FONT COLOR="#000000" <FONT SIZE="+1">Posting to
! 		<MM-List-Name></FONT></B>
! 	</TD></TR>
! 	<tr><td colspan="2">
! 	    To post a message to all the list members, send email to
! 	    <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
! 	</td></tr>
! 	<tr><TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 	    <A NAME="Archives">
! 	    <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> Archives
! 	    </FONT></B>
! 	</TD></TR>
! 	<tr><TD COLSPAN="2" WIDTH="100%">
! 	    To see the collection of prior postings to the list,
! 	    visit the <MM-Archive><MM-List-Name> Archives</MM-Archive>.
! 	    <MM-Restricted-List-Message>
! 	</TD></TR>
! 	<TR><TD COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC">
! 	    <a name="Subscribers">
! 	    <B><FONT COLOR="#000000" SIZE = "+1">
! 	    <MM-List-Name> Subscribers</FONT></B></a>
! 	</TD></TR>
! 	<tr><TD COLSPAN="2" WIDTH="100%">
! 	    <MM-Roster-Form-Start>
! 	    <MM-Roster-Option>
! 	    <MM-Form-End>
! 	    <p>
! 	</TD></TR>
!     </table>
!     <MM-Mailman-Footer>
   </BODY>
   </HTML>
Only in mailman/templates: listinfo.html.orig
diff -r -c mailman-2.0beta4/templates/options.html 
mailman/templates/options.html
*** mailman-2.0beta4/templates/options.html	Wed Nov 24 09:52:56 1999
--- mailman/templates/options.html	Sat Jul  8 22:59:31 2000
***************
*** 2,32 ****
   <html>
   <head>
   <title><MM-Presentable-User> Configuration for <MM-List-Name></title>
-
   </head>
   <BODY BGCOLOR="#ffffff">
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
   	<FONT COLOR="#000000" SIZE=+1>
! <MM-List-Name> Configuration for <MM-Presentable-User>
   	</FONT></B></TD></TR> </TABLE>
   <MM-Form-Start>

   <p>

- <b><MM-Presentable-User></b>'s subscription status,
- password, and options for the <MM-List-Name> mailing list.
   <MM-Case-Preserved-User>

   <MM-Disabled-Notice>

   <p>

! <a name=unsub>
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
! 	<TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
   <B>Unsubscribing from <MM-List-Name></B>
! 	<TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
   <B>Your other <MM-Host> subscriptions</B>
   	</FONT></TD></TR>

--- 2,43 ----
   <html>
   <head>
   <title><MM-Presentable-User> Configuration for <MM-List-Name></title>
   </head>
   <BODY BGCOLOR="#ffffff">
+ 	<table width="100%" border="0" cellpadding="10">
+ 	    <tr><td><A HREF="/"><img src="/images/plaidworks.logo.gif"
+ 		width="168" height="169"></a>
+ 	    </td><td> <img src="/images/mainlogo.gif" width="601" height="124">
+ 	    </td></tr>
+ 	    <tr><td COLSPAN="2" WIDTH="100%" BGCOLOR="#CCCCCC" ALIGN="RIGHT">
+ 		<B>
+ 		<A HREF="/">Home</a> -+-
+ 		<A HREF="/lists">Mailing Lists home</a> -+-
+ 		<A HREF="#Change">Change Password</a> -+-
+ 		<A HREF="#Options">Change Options</a>
+ 		</B>
+ 	    </td></tr>
+ 	</table>
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD WIDTH="100%" ALIGN="CENTER"><B>
   	<FONT COLOR="#000000" SIZE=+1>
! <MM-List-Name> Mailing List Status for <MM-Presentable-User>
   	</FONT></B></TD></TR> </TABLE>
   <MM-Form-Start>

   <p>

   <MM-Case-Preserved-User>

   <MM-Disabled-Notice>

   <p>

! <a name="unsub">
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
! 	<TR><TD WIDTH="50%" BGCOLOR="#CCCCCC"><FONT COLOR="#000000">
   <B>Unsubscribing from <MM-List-Name></B>
! 	<TD WIDTH="50%" BGCOLOR="#CCCCCC"><FONT COLOR="#000000">
   <B>Your other <MM-Host> subscriptions</B>
   	</FONT></TD></TR>

***************
*** 51,57 ****
   	</TD></TR> </table>

   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
   <B>Your <MM-List-Name> Password</B>
   	</FONT></TD>
   </TR>
--- 62,68 ----
   	</TD></TR> </table>

   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#CCCCCC"><FONT COLOR="#000000">
   <B>Your <MM-List-Name> Password</B>
   	</FONT></TD>
   </TR>
***************
*** 71,76 ****
--- 82,88 ----
   <td WIDTH="50%">
   <a name=changepw>
   <center>
+ <A NAME="Change">
   <h3>Change Your Password</h3>
         <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
         <TR>
***************
*** 93,99 ****

   <a name=options>
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
   <B>Your <MM-List-Name> Subscription Options</B>
   	</FONT></TD></TR> </table>

--- 105,111 ----

   <a name=options>
   	<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
! 	<TR><TD WIDTH="100%" BGCOLOR="#CCCCCC"><FONT COLOR="#000000">
   <B>Your <MM-List-Name> Subscription Options</B>
   	</FONT></TD></TR> </table>

Only in mailman/templates: options.html.orig
-- 
Chuq Von Rospach - Plaidworks Consulting (mailto:chuqui@plaidworks.com)
Apple Mail List Gnome (mailto:chuq@apple.com)

And they sit at the bar and put bread in my jar
and say 'Man, what are you doing here?'"