Fossil SCM

Refactorings to cookie handling.

florian 2022-08-11 05:48 timeline-keyboard-navigation
Commit cf38f5abb8475e299b51ddccd867dfbdaa069d156b4afddcbcdb08625af1e263
1 file changed +13 -4
+13 -4
--- src/graph.js
+++ src/graph.js
@@ -939,10 +939,20 @@
939939
}
940940
function focusCacheSet(v){
941941
var e = document.getElementById('timeline-kbfocus');
942942
if( e ) e.value = v;
943943
}
944
+ function focusCookieInit(){
945
+ document.cookie = 'fossil_timeline_kbnav=1;path=/';
946
+ }
947
+ function focusCookieClear(){
948
+ document.cookie =
949
+ 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/';
950
+ }
951
+ function focusCookieQuery(){
952
+ return document.cookie.match(/fossil_timeline_kbnav=1/);
953
+ }
944954
focusCacheInit();
945955
document.addEventListener('keydown',function(evt){
946956
if( evt.target.tagName=='INPUT' ) return;
947957
var
948958
mSHIFT = 1<<13,
@@ -1005,15 +1015,14 @@
10051015
return;
10061016
}
10071017
else if( key==kDONE ){
10081018
focusCacheSet(null);
10091019
focusVisualize(null,false);
1010
- document.cookie =
1011
- 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/';
1020
+ focusCookieClear();
10121021
return;
10131022
}
1014
- document.cookie = 'fossil_timeline_kbnav=1;path=/';
1023
+ focusCookieInit();
10151024
var id = focusCacheGet();
10161025
if( id && dx==0 ){
10171026
if( key==kCYCL ){
10181027
var sel = focusSelectedId();
10191028
var sl2 = focus2ndSelectedId();
@@ -1069,14 +1078,14 @@
10691078
focusVisualize(id,true);
10701079
}/*,true*/);
10711080
window.addEventListener('pageshow',function(evt){
10721081
var id = focusCacheGet();
10731082
if( !id || !focusVisualize(id,false) ){
1074
- if( document.cookie.match(/fossil_timeline_kbnav=1/) ){
1083
+ if( focusCookieQuery() ){
10751084
id = focusDefaultId();
10761085
focusCacheSet(id);
10771086
focusVisualize(id,false);
10781087
}
10791088
}
10801089
},false);
10811090
},false);
10821091
}());
10831092
--- src/graph.js
+++ src/graph.js
@@ -939,10 +939,20 @@
939 }
940 function focusCacheSet(v){
941 var e = document.getElementById('timeline-kbfocus');
942 if( e ) e.value = v;
943 }
 
 
 
 
 
 
 
 
 
 
944 focusCacheInit();
945 document.addEventListener('keydown',function(evt){
946 if( evt.target.tagName=='INPUT' ) return;
947 var
948 mSHIFT = 1<<13,
@@ -1005,15 +1015,14 @@
1005 return;
1006 }
1007 else if( key==kDONE ){
1008 focusCacheSet(null);
1009 focusVisualize(null,false);
1010 document.cookie =
1011 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/';
1012 return;
1013 }
1014 document.cookie = 'fossil_timeline_kbnav=1;path=/';
1015 var id = focusCacheGet();
1016 if( id && dx==0 ){
1017 if( key==kCYCL ){
1018 var sel = focusSelectedId();
1019 var sl2 = focus2ndSelectedId();
@@ -1069,14 +1078,14 @@
1069 focusVisualize(id,true);
1070 }/*,true*/);
1071 window.addEventListener('pageshow',function(evt){
1072 var id = focusCacheGet();
1073 if( !id || !focusVisualize(id,false) ){
1074 if( document.cookie.match(/fossil_timeline_kbnav=1/) ){
1075 id = focusDefaultId();
1076 focusCacheSet(id);
1077 focusVisualize(id,false);
1078 }
1079 }
1080 },false);
1081 },false);
1082 }());
1083
--- src/graph.js
+++ src/graph.js
@@ -939,10 +939,20 @@
939 }
940 function focusCacheSet(v){
941 var e = document.getElementById('timeline-kbfocus');
942 if( e ) e.value = v;
943 }
944 function focusCookieInit(){
945 document.cookie = 'fossil_timeline_kbnav=1;path=/';
946 }
947 function focusCookieClear(){
948 document.cookie =
949 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/';
950 }
951 function focusCookieQuery(){
952 return document.cookie.match(/fossil_timeline_kbnav=1/);
953 }
954 focusCacheInit();
955 document.addEventListener('keydown',function(evt){
956 if( evt.target.tagName=='INPUT' ) return;
957 var
958 mSHIFT = 1<<13,
@@ -1005,15 +1015,14 @@
1015 return;
1016 }
1017 else if( key==kDONE ){
1018 focusCacheSet(null);
1019 focusVisualize(null,false);
1020 focusCookieClear();
 
1021 return;
1022 }
1023 focusCookieInit();
1024 var id = focusCacheGet();
1025 if( id && dx==0 ){
1026 if( key==kCYCL ){
1027 var sel = focusSelectedId();
1028 var sl2 = focus2ndSelectedId();
@@ -1069,14 +1078,14 @@
1078 focusVisualize(id,true);
1079 }/*,true*/);
1080 window.addEventListener('pageshow',function(evt){
1081 var id = focusCacheGet();
1082 if( !id || !focusVisualize(id,false) ){
1083 if( focusCookieQuery() ){
1084 id = focusDefaultId();
1085 focusCacheSet(id);
1086 focusVisualize(id,false);
1087 }
1088 }
1089 },false);
1090 },false);
1091 }());
1092

Keyboard Shortcuts

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