ALF-11463: Dutch - Localised Templates

* Dutch email templates added
  * Patch added

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32715 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2011-12-13 01:18:31 +00:00
parent cc28ee3413
commit dc665385f5
25 changed files with 964 additions and 25 deletions

View File

@@ -0,0 +1,164 @@
<html>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 10px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<img src="${shareUrl}/res/components/images/task-64.png" alt="" width="64" height="64" border="0" style="padding-right: 20px;" />
</td>
<td>
<div style="font-size: 22px; padding-bottom: 4px;">
<#if args.workflowPooled == true>
Nieuwe gepoolde taak
<#else>
Er is een taak aan u toegewezen
</#if>
</div>
<div style="font-size: 13px;">
${date?datetime?string.full}
</div>
</td>
</tr>
</table>
<div style="font-size: 14px; margin: 12px 0px 24px 0px; padding-top: 10px; border-top: 1px solid #aaaaaa;">
<p>Hi,</p>
<p>
<#if args.workflowPooled == true>
De volgende gepoolde taak is beschikbaar om te worden opgehaald:
<#else>
De volgende taak is aan u toegewezen:
</#if>
</p>
<p><b>"${args.workflowTitle}"</b></p>
<#if (args.workflowDescription)??>
<p>${args.workflowDescription}</p>
</#if>
<p>
<#if (args.workflowDueDate)??>Due:&nbsp;&nbsp;<b>${args.workflowDueDate?date?string.full}</b><br></#if>
<#if (args.workflowPriority)??>
Prioriteit:&nbsp;&nbsp;
<b>
<#if args.workflowPriority == 3>
Laag
<#elseif args.workflowPriority == 2>
Gemiddeld
<#else>
Hoog
</#if>
</b>
</#if>
</p>
<#if (args.workflowDocuments)??>
<table cellpadding="0" callspacing="0" border="0" bgcolor="#eeeeee" style="padding:10px; border: 1px solid #aaaaaa;">
<#list args.workflowDocuments as doc>
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<img src="${shareUrl}/res/components/images/generic-file.png" alt="" width="64" height="64" border="0" style="padding-right: 10px;" />
</td>
<td>
<table cellpadding="2" cellspacing="0" border="0">
<tr>
<td><b>${doc.name}</b></td>
</tr>
<tr>
<td>Klik op deze koppeling om het document te downloaden:</td>
</tr>
<tr>
<td>
<a href="${shareUrl}/proxy/alfresco/api/node/content/workspace/SpacesStore/${doc.id}/${doc.name}?a=true">
${shareUrl}/proxy/alfresco/api/node/content/workspace/SpacesStore/${doc.id}/${doc.name}?a=true</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<#if doc_has_next>
<tr><td><div style="border-top: 1px solid #aaaaaa; margin:12px;"></div></td></tr>
</#if>
</#list>
</table>
</#if>
<#if args.workflowPooled == true>
<p>Klik op deze koppeling om de taak te bekijken:</p>
<p><a href="${shareUrl}/page/task-details?taskId=${args.workflowId}">${shareUrl}/page/task-details?taskId=${args.workflowId}</a>
<#else>
<p>Klik op deze koppeling om de taak te bewerken:</p>
<p><a href="${shareUrl}/page/task-edit?taskId=${args.workflowId}">${shareUrl}/page/task-edit?taskId=${args.workflowId}</a>
</#if>
<p>Hoogachtend,<br />
Alfresco ${productName!""}</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div style="border-top: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 0px 30px; font-size: 13px;">
Ga voor meer informatie over Alfresco ${productName!""} naar <a href="http://www.alfresco.com">http://www.alfresco.com</a>
</td>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;">
<img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -30,7 +30,7 @@
<cm:name>wf-email.html.ftl</cm:name>
<cm:title>wf-email.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:invite-email.html_de.ftl">
@@ -45,7 +45,7 @@
<cm:name>wf-email.html_de.ftl</cm:name>
<cm:title>wf-email.html_de.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_de.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_de.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:invite-email.html_es.ftl">
@@ -60,7 +60,7 @@
<cm:name>wf-email.html_es.ftl</cm:name>
<cm:title>wf-email.html_es.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_es.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_es.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:invite-email.html_fr.ftl">
@@ -75,7 +75,7 @@
<cm:name>wf-email.html_fr.ftl</cm:name>
<cm:title>wf-email.html_fr.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_fr.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_fr.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:invite-email.html_it.ftl">
@@ -90,7 +90,7 @@
<cm:name>wf-email.html_it.ftl</cm:name>
<cm:title>wf-email.html_it.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_it.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_it.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:invite-email.html_ja.ftl">
@@ -105,7 +105,22 @@
<cm:name>wf-email.html_ja.ftl</cm:name>
<cm:title>wf-email.html_ja.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_ja.ftl|mimetype=text/plain|size=1455|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_ja.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:wf-email.html_nl.ftl">
<view:aspects>
<cm:auditable></cm:auditable>
<sys:referenceable></sys:referenceable>
<app:inlineeditable></app:inlineeditable>
</view:aspects>
<view:acl></view:acl>
<view:properties>
<app:editInline>true</app:editInline>
<cm:name>wf-email.html_nl.ftl</cm:name>
<cm:title>wf-email.html_nl.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_wf_notification_email.description} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco\bootstrap\notification\wf-email.html_nl.ftl|mimetype=text/plain|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
</cm:contains>

