Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
do not display two glasses
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
attachment.pm
diff --git
a/IkiWiki/Plugin/attachment.pm
b/IkiWiki/Plugin/attachment.pm
index 4d6dee23e75a2fe4e1f76889b53b19e68483c001..aea70429d0bcc3bc86a776ba8b2dde8352483a37 100644
(file)
--- a/
IkiWiki/Plugin/attachment.pm
+++ b/
IkiWiki/Plugin/attachment.pm
@@
-116,9
+116,10
@@
sub formbuilder_setup (@) {
$form->tmpl_param("attachments-class" => "toggleable-open");
}
$form->tmpl_param("attachments-class" => "toggleable-open");
}
- # Save attachments in holding area before previewing so
- # they can be seen in the preview.
- if ($form->submitted eq "Preview") {
+ # Save attachments in holding area before previewing and
+ # saving.
+ if ($form->submitted eq "Preview" ||
+ $form->submitted eq "Save Page") {
attachments_save($form, $params{session});
}
}
attachments_save($form, $params{session});
}
}
@@
-147,7
+148,7
@@
sub formbuilder (@) {
$f=Encode::decode_utf8($f);
$f=~s/^$page\///;
if (IkiWiki::isinlinableimage($f) &&
$f=Encode::decode_utf8($f);
$f=~s/^$page\///;
if (IkiWiki::isinlinableimage($f) &&
-
UNIVERSAL::can("IkiWiki::Plugin::img",
"import")) {
+
IkiWiki::Plugin::img->can(
"import")) {
$add.='[[!img '.$f.' align="right" size="" alt=""]]';
}
else {
$add.='[[!img '.$f.' align="right" size="" alt=""]]';
}
else {
@@
-271,18
+272,21
@@
sub attachments_save {
my @attachments;
my $dir=attachment_holding_location($form->field('page'));
foreach my $filename (glob("$dir/*")) {
my @attachments;
my $dir=attachment_holding_location($form->field('page'));
foreach my $filename (glob("$dir/*")) {
+ $filename=Encode::decode_utf8($filename);
next unless -f $filename;
next unless -f $filename;
- my $dest=$config{srcdir}."/".
+ my $dest
dir
=$config{srcdir}."/".
linkpage(IkiWiki::possibly_foolish_untaint(
linkpage(IkiWiki::possibly_foolish_untaint(
- attachment_location($form->field('page')))).
- IkiWiki::basename($filename);
+ attachment_location($form->field('page'))));
+ my $destfile=IkiWiki::basename($filename);
+ my $dest=$destdir.$destfile;
unlink($dest);
unlink($dest);
+ IkiWiki::prep_writefile($destfile, $destdir);
rename($filename, $dest);
push @attachments, $dest;
}
return unless @attachments;
require IkiWiki::Render;
rename($filename, $dest);
push @attachments, $dest;
}
return unless @attachments;
require IkiWiki::Render;
- IkiWiki::prune($dir);
+ IkiWiki::prune($dir
, $config{wikistatedir}."/attachments"
);
# Check the attachments in and trigger a wiki refresh.
if ($config{rcs}) {
# Check the attachments in and trigger a wiki refresh.
if ($config{rcs}) {
@@
-303,8
+307,8
@@
sub attachment_location ($) {
my $page=shift;
# Put the attachment in a subdir of the page it's attached
my $page=shift;
# Put the attachment in a subdir of the page it's attached
- # to, unless that page is
an
"index" page.
-
$page=~s/(^|\/)index//
;
+ # to, unless that page is
the
"index" page.
+
return "" if $page eq 'index'
;
$page.="/" if length $page;
return $page;
$page.="/" if length $page;
return $page;
@@
-342,6
+346,7
@@
sub attachment_list ($) {
my $dir=attachment_holding_location($page);
my $heldmsg=gettext("this attachment is not yet saved");
foreach my $file (glob("$dir/*")) {
my $dir=attachment_holding_location($page);
my $heldmsg=gettext("this attachment is not yet saved");
foreach my $file (glob("$dir/*")) {
+ $file=Encode::decode_utf8($file);
next unless -f $file;
my $base=IkiWiki::basename($file);
my $f=$loc.$base;
next unless -f $file;
my $base=IkiWiki::basename($file);
my $f=$loc.$base;