FCLT#71166 safe functies voor vcalendar template toegevoegd

svn path=/Website/trunk/; revision=56264
This commit is contained in:
2022-06-15 14:45:58 +00:00
parent 8c66332f5a
commit 5c947dcf65

View File

@@ -90,21 +90,62 @@
};
var safe = {
nvl: function (x)
{
if (x == null)
return "";
else
return String(x);
},
vcalendar: function (waarde)
{
return safe.nvl(waarde)
.replace(/\\/g, '\\')
.replace(/;/g, '\;')
.replace(/,/g, '\,')
.replace(/[\r\n]/g, '\\n');
},
vcalendar_param: function (waarde)
{
return '"'
+ safe.nvl(waarde)
.replace(/[\r\n]\s*/g, ' ')
.replace(/"/g, '')
+ '"';
},
html: function (waarde)
{
// Heeft XSLT hier niet een handigere truc voor?
return waarde.replace(/&/g, '&')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/\n/g, '<br>')
return safe.nvl(waarde).replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/\n/g, '<br>')
},
htmlattr: function (waarde)
{
return waarde.replace(/\'/g, '&#39;')
.replace(/\"/g, '&#34;');
return safe.nvl(waarde).replace(/\'/g, '&#39;')
.replace(/\"/g, '&#34;');
}
};
/* Voor iCalender property waarden */
function safe_vCal(nodelist)
{
if (!nodelist.length)
return nodelist;
var waarde = nodelist.nextNode().text;
return safe.vcalendar(waarde);
}
/* Voor iCalender property parameter waarden */
function safe_vCal_param(nodelist)
{
if (!nodelist.length)
return nodelist;
var waarde = nodelist.nextNode().text;
return safe.vcalendar_param(waarde);
}
// Let op: deze functie lijkt veel op shared.inc/safe.fclthtml
// belangrijkste verschil is dat we hier geen \r in de tekst tegenkomen
// wat enkele regexp's iets anders maakt
@@ -1112,10 +1153,10 @@ UID:FCLTRES<xsl:value-of select="rsv_ruimte/key"/>
DTSTAMP:<xsl:value-of select="datum/utcdatum"/>T<xsl:value-of select="datum/utctijd"/>Z
DTSTART:<xsl:value-of select="rsv_ruimte/van/utcdatum"/>T<xsl:value-of select="rsv_ruimte/van/utctijd"/>Z
DTEND:<xsl:value-of select="rsv_ruimte/tot/utcdatum"/>T<xsl:value-of select="rsv_ruimte/tot/utctijd"/>Z
SUMMARY;ENCODING=QUOTED-PRINTABLE:<xsl:value-of select="rsv_ruimte/res_activiteit/omschrijving"/>: <xsl:value-of select="rsv_ruimte/omschrijving"/>
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:<xsl:value-of select="rsv_ruimte/res_activiteit/opmerking"/>
LOCATION;ENCODING=QUOTED-PRINTABLE:<xsl:value-of select="rsv_ruimte/res_ruimte/nr"/>
ORGANIZER;CN=<xsl:value-of select="rsv_ruimte/contact_user/naam_full"/>:MAILTO:reservering-noreply@facilitor.nl
SUMMARY:<xsl:value-of select="fclt:safe_vCal(rsv_ruimte/res_activiteit/omschrijving)"/>: <xsl:value-of select="fclt:safe_vCal(rsv_ruimte/omschrijving)"/>
DESCRIPTION:<xsl:value-of select="fclt:safe_vCal(rsv_ruimte/opmerking)"/>
LOCATION:<xsl:value-of select="fclt:safe_vCal(rsv_ruimte/res_ruimte/nr)"/>
ORGANIZER;CN=<xsl:value-of select="fclt:safe_vCal_param(rsv_ruimte/contact_user/naam_full)"/>:MAILTO:reservering-noreply@facilitor.nl
<xsl:for-each select="rsv_ruimte/afspraak/bezoeker">
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=<xsl:value-of select="naam"/>
<xsl:if test="string(bedrijf)!=''"> (<xsl:value-of select="bedrijf"/>)</xsl:if>:MAILTO:<xsl:if test="boolean(intern_user)">
@@ -2997,7 +3038,6 @@ END:VCALENDAR
</xsl:template>
<xsl:template match="rapport">
<xsl:choose>
<xsl:when test="@view='cnd_v_rap_conditiemetingen' or @view='CND_V_RAP_CONDITIEMETINGEN'">
<html>
@@ -3038,7 +3078,7 @@ END:VCALENDAR
<xsl:for-each select="rapport_data/data_row">
<tr>
<td class="tekst"><xsl:value-of select="COMPLEXNUMMER"/><br/>
<xsl:value-of select="CLUSTERNUMMER"/>&#xA0;
<xsl:value-of select="CLUSTERNUMMER"/>&#xA0;
<strong><xsl:value-of select="CLUSTERNAAM"/></strong></td>
<td class="tekst nobr"><xsl:value-of select="HOOFDRECEPT"/><br/>
<xsl:value-of select="GROEPRECEPT"/><br/>
@@ -3088,13 +3128,11 @@ END:VCALENDAR
</xsl:choose>
</body>
</html>
</xsl:when>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="default"/>
</xsl:otherwise>
</xsl:choose>
</xsl:choose>
</xsl:template>
<xsl:template match="resultset">