View File

@@ -113,6 +113,7 @@ version.german=German version
version.italian=Italian version
version.japanese=Japanese version
version.spanish=Spanish version
version.dutch=Dutch version
spaces.web.client.extension.name=Web Client Extension
spaces.web.client.extension.title=Customized Web Client

View File

@@ -446,3 +446,7 @@ patch.updateWorkflowNotificationTemplates.result=Workflow Notification Templates
patch.updateFollowingEmailTemplatesPatch.description=Patch to update the following notification email templates.
patch.updateFollowingEmailTemplatesPatch.result=Following notification email templates successfully updated.
patch.updateFollowingEmailTemplatesPatch.error=Error retrieving base template when trying to patch the following email templates.
patch.addDutchEmailTemplatesPatch.description=Patch to add Dutch email templates.
patch.addDutchEmailTemplatesPatch.result=Dutch email templates have been successfully added.
patch.addDutchEmailTemplatesPatch.error=Error retrieving base template when trying to add Dutch email templates.

View File

@@ -2990,4 +2990,17 @@
</property>
</bean>
<bean id="patch.addDutchEmailTemplatesPatch" class="org.alfresco.repo.admin.patch.impl.AddDutchEmailTemplatesPatch" parent="basePatch">
<property name="id"><value>patch.addDutchEmailTemplatesPatch</value></property>
<property name="description"><value>patch.addDutchEmailTemplatesPatch.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>5023</value></property>
<property name="targetSchema"><value>5024</value></property>
<property name="requiresTransaction"><value>true</value></property>
<property name="applyToTenants"><value>true</value></property>
<property name="contentService" ref="ContentService"/>
<property name="fileFolderService" ref="FileFolderService"/>
<property name="repository" ref="repositoryHelper"/>
</bean>
</beans>

View File

@@ -116,6 +116,22 @@
<cm:description>${spaces.templates.email.generate_the_activities_email.description} - ${version.japanese}</cm:description>
</view:properties>
<view:associations></view:associations>
</cm:content><cm:content view:childName="cm:activities-email_nl.ftl">
<view:aspects>
<cm:titled></cm:titled>
<cm:author></cm:author>
<app:inlineeditable></app:inlineeditable>
<sys:referenceable></sys:referenceable>
</view:aspects>
<view:properties>
<app:editInline>true</app:editInline>
<cm:content>contentUrl=classpath:alfresco/templates/activities-email-templates/activities-email_nl.ftl|mimetype=text/plain|size=8884|encoding=UTF-8</cm:content>
<cm:author></cm:author>
<cm:name>activities-email_nl.ftl</cm:name>
<cm:title>activities-email_nl.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_activities_email.description} - ${version.dutch}</cm:description>
</view:properties>
<view:associations></view:associations>
</cm:content>
</cm:contains>
</view:associations>

View File

