unified translation of events and event-related emails
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -6,6 +6,7 @@ import static java.util.Optional.*;
|
||||
|
||||
import de.srsoftware.tools.Diff;
|
||||
import de.srsoftware.tools.Mappable;
|
||||
import de.srsoftware.umbrella.core.model.Translatable;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -45,7 +46,7 @@ public abstract class Event<Payload extends Mappable> {
|
||||
|
||||
public abstract Collection<UmbrellaUser> audience();
|
||||
|
||||
public abstract String describe();
|
||||
public abstract Translatable describe();
|
||||
|
||||
private Map<String, Object> dropMarkdown(Map<String, Object> map) {
|
||||
var result = new HashMap<String, Object>();
|
||||
@@ -96,5 +97,5 @@ public abstract class Event<Payload extends Mappable> {
|
||||
return payload;
|
||||
}
|
||||
|
||||
public abstract String subject();
|
||||
public abstract Translatable subject();
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.messagebus.events;
|
||||
|
||||
import static de.srsoftware.umbrella.core.constants.Field.OBJECT;
|
||||
import static de.srsoftware.umbrella.core.constants.Field.USER;
|
||||
import static de.srsoftware.umbrella.core.constants.Module.PROJECT;
|
||||
import static java.text.MessageFormat.format;
|
||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.Member;
|
||||
import de.srsoftware.umbrella.core.model.Project;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -26,8 +26,9 @@ public class ProjectEvent extends Event<Project>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return diff().orElse("[TODO: ProjectEvent.describe]");
|
||||
public Translatable describe() {
|
||||
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
|
||||
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -39,7 +40,7 @@ public class ProjectEvent extends Event<Project>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String subject() {
|
||||
return format("{0} edited {1}",initiator(),payload());
|
||||
public Translatable subject() {
|
||||
return t("{user} edited {object}",USER,initiator(),OBJECT,payload());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
package de.srsoftware.umbrella.messagebus.events;
|
||||
|
||||
|
||||
import static de.srsoftware.umbrella.core.constants.Field.OBJECT;
|
||||
import static de.srsoftware.umbrella.core.constants.Field.USER;
|
||||
import static de.srsoftware.umbrella.core.constants.Module.TASK;
|
||||
import static java.text.MessageFormat.format;
|
||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.Member;
|
||||
import de.srsoftware.umbrella.core.model.Task;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -27,8 +27,9 @@ public class TaskEvent extends Event<Task>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return diff().orElse("[TODO: TaskEvent.describe()]");
|
||||
public Translatable describe() {
|
||||
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
|
||||
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,7 +41,6 @@ public class TaskEvent extends Event<Task>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String subject() {
|
||||
return format("{0} edited {1}",initiator(),payload());
|
||||
}
|
||||
}
|
||||
public Translatable subject() {
|
||||
return t("{user} edited {object}",USER,initiator(),OBJECT,payload());
|
||||
}}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.messagebus.events;
|
||||
|
||||
import static de.srsoftware.umbrella.core.constants.Field.OBJECT;
|
||||
import static de.srsoftware.umbrella.core.constants.Field.USER;
|
||||
import static de.srsoftware.umbrella.core.constants.Module.WIKI;
|
||||
import static java.text.MessageFormat.format;
|
||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.Member;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.core.model.WikiPage;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -26,12 +26,13 @@ public class WikiEvent extends Event<WikiPage>{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return diff().orElse("[TODO: WikiEvent.describe()]");
|
||||
public Translatable describe() {
|
||||
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
|
||||
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String subject() {
|
||||
return format("{0} edited {1}",initiator(),payload());
|
||||
public Translatable subject() {
|
||||
return t("{user} edited {object}",USER,initiator(),OBJECT,payload());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user