support for a prefix of the local part of mailing list addresses

unified form headers
This commit is contained in:
lars 2007-04-01 23:42:36 +00:00
parent 3958224115
commit 94006f8e6b
25 changed files with 76 additions and 104 deletions

View file

@ -4,12 +4,13 @@ Version 3.2 - 04/14/02006
* support for multi-domain setups * support for multi-domain setups
* detect preferred interface language * detect preferred interface language
* user-specific interface language selection * user-specific interface language selection
* handling of empty settings for ezmlm-idx 5.0 fixed (closes #21) * support for listing of subscription log
* a prefix for the local part of mailing list addresses is now configurable
* script for creating binary suid wrappers added * script for creating binary suid wrappers added
* handling of empty settings for ezmlm-idx 5.0 fixed (closes #21)
* bug in MySQL support fixed * bug in MySQL support fixed
* handling of the special character "dot" in listname and list address fixed * handling of the special character "dot" in listname and list address fixed
* the formerly required module "Encode" is now optional * the formerly required module "Encode" is now optional
* support for listing of subscription log
Version 3.1.4 - 03/26/02006 Version 3.1.4 - 03/26/02006
* new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups) * new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups)

View file

@ -33,7 +33,7 @@ $LIST_DIR = "$HOME_DIR/lists";
# Where is the webusers file for access-permissions # Where is the webusers file for access-permissions
# defaults to "$LIST_DIR/webusers" # defaults to "$LIST_DIR/webusers"
$WEBUSERS_FILE = "$LIST_DIR/webusers"; #$WEBUSERS_FILE = "$LIST_DIR/webusers";
# Where are the language files # Where are the language files
# usually something like /usr/local/share/ezmlm-web/lang # usually something like /usr/local/share/ezmlm-web/lang
@ -57,6 +57,10 @@ $QMAIL_BASE = $Mail::Ezmlm::QMAIL_BASE . '/control';
# default mailing list domain name (optional) # default mailing list domain name (optional)
#$MAIL_DOMAIN = "lists.someserver.org"; #$MAIL_DOMAIN = "lists.someserver.org";
# default prefix of the local part of the addresses of mailing lists
# useful for some qmail-ldap setups
#$MAIL_ADDRESS_PREFIX = "lists-";
# Do we want to allow ``pretty'' names - ie more human readable ones # Do we want to allow ``pretty'' names - ie more human readable ones
# This will slow ezmlm-web down a bit for large lists # This will slow ezmlm-web down a bit for large lists
$PRETTY_NAMES = 1; $PRETTY_NAMES = 1;

View file

@ -10,7 +10,7 @@
# If your setup is a little bit more exotic, then you can change the code, too. # If your setup is a little bit more exotic, then you can change the code, too.
# In the end, the setting $LIST_DIR should either be an empty string or # In the end, the setting $LIST_DIR should either be an empty string or
# the path of a mailing list directory. You may also want to take care for the # the path of a mailing list directory. You may also want to take care for the
# $DOTQMAIL_DIR and $MAILDOMAIN settings. # $DOTQMAIL_DIR, $MAILDOMAIN and $MAIL_ADDRESS_PREFIX settings.
# #
# BEWARE: you may not define new variables as - otherwise they could collide # BEWARE: you may not define new variables as - otherwise they could collide
# with the names of variables of the ezmlm-web program. # with the names of variables of the ezmlm-web program.
@ -29,14 +29,13 @@
foo => { foo => {
name => "Example Domain Foo", name => "Example Domain Foo",
list_dir => "/data/lists/foo", list_dir => "/data/lists/foo",
dot_dir => "/data/lists/foo",
mail_domain => "lists.foo.org",
}, },
bar => { bar => {
name => "Example Domain Bar", name => "Example Domain Bar",
list_dir => "/data/lists/bar", list_dir => "/data/lists/bar",
dot_dir => "/data/lists/bar", dot_dir => "/var/vpopmail/lists/bar",
mail_domain => "lists.bar.org", mail_domain => "lists.bar.org",
mail_prefix => "lists-",
}, },
); );
@ -49,6 +48,8 @@ if (defined($CURRENT_DOMAIN) && defined($DOMAINS{$CURRENT_DOMAIN})) {
if (defined $DOMAINS{$CURRENT_DOMAIN}{'dot_dir'}); if (defined $DOMAINS{$CURRENT_DOMAIN}{'dot_dir'});
$MAIL_DOMAIN = $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'} $MAIL_DOMAIN = $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'}
if (defined $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'}); if (defined $DOMAINS{$CURRENT_DOMAIN}{'mail_domain'});
$MAIL_ADDRESS_PREFIX = $DOMAINS{$CURRENT_DOMAIN}{'mail_prefix'}
if (defined $DOMAINS{$CURRENT_DOMAIN}{'mail_prefix'});
} else { } else {
$LIST_DIR = ''; $LIST_DIR = '';
} }