@@ -0,0 +1,134 @@
<html>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
.activity a
{
text-decoration: none;
}
.activity a:hover
{
text-decoration: underline;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 20px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<div style="font-size: 22px; padding-bottom: 4px;">
Recente activiteiten
</div>
<div style="font-size: 13px;">
${date?datetime?string.full}
</div>
<div style="font-size: 14px; margin: 18px 0px 24px 0px; padding-top: 18px; border-top: 1px solid #aaaaaa;">
<#if activities?exists && activities?size &gt; 0>
<#list activities as activity>
<#assign userLink="<a href=\"${shareUrl}/page/user/${activity.postUserId?html}/profile\">${activity.activitySummary.firstName!\"\"} ${activity.activitySummary.lastName!\"\"}</a>">
<#assign secondUserLink="">
<#assign itemLink="<a href=\"${shareUrl}/page/site/${activity.siteNetwork?html}/${activity.activitySummary.page!\"\"}\">${activity.activitySummary.title!\"\"}</a>">
<#assign siteLink="<a href=\"${shareUrl}/page/site/${activity.siteNetwork?html}/dashboard\">${siteTitles[activity.siteNetwork]!activity.siteNetwork?html}</a>">
<#assign suppressSite=false>
<#switch activity.activityType>
<#case "org.alfresco.site.user-joined">
<#case "org.alfresco.site.user-left">
<#assign suppressSite=true>
<#case "org.alfresco.site.user-role-changed">
<#assign custom0=message("role."+activity.activitySummary.role)!"">
<#assign userLink="<a href=\"${shareUrl}/page/user/${activity.activitySummary.memberUserName?html}/profile\">${activity.activitySummary.memberFirstName!\"\"} ${activity.activitySummary.memberLastName!\"\"}</a>">
<#break>
<#case "org.alfresco.site.group-added">
<#case "org.alfresco.site.group-removed">
<#assign suppressSite=true>
<#case "org.alfresco.site.group-role-changed">
<#assign custom0=message("role."+activity.activitySummary.role)!"">
<#assign userLink=activity.activitySummary.groupName?replace("GROUP_", "")>
<#break>
<#case "org.alfresco.subscriptions.followed">
<#assign userLink="<a href=\"${shareUrl}/page/user/${activity.activitySummary.followerUserName?html}/profile\">${activity.activitySummary.followerFirstName!\"\"} ${activity.activitySummary.followerLastName!\"\"}</a>">
<#assign secondUserLink="<a href=\"${shareUrl}/page/user/${activity.activitySummary.userUserName?html}/profile\">${activity.activitySummary.userFirstName!\"\"} ${activity.activitySummary.userLastName!\"\"}</a>">
<#assign suppressSite=true>
<#break>
<#case "org.alfresco.subscriptions.subscribed">
<#assign userLink="<a href=\"${shareUrl}/page/user/${activity.activitySummary.subscriberUserName?html}/profile\">${activity.activitySummary.subscriberFirstName!\"\"} ${activity.activitySummary.subscriberLastName!\"\"}</a>">
<#assign custom0=(activity.activitySummary.node!"")?html>
<#assign suppressSite=true>
<#break>
<#case "org.alfresco.profile.status-changed">
<#assign custom0=(activity.activitySummary.status!"")?html>
<#assign suppressSite=true>
<#break>
<#default>
</#switch>
<#assign detail=message(activity.activityType?html, itemLink, userLink, custom0, activity.activitySummary.custom1!"", siteLink, secondUserLink)!"">
<div class="activity">
<#if suppressSite>${detail}<#else>${message("in.site", detail, siteLink)}</#if>
</div>
<div style="font-size: 11px; padding: 4px 0px 12px 0px;">
${activity.postDate?datetime?string.medium}
</div>
</#list>
</#if>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div style="border-top: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 0px 30px; font-size: 13px;">
U kunt meldingen uitschakelen door op deze koppeling te klikken:<br />
<br /><a href="${shareUrl}/page/user/${personProps["cm:userName"]}/user-notifications">${shareUrl}/page/user/${personProps["cm:userName"]}/user-notifications</a>
</td>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;">
<img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -99,6 +99,21 @@
<cm:content>contentUrl=classpath:alfresco/templates/following-email-templates/following-email.html_ja.ftl|mimetype=text/plain|size=3688|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content view:childName="cm:following-email.html_nl.ftl">
<view:aspects>
<cm:auditable></cm:auditable>
<sys:referenceable></sys:referenceable>
<app:inlineeditable></app:inlineeditable>
</view:aspects>
<view:acl></view:acl>
<view:properties>
<app:editInline>true</app:editInline>
<cm:name>following-email.html_nl.ftl</cm:name>
<cm:title>following-email.html_nl.ftl</cm:title>
<cm:description>${email.templates.email_template_for_following_notifications} - ${version.default}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/following-email-templates/following-email.html_nl.ftl|mimetype=text/plain|size=3688|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
</cm:contains>
</view:associations>
</cm:folder>

View File

@@ -0,0 +1,76 @@
<html>
<#assign followerFullName>${followerFirstName} ${followerLastName}</#assign>
<#assign followerLink><a href="${shareUrl}/page/user/${followerUserName?url('ISO-8859-1')}/profile">${(followerFullName?trim)?html}</a></#assign>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 10px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<img src="${shareUrl}/res/components/images/help-people-bw-64.png" alt="" width="64" height="64" border="0" style="padding-right: 20px;" />
</td>
<td>
<div style="font-size: 22px; padding-bottom: 4px;">
${followerLink} volgt u nu.
</div>
<div style="font-size: 13px;">
<#if followerJobTitle??>${followerJobTitle?html}<br/></#if>
</div>
<div style="font-size: 13px;">
<#if followingCount &gt; 0><span style="font-weight:bold">U volgt${followingCount}</span> anderen. </#if><span style="font-weight:bold">U hebt${followerCount}</span> volgers.
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;">
<img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -31,7 +31,7 @@
<cm:name>invite-email_fr.html.ftl</cm:name>
<cm:title>invite-email_fr.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.french}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email_fr.html.ftl|mimetype=text/plain|size=1601|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_fr.ftl|mimetype=text/plain|size=1601|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
@@ -47,7 +47,7 @@
<cm:name>invite-email_es.html.ftl</cm:name>
<cm:title>invite-email_es.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.spanish}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email_es.html.ftl|mimetype=text/plain|size=1584|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_es.ftl|mimetype=text/plain|size=1584|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
@@ -63,7 +63,7 @@
<cm:name>invite-email_de.html.ftl</cm:name>
<cm:title>invite-email_de.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.german}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email_de.html.ftl|mimetype=text/plain|size=1583|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_de.ftl|mimetype=text/plain|size=1583|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
@@ -79,7 +79,7 @@
<cm:name>invite-email_it.html.ftl</cm:name>
<cm:title>invite-email_it.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.italian}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email_it.html.ftl|mimetype=text/plain|size=1565|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_it.ftl|mimetype=text/plain|size=1565|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
@@ -95,7 +95,23 @@
<cm:name>invite-email_ja.html.ftl</cm:name>
<cm:title>invite-email_ja.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.japanese}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email_ja.html.ftl|mimetype=text/plain|size=1807|encoding=UTF-8</cm:content>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_ja.ftl|mimetype=text/plain|size=1807|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content xmlns="" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rn="http://www.alfresco.org/model/rendition/1.0" xmlns:sys="http://www.alfresco.org/model/system/1.0" xmlns:lnk="http://www.alfresco.org/model/linksmodel/1.0" xmlns:gd="http://www.alfresco.org/model/googledocs/1.0" xmlns:ver="http://www.alfresco.org/model/versionstore/1.0" xmlns:cmiscustom="http://www.alfresco.org/model/cmis/custom" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0" xmlns:fm="http://www.alfresco.org/model/forum/1.0" xmlns:ia="http://www.alfresco.org/model/calendar" xmlns:rule="http://www.alfresco.org/model/rule/1.0" xmlns:wcm="http://www.alfresco.org/model/wcmmodel/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:dl="http://www.alfresco.org/model/datalist/1.0" xmlns:st="http://www.alfresco.org/model/site/1.0" xmlns:usr="http://www.alfresco.org/model/user/1.0" xmlns:custom="custom.model" xmlns:exif="http://www.alfresco.org/model/exif/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0" xmlns:module="http://www.alfresco.org/system/modules/1.0" xmlns:d="http://www.alfresco.org/model/dictionary/1.0" xmlns:blg="http://www.alfresco.org/model/blogintegration/1.0" xmlns:alf="http://www.alfresco.org" xmlns:cmis="http://www.alfresco.org/model/cmis/1.0/cs01" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:wca="http://www.alfresco.org/model/wcmappmodel/1.0" xmlns:bpm="http://www.alfresco.org/model/bpm/1.0" xmlns:inwf="http://www.alfresco.org/model/workflow/invite/nominated/1.0" xmlns:imap="http://www.alfresco.org/model/imap/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:reg="http://www.alfresco.org/system/registry/1.0" xmlns:ver2="http://www.alfresco.org/model/versionstore/2.0" xmlns:stcp="http://www.alfresco.org/model/sitecustomproperty/1.0" xmlns:wcmwf="http://www.alfresco.org/model/wcmworkflow/1.0" xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:imwf="http://www.alfresco.org/model/workflow/invite/moderated/1.0" xmlns:act="http://www.alfresco.org/model/action/1.0" xmlns:wf="http://www.alfresco.org/model/workflow/1.0" xmlns:trx="http://www.alfresco.org/model/transfer/1.0" view:childName="cm:invite-email_nl.html.ftl">
<view:aspects>
<cm:auditable></cm:auditable>
<sys:referenceable></sys:referenceable>
<app:inlineeditable></app:inlineeditable>
</view:aspects>
<view:acl></view:acl>
<view:properties>
<app:editInline>true</app:editInline>
<cm:name>invite-email_nl.html.ftl</cm:name>
<cm:title>invite-email_nl.html.ftl</cm:title>
<cm:description>${spaces.templates.email.generate_the_invite_email.description} - ${version.dutch}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/invite-email-templates/invite-email.html_nl.ftl|mimetype=text/plain|size=1807|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
</view:view>

