summaryrefslogtreecommitdiff
path: root/modules/Cgi/edithtml.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/Cgi/edithtml.py')
-rwxr-xr-xmodules/Cgi/edithtml.py167
1 files changed, 0 insertions, 167 deletions
diff --git a/modules/Cgi/edithtml.py b/modules/Cgi/edithtml.py
deleted file mode 100755
index faf35e715..000000000
--- a/modules/Cgi/edithtml.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#! /usr/bin/env python
-#
-# Copyright (C) 1998 by the Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-"""Script which implements admin editing of the list's html templates."""
-
-import sys
-import os, cgi, string, crypt, types
-import mm_utils, maillist, mm_cfg
-import htmlformat
-
-#Editable templates. We should also be able to edit the archive index, which
-#currently isn't a working template, but will be soon.
-
-template_data = (('listinfo.html', 'General list information page'),
- ('subscribe.html', 'Subscribe results page'),
- ('options.html', 'User specific options page'),
- ('handle_opts.html', 'Changing user options results page'),
- ('archives.html', 'Archives index page')
- )
-
-
-def InitDocument():
- return htmlformat.HeadlessDocument()
-
-doc = InitDocument()
-
-path = os.environ['PATH_INFO']
-list_info = mm_utils.GetPathPieces(path)
-
-if len(list_info) < 1:
- doc.AddItem(htmlformat.Header(2, "Invalid options to CGI script."))
- print doc.Format()
- sys.exit(0)
-
-list_name = string.lower(list_info[0])
-
-try:
- list = maillist.MailList(list_name, lock=0)
-except:
- doc.AddItem(htmlformat.Header(2, "%s : No such list" % list_name))
- print doc.Format()
- sys.exit(0)
-
-if not list._ready:
- doc.AddItem(htmlformat.Header(2, "%s : No such list" % list_name))
- print doc.Format()
- sys.exit(0)
-
-
-if len(list_info) > 1:
- template_name = list_info[1]
- for (template, info) in template_data:
- if template == template_name:
- template_info = info
- doc.SetTitle('%s -- Edit html for %s' %
- (list.real_name, template_info))
- break
- else:
- doc.SetTitle('Edit HTML : Error')
- doc.AddItem(htmlformat.Header(2, "%s: Invalid template" % template_name))
- doc.AddItem(list.GetMailmanFooter())
- print doc.Format()
- sys.exit(0)
-else:
- doc.SetTitle('%s -- HTML Page Editing' % list.real_name)
- doc.AddItem(htmlformat.Header(1, '%s -- HTML Page Editing' % list.real_name))
- doc.AddItem(htmlformat.Header(2, 'Select page to edit:'))
- template_list = htmlformat.UnorderedList()
- for (template, info) in template_data:
- l = htmlformat.Link(os.path.join(list.GetRelativeScriptURL('edithtml'),
- template), info)
-
- template_list.AddItem(l)
- doc.AddItem(htmlformat.FontSize("+2", template_list))
- doc.AddItem(list.GetMailmanFooter())
- print doc.Format()
- sys.exit(0)
-
-
-def FormatHTML(doc):
- doc.AddItem(htmlformat.Header(1,'%s:' % list.real_name))
- doc.AddItem(htmlformat.Header(1, template_info))
-
- doc.AddItem('<hr>')
-
- link = htmlformat.Link(list.GetRelativeScriptURL('admin'),
- 'View or edit the list configuration information.')
- doc.AddItem(htmlformat.FontSize("+1", link))
- doc.AddItem('<p>')
-
- doc.AddItem('<hr>')
-
- form = htmlformat.Form(os.path.join(list.GetRelativeScriptURL('edithtml'),
- template_name))
- doc.AddItem(form)
-
- password_table = htmlformat.Table()
- password_table.AddRow(['Enter the admin password to edit html:',
- htmlformat.PasswordBox('adminpw')])
- password_table.AddRow(['When you are done making changes...',
- htmlformat.SubmitButton('submit', 'Submit Changes')])
-
- form.AddItem(password_table)
-
- text = mm_utils.QuoteHyperChars(list.SnarfHTMLTemplate(template_name))
- form.AddItem(htmlformat.TextArea('html_code', text, rows=40, cols=75))
-
-def ChangeHTML(list, cgi_info, template_name, doc):
- if not cgi_info.has_key('html_code'):
- doc.AddItem(htmlformat.Header(3,"Can't have empty html page."))
- doc.AddItem(htmlformat.Header(3,"HTML Unchanged."))
- doc.AddItem('<hr>')
- return
- code = cgi_info['html_code'].value
- f = open(os.path.join(list._template_dir, template_name), 'w')
- f.write(code)
- f.close()
- doc.AddItem(htmlformat.Header(3, 'HTML successfully updated.'))
- doc.AddItem('<hr>')
-
-try:
- cgi_data = cgi.FieldStorage()
- if len(cgi_data.keys()):
- if not cgi_data.has_key('adminpw'):
- m = 'Error: You must supply the admin password to edit html.'
- doc.AddItem(htmlformat.Header(3,
- htmlformat.Italic(
- htmlformat.FontAttr(
- m, color="ff5060"))))
- doc.AddItem('<hr>')
- else:
- try:
- list.ConfirmAdminPassword(cgi_data['adminpw'].value)
- ChangeHTML(list, cgi_data, template_name, doc)
- except:
- m = 'Error: Incorrect admin password.'
- doc.AddItem(htmlformat.Header(3,
- htmlformat.Italic(
- htmlformat.FontAttr(
- m, color="ff5060"))))
- doc.AddItem('<hr>')
-
-
-
- FormatHTML(doc)
-
-finally:
- try:
- doc.AddItem(list.GetMailmanFooter())
- print doc.Format()
- except:
- pass