View file

@ -22,7 +22,6 @@ use CGI;
use IO::File; use IO::File;
use POSIX; use POSIX;
use English; use English;
# TODO: uncomment it later
use Time::localtime (); use Time::localtime ();
# gettext support is optional # gettext support is optional
@ -77,7 +76,7 @@ use vars qw[$DEFAULT_OPTIONS $UNSAFE_RM $ALIAS_USER $LIST_DIR];
use vars qw[$QMAIL_BASE $PRETTY_NAMES $DOTQMAIL_DIR]; use vars qw[$QMAIL_BASE $PRETTY_NAMES $DOTQMAIL_DIR];
use vars qw[$FILE_UPLOAD $WEBUSERS_FILE $MAIL_DOMAIN $HTML_TITLE]; use vars qw[$FILE_UPLOAD $WEBUSERS_FILE $MAIL_DOMAIN $HTML_TITLE];
use vars qw[$HTML_CSS_FILE $TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE]; use vars qw[$HTML_CSS_FILE $TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE];
use vars qw[$DEFAULT_HOST]; use vars qw[$DEFAULT_HOST $MAIL_ADDRESS_PREFIX];
# some settings for encrypted mailing lists # some settings for encrypted mailing lists
use vars qw[$GPG_SUPPORT]; use vars qw[$GPG_SUPPORT];
# settings for multi-domain setups # settings for multi-domain setups
@ -606,7 +605,7 @@ sub set_pagedata_domains {
my ($domain_name); my ($domain_name);
# multi-domain setup? # multi-domain setup?
if (defined($CURRENT_DOMAIN)) { if (defined($CURRENT_DOMAIN) && ($CURRENT_DOMAIN ne '')) {
$pagedata->setValue("Config.UI.LinkAttrs.domain", $CURRENT_DOMAIN); $pagedata->setValue("Config.UI.LinkAttrs.domain", $CURRENT_DOMAIN);
$pagedata->setValue("Data.CurrentDomain", $CURRENT_DOMAIN); $pagedata->setValue("Data.CurrentDomain", $CURRENT_DOMAIN);
$pagedata->setValue("Data.CurrentDomain.Description", $pagedata->setValue("Data.CurrentDomain.Description",
@ -674,6 +673,11 @@ sub set_pagedata {
$username = "$USER-" if ($USER ne $ALIAS_USER); $username = "$USER-" if ($USER ne $ALIAS_USER);
$hostname = $DEFAULT_HOST; $hostname = $DEFAULT_HOST;
} }
# maybe a local prefix was configured?
if (defined($MAIL_ADDRESS_PREFIX)) {
$username = $MAIL_ADDRESS_PREFIX;
}
$pagedata->setValue("Data.UserName", "$username"); $pagedata->setValue("Data.UserName", "$username");
$pagedata->setValue("Data.HostName", "$hostname"); $pagedata->setValue("Data.HostName", "$hostname");

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigAdmin) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigAdmin) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_admin", "") ?>
<input type="hidden" name="config_subset" value="admin" /> <input type="hidden" name="config_subset" value="admin" />
<?cs call:show_options(UI.Options.Config.Admin) ?> <?cs call:show_options(UI.Options.Config.Admin) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigAll) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigAll) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_all", "") ?>
<input type="hidden" name="config_subset" value="all" /> <input type="hidden" name="config_subset" value="all" />
<?cs call:show_options(UI.Options.Config.Overview) ?> <?cs call:show_options(UI.Options.Config.Overview) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigArchive) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigArchive) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_archive", "") ?>
<input type="hidden" name="config_subset" value="archive" /> <input type="hidden" name="config_subset" value="archive" />
<?cs call:show_options(UI.Options.Config.Archive) ?> <?cs call:show_options(UI.Options.Config.Archive) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.GnupgOptions) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.GnupgOptions) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_encryption", "") ?>
<input type="hidden" name="config_subset" value="encryption" /> <input type="hidden" name="config_subset" value="encryption" />
<?cs call:show_options(UI.Options.Config.GnupgOptions) ?> <?cs call:show_options(UI.Options.Config.GnupgOptions) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigMain) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigMain) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_main", "") ?>
<input type="hidden" name="config_subset" value="main" /> <input type="hidden" name="config_subset" value="main" />
<?cs call:show_options(UI.Options.Config.Main) ?> <?cs call:show_options(UI.Options.Config.Main) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -9,17 +9,15 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigPosting) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigPosting) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_posting", "") ?>
<input type="hidden" name="config_subset" value="posting" /> <input type="hidden" name="config_subset" value="posting" />
<?cs call:show_options(UI.Options.Config.Posting) ?> <?cs call:show_options(UI.Options.Config.Posting) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>
</form> </form>
</fieldset> </fieldset>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigProcess) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigProcess) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_processing") ?>
<input type="hidden" name="config_subset" value="processing" /> <input type="hidden" name="config_subset" value="processing" />
<?cs call:show_options(UI.Options.Config.Processing) ?> <?cs call:show_options(UI.Options.Config.Processing) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>
@ -24,3 +21,4 @@
</fieldset> </fieldset>
<?cs include:TemplateDir + '/help_tag_susbtitution.cs' ?> <?cs include:TemplateDir + '/help_tag_susbtitution.cs' ?>

