, rebuild => undef
, section => "misc"
}
- , newevent_base =>
+ , base =>
{ type => "string"
, example => "Agenda"
, description => "prefix of the agenda hierarchy"
return $dur;
};
sub page_of_event ($$$$$) {
- my ($form, $from_date, $to_date, $name, $newevent_base) = @_;
+ my ($form, $from_date, $to_date, $name, $base) = @_;
my $time = '';
if ($form->field('from_hour') ne '' or $form->field('from_minute') ne '') {
if ($from_date->hour() == $to_date->hour()
}
}
return
- ( $newevent_base
- . ($newevent_base?'/':'').$from_date->year()
+ ( $base
+ . ($base?'/':'').$from_date->year()
. '/'.sprintf('%02d', $from_date->month())
. '/'.sprintf('%02d', $from_date->day())
. '/'. ($time ne '' ? $time . '/' : '')
}
sub preprocess (@) {
#my %params =
- # ( base => ($config{newevent_base} ? $config{newevent_base} : gettext('Agenda'))
+ # ( base => ($config{base} ? $config{base} : gettext('Agenda'))
# , @_ );
#($form, $buttons) = newevent_form()
# if not defined $form;
my ($cgi, $session) = @_;
if (defined $cgi->param('do') && $cgi->param('do') eq "newevent") {
# TOTRY: decode_cgi_utf8($cgi);
+ my $base = Encode::decode_utf8(URI::Escape::uri_unescape(IkiWiki::possibly_foolish_untaint($cgi->param('base'))));
+ &IkiWiki::check_canedit($base, $cgi, $session);
+ my $page = Encode::decode_utf8(URI::Escape::uri_unescape(IkiWiki::possibly_foolish_untaint($cgi->param('page'))));
my $now_date = DateTime->now
( time_zone => 'local'
: 1;
my @dow_order = ($week_start_day .. 6, 0 .. $week_start_day-1);
- 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);
$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));
+ , value => ($form->field('base') ? $form->field('base') : $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'));
- $newevent_base
+ $base
= $form->field('base')
? $form->field('base')
- : (defined $config{newevent_base} ? $config{newevent_base} : gettext('Agenda'));
+ : (defined $config{base} ? $config{base} : gettext('Agenda'));
my $end_times
= $form->field('end_times') == 0
? undef : $form->field('end_times');
while (++$events_try <= $events_max
and (not defined $end_times or --$end_times >= 0)
and (not defined $end_date or DateTime->compare($from_date, $end_date) <= 0)) {
- my $dest = page_of_event($form, $from_date, $to_date, $name, $newevent_base);
+ my $dest = page_of_event($form, $from_date, $to_date, $name, $base);
my $week = $from_date->weekday_of_month();
my $day = $now_date->{locale}->day_format_wide->[$from_date->day_of_week()-1];
if (not defined $dom or exists $dom->{"$week° $day"}) {
IkiWiki::disable_commit_hook()
}
foreach my $event (@events) {
- create($event, $cgi, $session, \%months, $newevent_base);
+ create($event, $cgi, $session, \%months, $base);
}
if ($config{rcs}) {
IkiWiki::rcs_commit_staged
}
}
sub create ($$$$$) {
- my ($event, $cgi, $session, $months, $newevent_base) = @_;
+ my ($event, $cgi, $session, $months, $base) = @_;
check_cannewevent
( $event->{page}
, $event->{file}
}
# month page
my $monthpage =
- ( $newevent_base
- . ($newevent_base?'/':'').$event->{from}->year()
+ ( $base
+ . ($base?'/':'').$event->{from}->year()
. '/'.sprintf('%02d', $event->{from}->month())
);
my $monthfile = IkiWiki::newpagefile($monthpage, $pageext);
and not -l $config{srcdir}.'/'.$monthfile
and not -e _) {
my $tmpl_neweventmonth = template("neweventmonth.tmpl");
- $tmpl_neweventmonth->param(base => $newevent_base);
+ $tmpl_neweventmonth->param(base => $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(base => $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()});