|
34 | 34 | })(); |
35 | 35 | </script> |
36 | 36 | <style> |
37 | | - #timestamp, |
| 37 | + #timestaxxxxmp-table { |
| 38 | + .timestamp { |
| 39 | + height: 168px; |
| 40 | + font-size: 11px; |
| 41 | + width: 98%; |
| 42 | + } |
| 43 | + } |
38 | 44 | #commit-msg-output { |
39 | 45 | height: 168px; |
40 | 46 | font-size: 11px; |
@@ -899,185 +905,192 @@ <h2>change commit timestamp</h2> |
899 | 905 | fi' |
900 | 906 | </script> |
901 | 907 | <script> |
902 | | - document.addEventListener("DOMContentLoaded", () => { |
903 | | - var year = (function (target) { |
904 | | - var current = new Date().getFullYear(); |
| 908 | + { |
| 909 | + document.addEventListener("DOMContentLoaded", () => { |
| 910 | + const parent = document.querySelector("#timestaxxxxmp-table"); |
905 | 911 |
|
906 | | - var first = new Date(); |
| 912 | + const offsetRange = parent.querySelector("[name=offset]"); |
| 913 | + const offsetOutput = parent.querySelector("[name=offset-output]"); |
907 | 914 |
|
908 | | - first.setTime(first.getTime() - 60 * 60 * 24 * 365 * 1000 * 5); |
| 915 | + var year = (function (target) { |
| 916 | + var current = new Date().getFullYear(); |
909 | 917 |
|
910 | | - for (var i = 0; i < 11; i += 1) { |
911 | | - var k = document.createElement("option"); |
| 918 | + var first = new Date(); |
912 | 919 |
|
913 | | - k.value = k.innerText = first.getFullYear(); |
| 920 | + first.setTime(first.getTime() - 60 * 60 * 24 * 365 * 1000 * 5); |
914 | 921 |
|
915 | | - if (k.value == current) { |
916 | | - k.setAttribute("selected", "selected"); |
917 | | - } |
| 922 | + for (var i = 0; i < 11; i += 1) { |
| 923 | + var k = document.createElement("option"); |
918 | 924 |
|
919 | | - manipulation.append(target, k); |
| 925 | + k.value = k.innerText = first.getFullYear(); |
920 | 926 |
|
921 | | - first.setTime(first.getTime() + 60 * 60 * 24 * 365 * 1000); |
922 | | - } |
| 927 | + if (k.value == current) { |
| 928 | + k.setAttribute("selected", "selected"); |
| 929 | + } |
923 | 930 |
|
924 | | - return target; |
925 | | - })(document.querySelector('[name="year"]')); |
| 931 | + manipulation.append(target, k); |
926 | 932 |
|
927 | | - var month = (function (target) { |
928 | | - const monthNames = [ |
929 | | - "January", |
930 | | - "February", |
931 | | - "March", |
932 | | - "April", |
933 | | - "May", |
934 | | - "June", |
935 | | - "July", |
936 | | - "August", |
937 | | - "September", |
938 | | - "October", |
939 | | - "November", |
940 | | - "December", |
941 | | - ]; |
| 933 | + first.setTime(first.getTime() + 60 * 60 * 24 * 365 * 1000); |
| 934 | + } |
942 | 935 |
|
943 | | - var current = new Date().getMonth(); |
| 936 | + return target; |
| 937 | + })(parent.querySelector('[name="year"]')); |
944 | 938 |
|
945 | | - monthNames.forEach(function (name, i) { |
946 | | - var k = document.createElement("option"); |
| 939 | + var month = (function (target) { |
| 940 | + const monthNames = [ |
| 941 | + "January", |
| 942 | + "February", |
| 943 | + "March", |
| 944 | + "April", |
| 945 | + "May", |
| 946 | + "June", |
| 947 | + "July", |
| 948 | + "August", |
| 949 | + "September", |
| 950 | + "October", |
| 951 | + "November", |
| 952 | + "December", |
| 953 | + ]; |
947 | 954 |
|
948 | | - k.value = i; |
| 955 | + var current = new Date().getMonth(); |
949 | 956 |
|
950 | | - k.innerText = monthNames[i]; |
| 957 | + monthNames.forEach(function (name, i) { |
| 958 | + var k = document.createElement("option"); |
951 | 959 |
|
952 | | - if (i == current) { |
953 | | - k.setAttribute("selected", "selected"); |
954 | | - } |
| 960 | + k.value = i; |
955 | 961 |
|
956 | | - manipulation.append(target, k); |
957 | | - }); |
| 962 | + k.innerText = monthNames[i]; |
958 | 963 |
|
959 | | - return target; |
960 | | - })(document.querySelector('[name="month"]')); |
| 964 | + if (i == current) { |
| 965 | + k.setAttribute("selected", "selected"); |
| 966 | + } |
961 | 967 |
|
962 | | - var day = (function (target) { |
963 | | - var current = new Date().getDate(); |
| 968 | + manipulation.append(target, k); |
| 969 | + }); |
964 | 970 |
|
965 | | - for (var i = 1; i < 32; i += 1) { |
966 | | - var k = document.createElement("option"); |
| 971 | + return target; |
| 972 | + })(parent.querySelector('[name="month"]')); |
967 | 973 |
|
968 | | - k.value = k.innerText = i; |
| 974 | + var day = (function (target) { |
| 975 | + var current = new Date().getDate(); |
969 | 976 |
|
970 | | - if (i == current) { |
971 | | - k.setAttribute("selected", "selected"); |
| 977 | + for (var i = 1; i < 32; i += 1) { |
| 978 | + var k = document.createElement("option"); |
| 979 | + |
| 980 | + k.value = k.innerText = i; |
| 981 | + |
| 982 | + if (i == current) { |
| 983 | + k.setAttribute("selected", "selected"); |
| 984 | + } |
| 985 | + |
| 986 | + manipulation.append(target, k); |
972 | 987 | } |
973 | 988 |
|
974 | | - manipulation.append(target, k); |
975 | | - } |
| 989 | + return target; |
| 990 | + })(parent.querySelector('[name="day"]')); |
976 | 991 |
|
977 | | - return target; |
978 | | - })(document.querySelector('[name="day"]')); |
| 992 | + var hour = (function (target) { |
| 993 | + var current = new Date().getHours(); |
979 | 994 |
|
980 | | - var hour = (function (target) { |
981 | | - var current = new Date().getHours(); |
| 995 | + for (var i = 1; i < 25; i += 1) { |
| 996 | + var k = document.createElement("option"); |
982 | 997 |
|
983 | | - for (var i = 1; i < 25; i += 1) { |
984 | | - var k = document.createElement("option"); |
| 998 | + k.value = i % 24; |
985 | 999 |
|
986 | | - k.value = i % 24; |
| 1000 | + k.innerText = i; |
987 | 1001 |
|
988 | | - k.innerText = i; |
| 1002 | + if (i == current) { |
| 1003 | + k.setAttribute("selected", "selected"); |
| 1004 | + } |
989 | 1005 |
|
990 | | - if (i == current) { |
991 | | - k.setAttribute("selected", "selected"); |
| 1006 | + manipulation.append(target, k); |
992 | 1007 | } |
993 | 1008 |
|
994 | | - manipulation.append(target, k); |
995 | | - } |
| 1009 | + return target; |
| 1010 | + })(parent.querySelector('[name="hour"]')); |
996 | 1011 |
|
997 | | - return target; |
998 | | - })(document.querySelector('[name="hour"]')); |
| 1012 | + var minute = (function (target) { |
| 1013 | + var current = new Date().getMinutes(); |
999 | 1014 |
|
1000 | | - var minute = (function (target) { |
1001 | | - var current = new Date().getMinutes(); |
| 1015 | + for (var i = 0; i < 60; i += 1) { |
| 1016 | + var k = document.createElement("option"); |
1002 | 1017 |
|
1003 | | - for (var i = 0; i < 60; i += 1) { |
1004 | | - var k = document.createElement("option"); |
| 1018 | + k.value = k.innerText = i; |
1005 | 1019 |
|
1006 | | - k.value = k.innerText = i; |
| 1020 | + if (i == current) { |
| 1021 | + k.setAttribute("selected", "selected"); |
| 1022 | + } |
1007 | 1023 |
|
1008 | | - if (i == current) { |
1009 | | - k.setAttribute("selected", "selected"); |
| 1024 | + manipulation.append(target, k); |
1010 | 1025 | } |
1011 | 1026 |
|
1012 | | - manipulation.append(target, k); |
1013 | | - } |
| 1027 | + return target; |
| 1028 | + })(parent.querySelector('[name="minute"]')); |
1014 | 1029 |
|
1015 | | - return target; |
1016 | | - })(document.querySelector('[name="minute"]')); |
| 1030 | + var seconds = (function (target) { |
| 1031 | + var current = new Date().getSeconds(); |
1017 | 1032 |
|
1018 | | - var seconds = (function (target) { |
1019 | | - var current = new Date().getSeconds(); |
| 1033 | + for (var i = 0; i < 60; i += 1) { |
| 1034 | + var k = document.createElement("option"); |
1020 | 1035 |
|
1021 | | - for (var i = 0; i < 60; i += 1) { |
1022 | | - var k = document.createElement("option"); |
| 1036 | + k.value = k.innerText = i; |
1023 | 1037 |
|
1024 | | - k.value = k.innerText = i; |
| 1038 | + if (i == current) { |
| 1039 | + k.setAttribute("selected", "selected"); |
| 1040 | + } |
1025 | 1041 |
|
1026 | | - if (i == current) { |
1027 | | - k.setAttribute("selected", "selected"); |
| 1042 | + manipulation.append(target, k); |
1028 | 1043 | } |
1029 | 1044 |
|
1030 | | - manipulation.append(target, k); |
1031 | | - } |
| 1045 | + return target; |
| 1046 | + })(parent.querySelector('[name="seconds"]')); |
1032 | 1047 |
|
1033 | | - return target; |
1034 | | - })(document.querySelector('[name="seconds"]')); |
| 1048 | + var hash = (function (d) { |
| 1049 | + d.addEventListener("click", function () { |
| 1050 | + d.select(); |
| 1051 | + }); |
| 1052 | + d.addEventListener("input", function (e) { |
| 1053 | + update(); |
| 1054 | + }); |
| 1055 | + return d; |
| 1056 | + })(parent.querySelector("#hash")); |
1035 | 1057 |
|
1036 | | - var hash = (function (d) { |
1037 | | - d.addEventListener("click", function () { |
1038 | | - d.select(); |
1039 | | - }); |
1040 | | - d.addEventListener("input", function (e) { |
1041 | | - update(); |
1042 | | - }); |
1043 | | - return d; |
1044 | | - })(document.querySelector("#hash")); |
| 1058 | + var update = (function () { |
| 1059 | + var element = parent.querySelector(".timestamp"); |
1045 | 1060 |
|
1046 | | - var update = (function () { |
1047 | | - var element = document.querySelector("#timestamp"); |
| 1061 | + element.addEventListener("click", function (e) { |
| 1062 | + element.select(); |
| 1063 | + }); |
1048 | 1064 |
|
1049 | | - element.addEventListener("click", function (e) { |
1050 | | - element.select(); |
1051 | | - }); |
| 1065 | + var pre = element.value; |
1052 | 1066 |
|
1053 | | - var pre = element.value; |
| 1067 | + return function () { |
| 1068 | + var d = new Date(); |
1054 | 1069 |
|
1055 | | - return function () { |
1056 | | - var d = new Date(); |
| 1070 | + d.setFullYear(year.value); |
| 1071 | + d.setMonth(month.value); |
| 1072 | + d.setDate(day.value); |
| 1073 | + d.setHours(hour.value); |
| 1074 | + d.setMinutes(minute.value); |
| 1075 | + d.setSeconds(seconds.value); |
1057 | 1076 |
|
1058 | | - d.setFullYear(year.value); |
1059 | | - d.setMonth(month.value); |
1060 | | - d.setDate(day.value); |
1061 | | - d.setHours(hour.value); |
1062 | | - d.setMinutes(minute.value); |
1063 | | - d.setSeconds(seconds.value); |
| 1077 | + element.value = pre.replace(/xxx/g, d.toISOString()).replace(/yyy/g, hash.value); |
| 1078 | + }; |
| 1079 | + })(); |
1064 | 1080 |
|
1065 | | - element.value = pre.replace(/xxx/g, d.toISOString()).replace(/yyy/g, hash.value); |
1066 | | - }; |
1067 | | - })(); |
| 1081 | + [year, month, day, hour, minute, seconds].forEach(function (e) { |
| 1082 | + e.addEventListener("change", update); |
| 1083 | + }); |
1068 | 1084 |
|
1069 | | - [year, month, day, hour, minute, seconds].forEach(function (e) { |
1070 | | - e.addEventListener("change", update); |
| 1085 | + update(); |
1071 | 1086 | }); |
1072 | | - |
1073 | | - update(); |
1074 | | - }); |
| 1087 | + } |
1075 | 1088 | </script> |
1076 | | - <table width="100%"> |
| 1089 | + <table width="100%" id="timestaxxxxmp-table"> |
1077 | 1090 | <tbody> |
1078 | 1091 | <tr> |
1079 | 1092 | <td width="50%"> |
1080 | | - <textarea id="timestamp"> |
| 1093 | + <textarea class="timestamp"> |
1081 | 1094 |
|
1082 | 1095 | export FILTER_BRANCH_SQUELCH_WARNING=1 |
1083 | 1096 | git filter-branch -f --env-filter \ |
@@ -1108,6 +1121,12 @@ <h2>change commit timestamp</h2> |
1108 | 1121 | <div> |
1109 | 1122 | <input type="text" id="hash" value="d06798b8722b52c9643bbd72f3f07bd7598777d4" /> |
1110 | 1123 | </div> |
| 1124 | + <div> |
| 1125 | + <input type="range" name="offset" min="1" max="21600" step="1" value="80" style="width: 100%" /> |
| 1126 | + </div> |
| 1127 | + <div> |
| 1128 | + <pre name="offset-output"></pre> |
| 1129 | + </div> |
1111 | 1130 | </td> |
1112 | 1131 | </tr> |
1113 | 1132 | </tbody> |
|
0 commit comments