View File

@@ -0,0 +1,109 @@
<html>
<#assign inviterPersonRef=args["inviterPersonRef"]/>
<#assign inviterPerson=companyhome.nodeByReference[inviterPersonRef]/>
<#assign inviteePersonRef=args["inviteePersonRef"]/>
<#assign inviteePerson=companyhome.nodeByReference[inviteePersonRef]/>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 10px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<img src="${shareUrl}/res/components/site-finder/images/site-64.png" alt="" width="64" height="64" border="0" style="padding-right: 20px;" />
</td>
<td>
<div style="font-size: 22px; padding-bottom: 4px;">
U bent uitgenodigd voor de site '${args["siteName"]}'
</div>
<div style="font-size: 13px;">
${date?datetime?string.full}
</div>
</td>
</tr>
</table>
<div style="font-size: 14px; margin: 12px 0px 24px 0px; padding-top: 10px; border-top: 1px solid #aaaaaa;">
<p>Hi ${inviteePerson.properties["cm:firstName"]!""},</p>
<p>${inviterPerson.properties["cm:firstName"]!""} ${inviterPerson.properties["cm:lastName"]!""}
heeft u uitgenodigd voor de site <b>${args["siteName"]}</b> met de rol van ${args["inviteeSiteRole"]}.</p>
<p>Klik op deze koppeling om de uitnodiging van ${inviterPerson.properties["cm:firstName"]!""} te accepteren:<br />
<br /><a href="${args["acceptLink"]}">${args["acceptLink"]}</a></p>
<#if args["inviteeGenPassword"]?exists>
<p>Er is een account voor u gemaakt met deze aanmeldingsgegevens:<br />
<br />Gebruikersnaam: <b>${args["inviteeUserName"]}</b>
<br />Wachtwoord: <b>${args["inviteeGenPassword"]}</b>
</p>
<p><b>U wordt geadviseerd het wachtwoord te wijzigen wanneer u zich voor de eerste keer aanmeldt.</b><br />
U kunt dit doen door naar <b>Mijn profiel</b> te gaan en <b>Wachtwoord wijzigen</b> te selecteren. </p>
</#if>
<p>Klik op deze koppeling als u de uitnodiging van ${inviterPerson.properties["cm:firstName"]!""}, wilt afwijzen:<br />
<br /><a href="${args["rejectLink"]}">${args["rejectLink"]}</a></p>
<p>Hoogachtend,<br />
Alfresco ${productName!""}</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div style="border-top: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 0px 30px; font-size: 13px;">
Ga voor meer informatie over Alfresco ${productName!""} naar <a href="http://www.alfresco.com">http://www.alfresco.com</a>
</td>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;">
<img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -98,4 +98,20 @@
<cm:content>contentUrl=classpath:alfresco/templates/new-user-templates/new-user-email_ja.html|mimetype=text/plain|size=805|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
<cm:content xmlns="" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rn="http://www.alfresco.org/model/rendition/1.0" xmlns:sys="http://www.alfresco.org/model/system/1.0" xmlns:lnk="http://www.alfresco.org/model/linksmodel/1.0" xmlns:gd="http://www.alfresco.org/model/googledocs/1.0" xmlns:ver="http://www.alfresco.org/model/versionstore/1.0" xmlns:cmiscustom="http://www.alfresco.org/model/cmis/custom" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0" xmlns:fm="http://www.alfresco.org/model/forum/1.0" xmlns:ia="http://www.alfresco.org/model/calendar" xmlns:rule="http://www.alfresco.org/model/rule/1.0" xmlns:wcm="http://www.alfresco.org/model/wcmmodel/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:dl="http://www.alfresco.org/model/datalist/1.0" xmlns:st="http://www.alfresco.org/model/site/1.0" xmlns:usr="http://www.alfresco.org/model/user/1.0" xmlns:custom="custom.model" xmlns:exif="http://www.alfresco.org/model/exif/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0" xmlns:module="http://www.alfresco.org/system/modules/1.0" xmlns:d="http://www.alfresco.org/model/dictionary/1.0" xmlns:blg="http://www.alfresco.org/model/blogintegration/1.0" xmlns:alf="http://www.alfresco.org" xmlns:cmis="http://www.alfresco.org/model/cmis/1.0/cs01" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:wca="http://www.alfresco.org/model/wcmappmodel/1.0" xmlns:bpm="http://www.alfresco.org/model/bpm/1.0" xmlns:inwf="http://www.alfresco.org/model/workflow/invite/nominated/1.0" xmlns:imap="http://www.alfresco.org/model/imap/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:reg="http://www.alfresco.org/system/registry/1.0" xmlns:ver2="http://www.alfresco.org/model/versionstore/2.0" xmlns:stcp="http://www.alfresco.org/model/sitecustomproperty/1.0" xmlns:wcmwf="http://www.alfresco.org/model/wcmworkflow/1.0" xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:imwf="http://www.alfresco.org/model/workflow/invite/moderated/1.0" xmlns:act="http://www.alfresco.org/model/action/1.0" xmlns:wf="http://www.alfresco.org/model/workflow/1.0" xmlns:trx="http://www.alfresco.org/model/transfer/1.0" view:childName="cm:new-user-email_nl.html.ftl">
<view:aspects>
<cm:auditable></cm:auditable>
<sys:referenceable></sys:referenceable>
<app:inlineeditable></app:inlineeditable>
</view:aspects>
<view:acl></view:acl>
<view:properties>
<app:editInline>true</app:editInline>
<cm:name>new-user-email_nl.html.ftl</cm:name>
<cm:title>new-user-email_nl.html.ftl</cm:title>
<cm:description>${email.templates.email_template_for_notifying_new_users} - ${version.dutch}</cm:description>
<cm:content>contentUrl=classpath:alfresco/templates/new-user-templates/new-user-email_nl.html|mimetype=text/plain|size=805|encoding=UTF-8</cm:content>
</view:properties>
</cm:content>
</view:view>

