Erweiterungen

This commit is contained in:
2026-02-24 20:51:50 +01:00
parent 112978f14f
commit 98ec10fdb8
14 changed files with 49 additions and 0 deletions

View File

@@ -127,6 +127,9 @@ public class MongoConfig {
if (source.containsKey("description")) {
task.setDescription(source.getString("description"));
}
if (source.containsKey("optional")) {
task.setOptional(source.getBoolean("optional", false));
}
if (source.containsKey("completed")) {
task.setCompleted(source.getBoolean("completed", false));
}

View File

@@ -7,6 +7,7 @@ import de.assecutor.votianlt.dto.JobWithRelatedDataDTO;
import de.assecutor.votianlt.model.CargoItem;
import de.assecutor.votianlt.model.task.BaseTask;
import de.assecutor.votianlt.model.task.ConfirmationTask;
import de.assecutor.votianlt.model.task.TodoListTask;
import de.assecutor.votianlt.service.TranslationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -127,6 +128,13 @@ class MessagingPublisherImpl implements MessagingPublisher {
if (task instanceof ConfirmationTask ct && isNonBlank(ct.getButtonText())) {
texts.add(ct.getButtonText());
}
if (task instanceof TodoListTask tlt && tlt.getTodoItems() != null) {
for (String item : tlt.getTodoItems()) {
if (isNonBlank(item)) {
texts.add(item);
}
}
}
}
}
@@ -191,6 +199,22 @@ class MessagingPublisherImpl implements MessagingPublisher {
}
}
}
if (task instanceof TodoListTask tlt && tlt.getTodoItems() != null
&& taskNode.has("taskSpecificData")) {
ObjectNode tsd = (ObjectNode) taskNode.get("taskSpecificData");
if (tsd.has("todoItems")) {
ArrayNode translatedItems = objectMapper.createArrayNode();
for (String item : tlt.getTodoItems()) {
if (isNonBlank(item)) {
List<TranslationService.Translation> t = translations.get(item);
translatedItems.add(t != null ? createTranslationArray(t)
: objectMapper.createArrayNode().add(item));
}
}
tsd.set("todoItems", translatedItems);
}
}
}
}

View File

