dépôts
/
ikiwiki
/
events.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
107b4ce
)
fix date_of_page()
author
Julien Moutinho
<julm+ikiwiki+events@autogeree.net>
Mon, 7 Apr 2014 23:50:09 +0000
(
01:50
+0200)
committer
Julien Moutinho
<julm+ikiwiki+events@autogeree.net>
Mon, 7 Apr 2014 23:50:09 +0000
(
01:50
+0200)
events.pm
patch
|
blob
|
history
diff --git
a/events.pm
b/events.pm
index
ff3a539
..
51c176d
100644
(file)
--- a/
events.pm
+++ b/
events.pm
@@
-155,11
+155,15
@@
sub date_of_page ($%) {
my $dir = IkiWiki::dirname($page);
my ($year, $month, $day, $hour, $hour_begin, $hour_end)
= $dir =~ m{
my $dir = IkiWiki::dirname($page);
my ($year, $month, $day, $hour, $hour_begin, $hour_end)
= $dir =~ m{
- .*/
- (\d+)/
- (01|02|03|04|05|06|07|08|09|10|11|12)/
- (01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)/
- (([0-2][0-9]h[0-5][0-9])(-[0-2][0-9]h[0-5][0-9])?)?
+ .*?
+ /(\d+)
+ (?:/(01|02|03|04|05|06|07|08|09|10|11|12)
+ (?:/(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)
+ (?:/(([0-2][0-9]h[0-5][0-9])
+ (?:-([0-2][0-9]h[0-5][0-9]))?)
+ )?
+ )?
+ )?
$
}x;
my $r =
$
}x;
my $r =
@@
-174,13
+178,13
@@
sub date_of_page ($%) {
return $r;
}
sub event_of_page ($%) {
return $r;
}
sub event_of_page ($%) {
- my ($event, %params) = @_;
+ my ($event,
$date,
%params) = @_;
my $title
= exists $pagestate{$event}{meta}{title}
? $pagestate{$event}{meta}{title}
: pagetitle(IkiWiki::basename($event));
my $hour
my $title
= exists $pagestate{$event}{meta}{title}
? $pagestate{$event}{meta}{title}
: pagetitle(IkiWiki::basename($event));
my $hour
- =
date_of_page($event)
->{hour};
+ =
$date
->{hour};
my $link
= htmllink
( $params{page}
my $link
= htmllink
( $params{page}
@@
-223,6
+227,8
@@
sub event_of_page ($%) {
$base =~ s/[^a-zA-Z0-9-]/_/g;
return
{ hour => $hour
$base =~ s/[^a-zA-Z0-9-]/_/g;
return
{ hour => $hour
+ , page => $event
+ , date => $date
, link => $link
, tags => \@tags
, base => $base };
, link => $link
, tags => \@tags
, base => $base };
@@
-235,16
+241,16
@@
sub events_of_pages ($%) {
foreach my $page (@$pages) {
my $date = date_of_page($page);
if (defined $date->{hour}) {
foreach my $page (@$pages) {
my $date = date_of_page($page);
if (defined $date->{hour}) {
- push @hour_events,
$page
;
+ push @hour_events,
{page=>$page, date=>$date}
;
}
else {
}
else {
- push @day_events,
$page
;
+ push @day_events,
{page=>$page, date=>$date}
;
}
}
return
}
}
return
- map {event_of_page($_, %params)}
- ( (sort {lc
$pagedir->($a) cmp lc $pagedir->($b
)} @day_events)
- , (sort {lc $
pagedir->($a) cmp lc $pagedir->($b
)} @hour_events) );
+ map {event_of_page($_
->{page}, $_->{date}
, %params)}
+ ( (sort {lc
IkiWiki::basename($a->{page}) cmp lc IkiWiki::basename($b->{page}
)} @day_events)
+ , (sort {lc $
a->{hour}.'/'.IkiWiki::basename($a->{page}) cmp lc $b->{hour}.'/'.IkiWiki::basename($b->{page}
)} @hour_events) );
}
sub event_html ($$%) {
my ($date, $format, %params) = @_;
}
sub event_html ($$%) {
my ($date, $format, %params) = @_;
@@
-408,15
+414,9
@@
sub preprocess_month (@) {
# NOTE: add presence dependencies to update calendar when pages are added/removed
);
# NOTE: add presence dependencies to update calendar when pages are added/removed
);
- # NOTE: sort the pages by days of the month
- my %days = map {($_=>[])} (1 .. $last_day);
- foreach my $page (@pages) {
- my $page_ctime = DateTime->from_epoch
- ( epoch => $IkiWiki::pagectime{$page}
- , time_zone => 'local'
- , locale => $config{locale}
- );
- push @{$days{$page_ctime->day()}}, $page;
+ my %events_by_day = map {($_=>[])} (1 .. $last_day);
+ foreach my $event (events_of_pages(\@pages, %params)) {
+ push @{$events_by_day{$event->{date}->{day}}}, $event;
}
my $t='<tr>';
}
my $t='<tr>';
@@
-448,7
+448,7
@@
sub preprocess_month (@) {
. "<ul class='tags'>".join("", @tags)."</ul>"
. "</li>\n"
}
. "<ul class='tags'>".join("", @tags)."</ul>"
. "</li>\n"
}
-
events_of_pages($days{$day->day()}, %params)
;
+
@{$events_by_day{sprintf('%02d',$day->day())}}
;
$t .=
"<span class='head'>"
. "<span class='day'>"
$t .=
"<span class='head'>"
. "<span class='day'>"
@@
-496,6
+496,10
@@
sub preprocess_month (@) {
sub preprocess (@) {
my %params = @_;
$params{focus} = $now->clone;
sub preprocess (@) {
my %params = @_;
$params{focus} = $now->clone;
+ $params{focus}->set_hour(0);
+ $params{focus}->set_minute(0);
+ $params{focus}->set_second(0);
+ $params{focus}->set_nanosecond(0);
$params{pages} = "*" unless defined $params{pages};
$params{type} = "month" unless defined $params{type};
$params{pages} = "*" unless defined $params{pages};
$params{type} = "month" unless defined $params{type};