View File

@@ -0,0 +1,96 @@
<html>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 10px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<img src="${shareUrl}/res/components/images/no-user-photo-64.png" alt="" width="64" height="64" border="0" style="padding-right: 20px;" />
</td>
<td>
<div style="font-size: 22px; padding-bottom: 4px;">
Uw nieuwe Alfresco ${productName!""}-account
</div>
<div style="font-size: 13px;"> ${date?datetime?string.full}
</div>
</td>
</tr>
</table>
<div style="font-size: 14px; margin: 12px 0px 24px 0px; padding-top: 10px; border-top: 1px solid #aaaaaa;">
<p>Hallo ${firstname},</p>
<p> ${creator.firstname} ${creator.lastname} heeft een Alfresco ${productName!""}-account voor u gemaakt.</p>
<p>Klik op deze koppeling om u aan te melden:<br />
<br /><a href="${shareUrl}">${shareUrl}</a></p>
<p>Uw aanmeldingsgegevens zijn:<br />
<br />Gebruikersnaam: <b> ${username}</b>
<br />Wachtwoord: <b> ${password}</b>
</p>
<p><b>U wordt geadviseerd het wachtwoord te wijzigen wanneer u zich voor de eerste keer aanmeldt.</b><br />
U kunt dit doen door naar <b>Mijn profiel</b> te gaan en <b>Wachtwoord wijzigen</b> te selecteren.</p>
<p>Hoogachtend,<br />
Alfresco ${productName!""}</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div style="border-top: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 0px 30px; font-size: 13px;">
Ga voor meer informatie over Alfresco ${productName!""} naar <a href="http://www.alfresco.com">http://www.alfresco.com</a>
</td>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;"> <img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -89,4 +89,19 @@
</view:properties>
<view:associations></view:associations>
</cm:content>
<cm:content xmlns="" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rn="http://www.alfresco.org/model/rendition/1.0" xmlns:sys="http://www.alfresco.org/model/system/1.0" xmlns:lnk="http://www.alfresco.org/model/linksmodel/1.0" xmlns:gd="http://www.alfresco.org/model/googledocs/1.0" xmlns:ver="http://www.alfresco.org/model/versionstore/1.0" xmlns:cmiscustom="http://www.alfresco.org/model/cmis/custom" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0" xmlns:fm="http://www.alfresco.org/model/forum/1.0" xmlns:ia="http://www.alfresco.org/model/calendar" xmlns:rule="http://www.alfresco.org/model/rule/1.0" xmlns:wcm="http://www.alfresco.org/model/wcmmodel/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:dl="http://www.alfresco.org/model/datalist/1.0" xmlns:st="http://www.alfresco.org/model/site/1.0" xmlns:usr="http://www.alfresco.org/model/user/1.0" xmlns:custom="custom.model" xmlns:exif="http://www.alfresco.org/model/exif/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0" xmlns:module="http://www.alfresco.org/system/modules/1.0" xmlns:d="http://www.alfresco.org/model/dictionary/1.0" xmlns:blg="http://www.alfresco.org/model/blogintegration/1.0" xmlns:alf="http://www.alfresco.org" xmlns:cmis="http://www.alfresco.org/model/cmis/1.0/cs01" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:wca="http://www.alfresco.org/model/wcmappmodel/1.0" xmlns:bpm="http://www.alfresco.org/model/bpm/1.0" xmlns:inwf="http://www.alfresco.org/model/workflow/invite/nominated/1.0" xmlns:imap="http://www.alfresco.org/model/imap/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:reg="http://www.alfresco.org/system/registry/1.0" xmlns:ver2="http://www.alfresco.org/model/versionstore/2.0" xmlns:stcp="http://www.alfresco.org/model/sitecustomproperty/1.0" xmlns:wcmwf="http://www.alfresco.org/model/wcmworkflow/1.0" xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:imwf="http://www.alfresco.org/model/workflow/invite/moderated/1.0" xmlns:act="http://www.alfresco.org/model/action/1.0" xmlns:wf="http://www.alfresco.org/model/workflow/1.0" xmlns:trx="http://www.alfresco.org/model/transfer/1.0" view:childName="cm:notify_user_email_nl.html.ftl">
<view:aspects>
<cm:titled></cm:titled>
<app:inlineeditable></app:inlineeditable>
</view:aspects>
<view:properties>
<app:editInline>true</app:editInline>
<cm:description>${email.template.email_template_for_notifying_users} - ${version.dutch}</cm:description>
<cm:name>notify_user_email_nl.html.ftl</cm:name>
<cm:content>contentUrl=classpath:alfresco/templates/notify_email_templates/notify_nl.htm|mimetype=text/plain|size=585|encoding=UTF-8</cm:content>
<cm:title>notify_user_email_nl.html.ftl</cm:title>
</view:properties>
<view:associations></view:associations>
</cm:content>
</view:view>

