: 1;
my @dow_order = ($week_start_day .. 6, 0 .. $week_start_day-1);
- my $page = Encode::decode_utf8($cgi->param("page"));
+ my $page = Encode::decode_utf8(URI::Escape::uri_unescape(IkiWiki::possibly_foolish_untaint($cgi->param('page'))));
+ my $newevent_base = Encode::decode_utf8(URI::Escape::uri_unescape(IkiWiki::possibly_foolish_untaint($cgi->param('base'))));
my $tags = $typedlinks{$page}{tag};
my $buttons = [qw{Preview Create}];
my ($from_date, $to_date, $end_date, $inc_dur);
( action => IkiWiki::cgiurl()
, charset => "utf-8"
, fields => [qw{
- do
+ do base
from_date from_year from_month from_day from_hour from_minute
to_date to_year to_month to_day to_hour to_minute
inc_dur inc_year inc_month inc_week inc_day inc_hour inc_minute
, name => "newevent"
, stylesheet => 1
, params => $cgi
- , required => [qw{do year month day name from_date to_date end_date inc_dur}]
+ , required => [qw{do base year month day name from_date to_date end_date inc_dur}]
, submit => [qw{Preview Create}]
, title => gettext("newevent")
, template => { template("newevent.tmpl") }
}
} }
, name => '/^.+$/'
+ , base => '/^.*$/'
, end_times => sub { $_[0] =~ m/^\d+$/ and $_[0] >= 0 }
, inc_year => sub { $_[0] =~ m/^\d+$/ and $_[0] >= 0 }
, inc_month => sub { $_[0] =~ m/^\d+$/ and $_[0] >= 0 }
);
$form->title(sprintf(gettext("creating new events"), pagetitle(IkiWiki::basename($page))));
$form->field(name => "do", type => "hidden", value => 'newevent', force => 1);
+ $form->field(name => "base", type => "hidden", force => 1
+ , value => ($form->field('base') ? $form->field('base') : $newevent_base));
$form->field(name => "from_date", type => "hidden", value => '1', force => 1);
$form->field(name => "to_date", type => "hidden", value => '1', force => 1);
$form->field(name => "end_date", type => "hidden", value => '1', force => 1);
if (($form->submitted eq 'Create' || $form->submitted eq 'Preview') && $form->validate) {
#IkiWiki::checksessionexpiry($cgi, $session, $cgi->param('sid'));
- my $newevent_base = $cgi->param('base');
- $newevent_base = $config{newevent_base}
- unless defined $newevent_base;
- $newevent_base = gettext('Agenda')
- unless defined $newevent_base;
+ $newevent_base
+ = $form->field('base')
+ ? $form->field('base')
+ : (defined $config{newevent_base} ? $config{newevent_base} : gettext('Agenda'));
my $end_times
= $form->field('end_times') == 0
? undef : $form->field('end_times');
and not -l $config{srcdir}.'/'.$monthfile
and not -e _) {
my $tmpl_neweventmonth = template("neweventmonth.tmpl");
+ $tmpl_neweventmonth->param(base => $newevent_base);
$tmpl_neweventmonth->param(year => $event->{from}->year());
$tmpl_neweventmonth->param(month => sprintf('%02d', $event->{from}->month()));
$tmpl_neweventmonth->param(monthname => $months->{$event->{from}->month()});
and not -l $config{srcdir}.'/'.$dayfile
and not -e _) {
my $tmpl_neweventday = template("neweventday.tmpl");
+ $tmpl_neweventday->param(base => $newevent_base);
$tmpl_neweventday->param(year => $event->{from}->year());
$tmpl_neweventday->param(month => sprintf('%02d', $event->{from}->month()));
$tmpl_neweventday->param(monthname => $months->{$event->{from}->month()});