View file

@ -9,14 +9,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ConfigSub) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ConfigSub) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_subscription") ?>
<input type="hidden" name="config_subset" value="subscription" /> <input type="hidden" name="config_subset" value="subscription" />
<?cs call:show_options(UI.Options.Config.Subscription) ?> <?cs call:show_options(UI.Options.Config.Subscription) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>

View file

@ -1,4 +0,0 @@
<!-- this file should be included in every form with checkboxes and settings -->
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />

View file

@ -9,8 +9,7 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.GnupgConvert) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.GnupgConvert) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("gnupg_convert", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<?cs if:Data.List.Features.Crypto <?cs if:Data.List.Features.Crypto
?><button type="submit" name="send" value="do"><?cs ?><button type="submit" name="send" value="do"><?cs
var:html_escape(Lang.Buttons.GnupgConvertToPlain) ?></button> var:html_escape(Lang.Buttons.GnupgConvertToPlain) ?></button>

View file

@ -9,15 +9,12 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.GnupgGenerateKey) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.GnupgGenerateKey) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("gnupg_generate_key", "") ?>
<input type="hidden" name="gnupg_subset" value="generate_key" /> <input type="hidden" name="gnupg_subset" value="generate_key" />
<?cs call:show_options(UI.Options.GenerateKey) ?> <?cs call:show_options(UI.Options.GenerateKey) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="gnupg_do" /> <input type="hidden" name="action" value="gnupg_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.GnupgGenerateKey) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.GnupgGenerateKey) ?></button>
</form> </form>

View file

@ -1,15 +1,11 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.GnupgKeyImport) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.GnupgKeyImport) ?> </legend>
<!-- this form has to be "multipart/form-data" to make file upload work --> <?cs call:form_header_upload("gnupg_key_upload") ?>
<form method="post" action="<?cs call:link("","","","","","") ?>"
enctype="multipart/form-data">
<input type="hidden" name="gnupg_subset" value="<?cs <input type="hidden" name="gnupg_subset" value="<?cs
if:Data.Action == 'gnupg_public' ?>public<?cs if:Data.Action == 'gnupg_public' ?>public<?cs
else ?>secret<?cs /if ?>" /> else ?>secret<?cs /if ?>" />
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<ul> <ul>
<li><?cs var:html_escape(Lang.Misc.GnupgImportKey) ?> <li><?cs var:html_escape(Lang.Misc.GnupgImportKey) ?>
<ul><li><input type="file" name="gnupg_key_file" size="50" <ul><li><input type="file" name="gnupg_key_file" size="50"
@ -18,9 +14,6 @@
</li> </li>
<li> <li>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="gnupg_do" /> <input type="hidden" name="action" value="gnupg_do" />
<button type="submit" name="send" value="do"><?cs <button type="submit" name="send" value="do"><?cs
var:html_escape(Lang.Buttons.GnupgImportKey) ?></button> var:html_escape(Lang.Buttons.GnupgImportKey) ?></button>

View file

@ -13,8 +13,7 @@
<?cs if:subcount(Data.List.gnupg_keys.public) > 0 ?> <?cs if:subcount(Data.List.gnupg_keys.public) > 0 ?>
<form method="post" action="<?cs call:link("","","","","","") ?>" <?cs call:form_header("gnupg_public_keys", "") ?>
enctype="application/x-www-form-urlencoded">
<input type="hidden" name="gnupg_subset" value="public" /> <input type="hidden" name="gnupg_subset" value="public" />
<table class="gnupg_keys"> <table class="gnupg_keys">
@ -39,9 +38,6 @@
<?cs /each ?> <?cs /each ?>
</table> </table>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="gnupg_do" /> <input type="hidden" name="action" value="gnupg_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeletePublicKey) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeletePublicKey) ?></button>

