]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/provide_inline_diffs_in_recentchanges.mdwn
why a directive?
[git.ikiwiki.info.git] / doc / todo / provide_inline_diffs_in_recentchanges.mdwn
index 457b7ccb394d056cf1d8681791ac7f715f95276e..3bf1bdc33ea56fea6a59d7955d68be8c6f04db78 100644 (file)
@@ -1,3 +1,5 @@
+[[!template  id=gitbranch branch=anarcat/inline_diffs author="[[anarcat]]"]]
+
 It would rock if I could view diffs from the web without going via feeds. I envision toggle-style buttons on the recentchanges page, or just links to the CGI, which then displays the diff... --[[madduck]]
 
 > The diffs are actually there, enabled by the [[plugins/recentchangesdiff]]
 It would rock if I could view diffs from the web without going via feeds. I envision toggle-style buttons on the recentchanges page, or just links to the CGI, which then displays the diff... --[[madduck]]
 
 > The diffs are actually there, enabled by the [[plugins/recentchangesdiff]]
@@ -5,59 +7,21 @@ It would rock if I could view diffs from the web without going via feeds. I envi
 > You might try a user stylesheet with `div.diff { display: block }`.
 > --[[JasonBlevins]]
 
 > You might try a user stylesheet with `div.diff { display: block }`.
 > --[[JasonBlevins]]
 
-> > couldn't the diff be displayed as a popup? right now it's too bad because the diff is actually in the page, generated and downloaded, but the user can't see it. I have tried to address the issue by adding stuff to the change.tmpl template, but I may be missing something - and it doesn't quite look right:
-> > 
-> >     --- /usr/share/ikiwiki/templates/change.tmpl    2011-09-05 15:14:19.000000000 -0400
-> >     +++ templates/change.tmpl       2011-10-11 13:04:37.704346964 -0400
-> >     @@ -39,6 +39,7 @@
-> >      </TMPL_LOOP>
-> >      </div>
-> >      <TMPL_IF DIFF>
-> >     +<a href="#" onClick="document.getElementByClass('diff').style = 'block'">[[show diff|wikiicons/diff.png]]</a>
-> >      <div class="diff">
-> >      <pre>
-> >      <TMPL_VAR DIFF>
-> > 
-> > There are a few things wrong with this:
-> > 
-> >  1. I don't like the hardcoded javascript in there, we should use [[plugins/toggle]] or something, but i am not sure how to make the this plugin depend on toggle, or if it is desirable. 
-> >  2. it doesn't work at all: first it doesn't actually "toggle" and second the javascript somehow gets filtered out of the resulting HTML so we don't even see it
-> >  3. if the diffurl parameter is set in the template, we'd actually see two sets of glasses, which is silly. i tried moving the diff button upwards into the PAGES loop, but there the diffurls are file-specific, which also seem quite silly
-> > 
-> > I am looking for guidance on how to improve and fix this now. --[[anarcat]] 2011-10-11
-
-> > Here is a better implementation:
-> > [[!format txt """
-diff -u change.tmpl.orig change.tmpl
---- change.tmpl.orig    2012-03-02 23:00:36.706271573 -0500
-+++ change.tmpl 2012-03-02 23:15:56.083573086 -0500
-@@ -28,6 +28,9 @@
- <span class="changedate"><TMPL_VAR COMMITDATE></span>
- <span class="desc"><br /></span>
- <TMPL_IF REVERTURL><span class="revert">
-+<TMPL_IF DIFF>
-+<a href="#diff-<TMPL_VAR REV>" class="toggle" title="revert" rel="nofollow">[[diff|wikiicons/diff.png]]</a>
-+</TMPL_IF>
- <a href="<TMPL_VAR REVERTURL>" title="revert" rel="nofollow">[[revert|wikiicons/revert.png]]</a>
- </span></TMPL_IF>
- </div>
-@@ -39,7 +42,7 @@
- </TMPL_LOOP>
- </div>
- <TMPL_IF DIFF>
--<div class="diff">
-+<div class="toggleable" id="diff-<TMPL_VAR REV>">
- <pre>
- <TMPL_VAR DIFF>
- </pre>
-"""]]
+> > I have implemented this in a branch in my repository (see the side box).
 > > 
 > > Unfortunately it has some issues:
 > > 
 > > 
 > > Unfortunately it has some issues:
 > > 
-> > 1. it assumes the toggle.js code is loaded somehow
-> > 2. if the toggle code isn't loaded the diffs are displayed (which is arguably better than showing nothing since we ship the diff to the UA anyways...)
-> > 3. it will show only if there's a revert URL, which is backwards, but otherwise the display is weird, with each button on its own line
-> > 4. if the diffurl parameter is set in the template, we'd actually see two sets of glasses, which is silly. 
+> > 1. <del>it assumes the toggle.js code is loaded somehow</del> - now loaded manually
+> > 2. <del>if the toggle code isn't loaded the diffs are displayed (which is arguably better than showing nothing since we ship the diff to the UA anyways...)</del> - i actually think that's fine
+> > 3. <del>it will show only if there's a revert URL, which is backwards, but otherwise the display is weird, with each button on its own line</del> fixed!
+> > 4. <del>if the diffurl parameter is set in the template, we'd actually see two sets of glasses, which is silly.</del> - just added a tmp_unless to fix this.
+> >
+> > I feel this should nevertheless be implemented because if we're going to compile all this crap in the page anyways and send it to the client, why not allow the user to show it? I also feel that showing it by default is a lesser evil for non-javascript users.
 > >
 > >
-> > -- [[anarcat]] 2012-03-11
-[[!tag wishlist]]
+> > -- [[anarcat]] 2012-03-03
+
+> > > I have pushed a new version of this patch to my branch, which fixes all the above issues. I think this is ready to be merged now. -- [[anarcat]] 2012-07-19
+
+>>>> [[done]] --[[Joey]] 
+
+[[!tag wishlist patch]]