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]]
3 Some discussion from the main [[/index/discussion]] page:
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?
8 >> It's doable, it could even be done by a [[todo/plugin]], I think.
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")`.
21 * How could the case of concurrent editing be handled ?
22 Especially as (I think) only the RCS backend can know that
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?)
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.
35 There is still some tweaking needed, though.