extended translations for wiki events, fixed bug in Translatable.argMao
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -1,23 +1,34 @@
|
|||||||
/* © SRSoftware 2025 */
|
/* © SRSoftware 2025 */
|
||||||
package de.srsoftware.umbrella.messagebus.events;
|
package de.srsoftware.umbrella.messagebus.events;
|
||||||
|
|
||||||
import static de.srsoftware.umbrella.core.constants.Field.OBJECT;
|
import static de.srsoftware.umbrella.core.constants.Field.*;
|
||||||
import static de.srsoftware.umbrella.core.constants.Field.USER;
|
|
||||||
import static de.srsoftware.umbrella.core.constants.Module.WIKI;
|
import static de.srsoftware.umbrella.core.constants.Module.WIKI;
|
||||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
||||||
|
import static de.srsoftware.umbrella.messagebus.events.Event.EventType.MEMBER_ADDED;
|
||||||
|
|
||||||
|
import de.srsoftware.umbrella.core.constants.Field;
|
||||||
|
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||||
import de.srsoftware.umbrella.core.model.*;
|
import de.srsoftware.umbrella.core.model.*;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
public class WikiEvent extends Event<WikiPage>{
|
public class WikiEvent extends Event<WikiPage>{
|
||||||
|
private final UmbrellaUser newMember;
|
||||||
|
|
||||||
public WikiEvent(UmbrellaUser initiator, WikiPage page, EventType type){
|
public WikiEvent(UmbrellaUser initiator, WikiPage page, EventType type){
|
||||||
super(initiator, WIKI, page, type);
|
super(initiator, WIKI, page, type);
|
||||||
|
newMember = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WikiEvent(UmbrellaUser initiator, WikiPage page, Map<String, Object> oldData){
|
public WikiEvent(UmbrellaUser initiator, WikiPage page, Map<String, Object> oldData){
|
||||||
super(initiator, WIKI, page, oldData);
|
super(initiator, WIKI, page, oldData);
|
||||||
|
newMember = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WikiEvent(UmbrellaUser initiator, WikiPage page, UmbrellaUser newMember){
|
||||||
|
super(initiator,WIKI,page,MEMBER_ADDED);
|
||||||
|
this.newMember = newMember;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -27,12 +38,44 @@ public class WikiEvent extends Event<WikiPage>{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Translatable describe() {
|
public Translatable describe() {
|
||||||
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
|
return switch (eventType()){
|
||||||
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
|
case CREATE -> describeCreate();
|
||||||
|
case DELETE -> describeDelete();
|
||||||
|
case MEMBER_ADDED -> describeMemberAdded();
|
||||||
|
case UPDATE -> describeUpdate();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Translatable describeCreate(){
|
||||||
|
var head = t("New wiki page {name} has been created");
|
||||||
|
return t("{head}:\n\n{object}\n\n{link}","head",head,OBJECT,payload().content(),"link",link());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Translatable describeDelete(){
|
||||||
|
return t("The wiki page '{page}' has been deleted by {user}", "page", payload().id(), USER, initiator().name());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Translatable describeMemberAdded(){
|
||||||
|
var head = t("'{name}' has been added to '{object}' by '{user}'.",NAME,newMember.name(), OBJECT,payload().id(),USER,initiator().name());
|
||||||
|
return t("{head}\n\n{link}","head",head,"link",link());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Translatable describeUpdate() {
|
||||||
|
var head = t("Changes in wiki page '{id}':\n\n{body}",Field.ID,payload().id(),BODY,diff().orElse(""));
|
||||||
|
return t("{head}\n\n{link}","head",head,"link",link());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Translatable link() {
|
||||||
|
return t("You can view/edit this wiki page at {base_url}/wiki/{id}/view",ID,payload().id());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Translatable subject() {
|
public Translatable subject() {
|
||||||
return t("{user} edited {object}",USER,initiator(),OBJECT,payload());
|
return switch (eventType()){
|
||||||
|
case CREATE -> t("The wiki page '{name}' has been created", Field.NAME, payload().id());
|
||||||
|
case DELETE -> t("The wiki page '{name}' has been deleted",Field.NAME, payload().id());
|
||||||
|
case MEMBER_ADDED, UPDATE -> t("wiki page '{name}' was edited",Field.NAME,payload().id());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class Translatable {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
while (i+1<args.length){
|
while (i+1<args.length){
|
||||||
map.put(args[i].toString(),args[i+1]);
|
map.put(args[i].toString(),args[i+1]);
|
||||||
i++;
|
i+=2;
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
"cancel": "abbrechen",
|
"cancel": "abbrechen",
|
||||||
"Changes in project '{project}':\n\n{body}": "Änderungen an Projekt '{project}':\n\n{body}",
|
"Changes in project '{project}':\n\n{body}": "Änderungen an Projekt '{project}':\n\n{body}",
|
||||||
"Changes in task '{task}':\n\n{body}": "Änderungen an Aufgabe '{task}':\n\n{body}",
|
"Changes in task '{task}':\n\n{body}": "Änderungen an Aufgabe '{task}':\n\n{body}",
|
||||||
|
"Changes in wiki page '{id}':\n\n{body}": "Änderungen an Wiki-Seite „{id}“:\n\n{body}",
|
||||||
"choose_type": "Typ wählen",
|
"choose_type": "Typ wählen",
|
||||||
"click_to_edit": "Anklicken zum Bearbeiten",
|
"click_to_edit": "Anklicken zum Bearbeiten",
|
||||||
"client_id": "Client-ID",
|
"client_id": "Client-ID",
|
||||||
@@ -238,7 +239,7 @@
|
|||||||
"my files": "Meine Dateien",
|
"my files": "Meine Dateien",
|
||||||
|
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"'{name}' has been added to '{task}' by '{user}'.": "'{name}' wurde von {user} zu '{task}' hinzugefügt.",
|
"'{name}' has been added to '{object}' by '{user}'.": "'{name}' wurde von {user} zu '{object}' hinzugefügt.",
|
||||||
"net_price": "Nettopreis",
|
"net_price": "Nettopreis",
|
||||||
"net_sum": "Netto-Summe",
|
"net_sum": "Netto-Summe",
|
||||||
"new_contact": "neuer Kontakt",
|
"new_contact": "neuer Kontakt",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"new_property": "neue Eigenschaft",
|
"new_property": "neue Eigenschaft",
|
||||||
"no_bookmark_for_urlid": "Kein Lesezeichen zur URL-ID {0}",
|
"no_bookmark_for_urlid": "Kein Lesezeichen zur URL-ID {0}",
|
||||||
"no_company": "keine Firma",
|
"no_company": "keine Firma",
|
||||||
|
"New wiki page {name} has been created": "Neue Wiki-Seite „{page}“ wurde angelegt",
|
||||||
"noon": "12:00 Uhr",
|
"noon": "12:00 Uhr",
|
||||||
"no_project_for_id": "Kein Projekt mit ID {0} gefunden!",
|
"no_project_for_id": "Kein Projekt mit ID {0} gefunden!",
|
||||||
"no_task_for_id": "Keine Aufgabe mit ID {0} gefunden!",
|
"no_task_for_id": "Keine Aufgabe mit ID {0} gefunden!",
|
||||||
@@ -365,12 +367,15 @@
|
|||||||
"tax_rate": "Steuersatz",
|
"tax_rate": "Steuersatz",
|
||||||
"template": "Vorlage",
|
"template": "Vorlage",
|
||||||
"theme": "Design",
|
"theme": "Design",
|
||||||
"The project '{project}' has been created":"Das Projekt '{project}' wurde angelegt",
|
"The project '{project}' has been created": "Das Projekt '{project}' wurde angelegt",
|
||||||
"The project '{project}' has been deleted": "Das Projekt '{project}' wurde gelöscht",
|
"The project '{project}' has been deleted": "Das Projekt '{project}' wurde gelöscht",
|
||||||
"The project '{project}' has been deleted by {user}": "Das Projekt '{project}' wurde von {user} gelöscht",
|
"The project '{project}' has been deleted by {user}": "Das Projekt '{project}' wurde von {user} gelöscht",
|
||||||
"The task '{task}' has been created": "Die Aufgabe '{task}' wurde angelegt",
|
"The task '{task}' has been created": "Die Aufgabe '{task}' wurde angelegt",
|
||||||
"The task '{task}' has been deleted": "Die Aufgabe '{task}' wurde gelöscht",
|
"The task '{task}' has been deleted": "Die Aufgabe '{task}' wurde gelöscht",
|
||||||
"The task '{task}' has been deleted by {user}": "Die Aufgabe '{task}' wurde von {user} gelöscht",
|
"The task '{task}' has been deleted by {user}": "Die Aufgabe '{task}' wurde von {user} gelöscht",
|
||||||
|
"The wiki page '{name}' has been created": "Die Wiki-Seite „{name}“ wurde angelegt",
|
||||||
|
"The wiki page '{name}' has been deleted": "Die Wiki-Seite „{name}“ wurde gelöscht.",
|
||||||
|
"The wiki page '{page}' has been deleted by {user}": "Die Wiki-Seite „{page}“ wurde durch {user} gelöscht.",
|
||||||
"time ({id})": "Zeit ({id})",
|
"time ({id})": "Zeit ({id})",
|
||||||
"times": "Zeiten",
|
"times": "Zeiten",
|
||||||
"timetracking": "Zeiterfassung",
|
"timetracking": "Zeiterfassung",
|
||||||
@@ -415,12 +420,14 @@
|
|||||||
"wiki": "Wiki",
|
"wiki": "Wiki",
|
||||||
"wikis": "Wiki-Seiten",
|
"wikis": "Wiki-Seiten",
|
||||||
"wiki page": "Wiki-Seite",
|
"wiki page": "Wiki-Seite",
|
||||||
|
"wiki page '{name}' was edited": "Wiki-Seite „{name}“ wurde bearbeitet",
|
||||||
"wiki pages": "Wiki-Seiten",
|
"wiki pages": "Wiki-Seiten",
|
||||||
"wiki_pages": "Wiki-Seiten",
|
"wiki_pages": "Wiki-Seiten",
|
||||||
|
|
||||||
"year": "Jahr",
|
"year": "Jahr",
|
||||||
"You can view/edit this project at {base_url}/project/{id}/view": "Du kannst dieses Projekt unter {base_url}/project/{id}/view ansehen/bearbeiten.",
|
"You can view/edit this project at {base_url}/project/{id}/view": "Du kannst dieses Projekt unter {base_url}/project/{id}/view ansehen/bearbeiten.",
|
||||||
"You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.",
|
"You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.",
|
||||||
|
"You can view/edit this wiki page at {base_url}/wiki/{id}/view": "Du kannst diese Wiki-Seite unter {base_url}/wiki/{id}/view ansehen/bearbeiten.",
|
||||||
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "Du wurdest zum neuen Projekt '{project}', angelegt von {user}, hinzugefügt:\n\n{body}",
|
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "Du wurdest zum neuen Projekt '{project}', angelegt von {user}, hinzugefügt:\n\n{body}",
|
||||||
"Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts",
|
"Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts",
|
||||||
"your_profile": "dein Profil"
|
"your_profile": "dein Profil"
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
"cancel": "cancel",
|
"cancel": "cancel",
|
||||||
"Changes in project '{project}':\n\n{body}": "Changes in project '{project}':\n\n{body}",
|
"Changes in project '{project}':\n\n{body}": "Changes in project '{project}':\n\n{body}",
|
||||||
"Changes in task '{task}':\n\n{body}": "Changes in task '{task}':\n\n{body}",
|
"Changes in task '{task}':\n\n{body}": "Changes in task '{task}':\n\n{body}",
|
||||||
|
"Changes in wiki page '{id}':\n\n{body}": "Changes in wiki page '{id}':\n\n{body}",
|
||||||
"choose_type": "choose type",
|
"choose_type": "choose type",
|
||||||
"click_to_edit": "click to edit",
|
"click_to_edit": "click to edit",
|
||||||
"client_id": "client ID",
|
"client_id": "client ID",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"new_property": "new property",
|
"new_property": "new property",
|
||||||
"no_bookmark_for_urlid": "No bookmark with urlId {0}",
|
"no_bookmark_for_urlid": "No bookmark with urlId {0}",
|
||||||
"no_company": "no company",
|
"no_company": "no company",
|
||||||
|
"New wiki page {name} has been created": "New wiki page '{name}' has been created",
|
||||||
"noon": "noon",
|
"noon": "noon",
|
||||||
"no_project_for_id": "No project found for id {0}",
|
"no_project_for_id": "No project found for id {0}",
|
||||||
"no_task_for_id": "No task found for id {0}",
|
"no_task_for_id": "No task found for id {0}",
|
||||||
@@ -371,6 +373,9 @@
|
|||||||
"The task '{task}' has been created": "The task '{task}' has been created",
|
"The task '{task}' has been created": "The task '{task}' has been created",
|
||||||
"The task '{task}' has been deleted": "The task '{task}' has been deleted",
|
"The task '{task}' has been deleted": "The task '{task}' has been deleted",
|
||||||
"The task '{task}' has been deleted by {user}": "The task '{task}' has been deleted by {user}",
|
"The task '{task}' has been deleted by {user}": "The task '{task}' has been deleted by {user}",
|
||||||
|
"The wiki page '{name}' has been created": "The wiki page '{name}' has been created",
|
||||||
|
"The wiki page '{name}' has been deleted": "The wiki page '{name}' has been deleted",
|
||||||
|
"The wiki page '{page}' has been deleted by {user}": "The wiki page '{page}' has been deleted by {user}",
|
||||||
"time ({id})": "time ({id})",
|
"time ({id})": "time ({id})",
|
||||||
"times": "times",
|
"times": "times",
|
||||||
"timetracking": "time tracking",
|
"timetracking": "time tracking",
|
||||||
@@ -415,12 +420,14 @@
|
|||||||
"wiki": "Wiki",
|
"wiki": "Wiki",
|
||||||
"wikis": "wiki pages",
|
"wikis": "wiki pages",
|
||||||
"wiki page": "wiki page",
|
"wiki page": "wiki page",
|
||||||
|
"wiki page '{name}' was edited": "wiki page '{name}' was edited",
|
||||||
"wiki pages": "wiki pages",
|
"wiki pages": "wiki pages",
|
||||||
"wiki_pages": "wiki pages",
|
"wiki_pages": "wiki pages",
|
||||||
|
|
||||||
"year": "year",
|
"year": "year",
|
||||||
"You can view/edit this project at {base_url}/project/{id}/view": "You can view/edit this project at {base_url}/project/{id}/view",
|
"You can view/edit this project at {base_url}/project/{id}/view": "You can view/edit this project at {base_url}/project/{id}/view",
|
||||||
"You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view",
|
"You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view",
|
||||||
|
"You can view/edit this wiki page at {base_url}/wiki/{id}/view": "You can view/edit this wiki page at {base_url}/wiki/{id}/view",
|
||||||
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "You have been added to the new project '{project}', created by {user}:\n\n{body}",
|
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "You have been added to the new project '{project}', created by {user}:\n\n{body}",
|
||||||
"Your token to create a new password" : "Your token to create a new password",
|
"Your token to create a new password" : "Your token to create a new password",
|
||||||
"your_profile": "your profile"
|
"your_profile": "your profile"
|
||||||
|
|||||||
Reference in New Issue
Block a user