summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-09 16:00:12 -0400
committerJoey Hess <joey@kitenet.net>2010-06-09 16:00:12 -0400
commite96cf38eccd219714140f221090d2e7751fd4ee0 (patch)
treeeec9569699ea73555f3146b5bae745030fff6358
parent2eefd84d0adbcaaaf4aa1c306a1c745fa52f3c9b (diff)
When editing a page, show that page's sidebar. (Thanks, privat)
-rw-r--r--IkiWiki.pm13
-rw-r--r--IkiWiki/Plugin/editpage.pm13
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn19
4 files changed, 38 insertions, 8 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 27fa4ca17..d2ed99923 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1739,11 +1739,20 @@ sub template ($;@) {
sub misctemplate ($$;@) {
my $title=shift;
my $content=shift;
+ my %params=@_;
my $template=template("page.tmpl");
+ my $page="";
+ if (exists $params{page}) {
+ $page=delete $params{page};
+ }
run_hooks(pagetemplate => sub {
- shift->(page => "", destpage => "", template => $template);
+ shift->(
+ page => $page,
+ destpage => $page,
+ template => $template,
+ );
});
templateactions($template, "");
@@ -1754,7 +1763,7 @@ sub misctemplate ($$;@) {
content => $content,
baseurl => baseurl(),
html5 => $config{html5},
- @_,
+ %params,
);
return $template->output;
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
index 670eedfd9..aa73eb87d 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
@@ -312,7 +312,8 @@ sub cgi_editpage ($$) {
$form->title(sprintf(gettext("editing %s"), pagetitle($page)));
}
- showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
+ showform($form, \@buttons, $session, $q,
+ forcebaseurl => $baseurl, page => $page);
}
else {
# save page
@@ -329,7 +330,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($form, \@buttons, $session, $q,
+ forcebaseurl => $baseurl, page => $page);
exit;
}
elsif ($form->field("do") eq "create" && $exists) {
@@ -343,7 +345,8 @@ sub cgi_editpage ($$) {
value => readfile("$config{srcdir}/$file").
"\n\n\n".$form->field("editcontent"),
force => 1);
- showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
+ showform($form, \@buttons, $session, $q,
+ forcebaseurl => $baseurl, page => $page);
exit;
}
@@ -384,7 +387,7 @@ sub cgi_editpage ($$) {
$form->field(name => "type", type => 'hidden');
$form->title(sprintf(gettext("editing %s"), $page));
showform($form, \@buttons, $session, $q,
- forcebaseurl => $baseurl);
+ forcebaseurl => $baseurl, page => $page);
exit;
}
@@ -423,7 +426,7 @@ sub cgi_editpage ($$) {
$form->field(name => "type", type => 'hidden');
$form->title(sprintf(gettext("editing %s"), $page));
showform($form, \@buttons, $session, $q,
- forcebaseurl => $baseurl);
+ forcebaseurl => $baseurl, page => $page);
}
else {
# The trailing question mark tries to avoid broken
diff --git a/debian/changelog b/debian/changelog
index 36848d680..66d525572 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ ikiwiki (3.20100609) unstable; urgency=low
* Remove example blog tag pages; allow autotag creation to create them
when used.
* Fix support for globbing in tagged() pagespecs.
+ * When editing a page, show that page's sidebar. (Thanks, privat)
-- Joey Hess <joeyh@debian.org> Mon, 31 May 2010 20:44:17 -0400
diff --git a/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn b/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn
index 58cf9d737..2ef5cdba3 100644
--- a/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn
+++ b/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn
@@ -18,6 +18,12 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
* -> Problem: 404, the browser goes to "/bar/foo"
* -> Was expected: the browser goes to "/foo"
+> You must have a locally modified `page.tmpl` that omits the "TMPL_IF DYNAMIC"
+> that adds a `<base>` tag. That is needed to make all links displayed by
+> cgis work reliably. Not just in this page editing case.
+> The [[version_3.20100515]] announcment mentions that you need to
+> update old `page.tmpl` files to include that on upgrade. --[[Joey]]
+
### A second example
* create "/bar/sidebar.mdwn" with "world"
@@ -28,6 +34,10 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
* -> Problem: the sidebar now shows the foo link (it is the root sidebar!)
* -> Was expecte : the sidebar displays "world"
+> One could argue that the behavior here is right, or wrong.
+> Is a page edit page really the same as the page being edited?
+> The next case is more clear.. --[[Joey]]
+
### A last example
* with the web browser edit the page "bar"
@@ -36,6 +46,8 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
* -> Problem: the sidebar still displays the foo link
* -> Was expected: the sidebar display "goodby"
+> I think this is worth fixing. --[[Joey]]
+
## Some superficial hacking
With the following workaround hacks, I manage to solve the 3 examples shown above:
@@ -47,4 +59,9 @@ With the following workaround hacks, I manage to solve the 3 examples shown abov
<pre>my %params=@_;
shift->(page => $params{page}, destpage => $params{destpage}, template => $template);</pre>
-I do not guarantee (I do not even expect) that it is the proper way to solve this bug but it may help developers to find and solve the real problem.
+I do not guarantee (I do not even expect) that it is the proper way to solve
+this bug but it may help developers to find and solve the real problem.
+
+> Oh, it's pretty reasonable. I don't think it breaks anything. :)
+> [[done]]
+> --[[Joey]]