]> sipb.mit.edu Git - ikiwiki.git/blob - doc/todo/preview_changes.mdwn
web commit by http://jeremie.koenig.myopenid.com/
[ikiwiki.git] / doc / todo / preview_changes.mdwn
1 When editing a page, it would help to have a "preview changes" or "show diff" button, which brings up a diff from the current page content to the proposed new page content. --[[JoshTriplett]]
2
3 Some discussion from the main [[/index/discussion]] page:
4
5 >It would be nice to be able to have a button to show "Differences" (or "Show Diff") when
6 >editing a page. Is that an option that can be enabled?
7 >
8 >> It's doable, it could even be done by a [[todo/plugin]], I think.
9 >> --[[Joey]]
10
11 ---
12
13 I need help with this. Supposedly, such a plugin would provide a `formbuilder_setup`
14 hook which would add the button, and a cgi hook which would interecept
15 "Show Diff" clicks. This would show a diff between
16 `titlepage(possibly_foolish_untaint($form->field("page")))`
17 and the provided `$form->field("editcontent")`.
18
19 But:
20
21   * How could the case of concurrent editing be handled ?
22     Especially as (I think) only the RCS backend can know that
23     this has happened.
24   * May I hijack the `page_preview` template variable to show
25     my diff output? (the patch below assumes this).
26   * Using the formbuilder hook to add a button, and coerce `editpage()`
27     into showing the edit form again rather that saving the page needs
28     the following patch. (note that this is not the only template which has
29     its submit buttons hardcoded; is this supposed to work around something?)
30
31 I've got a [preliminary implementation](http://www.jk.fr.eu.org/ikiwiki/showdiff.pm),
32 which depends on [this patch](http://www.jk.fr.eu.org/ikiwiki/pluggable_editpage_buttons.diff)
33 and the [[plugins/contrib/plaintext]] plugin.
34
35 There is still some tweaking needed, though.
36
37 --[[JeremieKoenig]]