Fossil SCM

Add the "Invert" button to the "vdiff" web page.

drh 2012-09-06 14:00 trunk
Commit b0036a3c971dc7eb612927510d7a5dbfea78d799
1 file changed +21 -5
+21 -5
--- src/info.c
+++ src/info.c
@@ -801,11 +801,20 @@
801801
}
802802
803803
804804
/*
805805
** WEBPAGE: vdiff
806
-** URL: /vdiff?from=UUID&to=UUID&detail=BOOLEAN;sbs=BOOLEAN
806
+** URL: /vdiff
807
+**
808
+** Query parameters:
809
+**
810
+** from=TAG
811
+** to=TAG
812
+** branch=TAG
813
+** detail=BOOLEAN
814
+** sbs=BOOLEAN
815
+**
807816
**
808817
** Show all differences between two checkins.
809818
*/
810819
void vdiff_page(void){
811820
int ridFrom, ridTo;
@@ -813,10 +822,12 @@
813822
int sideBySide = 0;
814823
u64 diffFlags = 0;
815824
Manifest *pFrom, *pTo;
816825
ManifestFile *pFileFrom, *pFileTo;
817826
const char *zBranch;
827
+ const char *zFrom;
828
+ const char *zTo;
818829
819830
login_check_credentials();
820831
if( !g.perm.Read ){ login_needed(); return; }
821832
login_anonymous_available();
822833
@@ -830,19 +841,24 @@
830841
pFrom = vdiff_parse_manifest("from", &ridFrom);
831842
if( pFrom==0 ) return;
832843
sideBySide = atoi(PD("sbs","1"));
833844
showDetail = atoi(PD("detail","0"));
834845
if( !showDetail && sideBySide ) showDetail = 1;
846
+ zFrom = P("from");
847
+ zTo = P("to");
835848
if( !sideBySide ){
836849
style_submenu_element("Side-by-side Diff", "sbsdiff",
837
- "%s/vdiff?from=%T&to=%T&detail=%d&sbs=1",
838
- g.zTop, P("from"), P("to"), showDetail);
850
+ "%R/vdiff?from=%T&to=%T&detail=%d&sbs=1",
851
+ zFrom, zTo, showDetail);
839852
}else{
840853
style_submenu_element("Unified Diff", "udiff",
841
- "%s/vdiff?from=%T&to=%T&detail=%d&sbs=0",
842
- g.zTop, P("from"), P("to"), showDetail);
854
+ "%R/vdiff?from=%T&to=%T&detail=%d&sbs=0",
855
+ zFrom, zTo, showDetail);
843856
}
857
+ style_submenu_element("Invert", "invert",
858
+ "%R/vdiff?from=%T&to=%T&detail=%d&sbs=%d",
859
+ zTo, zFrom, showDetail, sideBySide);
844860
style_header("Check-in Differences");
845861
@ <h2>Difference From:</h2><blockquote>
846862
checkin_description(ridFrom);
847863
@ </blockquote><h2>To:</h2><blockquote>
848864
checkin_description(ridTo);
849865
--- src/info.c
+++ src/info.c
@@ -801,11 +801,20 @@
801 }
802
803
804 /*
805 ** WEBPAGE: vdiff
806 ** URL: /vdiff?from=UUID&to=UUID&detail=BOOLEAN;sbs=BOOLEAN
 
 
 
 
 
 
 
 
 
807 **
808 ** Show all differences between two checkins.
809 */
810 void vdiff_page(void){
811 int ridFrom, ridTo;
@@ -813,10 +822,12 @@
813 int sideBySide = 0;
814 u64 diffFlags = 0;
815 Manifest *pFrom, *pTo;
816 ManifestFile *pFileFrom, *pFileTo;
817 const char *zBranch;
 
 
818
819 login_check_credentials();
820 if( !g.perm.Read ){ login_needed(); return; }
821 login_anonymous_available();
822
@@ -830,19 +841,24 @@
830 pFrom = vdiff_parse_manifest("from", &ridFrom);
831 if( pFrom==0 ) return;
832 sideBySide = atoi(PD("sbs","1"));
833 showDetail = atoi(PD("detail","0"));
834 if( !showDetail && sideBySide ) showDetail = 1;
 
 
835 if( !sideBySide ){
836 style_submenu_element("Side-by-side Diff", "sbsdiff",
837 "%s/vdiff?from=%T&to=%T&detail=%d&sbs=1",
838 g.zTop, P("from"), P("to"), showDetail);
839 }else{
840 style_submenu_element("Unified Diff", "udiff",
841 "%s/vdiff?from=%T&to=%T&detail=%d&sbs=0",
842 g.zTop, P("from"), P("to"), showDetail);
843 }
 
 
 
844 style_header("Check-in Differences");
845 @ <h2>Difference From:</h2><blockquote>
846 checkin_description(ridFrom);
847 @ </blockquote><h2>To:</h2><blockquote>
848 checkin_description(ridTo);
849
--- src/info.c
+++ src/info.c
@@ -801,11 +801,20 @@
801 }
802
803
804 /*
805 ** WEBPAGE: vdiff
806 ** URL: /vdiff
807 **
808 ** Query parameters:
809 **
810 ** from=TAG
811 ** to=TAG
812 ** branch=TAG
813 ** detail=BOOLEAN
814 ** sbs=BOOLEAN
815 **
816 **
817 ** Show all differences between two checkins.
818 */
819 void vdiff_page(void){
820 int ridFrom, ridTo;
@@ -813,10 +822,12 @@
822 int sideBySide = 0;
823 u64 diffFlags = 0;
824 Manifest *pFrom, *pTo;
825 ManifestFile *pFileFrom, *pFileTo;
826 const char *zBranch;
827 const char *zFrom;
828 const char *zTo;
829
830 login_check_credentials();
831 if( !g.perm.Read ){ login_needed(); return; }
832 login_anonymous_available();
833
@@ -830,19 +841,24 @@
841 pFrom = vdiff_parse_manifest("from", &ridFrom);
842 if( pFrom==0 ) return;
843 sideBySide = atoi(PD("sbs","1"));
844 showDetail = atoi(PD("detail","0"));
845 if( !showDetail && sideBySide ) showDetail = 1;
846 zFrom = P("from");
847 zTo = P("to");
848 if( !sideBySide ){
849 style_submenu_element("Side-by-side Diff", "sbsdiff",
850 "%R/vdiff?from=%T&to=%T&detail=%d&sbs=1",
851 zFrom, zTo, showDetail);
852 }else{
853 style_submenu_element("Unified Diff", "udiff",
854 "%R/vdiff?from=%T&to=%T&detail=%d&sbs=0",
855 zFrom, zTo, showDetail);
856 }
857 style_submenu_element("Invert", "invert",
858 "%R/vdiff?from=%T&to=%T&detail=%d&sbs=%d",
859 zTo, zFrom, showDetail, sideBySide);
860 style_header("Check-in Differences");
861 @ <h2>Difference From:</h2><blockquote>
862 checkin_description(ridFrom);
863 @ </blockquote><h2>To:</h2><blockquote>
864 checkin_description(ridTo);
865

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button