fixed sonarqube findings
This commit is contained in:
+18
-18
@@ -214,7 +214,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
}
|
||||
|
||||
function showListView() {
|
||||
void ns.GroupPoints?.release();
|
||||
ns.GroupPoints?.release();
|
||||
releasePoiPreview();
|
||||
ns.RouteRecorder?.endEditing();
|
||||
setDialogTitle('Streckenverwaltung');
|
||||
@@ -224,7 +224,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
}
|
||||
|
||||
function showRouteView() {
|
||||
void ns.GroupPoints?.release();
|
||||
ns.GroupPoints?.release();
|
||||
releasePoiPreview();
|
||||
setDialogTitle(routeDialogTitle());
|
||||
setHidden(byId(ids.routeListView), true);
|
||||
@@ -478,8 +478,8 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
renderRouteList();
|
||||
setStatus('');
|
||||
// Local drafts are usable even while this request is waiting for a connection.
|
||||
void refreshPublicRoutes(requestGeneration);
|
||||
void refreshSubmittedRoutes(requestGeneration);
|
||||
refreshPublicRoutes(requestGeneration);
|
||||
refreshSubmittedRoutes(requestGeneration);
|
||||
}
|
||||
|
||||
async function refreshSubmittedRoutes(requestGeneration) {
|
||||
@@ -536,7 +536,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
setDialogExpanded(true);
|
||||
showListView();
|
||||
await guarded(loadRoutes);
|
||||
void ns.Groups?.refresh?.();
|
||||
ns.Groups?.refresh?.();
|
||||
}
|
||||
|
||||
async function openNewLocalRoute() {
|
||||
@@ -546,7 +546,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
|
||||
function closeEditor() {
|
||||
if (pointSaveInProgress) return;
|
||||
void ns.GroupPoints?.release();
|
||||
ns.GroupPoints?.release();
|
||||
releasePoiPreview();
|
||||
ns.RouteRecorder?.endEditing();
|
||||
const dialog = byId(ids.dialog);
|
||||
@@ -948,8 +948,8 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
async function saveRoute() {
|
||||
const values = routeFromForm();
|
||||
if (!values.name) throw new Error(ns.I18n.t("editor.error.route-name"));
|
||||
if (state.currentSource !== 'local') await saveServerRoute(values);
|
||||
else await saveLocalRoute(values);
|
||||
if (state.currentSource === 'local') await saveLocalRoute(values);
|
||||
else await saveServerRoute(values);
|
||||
}
|
||||
|
||||
function safeGpxFilename(name) {
|
||||
@@ -1157,7 +1157,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
}
|
||||
|
||||
function newPoi() {
|
||||
void ns.GroupPoints?.release();
|
||||
ns.GroupPoints?.release();
|
||||
releasePoiPreview();
|
||||
const position = currentPosition();
|
||||
const lat = position?.lat ?? null;
|
||||
@@ -1195,9 +1195,9 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
if (draft) {
|
||||
state.pendingAudioFile = draft.media?.audio || null;
|
||||
state.pendingImages = (draft.media?.images || []).map(file => ({ file, key: `pending-image-${ns.LocalRoutes.createPoiId()}`, previewUrl: objectUrlFor(file) }));
|
||||
const hiddenImages = state.groupDeletions.map(item => item.path);
|
||||
state.currentPoi = { ...poi, images: (poi.images || []).filter(image => !hiddenImages.includes(`pictures/${image.id}`)),
|
||||
...(hiddenImages.includes('audio') ? { audioUrl: null } : {}) };
|
||||
const hiddenImages = new Set(state.groupDeletions.map(item => item.path));
|
||||
state.currentPoi = { ...poi, images: (poi.images || []).filter(image => !hiddenImages.has(`pictures/${image.id}`)),
|
||||
...(hiddenImages.has('audio') ? { audioUrl: null } : {}) };
|
||||
renderPoiMediaPreview();
|
||||
updatePoiMediaStatus();
|
||||
setStatus(ns.I18n.t(state.groupDeletePoint ? 'point-locks.delete-restored' : 'point-locks.restored'));
|
||||
@@ -1325,7 +1325,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
await uploadOne(`${basePath}/audio`, 'audio', state.pendingAudioFile, method);
|
||||
if (state.currentSource === 'group') { state.pendingAudioFile = null; await rememberGroupPoint(poiFromForm(), currentPoiId); }
|
||||
}
|
||||
for (const pending of [...state.pendingImages]) {
|
||||
for (const pending of state.pendingImages) {
|
||||
await uploadOne(`${basePath}/pictures`, 'picture', pending.file);
|
||||
if (state.currentSource === 'group') {
|
||||
state.pendingImages = state.pendingImages.filter(item => item !== pending);
|
||||
@@ -1366,7 +1366,7 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
await ns.GroupPoints.remove(currentRouteId, 'new');
|
||||
await ns.GroupPoints.acceptNew(currentRouteId, saved);
|
||||
}
|
||||
for (const deletion of [...state.groupDeletions]) {
|
||||
for (const deletion of state.groupDeletions) {
|
||||
await sendDelete(`/routes/${currentRouteId}/pois/${savedPoiId}/${deletion.path}`);
|
||||
state.groupDeletions = state.groupDeletions.filter(item => item !== deletion);
|
||||
await rememberGroupPoint(values, savedPoiId);
|
||||
@@ -1725,14 +1725,14 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
byId(ids.dialog)?.addEventListener(eventName, event => {
|
||||
if (pointSaveInProgress && eventName === 'cancel') { event.preventDefault(); return; }
|
||||
releasePoiPreview();
|
||||
void ns.GroupPoints?.release();
|
||||
ns.GroupPoints?.release();
|
||||
ns.RouteRecorder?.endEditing();
|
||||
});
|
||||
}
|
||||
activate(byId(ids.button), () => guarded(openEditor));
|
||||
activate(byId(ids.close), closeEditor);
|
||||
activate(byId(ids.newRoute), newRoute);
|
||||
activate(byId(ids.routeBack), () => { showListView(); void guarded(loadRoutes); });
|
||||
activate(byId(ids.routeBack), () => { showListView(); guarded(loadRoutes); });
|
||||
activate(byId(ids.routeUpload), () => guarded(uploadLocalRoute));
|
||||
activate(byId(ids.rightsOpen), () => ns.LegalUi?.open('terms'));
|
||||
activate(byId(ids.addPoi), newPoi);
|
||||
@@ -1742,8 +1742,8 @@ globalThis.Wegwichtel = globalThis.Wegwichtel || {};
|
||||
byId(ids.poiImages)?.addEventListener('change', () => guarded(handleImageSelection));
|
||||
activate(byId(ids.poiMediaPreview), event => guarded(() => mediaPreviewAction(event)));
|
||||
activate(byId(ids.poiDelete), () => {
|
||||
if (state.currentSource === 'group') { state.groupDeletePoint = true; void guarded(savePoi); }
|
||||
else void guarded(deleteCurrentPoi);
|
||||
if (state.currentSource === 'group') { state.groupDeletePoint = true; guarded(savePoi); }
|
||||
else guarded(deleteCurrentPoi);
|
||||
});
|
||||
activate(byId(ids.poiCancel), showRouteView);
|
||||
activate(byId(ids.routeList), event => guarded(() => routeListAction(event)));
|
||||
|
||||
@@ -178,7 +178,7 @@ globalThis.Wegwichtel ??= {};
|
||||
}
|
||||
} finally { touching = false; }
|
||||
}
|
||||
globalThis.setInterval?.(() => { void keepActive(); }, 30_000);
|
||||
globalThis.setInterval?.(() => { keepActive(); }, 30_000);
|
||||
function headersFor(path) {
|
||||
const match = /^\/routes\/(\d+)\/pois\/(\d+)(?:\/|$)/.exec(path);
|
||||
if (!match || !current || String(current.routeId) !== match[1] || String(current.poiId) !== match[2]) return {};
|
||||
|
||||
+23
-21
@@ -22,12 +22,12 @@ globalThis.Wegwichtel ??= {};
|
||||
button.addEventListener('pointerup', event => {
|
||||
if (event.isPrimary === false || (event.button && event.button !== 0)) return;
|
||||
event.preventDefault();
|
||||
void action();
|
||||
action();
|
||||
});
|
||||
button.addEventListener('keydown', event => {
|
||||
if (!['Enter', ' '].includes(event.key)) return;
|
||||
event.preventDefault();
|
||||
void action();
|
||||
action();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ globalThis.Wegwichtel ??= {};
|
||||
|
||||
function openEntry() {
|
||||
dialogGeneration += 1;
|
||||
selection = Array(codeLength).fill(0);
|
||||
selection = new Array(codeLength).fill(0);
|
||||
element(ids.status).textContent = '';
|
||||
element(ids.entry).hidden = false;
|
||||
element(ids.invitation).hidden = true;
|
||||
@@ -297,34 +297,36 @@ globalThis.Wegwichtel ??= {};
|
||||
if (routeId && revision !== null && /^\d+$/.test(revision)) revisions.set(routeId, Number(revision));
|
||||
}
|
||||
|
||||
async function joinSelectedGroup() {
|
||||
const generation = dialogGeneration;
|
||||
const motifs = ns.GroupSymbols.list();
|
||||
let payload;
|
||||
try {
|
||||
payload = await request('/join', 'POST', {
|
||||
code: selection.map(index => motifs[index].unicode), creator_id: ns.LocalRoutes.creatorId()
|
||||
});
|
||||
} catch (error) {
|
||||
if (!element(ids.dialog).open || generation !== dialogGeneration) return;
|
||||
throw error;
|
||||
}
|
||||
if (!element(ids.dialog).open || generation !== dialogGeneration) return;
|
||||
await edit(payload.group);
|
||||
await refresh();
|
||||
}
|
||||
|
||||
function init() {
|
||||
globalThis.setInterval?.(() => { void refreshInvitation(); }, 30_000);
|
||||
globalThis.setInterval?.(() => { refreshInvitation(); }, 30_000);
|
||||
activate(element('group-share-start'), () => finishShare(true));
|
||||
activate(element('group-share-close'), () => finishShare(false));
|
||||
element('group-share-dialog').addEventListener('close', () => {
|
||||
const resolve = shareDecision; shareDecision = null; resolve?.(false);
|
||||
});
|
||||
document.addEventListener('wegwichtel:point-drafts-changed', () => { void renderPending(); void ns.StorageUsage?.refresh(); });
|
||||
document.addEventListener('wegwichtel:point-drafts-changed', () => { renderPending(); ns.StorageUsage?.refresh(); });
|
||||
element(ids.dialog).addEventListener('cancel', () => { dialogGeneration += 1; });
|
||||
element(ids.dialog).addEventListener('close', () => { dialogGeneration += 1; });
|
||||
for (const id of [ids.joinOpen, ids.editorJoin]) activate(element(id), openEntry);
|
||||
activate(element(ids.close), () => element(ids.dialog).close());
|
||||
activate(element(ids.join), () => guarded(async () => {
|
||||
const generation = dialogGeneration;
|
||||
const motifs = ns.GroupSymbols.list();
|
||||
let payload;
|
||||
try {
|
||||
payload = await request('/join', 'POST', {
|
||||
code: selection.map(index => motifs[index].unicode), creator_id: ns.LocalRoutes.creatorId()
|
||||
});
|
||||
} catch (error) {
|
||||
if (!element(ids.dialog).open || generation !== dialogGeneration) return;
|
||||
throw error;
|
||||
}
|
||||
if (!element(ids.dialog).open || generation !== dialogGeneration) return;
|
||||
await edit(payload.group);
|
||||
await refresh();
|
||||
}));
|
||||
activate(element(ids.join), () => guarded(joinSelectedGroup));
|
||||
activate(element(ids.edit), () => guarded(() => edit(currentGroup)));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user