aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-06-14 13:49:41 -0400
committerJoey Hess <joey@kitenet.net>2011-06-14 13:49:41 -0400
commite2cb19ed9e107d89251655232649a6d2eb9c187b (patch)
tree0f1e5ad247947e1021575909f59f8ecd5fe56285 /IkiWiki
parent8619faaa8b01c4675be8d2c53d5d96f9c5d3fa16 (diff)
downloadikiwiki-e2cb19ed9e107d89251655232649a6d2eb9c187b.tar
ikiwiki-e2cb19ed9e107d89251655232649a6d2eb9c187b.tar.gz
attachment list includes new attachments in holding area
Note that it's possible for an attachment in the holding area to be older than an attachemnt in the wiki with the same name. I intentionally show the one in the holding area in this (unlikely) case, since saving the page will overwrite the wiki's file with the held attachment. It does not seem worth the bother of doing something more intelligent, since in this case two people have basically conflicted with one-another.. and both attachment contents will be stored in revision control in case it needs to be sorted out. I had to remove the hyperlink for attachments in the holding area, since they're not yet live on the web. This could be annoying/confusing. Added a moseover notice instead.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/attachment.pm22
1 files changed, 19 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm
index f4bfbe98f..7f88010b5 100644
--- a/IkiWiki/Plugin/attachment.pm
+++ b/IkiWiki/Plugin/attachment.pm
@@ -274,11 +274,12 @@ sub attachment_list ($) {
my $page=shift;
my $loc=attachment_location($page);
- my @ret;
+ # attachments already in the wiki
+ my %attachments;
foreach my $f (values %pagesources) {
if (! defined pagetype($f) &&
$f=~m/^\Q$loc\E[^\/]+$/) {
- push @ret, {
+ $attachments{$f}={
"field-select" => '<input type="checkbox" name="attachment_select" value="'.$f.'" />',
link => htmllink($page, $page, $f, noimageinline => 1),
size => IkiWiki::Plugin::filecheck::humansize((stat($f))[7]),
@@ -287,10 +288,25 @@ sub attachment_list ($) {
};
}
}
+
+ # attachments in holding directory
+ my $dir=attachment_holding_dir($page);
+ foreach my $file (glob("$dir/*")) {
+ my $mtime=(stat($file))[9];
+ my $f=IkiWiki::basename($file);
+ $attachments{$f}={
+ "field-select" => '<input type="checkbox" name="attachment_select" value="'.$f.'" />',
+ link => $f, # no link possible
+ size => IkiWiki::Plugin::filecheck::humansize((stat($file))[7]),
+ mtime => displaytime($mtime),
+ mtime_raw => $mtime,
+ }
+ }
# Sort newer attachments to the top of the list, so a newly-added
# attachment appears just before the form used to add it.
- return sort { $b->{mtime_raw} <=> $a->{mtime_raw} || $a->{link} cmp $b->{link} } @ret;
+ return sort { $b->{mtime_raw} <=> $a->{mtime_raw} || $a->{link} cmp $b->{link} }
+ values %attachments;
}
1