]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/editpage.pm
make urlabs a noop if base url is not provided
[git.ikiwiki.info.git] / IkiWiki / Plugin / editpage.pm
index 3d731d399f34e9b857616135574727b24abb1757..f6cebd4cd466eba086aa232bf54381607bc7add7 100644 (file)
@@ -64,7 +64,7 @@ sub cgi_editpage ($$) {
 
        decode_cgi_utf8($q);
 
-       my @fields=qw(do rcsinfo subpage from page type editcontent comments);
+       my @fields=qw(do rcsinfo subpage from page type editcontent editmessage);
        my @buttons=("Save Page", "Preview", "Cancel");
        eval q{use CGI::FormBuilder};
        error($@) if $@;
@@ -75,7 +75,7 @@ sub cgi_editpage ($$) {
                required => [qw{editcontent}],
                javascript => 0,
                params => $q,
-               action => $config{cgiurl},
+               action => IkiWiki::cgiurl(),
                header => 0,
                table => 0,
                template => { template("editpage.tmpl") },
@@ -98,7 +98,7 @@ sub cgi_editpage ($$) {
                error(gettext("bad page name"));
        }
 
-       my $baseurl = urlto($page, undef, 1);
+       my $baseurl = urlto($page);
 
        my $from;
        if (defined $form->field('from')) {
@@ -144,7 +144,7 @@ sub cgi_editpage ($$) {
        $form->field(name => "subpage", type => 'hidden');
        $form->field(name => "page", value => $page, force => 1);
        $form->field(name => "type", value => $type, force => 1);
-       $form->field(name => "comments", type => "text", size => 80);
+       $form->field(name => "editmessage", type => "text", size => 80);
        $form->field(name => "editcontent", type => "textarea", rows => 20,
                cols => 80);
        $form->tmpl_param("can_commit", $config{rcs});
@@ -156,13 +156,13 @@ sub cgi_editpage ($$) {
        my $previewing=0;
        if ($form->submitted eq "Cancel") {
                if ($form->field("do") eq "create" && defined $from) {
-                       redirect($q, urlto($from, undef, 1));
+                       redirect($q, urlto($from));
                }
                elsif ($form->field("do") eq "create") {
-                       redirect($q, $config{url});
+                       redirect($q, baseurl(undef));
                }
                else {
-                       redirect($q, urlto($page, undef, 1));
+                       redirect($q, $baseurl);
                }
                exit;
        }
@@ -262,7 +262,7 @@ sub cgi_editpage ($$) {
                                        @page_locs=$page;
                                }
                                else {
-                                       redirect($q, urlto($page, undef, 1));
+                                       redirect($q, $baseurl);
                                        exit;
                                }
                        }
@@ -291,7 +291,7 @@ sub cgi_editpage ($$) {
                                value => $best_loc);
                        $form->field(name => "type", type => 'select',
                                options => \@page_types);
-                       $form->title(sprintf(gettext("creating %s"), pagetitle($page)));
+                       $form->title(sprintf(gettext("creating %s"), pagetitle(basename($page))));
                        
                }
                elsif ($form->field("do") eq "edit") {
@@ -309,13 +309,10 @@ sub cgi_editpage ($$) {
                        $form->tmpl_param("page_select", 0);
                        $form->field(name => "page", type => 'hidden');
                        $form->field(name => "type", type => 'hidden');
-                       $form->title(sprintf(gettext("editing %s"), pagetitle($page)));
+                       $form->title(sprintf(gettext("editing %s"), pagetitle(basename($page))));
                }
                
-               showform($form, \@buttons, $session, $q,
-                       forcebaseurl => $baseurl,
-                       ($previewing ? (page => $page) : ()),
-               );
+               showform_preview($form, \@buttons, $session, $q, page => $page);
        }
        else {
                # save page
@@ -332,8 +329,8 @@ sub cgi_editpage ($$) {
                        $form->field(name => "page", type => 'hidden');
                        $form->field(name => "type", type => 'hidden');
                        $form->title(sprintf(gettext("editing %s"), $page));
-                       showform($form, \@buttons, $session, $q,
-                               forcebaseurl => $baseurl);
+                       showform_preview($form, \@buttons, $session, $q,
+                               page => $page);
                        exit;
                }
                elsif ($form->field("do") eq "create" && $exists) {
@@ -347,15 +344,15 @@ sub cgi_editpage ($$) {
                                value => readfile("$config{srcdir}/$file").
                                         "\n\n\n".$form->field("editcontent"),
                                force => 1);
-                       showform($form, \@buttons, $session, $q,
-                               forcebaseurl => $baseurl);
+                       showform_preview($form, \@buttons, $session, $q,
+                               page => $page);
                        exit;
                }
                        
                my $message="";
-               if (defined $form->field('comments') &&
-                   length $form->field('comments')) {
-                       $message=$form->field('comments');
+               if (defined $form->field('editmessage') &&
+                   length $form->field('editmessage')) {
+                       $message=$form->field('editmessage');
                }
                
                my $content=$form->field('editcontent');
@@ -388,8 +385,8 @@ sub cgi_editpage ($$) {
                        $form->field(name => "page", type => 'hidden');
                        $form->field(name => "type", type => 'hidden');
                        $form->title(sprintf(gettext("editing %s"), $page));
-                       showform($form, \@buttons, $session, $q,
-                               forcebaseurl => $baseurl);
+                       showform_preview($form, \@buttons, $session, $q,
+                               page => $page);
                        exit;
                }
                
@@ -403,9 +400,12 @@ sub cgi_editpage ($$) {
                        # signaling to it that it should not try to
                        # do anything.
                        disable_commit_hook();
-                       $conflict=rcs_commit($file, $message,
-                               $form->field("rcsinfo"),
-                               $session->param("name"), $ENV{REMOTE_ADDR});
+                       $conflict=rcs_commit(
+                               file => $file,
+                               message => $message,
+                               token => $form->field("rcsinfo"),
+                               session => $session,
+                       );
                        enable_commit_hook();
                        rcs_update();
                }
@@ -427,13 +427,13 @@ sub cgi_editpage ($$) {
                        $form->field(name => "page", type => 'hidden');
                        $form->field(name => "type", type => 'hidden');
                        $form->title(sprintf(gettext("editing %s"), $page));
-                       showform($form, \@buttons, $session, $q,
-                               forcebaseurl => $baseurl);
+                       showform_preview($form, \@buttons, $session, $q,
+                               page => $page);
                }
                else {
                        # The trailing question mark tries to avoid broken
                        # caches and get the most recent version of the page.
-                       redirect($q, urlto($page, undef, 1)."?updated");
+                       redirect($q, $baseurl."?updated");
                }
        }