View file

@ -13,8 +13,7 @@
<?cs if:subcount(Data.List.gnupg_keys.secret) > 0 ?> <?cs if:subcount(Data.List.gnupg_keys.secret) > 0 ?>
<form method="post" action="<?cs call:link("","","","","","") ?>" <?cs call:form_header("gnupg_secret_keys") ?>
enctype="application/x-www-form-urlencoded">
<input type="hidden" name="gnupg_subset" value="secret" /> <input type="hidden" name="gnupg_subset" value="secret" />
<table class="gnupg_keys"> <table class="gnupg_keys">
@ -39,9 +38,6 @@
<?cs /each ?> <?cs /each ?>
</table> </table>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="gnupg_do" /> <input type="hidden" name="action" value="gnupg_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeleteSecretKey) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeleteSecretKey) ?></button>

View file

@ -1,13 +1,10 @@
<!-- allows the user to change the interface language (not of the list!) --> <!-- allows the user to change the interface language (not of the list!) -->
<?cs if:subcount(Config.UI.Languages) > 0 ?> <?cs if:subcount(Config.UI.Languages) > 0 ?>
<form class="select" method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("select_language", "web_lang") ?>
<?cs if:Data.List.Name ?><input type="hidden" name="list" value="<?cs <?cs if:Data.List.Name ?><input type="hidden" name="action"
var:Data.List.Name ?>" /> value="subscribers" /><?cs /if ?>
<input type="hidden" name="action" value="subscribers" /><?cs /if ?>
<?cs if:Data.CurrentDomain ?><input type="hidden" name="domain" value="<?cs
var:Data.CurrentDomain ?>" /><?cs /if ?>
<font class="no_link"><?cs <font class="no_link"><?cs
var:html_escape(Lang.Menue.Language) ?>:</font><br/> var:html_escape(Lang.Menue.Language) ?>:</font><br/>

View file

@ -5,15 +5,13 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.ListCreate) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ListCreate) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("list_create", "") ?>
<?cs call:show_options(UI.Options.Create) ?> <?cs call:show_options(UI.Options.Create) ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="action" value="list_create_do" /> <input type="hidden" name="action" value="list_create_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.Create) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.Create) ?></button>
</form> </form>
</fieldset> </fieldset>

View file