@@ -38,6 +38,9 @@ public abstract class BaseTask {
@Field("description")
private String description;
@Field("optional")
private boolean optional = false;
@Field("completed")
private boolean completed = false;

View File

@@ -2156,6 +2156,7 @@ public class AddJobView extends Main implements HasDynamicTitle {
BaseTask oldTask = currentTask[0];
newTask.setDescription(oldTask.getDescription());
newTask.setOptional(oldTask.isOptional());
newTask.setCompleted(oldTask.isCompleted());
newTask.setCompletedAt(oldTask.getCompletedAt());
newTask.setCompletedBy(oldTask.getCompletedBy());
@@ -2489,6 +2490,13 @@ public class AddJobView extends Main implements HasDynamicTitle {
default:
throw new IllegalArgumentException("Unbekannter TaskType: " + taskType);
}
// Optional checkbox applies to all task types
com.vaadin.flow.component.checkbox.Checkbox optionalCheckbox = new com.vaadin.flow.component.checkbox.Checkbox(
getTranslation("addjob.tasks.optional"));
optionalCheckbox.setValue(task.isOptional());
optionalCheckbox.addValueChangeListener(ev -> task.setOptional(ev.getValue()));
configContainer.add(optionalCheckbox);
}
private void updateTodoItems(VerticalLayout todoList, BaseTask task) {
@@ -2781,6 +2789,7 @@ public class AddJobView extends Main implements HasDynamicTitle {
BaseTask oldTask = currentTask[0];
newTask.setDescription(oldTask.getDescription());
newTask.setOptional(oldTask.isOptional());
newTask.setCompleted(oldTask.isCompleted());
newTask.setCompletedAt(oldTask.getCompletedAt());
newTask.setCompletedBy(oldTask.getCompletedBy());

View File

@@ -509,6 +509,7 @@ addjob.tasks.todolist.add=To-Do hinzufügen
addjob.tasks.comment.label=Kommentar
addjob.tasks.comment.placeholder=Kommentar eingeben
addjob.tasks.comment.required=Kommentar erforderlich
addjob.tasks.optional=Aufgabe ist optional
addjob.services.title=Leistungen
addjob.services.add=Leistung hinzufügen
addjob.services.calculation=Berechnung

View File

@@ -610,6 +610,7 @@ register.button.resend=Siųsti kodą dar kartą
register.button.back=Grįžti į pradinį puslapį
register.notification.success=Registracija sėkminga. Prašome prisijungti.
register.notification.failed=Registracijos klaida: {0}
addjob.tasks.optional=Ülesanne on valikuline
# CTA Button
cta.freetest=Išbandykite nemokamai

View File

@@ -509,6 +509,7 @@ addjob.tasks.todolist.add=Add To-Do
addjob.tasks.comment.label=Comment
addjob.tasks.comment.placeholder=Enter comment
addjob.tasks.comment.required=Comment required
addjob.tasks.optional=Task is optional
addjob.services.title=Services
addjob.services.add=Add Service
addjob.services.calculation=Calculation

View File

@@ -509,6 +509,7 @@ addjob.tasks.todolist.add=Añadir Tarea
addjob.tasks.comment.label=Comentario
addjob.tasks.comment.placeholder=Ingresar comentario
addjob.tasks.comment.required=Comentario obligatorio
addjob.tasks.optional=La tarea es opcional
addjob.services.title=Servicios
addjob.services.add=Añadir Servicio
addjob.services.calculation=Cálculo

View File

@@ -509,6 +509,7 @@ addjob.tasks.todolist.add=Ajouter une Tâche
addjob.tasks.comment.label=Commentaire
addjob.tasks.comment.placeholder=Entrer le commentaire
addjob.tasks.comment.required=Commentaire requis
addjob.tasks.optional=La tâche est optionnelle
addjob.services.title=Services
addjob.services.add=Ajouter un Service
addjob.services.calculation=Calcul

View File

@@ -222,4 +222,5 @@ myinvoices.column.amount=Suma
myinvoices.empty.title=Sąskaitų nėra
myinvoices.empty.desc=Sąskaitų nerasta.
myinvoices.button.prev=Ankstesnis
addjob.tasks.optional=Užduotis yra neprivaloma
myinvoices.button.next=Kitas

View File

@@ -222,4 +222,5 @@ myinvoices.column.amount=Summa
myinvoices.empty.title=Nav rēķinu
myinvoices.empty.desc=Rēķini nav atrasti.
myinvoices.button.prev=Iepriekšējais
addjob.tasks.optional=Uzdevums ir neobligāts
myinvoices.button.next=Nākamais

View File

@@ -225,4 +225,5 @@ myinvoices.column.amount=Kwota
myinvoices.empty.title=Brak faktur
myinvoices.empty.desc=Nie znaleziono faktur.
myinvoices.button.prev=Poprzedni
addjob.tasks.optional=Zadanie jest opcjonalne
myinvoices.button.next=Następny

View File

@@ -245,4 +245,5 @@ myinvoices.column.amount=Сумма
myinvoices.empty.title=Нет счетов
myinvoices.empty.desc=Счета не найдены.
myinvoices.button.prev=Назад
addjob.tasks.optional=Задача необязательна
myinvoices.button.next=Далее

View File

@@ -219,4 +219,5 @@ myinvoices.column.amount=Tutar
myinvoices.empty.title=Fatura Yok
myinvoices.empty.desc=Hiçbir fatura bulunamadı.
myinvoices.button.prev=Önceki
addjob.tasks.optional=Görev isteğe bağlı
myinvoices.button.next=Sonraki