fix handling of empty "owner" setting

default interface type (basic/normal/expert) is now configurable
sort available languages
This commit is contained in:
lars 2007-08-13 11:21:26 +00:00
parent ea52604595
commit fff1a0493a
5 changed files with 20 additions and 15 deletions

6
TODO
View file

@ -9,9 +9,3 @@ add "only for plain text mails" to the TrailerText string
check version history of Mail::Ezmlm check version history of Mail::Ezmlm
sort languages in selection
define default interface in example/ezmlmwebrc?
check ui_mode, ui_template in source

View file

@ -2,7 +2,7 @@ Version 3.2 - 08/07/02007
* support for multi-domain setups (multiple list directories) * support for multi-domain setups (multiple list directories)
* detect preferred interface language * detect preferred interface language
* user-specific interface language selection * user-specific interface language selection
* user-specific interface types (easy/default/expert) * user-specific interface types (easy/normal/expert)
* simplified rules for subscribing, posting and archive access * simplified rules for subscribing, posting and archive access
* support for listing of subscription log * support for listing of subscription log
* support for downloading the subscribers list as a text file * support for downloading the subscribers list as a text file

View file

@ -78,6 +78,10 @@ $FILE_UPLOAD = 1;
# disabled). The defaults below should be reasonable - I use them ;) # disabled). The defaults below should be reasonable - I use them ;)
$DEFAULT_OPTIONS = "aBDFGHiJkLMNOpQRSTUWx"; $DEFAULT_OPTIONS = "aBDFGHiJkLMNOpQRSTUWx";
# Which interface type should be displayed by default?
# available values are: easy, normal and expert
#$DEFAULT_INTERFACE_TYPE = "normal";
# What is the title of this document? # What is the title of this document?
$HTML_TITLE = "ezmlm-web - a mailinglist administration interface"; $HTML_TITLE = "ezmlm-web - a mailinglist administration interface";

View file

