diff --git a/view/theme/frio/js/mod_events.js b/view/theme/frio/js/mod_events.js index 0b6bb6e7b..5bd7c9449 100644 --- a/view/theme/frio/js/mod_events.js +++ b/view/theme/frio/js/mod_events.js @@ -38,38 +38,39 @@ $(document).ready(function() { aspectRatio: 1, eventRender: function(event, element, view) { //console.log(view.name); - if (event.item['author-name'] == null) return; switch(view.name){ case "month": - element.find(".fc-title").html( - "{2}".format( - event.item['author-avatar'], - event.item['author-name'], - event.title, - event.item.desc, - event.item.location - )); - break; + element.find(".fc-title").html( + "{2}".format( + event.item['author-avatar'], + event.item['author-name'], + event.title, + event.item.desc, + event.item.location + )); + break; case "agendaWeek": - element.find(".fc-title").html( - "{1}

{2}

{3}

".format( - event.item['author-avatar'], - event.item['author-name'], - event.item.desc, - formatEventLocationText(event.item.location) - )); + if (event.item['author-name'] == null) return; + element.find(".fc-title").html( + "{1}

{2}

{3}

".format( + event.item['author-avatar'], + event.item['author-name'], + event.item.desc, + htmlToText(event.item.location) + )); break; case "agendaDay": - element.find(".fc-title").html( - "{1}

{2}

{3}

".format( - event.item['author-avatar'], - event.item['author-name'], - event.item.desc, - formatEventLocationText(event.item.location) - )); - break; + if (event.item['author-name'] == null) return; + element.find(".fc-title").html( + "{1}

{2}

{3}

".format( + event.item['author-avatar'], + event.item['author-name'], + event.item.desc, + htmlToText(event.item.location) + )); + break; case "listMonth": - element.find(".fc-list-item-title").html(formatListViewEvent(event)); + element.find(".fc-list-item-title").html(formatListViewEvent(event)); break; } }, @@ -130,16 +131,14 @@ function eventHoverBodyTemplate() {
\
\ \ - {6}\ - {7}\ + {5}\ + {6}\ \
\
\ -
{3}
\ -
{5}{4}\ -
\ - {2}\ -
\ +
{2}
\ +
{4}{3}\ + {1}\
\
\
\ @@ -155,9 +154,17 @@ function eventHoverLocationTemplate() { return template; } +function eventHoverProfileNameTemplate() { + var template = '\ +
\ + {1}\ +
'; + return template; +} // transform the event data to html so we can use it in the event hover-card function eventHoverHtmlContent(event) { var eventLocation = ''; + var eventProfileName = ''; // Get the Browser language var locale = window.navigator.userLanguage || window.navigator.language; var data = ''; @@ -175,7 +182,7 @@ function eventHoverHtmlContent(event) { var endTime = moment(event.item.finish).format('HH:mm'); var monthNumber; - var formattedDate = startDate + var formattedDate = startDate; // We only need the to format the end date if the event does have // a finish date. @@ -194,9 +201,9 @@ function eventHoverHtmlContent(event) { // Get the html template data = eventHoverBodyTemplate(); - // Get only template data if there exist location data - if (event.item.location != '') { - var eventLocationText = formatEventLocationText(event.item.location); + // Get only template data if there exists location data + if (event.item.location) { + var eventLocationText = htmlToText(event.item.location); // Get the the html template for formatting the location var eventLocationTemplate = eventHoverLocationTemplate(); // Format the event location data according to the the event location @@ -206,11 +213,21 @@ function eventHoverHtmlContent(event) { ); } + // Get only template data if there exists a profile name + if (event.item['author-name']) { + // Get the template + var eventProfileNameTemplate = eventHoverProfileNameTemplate(); + // Insert the data into the template + eventProfileName = eventProfileNameTemplate.format( + event.item['author-link'], + event.item['author-name'] + ); + } + // Format the event data according to the event hover template var formatted = data.format( event.item['author-avatar'], // this isn't used at the present time - event.item['author-link'], - event.item['author-name'], + eventProfileName, event.title, eventLocation, formattedDate, @@ -235,18 +252,3 @@ function formatListViewEvent(event) { return formatted; } - -// Format event location in pure text -function formatEventLocationText(location) { - // Friendica can store the event location as text or as html - // We need to check if the location is html. In this case we need - // to transform it into clean text - if (location.startsWith("", " "); - }; - - return eventLocationText; -} \ No newline at end of file diff --git a/view/theme/frio/js/theme.js b/view/theme/frio/js/theme.js index ffe82c24a..8fbee06e5 100644 --- a/view/theme/frio/js/theme.js +++ b/view/theme/frio/js/theme.js @@ -570,3 +570,13 @@ function scrollToItem(itemID) { $(elm).animate(colWhite, 1000).animate(colShiny).animate(colWhite, 600); }); } + +// format a html string to pure text +function htmlToText(htmlString) { + // Replace line breaks with spaces + var text = htmlString.replace(/
/g, ' '); + // Strip the text out of the html string + text = text.replace(/<[^>]*>/g, ''); + + return text; +}