mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-08-21 12:55:22 +00:00
Calendar translate (#3249)
Hello and thank you for wanting to contribute to the MagicMirror² project **Please make sure that you have followed these 4 rules before submitting your Pull Request:** > 1. Base your pull requests against the `develop` branch. DONE ;D > 2. Include these infos in the description: > - Does the pull request solve a **related** issue? NO > - What does the pull request accomplish? Use a list if needed. For calendar entries containing a year (e.g. DOB) in the title, the age can be calculated. Example before:  after:  Achieved by adding a new keyword `transform` to customEvents ``` customEvents: [ {keyword: 'Geburtstag', symbol: 'birthday-cake', color: 'Gold', transform: { search: '^([^\']*) \'(\\d{4})$' , replace: '$1 ($2.)', yearmatchgroup: 2}}, {keyword: 'in Hamburg', transform: { search: ' in Hamburg$' , replace: ''}} ], ``` and therewith obsoleting `titleReplace`; a backward compatibility part is already included. If `yearmatchgroup` is unset, behaviour is as in previous code (some additions to which RegExes are accepted, though) If `yearmatchgroup` is set, it is considered the RegEx match group id, which will be used for calculating the age. > - If it includes major visual changes please add screenshots. NO > 3. Please run `npm run lint:prettier` before submitting so that style issues are fixed. DONE > 4. Don't forget to add an entry about your changes to the CHANGELOG.md file. DONE > Thanks again and have a nice day! You too and if any questions, feel free to let me know. --------- Co-authored-by: veeck <michael.veeck@nebenan.de>
This commit is contained in:
committed by
GitHub
parent
3a01acd389
commit
2a6e2aacdc
@@ -155,6 +155,14 @@ Module.register("calendar", {
|
||||
this.addCalendar(calendar.url, calendar.auth, calendarConfig);
|
||||
});
|
||||
|
||||
// for backward compatibility titleReplace
|
||||
if (typeof this.config.titleReplace !== "undefined") {
|
||||
Log.warn("Deprecation warning: Please consider upgrading your calendar titleReplace configuration to customEvents.");
|
||||
for (const [titlesearchstr, titlereplacestr] of Object.entries(this.config.titleReplace)) {
|
||||
this.config.customEvents.push({ keyword: ".*", transform: { search: titlesearchstr, replace: titlereplacestr } });
|
||||
}
|
||||
}
|
||||
|
||||
this.selfUpdate();
|
||||
},
|
||||
|
||||
@@ -326,11 +334,16 @@ Module.register("calendar", {
|
||||
}
|
||||
}
|
||||
|
||||
// Color events if custom color or eventClass are specified
|
||||
var transformedTitle = event.title;
|
||||
|
||||
// Color events if custom color or eventClass are specified, transform title if required
|
||||
if (this.config.customEvents.length > 0) {
|
||||
for (let ev in this.config.customEvents) {
|
||||
let needle = new RegExp(this.config.customEvents[ev].keyword, "gi");
|
||||
if (needle.test(event.title)) {
|
||||
if (typeof this.config.customEvents[ev].transform === "object") {
|
||||
transformedTitle = CalendarUtils.titleTransform(transformedTitle, [this.config.customEvents[ev].transform]);
|
||||
}
|
||||
if (typeof this.config.customEvents[ev].color !== "undefined" && this.config.customEvents[ev].color !== "") {
|
||||
// Respect parameter ColoredSymbolOnly also for custom events
|
||||
if (this.config.coloredText) {
|
||||
@@ -348,7 +361,6 @@ Module.register("calendar", {
|
||||
}
|
||||
}
|
||||
|
||||
const transformedTitle = CalendarUtils.titleTransform(event.title, this.config.titleReplace);
|
||||
titleWrapper.innerHTML = CalendarUtils.shorten(transformedTitle, this.config.maxTitleLength, this.config.wrapEvents, this.config.maxTitleLines) + repeatingCountTitle;
|
||||
|
||||
const titleClass = this.titleClassForUrl(event.url);
|
||||
|
Reference in New Issue
Block a user