@ -93,6 +93,8 @@ use vars qw[$FILE_UPLOAD $WEBUSERS_FILE $MAIL_DOMAIN $HTML_TITLE];
use vars qw[$TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE]; use vars qw[$TEMPLATE_DIR $LANGUAGE_DIR $HTML_LANGUAGE];
use vars qw[$HTML_CSS_COMMON $HTML_CSS_COLOR]; use vars qw[$HTML_CSS_COMMON $HTML_CSS_COLOR];
use vars qw[$MAIL_ADDRESS_PREFIX @HTML_LINKS]; use vars qw[$MAIL_ADDRESS_PREFIX @HTML_LINKS];
# default interface template (basic/normal/expert)
use vars qw[$DEFAULT_INTERFACE_TYPE];
# 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
@ -109,7 +111,7 @@ use vars qw[$HTML_CSS_FILE]; # replaced by HTML_CSS_COMMON since v3.2
# "pagename" refers to the template file that should be used # "pagename" refers to the template file that should be used
# "ui_template" is one of "basic", "normal" and "expert" # "ui_template" is one of "basic", "normal" and "expert"
use vars qw[$pagedata $pagename $error $customError $warning $customWarning $success]; use vars qw[$pagedata $pagename $error $customError $warning $customWarning $success];
use vars qw[$ui_set $ui_template]; use vars qw[$ui_template];
# Get user configuration stuff # Get user configuration stuff
my $config_file; my $config_file;
@ -217,6 +219,9 @@ $HTML_TITLE = '' unless defined($HTML_TITLE);
# check HTML_LINKS # check HTML_LINKS
@HTML_LINKS = () unless defined(@HTML_LINKS); @HTML_LINKS = () unless defined(@HTML_LINKS);
# check DEFAULT_INTERFACE_TYPE
$DEFAULT_INTERFACE_TYPE = 'norma' unless defined($DEFAULT_INTERFACE_TYPE);
# determine MAIL_DOMAIN # determine MAIL_DOMAIN
unless (defined($MAIL_DOMAIN) && ($MAIL_DOMAIN ne '')) { unless (defined($MAIL_DOMAIN) && ($MAIL_DOMAIN ne '')) {
if ((-e "$QMAIL_BASE/virtualdomains") && open(VD, "<$QMAIL_BASE/virtualdomains")) { if ((-e "$QMAIL_BASE/virtualdomains") && open(VD, "<$QMAIL_BASE/virtualdomains")) {
@ -567,7 +572,7 @@ sub init_hdf {
if ($q->param('template') eq $one_template); if ($q->param('template') eq $one_template);
} }
} }
$ui_template = 'normal' unless defined($ui_template); $ui_template = $DEFAULT_INTERFACE_TYPE unless defined($ui_template);
$hdf->setValue("Config.UI.LinkAttrs.template", $ui_template); $hdf->setValue("Config.UI.LinkAttrs.template", $ui_template);
@ -582,7 +587,7 @@ sub init_hdf {
# retrieve available languages and add them to the dataset # retrieve available languages and add them to the dataset
my %languages = &get_available_interface_languages(); my %languages = &get_available_interface_languages();
my $lang; my $lang;
foreach $lang (keys %languages) { foreach $lang (sort keys %languages) {
$hdf->setValue("Config.UI.Languages.$lang", $languages{$lang}); $hdf->setValue("Config.UI.Languages.$lang", $languages{$lang});
} }
@ -807,8 +812,6 @@ sub set_pagedata {
# multi domain support? # multi domain support?
&set_pagedata_domains() if (%DOMAINS); &set_pagedata_domains() if (%DOMAINS);
$pagedata->setValue("Data.LocalPrefix", $MAIL_ADDRESS_PREFIX);
$pagedata->setValue("Data.LocalPrefix", $MAIL_ADDRESS_PREFIX); $pagedata->setValue("Data.LocalPrefix", $MAIL_ADDRESS_PREFIX);
$pagedata->setValue("Data.HostName", $MAIL_DOMAIN); $pagedata->setValue("Data.HostName", $MAIL_DOMAIN);
@ -1113,6 +1116,10 @@ sub set_pagedata4options {
for ($i=0; $i<=9; $i++) { for ($i=0; $i<=9; $i++) {
unless (($i eq 1) || ($i eq 2)) { unless (($i eq 1) || ($i eq 2)) {
$state = ($options =~ /\s-$i (?:'(.+?)')/); $state = ($options =~ /\s-$i (?:'(.+?)')/);
# store the retrieved value (if possible)
$value = $1;
# reset "state" if the owner address starts with '/'
$state = (0==1) if (($i eq 5) && ($state) && ($value =~ m/^\//));
unless ($state) { unless ($state) {
# set default values # set default values
if ($i eq 0) { if ($i eq 0) {
@ -1132,9 +1139,6 @@ sub set_pagedata4options {
$value = "mod"; $value = "mod";
} }
} }
} else {
# use the configured value (extracted by the pattern matching for 'state')
$value = $1;
} }
$pagedata->setValue("Data.List.Settings." . $i . ".value", $value); $pagedata->setValue("Data.List.Settings." . $i . ".value", $value);
$pagedata->setValue("Data.List.Settings." . $i . ".state", $state ? 1 : 0); $pagedata->setValue("Data.List.Settings." . $i . ".state", $state ? 1 : 0);

View file

@ -105,6 +105,9 @@ empty.
Specify the defaut language of the web interface. This value will be overriden Specify the defaut language of the web interface. This value will be overriden
when the browser requests an available language or when the user explicitly when the browser requests an available language or when the user explicitly
selects a different language. The default value is \fIen\fR. selects a different language. The default value is \fIen\fR.
.IP \fB$DEFAULT_INTERFACE_TYPE\fR
Set the default interface template. Available values are \fIeasy\fR,
\fInormal\fR and \fIexpert\fR. The default value is \fInormal\fR.
.IP \fB$GPG_SUPPORT\fR .IP \fB$GPG_SUPPORT\fR
Enable support for encrypted mailing lists. Currently this feature is still Enable support for encrypted mailing lists. Currently this feature is still
considered as beta quality. User reports are warmly welcome! considered as beta quality. User reports are warmly welcome!