@ -10,9 +10,7 @@
<legend><?cs var:html_escape(Lang.Legend.ListDelete) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.ListDelete) ?> </legend>
<p><?cs var:html_escape(Lang.Misc.ConfirmDelete) ?></p> <p><?cs var:html_escape(Lang.Misc.ConfirmDelete) ?></p>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("delete_list_confirm", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<input type="hidden" name="action" value="list_delete_do" /> <input type="hidden" name="action" value="list_delete_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.ConfirmDeletion) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.ConfirmDeletion) ?></button>
</form> </form>

View file

@ -96,5 +96,33 @@ def:link(attr1, value1, attr2, value2, attr3, value3)
?><?cs /if ?><?cs /if
?><?cs /each ?><?cs /each
?><?cs /if ?><?cs ?><?cs /if ?><?cs
/def ?><?cs
def:form_header_generic(form_name, ignore_attr, enctype)
?><?cs # somehow perl's CGI has problems to evaluate the querystring of a
form action - thus we have to use hidden input fields instead
?><form accept-charset="utf-8" name="<?cs var:html_escape(form_name)
?>" method="post" action="<?cs var:ScriptName
?>" enctype="<?cs var:enctype ?>">
<?cs each:attr = Config.UI.LinkAttrs ?><?cs
if:name(attr) != ignore_attr ?><input type="hidden" name="<?cs
var:html_escape(name(attr)) ?>" value="<?cs
var:html_escape(attr) ?>" /><?cs /if ?>
<?cs /each ?><?cs
if:Data.List.Name ?><input type="hidden" name="list" value="<?cs
var:html_escape(Data.List.Name) ?>" /><?cs /if ?><?cs
/def ?><?cs
def:form_header(form_name, ignore_attr)
?><?cs call:form_header_generic(form_name, ignore_attr,
"application/x-www-form-urlencoded") ?><?cs
/def ?><?cs
def:form_header_upload(form_name, ignore_attr)
?><?cs call:form_header_generic(form_name, ignore_attr,
"multipart/form-data") ?><?cs
/def ?> /def ?>

View file

@ -36,7 +36,7 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.RelevantOptions) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.RelevantOptions) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("config_subscription", "") ?>
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" /> <input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
@ -48,11 +48,7 @@
<?cs call:show_options(UI.Options.Subscribers.Moderators) ?> <?cs call:show_options(UI.Options.Subscribers.Moderators) ?>
<?cs /if ?> <?cs /if ?>
<!-- include default form values -->
<?cs include:TemplateDir + '/form_common.cs' ?>
<input type="hidden" name="config_subset" value="RESERVED-subscribers" /> <input type="hidden" name="config_subset" value="RESERVED-subscribers" />
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<input type="hidden" name="action" value="config_do" /> <input type="hidden" name="action" value="config_do" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.UpdateConfiguration) ?></button>
</form> </form>
@ -79,8 +75,7 @@
<table class="subscribers"><tr> <table class="subscribers"><tr>
<?cs if:subcount(Data.List.Subscribers) > 0 ?> <?cs if:subcount(Data.List.Subscribers) > 0 ?>
<td><form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <td><?cs call:form_header("remove_subscriber", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<?cs if:Data.List.PartType ?> <?cs if:Data.List.PartType ?>
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" /> <input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
<?cs /if ?> <?cs /if ?>
@ -102,10 +97,7 @@
<li><?cs var:subcount(Data.List.Subscribers) ?> <?cs var:html_escape(Lang.Misc.Subscribers) ?></li> <li><?cs var:subcount(Data.List.Subscribers) ?> <?cs var:html_escape(Lang.Misc.Subscribers) ?></li>
<li><input type="hidden" name="action" value="address_del" /> <li><input type="hidden" name="action" value="address_del" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeleteAddress) ?></button></form></li> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.DeleteAddress) ?></button></form></li>
<li><form method="post" action="<?cs call:link('','','','','','') <li><?cs call:form_header("download_subscribers", "") ?>
?>" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="list" value="<?cs
var:Data.List.Name ?>" />
<input type="hidden" name="action" value="download_subscribers" /> <input type="hidden" name="action" value="download_subscribers" />
<?cs if:Data.List.PartType ?> <?cs if:Data.List.PartType ?>
<input type="hidden" name="part" value="<?cs <input type="hidden" name="part" value="<?cs
@ -116,9 +108,7 @@
</ul></td> </ul></td>
<?cs /if ?> <?cs /if ?>
<td><form method="post" action="<?cs call:link("","","","","","") ?>" enctype="multipart/form-data"> <td><?cs call:form_header_upload("upload_subscribers", "") ?>
<!-- this form has to be "multipart/form-data" to make file upload work -->
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<?cs if:Data.List.PartType ?> <?cs if:Data.List.PartType ?>
<input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" /> <input type="hidden" name="part" value="<?cs var:Data.List.PartType ?>" />
<?cs /if ?> <?cs /if ?>

View file

@ -16,8 +16,7 @@
<?cs var:html_escape(Lang.Introduction.ResetTextFile) ?> <?cs var:html_escape(Lang.Introduction.ResetTextFile) ?>
</div> </div>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("textfile_reset", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>">
<input type="hidden" name="file" value="<?cs var:Data.List.File.Name ?>"> <input type="hidden" name="file" value="<?cs var:Data.List.File.Name ?>">
<input type="hidden" name="action" value="textfile_reset" /> <input type="hidden" name="action" value="textfile_reset" />
<button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.ResetFile) ?></button> <button type="submit" name="send" value="do"><?cs var:html_escape(Lang.Buttons.ResetFile) ?></button>
@ -29,8 +28,7 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.TextFileEdit) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.TextFileEdit) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("textfile_reset", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>">
<input type="hidden" name="file" value="<?cs var:Data.List.File.Name ?>"> <input type="hidden" name="file" value="<?cs var:Data.List.File.Name ?>">
<p><textarea name="content" rows="13" <p><textarea name="content" rows="13"

View file

@ -9,9 +9,7 @@
<fieldset class="form"> <fieldset class="form">
<legend><?cs var:html_escape(Lang.Legend.TextFiles) ?> </legend> <legend><?cs var:html_escape(Lang.Legend.TextFiles) ?> </legend>
<form method="post" action="<?cs call:link("","","","","","") ?>" enctype="application/x-www-form-urlencoded"> <?cs call:form_header("select_textfile", "") ?>
<input type="hidden" name="list" value="<?cs var:Data.List.Name ?>" />
<ul> <ul>
<?cs if:subcount(Data.List.CustomizedFiles) + <?cs if:subcount(Data.List.CustomizedFiles) +
subcount(Data.List.DefaultFiles) > 0 ?> subcount(Data.List.DefaultFiles) > 0 ?>