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 */
|
||||
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.Field.*;
|
||||
import static de.srsoftware.umbrella.core.constants.Module.WIKI;
|
||||
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 java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class WikiEvent extends Event<WikiPage>{
|
||||
private final UmbrellaUser newMember;
|
||||
|
||||
public WikiEvent(UmbrellaUser initiator, WikiPage page, EventType type){
|
||||
super(initiator, WIKI, page, type);
|
||||
newMember = null;
|
||||
}
|
||||
|
||||
public WikiEvent(UmbrellaUser initiator, WikiPage page, Map<String, Object> 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
|
||||
@@ -27,12 +38,44 @@ public class WikiEvent extends Event<WikiPage>{
|
||||
|
||||
@Override
|
||||
public Translatable describe() {
|
||||
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
|
||||
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
|
||||
return switch (eventType()){
|
||||
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
|
||||
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());
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user