Merge pull request #253 from momo13292/v2-beta

calendar events repeating count title for birthdayd etc
This commit is contained in:
Michael Teeuw 2016-05-02 19:36:51 +02:00
commit 93f8ade350
3 changed files with 54 additions and 3 deletions

View File

@ -112,6 +112,14 @@ The following properties can be configured:
</code>
</td>
</tr>
<tr>
<td><code>displayRepeatingCountTitle</code></td>
<td>Show count title for yearly repeating events (e.g. "X. Birthday", "X. Anniversary")<br>
<br><b>Possible values:</b> <code>true</code> or <code>false</code>
<br><b>Default value:</b> <code>false</code>
</td>
</tr>
</tbody>
</table>
@ -154,5 +162,12 @@ config: {
<br><b>Possible values:</b> See <a href="http://fontawesome.io/icons/" target="_blank">Font Awsome</a> website.
</td>
</tr>
<tr>
<td><code> repeatingCountTitle </code></td>
<td>The count title for yearly repating events in this calendar. <br>
<br><b>Example:</b> <br>
<code>'Birthday'</code>
</td>
</tr>
</tbody>
</table>

View File

@ -15,6 +15,8 @@ Module.register("calendar",{
maximumNumberOfDays: 365,
displaySymbol: true,
defaultSymbol: "calendar", // Fontawsome Symbol see http://fontawesome.io/cheatsheet/
displayRepeatingCountTitle: false,
defaultRepeatingCountTitle: '',
maxTitleLength: 25,
fetchInterval: 5 * 60 * 1000, // Update every 5 minutes.
animationSpeed: 2000,
@ -113,8 +115,24 @@ Module.register("calendar",{
eventWrapper.appendChild(symbolWrapper);
}
var titleWrapper = document.createElement("td");
titleWrapper.innerHTML = this.titleTransform(event.title);
var titleWrapper = document.createElement("td"),
repeatingCountTitle = '';
if (this.config.displayRepeatingCountTitle) {
repeatingCountTitle = this.countTitleForUrl(event.url)
if(repeatingCountTitle != '') {
var thisYear = new Date().getFullYear(),
yearDiff = thisYear - event.firstYear;
repeatingCountTitle = ', '+ yearDiff + '. ' + repeatingCountTitle;
}
}
titleWrapper.innerHTML = this.titleTransform(event.title) + repeatingCountTitle;
titleWrapper.className = "title bright";
eventWrapper.appendChild(titleWrapper);
@ -239,6 +257,23 @@ Module.register("calendar",{
return this.config.defaultSymbol;
},
/* countTitleForUrl(url)
* Retrieves the name for a specific url.
*
* argument url sting - Url to look for.
*
* return string - The Symbol
*/
countTitleForUrl: function(url) {
for (var c in this.config.calendars) {
var calendar = this.config.calendars[c];
if (calendar.url === url && typeof calendar.repeatingCountTitle === "string") {
return calendar.repeatingCountTitle;
}
}
return this.config.defaultRepeatingCountTitle;
},
/* shorten(string, maxLength)
* Shortens a sting if it's longer than maxLenthg.

View File

@ -84,7 +84,8 @@ var CalendarFetcher = function(url, reloadInterval, maximumEntries, maximumNumbe
title: (typeof event.summary.val !== "undefined") ? event.summary.val : event.summary,
startDate: startDate.format("x"),
endDate: endDate.format("x"),
fullDayEvent: isFullDayEvent(event)
fullDayEvent: isFullDayEvent(event),
firstYear: event.start.getFullYear()
});
}
}