detached 03f62a8

Fix: webui notify update, state not updating when new release available

commit
03f62a824c7781bbba28c3ec4c61c998b686facc
author
bnema · · 2023-11-07 09:47 UTC
parent
f751149
signature
unsigned
1 file · +12 -12
M internal/webui/public/assets/js/custom.js +12 -12
@@ -1,21 +1,16 @@
11 function initializeVersionCheck() {
2+ // Dummy data for the remote version (as if fetched from a server)
23 const updateStrTemplate = "New version %VERSION% available, consider pulling the latest image";
34
4- const checkVersion = (versionData) => {
5- const currentVersion = document.getElementById("actual-version").textContent.trim();
5+ const checkVersion = (versionData, currentVersion) => {
66 const fetchedVersionNumber = versionData?.amd64?.name.match(/\d+\.\d+\.\d+/)?.[0];
77
8- if (!fetchedVersionNumber) {
9- console.log("Dev mode detected, skipping version check.");
10- return;
11- }
12-
138 if (currentVersion !== fetchedVersionNumber) {
149 const updateStr = updateStrTemplate.replace("%VERSION%", fetchedVersionNumber);
1510 console.log(updateStr);
1611 const updateElement = document.getElementById("update-available");
1712 updateElement.title = updateStr;
18- updateElement.removeAttribute("hidden");
13+ updateElement.toggleAttribute("hidden", false);
1914 updateElement.classList.remove("hidden"); // Remove the Tailwind `hidden` class
2015 updateElement.classList.add("block"); // Add the Tailwind `block` class
2116 } else {
@@ -23,20 +18,25 @@ function initializeVersionCheck() {
2318 }
2419 };
2520
26- const fetchVersionInfo = () => {
21+ const fetchVersionInfo = (currentVersion) => {
2722 fetch("https://gordon-proxy.bnema.dev/version")
2823 .then((response) => response.json())
29- .then(checkVersion)
24+ .then((versionData) => checkVersion(versionData, currentVersion))
3025 .catch((error) => console.error("Error fetching version:", error));
3126 };
3227
3328 const init = () => {
34- const currentVersion = document.getElementById("actual-version").textContent.trim();
29+ const currentVersionElement = document.getElementById("actual-version");
30+ if (!currentVersionElement) {
31+ console.log("Error: #actual-version element not found.");
32+ return;
33+ }
34+ const currentVersion = currentVersionElement.textContent.trim();
3535 if (!currentVersion) {
3636 console.log("Dev mode detected, skipping version check.");
3737 return;
3838 }
39- fetchVersionInfo();
39+ fetchVersionInfo(currentVersion);
4040 };
4141
4242 init();
@@ -1,21 +1,16 @@
1 function initializeVersionCheck() {1 function initializeVersionCheck() {
2+ // Dummy data for the remote version (as if fetched from a server)
2 const updateStrTemplate = "New version %VERSION% available, consider pulling the latest image";3 const updateStrTemplate = "New version %VERSION% available, consider pulling the latest image";
3 4
4- const checkVersion = (versionData) => {5+ const checkVersion = (versionData, currentVersion) => {
5- const currentVersion = document.getElementById("actual-version").textContent.trim();
6 const fetchedVersionNumber = versionData?.amd64?.name.match(/\d+\.\d+\.\d+/)?.[0];6 const fetchedVersionNumber = versionData?.amd64?.name.match(/\d+\.\d+\.\d+/)?.[0];
7 7
8- if (!fetchedVersionNumber) {
9- console.log("Dev mode detected, skipping version check.");
10- return;
11- }
12-
13 if (currentVersion !== fetchedVersionNumber) {8 if (currentVersion !== fetchedVersionNumber) {
14 const updateStr = updateStrTemplate.replace("%VERSION%", fetchedVersionNumber);9 const updateStr = updateStrTemplate.replace("%VERSION%", fetchedVersionNumber);
15 console.log(updateStr);10 console.log(updateStr);
16 const updateElement = document.getElementById("update-available");11 const updateElement = document.getElementById("update-available");
17 updateElement.title = updateStr;12 updateElement.title = updateStr;
18- updateElement.removeAttribute("hidden");13+ updateElement.toggleAttribute("hidden", false);
19 updateElement.classList.remove("hidden"); // Remove the Tailwind `hidden` class14 updateElement.classList.remove("hidden"); // Remove the Tailwind `hidden` class
20 updateElement.classList.add("block"); // Add the Tailwind `block` class15 updateElement.classList.add("block"); // Add the Tailwind `block` class
21 } else {16 } else {
@@ -23,20 +18,25 @@ function initializeVersionCheck() {
23 }18 }
24 };19 };
25 20
26- const fetchVersionInfo = () => {21+ const fetchVersionInfo = (currentVersion) => {
27 fetch("https://gordon-proxy.bnema.dev/version")22 fetch("https://gordon-proxy.bnema.dev/version")
28 .then((response) => response.json())23 .then((response) => response.json())
29- .then(checkVersion)24+ .then((versionData) => checkVersion(versionData, currentVersion))
30 .catch((error) => console.error("Error fetching version:", error));25 .catch((error) => console.error("Error fetching version:", error));
31 };26 };
32 27
33 const init = () => {28 const init = () => {
34- const currentVersion = document.getElementById("actual-version").textContent.trim();29+ const currentVersionElement = document.getElementById("actual-version");
30+ if (!currentVersionElement) {
31+ console.log("Error: #actual-version element not found.");
32+ return;
33+ }
34+ const currentVersion = currentVersionElement.textContent.trim();
35 if (!currentVersion) {35 if (!currentVersion) {
36 console.log("Dev mode detected, skipping version check.");36 console.log("Dev mode detected, skipping version check.");
37 return;37 return;
38 }38 }
39- fetchVersionInfo();39+ fetchVersionInfo(currentVersion);
40 };40 };
41 41
42 init();42 init();

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 106

↑↓ moveenter openesc close