]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
remove: make it clearer that repeated page parameter is OK here
authorSimon McVittie <smcv@debian.org>
Wed, 11 Jan 2017 13:24:00 +0000 (13:24 +0000)
committerSimon McVittie <smcv@debian.org>
Wed, 11 Jan 2017 18:11:21 +0000 (18:11 +0000)
ikiwiki's web interface does not currently have UI for removing
multiple pages simultaneously, but the remove plugin is robust
against doing so. Use a clearer idiom to make that obvious.

IkiWiki/Plugin/remove.pm

index 6875844a32fc61a67a7d6eae82c4ed684e2681df..859c390663dd1ea605d135fa37a6bad1a0015005 100644 (file)
@@ -196,7 +196,9 @@ sub formbuilder (@) {
                my $session=$params{session};
 
                if ($form->submitted eq "Remove" && $form->field("do") eq "edit") {
                my $session=$params{session};
 
                if ($form->submitted eq "Remove" && $form->field("do") eq "edit") {
-                       removal_confirm($q, $session, 0, $form->field("page"));
+                       # deliberately taking multiple values of page
+                       my @pages = $form->field("page");
+                       removal_confirm($q, $session, 0, @pages);
                }
                elsif ($form->submitted eq "Remove Attachments") {
                        my @selected=map { Encode::decode_utf8($_) } $q->param("attachment_select");
                }
                elsif ($form->submitted eq "Remove Attachments") {
                        my @selected=map { Encode::decode_utf8($_) } $q->param("attachment_select");
@@ -216,14 +218,15 @@ sub sessioncgi ($$) {
                my ($form, $buttons)=confirmation_form($q, $session);
                IkiWiki::decode_form_utf8($form);
 
                my ($form, $buttons)=confirmation_form($q, $session);
                IkiWiki::decode_form_utf8($form);
 
+               # deliberately taking multiple values of page
+               my @pages = $form->field("page");
+
                if ($form->submitted eq 'Cancel') {
                        postremove($session);
                }
                elsif ($form->submitted eq 'Remove' && $form->validate) {
                        IkiWiki::checksessionexpiry($q, $session);
 
                if ($form->submitted eq 'Cancel') {
                        postremove($session);
                }
                elsif ($form->submitted eq 'Remove' && $form->validate) {
                        IkiWiki::checksessionexpiry($q, $session);
 
-                       my @pages=$form->field("page");
-                       
                        # Validate removal by checking that the page exists,
                        # and that the user is allowed to edit(/remove) it.
                        my @files;
                        # Validate removal by checking that the page exists,
                        # and that the user is allowed to edit(/remove) it.
                        my @files;
@@ -288,7 +291,7 @@ sub sessioncgi ($$) {
                        }
                }
                else {
                        }
                }
                else {
-                       removal_confirm($q, $session, 0, $form->field("page"));
+                       removal_confirm($q, $session, 0, @pages);
                }
 
                exit 0;
                }
 
                exit 0;