View File

@@ -0,0 +1,80 @@
<html>
<head>
<style type="text/css"><!--
body
{
font-family: Arial, sans-serif;
font-size: 14px;
color: #4c4c4c;
}
a, a:visited
{
color: #0072cf;
}
--></style>
</head>
<body bgcolor="#dddddd">
<table width="100%" cellpadding="20" cellspacing="0" border="0" bgcolor="#dddddd">
<tr>
<td width="100%" align="center">
<table width="70%" cellpadding="0" cellspacing="0" bgcolor="white" style="background-color: white; border: 1px solid #aaaaaa;">
<tr>
<td width="100%">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding: 10px 30px 0px;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<img src="${shareUrl}/res/components/images/page-64.png" alt="" width="64" height="64" border="0" style="padding-right: 20px;" />
</td>
<td>
<div style="font-size: 22px; padding-bottom: 4px;"> ${person.properties.firstName} <#if person.properties.lastName?exists> ${person.properties.lastName}</#if> heeft een nieuw contentobject, ${document.name}, toegevoegd op de ${document.siteShortName!""}-site
</div>
<div style="font-size: 13px;"> ${date?datetime?string.full}
</div>
</td>
</tr>
</table>
<div style="font-size: 14px; margin: 12px 0px 24px 0px; padding-top: 10px; border-top: 1px solid #aaaaaa;">
<p>Hallo,</p>
<p>${person.properties.firstName}
<#if person.properties.lastName?exists> ${person.properties.lastName}</#if>
heeft een nieuw contentobject, ${document.name}, toegevoegd op de ${document.siteShortName!""}-site.
<p>Klik op deze koppeling om het object te bekijken:<br />
<br />${document.shareUrl}</p>
<p>Hoogachtend,<br />
Alfresco</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div style="border-bottom: 1px solid #aaaaaa;">&nbsp;</div>
</td>
</tr>
<tr>
<td style="padding: 10px 30px;">
<img src="${shareUrl}/themes/default/images/app-logo.png" alt="" width="117" height="48" border="0" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
version.schema=5023
version.schema=5024

