updated sonarqube + fixed first issues
Some checks failed
Tests / Run Go Tests (push) Failing after 1m26s

This commit is contained in:
2025-10-07 15:47:59 +02:00
parent a1aae9dc56
commit bf841ad5c6
6 changed files with 24 additions and 36 deletions

View File

@@ -13,7 +13,7 @@ RUN go mod download && go mod verify
COPY . . COPY . .
RUN go build -o server . RUN go build -o server .
FROM alpine FROM alpine:3.22
RUN apk add --no-cache tzdata RUN apk add --no-cache tzdata
WORKDIR /app WORKDIR /app
COPY --from=build /app/server /app/server COPY --from=build /app/server /app/server

View File

@@ -1,5 +1,5 @@
function clearEditState() { function clearEditState() {
for (e of document.querySelectorAll(".edit")) { for (let e of document.querySelectorAll(".edit")) {
e.classList.remove("edit"); e.classList.remove("edit");
} }
toggleAbsenceEdit(false); toggleAbsenceEdit(false);
@@ -8,11 +8,9 @@ function clearEditState() {
function editWorkday(element, event, id, isWorkDay) { function editWorkday(element, event, id, isWorkDay) {
console.log("editWorkday called", isWorkDay); console.log("editWorkday called", isWorkDay);
event.preventDefault(); event.preventDefault();
var form = document.getElementById(id); const form = document.getElementById(id);
if (form == null) { if (form == null) {
form = element form = element.closest(".grid-sub").querySelector(".all-booking-component > form");
.closest(".grid-sub")
.querySelector(".all-booking-component > form");
} }
clearEditState(); clearEditState();
@@ -22,37 +20,26 @@ function editWorkday(element, event, id, isWorkDay) {
if (isWorkDay) { if (isWorkDay) {
element.classList.add("edit"); element.classList.add("edit");
if (element.classList.contains("edit")) { if (element.classList.contains("edit")) {
form.querySelectorAll("input, select").forEach((input) => { for (let input of form.querySelectorAll("input, select")) {
input.disabled = false; input.disabled = false;
}); }
} else { } else {
form.submit(); form.submit();
} }
} else { } else {
var absenceForm = document.getElementById("absence_form"); const absenceForm = document.getElementById("absence_form");
if (id != 0) { if (id == 0) {
syncFields(form, absenceForm, [ absenceForm.querySelector("[name=date_from]").value = form.id.replace("time-", "");
"date_from", absenceForm.querySelector("[name=date_to]").value = form.id.replace("time-", "");
"date_to",
"aw_type",
"aw_id",
]);
} else { } else {
absenceForm.querySelector("[name=date_from]").value = form.id.replace( syncFields(form, absenceForm, ["date_from", "date_to", "aw_type", "aw_id"]);
"time-",
"",
);
absenceForm.querySelector("[name=date_to]").value = form.id.replace(
"time-",
"",
);
} }
} }
} }
function toggleAbsenceEdit(state) { function toggleAbsenceEdit(state) {
var form = document.getElementById("absence_form"); const form = document.getElementById("absence_form");
if (state) { if (state) {
form.classList.remove("hidden"); form.classList.remove("hidden");
form.scrollIntoView({ form.scrollIntoView({
@@ -66,22 +53,22 @@ function toggleAbsenceEdit(state) {
} }
function syncFields(from, to, fieldsToSync) { function syncFields(from, to, fieldsToSync) {
fieldsToSync.forEach((name) => { for (let field of fieldsToSync) {
const src = from.querySelector(`[name=${name}]`); const src = from.querySelector(`[name=${field}]`);
const target = to.querySelector(`[name=${name}]`); const target = to.querySelector(`[name=${field}]`);
if (!src || !target) return; if (!src || !target) return;
target.value = src.value; target.value = src.value;
}); }
} }
function navigateWeek(element, event, direction) { function navigateWeek(element, event, direction) {
var dateInput = element.closest("form").querySelector("input[type=date]"); const dateInput = element.closest("form").querySelector("input[type=date]");
var date = dateInput.valueAsDate; const date = dateInput.valueAsDate;
date.setDate(date.getDate() + 7 * direction); date.setDate(date.getDate() + 7 * direction);
date.setHours(10); date.setHours(10);
dateInput.valueAsDate = date; dateInput.valueAsDate = date;
} }
function logoutUser() { function logoutUser() {
fetch("/user/logout", {}).then(() => window.location.reload()); fetch("/user/logout", {}).then(() => globalThis.location.reload());
} }

0
DB/initdb/01_schema.sql Normal file → Executable file
View File

0
DB/initdb/02_sample_data.sql Normal file → Executable file
View File

0
DB/initdb/03_create_user.sh Normal file → Executable file
View File

View File

@@ -1,8 +1,9 @@
sonar.projectKey=Arbeitszeitmessung sonar.projectKey=arbeitszeitmessung
sonar.projectBaseDir=Backend
sonar.sources=. sonar.sources=.
sonar.exclusions=**/*_test.go sonar.exclusions=**/*_test.go, **/*_templ.go
sonar.tests=. sonar.tests=.
sonar.test.inclusions=**/*_test.go sonar.test.inclusions=**/*_test.go
sonar.go.tests.reportPaths=Backend/.test/report.json sonar.go.tests.reportPaths=.test/report.json
sonar.go.coverage.reportPaths=Backend/.test/coverage.out sonar.go.coverage.reportPaths=.test/coverage.out