From d593533af58d5133ef6ecfc4323e3e1d55d71c48 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 2 Jul 2008 15:42:32 -0400 Subject: [PATCH] attachments interface visibility toggling --- IkiWiki/Plugin/attachment.pm | 17 ++++++++++++++++- templates/editpage.tmpl | 8 +++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index ae06922d4..a58f696eb 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -18,6 +18,7 @@ sub checkconfig () { #{{{ sub formbuilder_setup (@) { #{{{ my %params=@_; my $form=$params{form}; + my $q=$params{cgi}; if ($form->field("do") eq "edit") { $form->field(name => 'attachment', type => 'file'); @@ -25,6 +26,20 @@ sub formbuilder_setup (@) { #{{{ # are not added to the normal formbuilder button list. $form->tmpl_param("field-upload" => ''); $form->tmpl_param("field-link" => ''); + + # Add the javascript from the toggle plugin; + # the attachments interface uses it to toggle visibility. + require IkiWiki::Plugin::toggle; + $form->tmpl_param("javascript" => $IkiWiki::Plugin::toggle::javascript); + # Start with the attachments interface toggled invisible, + # but if it was used, keep it open. + if ($form->submitted ne "Upload Attachment" && + ! length $q->param("attachment_select")) { + $form->tmpl_param("attachments-class" => "toggleable"); + } + else { + $form->tmpl_param("attachments-class" => "toggleable-open"); + } } elsif ($form->title eq "preferences") { my $session=$params{session}; @@ -136,7 +151,7 @@ sub formbuilder (@) { #{{{ } $form->field(name => 'editcontent', value => $form->field('editcontent')."\n\n".$add, - force => 1); + force => 1) if length $add; } # Generate the attachment list only after having added any new diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl index 1a27beb6f..fdb142c70 100644 --- a/templates/editpage.tmpl +++ b/templates/editpage.tmpl @@ -60,10 +60,10 @@ Optional comment about this change:
+Attachments -
-
- +
+
Attachments
@@ -86,3 +86,5 @@ Optional comment about this change:
+ +