View File

@@ -0,0 +1,121 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.repo.admin.patch.impl;
import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.model.Repository;
import org.alfresco.service.cmr.repository.NodeRef;
import org.springframework.extensions.surf.util.I18NUtil;
/**
* Update workflow notification templates patch
*
* @author Roy Wetherall
*/
public class AddDutchEmailTemplatesPatch extends GenericEMailTemplateUpdatePatch
{
private static final String[] LOCALES = new String[] {"nl"};
private static final String[] PATHS = new String[]
{
"alfresco/templates/activities-email-templates/",
"alfresco/bootstrap/notification/",
"alfresco/templates/notify_email_templates/",
"alfresco/templates/new-user-templates/",
"alfresco/templates/invite-email-templates/",
"alfresco/templates/following-email-templates/"
};
private static final String[] BASE_FILES = new String[]
{
"activities-email.ftl",
"wf-email.html.ftl",
"notify.htm",
"new-user-email.html",
"invite-email.html.ftl",
"following-email.html.ftl"
};
private static final String[] XPATHS = new String[]
{
"/app:company_home/app:dictionary/app:email_templates/cm:activities/cm:activities-email.ftl",
"/app:company_home/app:dictionary/app:email_templates/cm:workflownotification/cm:invite-email.html.ftl",
"/app:company_home/app:dictionary/app:email_templates/app:notify_email_templates/cm:notify_user_email.html.ftl",
"/app:company_home/app:dictionary/app:email_templates/cm:invite/cm:new-user-email.html.ftl",
"/app:company_home/app:dictionary/app:email_templates/cm:invite/cm:invite-email.html.ftl",
"/app:company_home/app:dictionary/app:email_templates/app:following/cm:following-email.html.ftl"
};
private int currentIndex = 0;
private Repository repository;
public void setRepository(Repository repository)
{
this.repository = repository;
}
@Override
protected String getPath()
{
return PATHS[currentIndex];
}
@Override
protected String getBaseFileName()
{
return BASE_FILES[currentIndex];
}
@Override
protected String[] getLocales()
{
return LOCALES;
}
@Override
protected NodeRef getBaseTemplate()
{
List<NodeRef> refs = searchService.selectNodes(
repository.getRootHome(),
XPATHS[currentIndex],
null,
namespaceService,
false);
if (refs.size() != 1)
{
throw new AlfrescoRuntimeException(I18NUtil.getMessage("patch.addDutchEmailTemplatesPatch.error"));
}
return refs.get(0);
}
/**
* @see org.alfresco.repo.admin.patch.AbstractPatch#applyInternal()
*/
@Override
protected String applyInternal() throws Exception
{
while (currentIndex < BASE_FILES.length)
{
updateTemplates();
currentIndex ++;
}
return I18NUtil.getMessage("patch.addDutchEmailTemplatesPatch.result");
}
}

View File

@@ -24,45 +24,76 @@ import java.util.List;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.admin.patch.AbstractPatch;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
/**
* Helper generic patch useful when updating email templates.
*
* @author Roy Wetherall
*/
public abstract class GenericEMailTemplateUpdatePatch extends AbstractPatch
{
protected static final String[] LOCALES = new String[] {"de", "es", "fr", "it", "ja"};
/** Content service */
protected ContentService contentService;
/** File folder service */
protected FileFolderService fileFolderService;
/** Indicates whether to update the base file or not */
private boolean updateBaseFile = true;
/** Indicates whether to create a sibling if it's missing (rather than just update) */
private boolean createSiblingIfMissing = true;
/**
* @param contentService content service
*/
public void setContentService(ContentService contentService)
{
this.contentService = contentService;
}
/**
* @param fileFolderService file folder service
*/
public void setFileFolderService(FileFolderService fileFolderService)
{
this.fileFolderService = fileFolderService;
}
/**
* @param createSiblingIfMissing
*/
public void setCreateSiblingIfMissing(boolean createSiblingIfMissing)
{
this.createSiblingIfMissing = createSiblingIfMissing;
}
/**
* @param updateBaseFile
*/
public void setUpdateBaseFile(boolean updateBaseFile)
{
this.updateBaseFile = updateBaseFile;
}
/**
*
* @throws Exception
*/
protected void updateTemplates() throws Exception
{
NodeRef baseTemplate = getBaseTemplate();
if (nodeService.exists(baseTemplate) == true)
{
updateContent(baseTemplate, getPath(), getBaseFileName());
if (updateBaseFile == true)
{
updateContent(baseTemplate, getPath(), getBaseFileName(), false);
}
for (String siblingFile : getSiblingFiles())
{
@@ -77,15 +108,12 @@ public abstract class GenericEMailTemplateUpdatePatch extends AbstractPatch
protected abstract String getBaseFileName();
protected String[] getLocales()
{
return LOCALES;
}
protected abstract String[] getLocales();
protected List<String> getSiblingFiles()
{
List<String> siblingFiles = new ArrayList<String>(LOCALES.length);
for (String locale : LOCALES)
List<String> siblingFiles = new ArrayList<String>(getLocales().length);
for (String locale : getLocales())
{
siblingFiles.add(makeSiblingFileName(getBaseFileName(), locale));
}
@@ -111,17 +139,17 @@ public abstract class GenericEMailTemplateUpdatePatch extends AbstractPatch
NodeRef sibling = fileFolderService.searchSimple(parent, fileName);
if (sibling != null)
{
updateContent(sibling, path, fileName);
updateContent(sibling, path, fileName, false);
}
else if (createSiblingIfMissing == true)
{
sibling = fileFolderService.create(parent, fileName, ContentModel.TYPE_CONTENT).getNodeRef();
updateContent(sibling, path, fileName);
updateContent(sibling, path, fileName, true);
}
}
}
private void updateContent(NodeRef nodeRef, String path, String fileName)
private void updateContent(NodeRef nodeRef, String path, String fileName, boolean newFile)
{
// Make versionable
nodeService.addAspect(nodeRef, ContentModel.ASPECT_VERSIONABLE, null);
@@ -131,6 +159,11 @@ public abstract class GenericEMailTemplateUpdatePatch extends AbstractPatch
if (is != null)
{
ContentWriter contentWriter = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);
if (newFile == true)
{
contentWriter.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);
contentWriter.setEncoding("UTF-8");
}
contentWriter.putContent(is);
}
}

View File

@@ -34,6 +34,8 @@ public class UpdateFollowingEmailTemplatesPatch extends GenericEMailTemplateUpda
{
private Repository repository;
protected static final String[] LOCALES = new String[] {"de", "es", "fr", "it", "ja"};
private static final String PATH = "alfresco/templates/following-email-templates/";
private static final String BASE_FILE = "following-email.html.ftl";
private static final String XPATH = "/app:company_home/app:dictionary/app:email_templates/app:following/cm:following-email.html.ftl";
@@ -55,6 +57,12 @@ public class UpdateFollowingEmailTemplatesPatch extends GenericEMailTemplateUpda
return BASE_FILE;
}
@Override
protected String[] getLocales()
{
return LOCALES;
}
@Override
protected NodeRef getBaseTemplate()
{

View File

@@ -29,6 +29,7 @@ import org.springframework.extensions.surf.util.I18NUtil;
*/
public class UpdateWorkflowNotificationTemplatesPatch extends GenericEMailTemplateUpdatePatch
{
private static final String[] LOCALES = new String[] {"de", "es", "fr", "it", "ja"};
private static final String PATH = "alfresco/bootstrap/notification/";
private static final String BASE_FILE = "wf-email.html.ftl";
@@ -44,6 +45,12 @@ public class UpdateWorkflowNotificationTemplatesPatch extends GenericEMailTempla
return BASE_FILE;
}
@Override
protected String[] getLocales()
{
return LOCALES;
}
@Override
protected NodeRef getBaseTemplate()
{