Template the emails sent out during content approval. Includes new template, i18n, Help docs upgrade sub and code. Fixes bug #11901.

This commit is contained in:
Colin Kuskie 2010-10-18 13:53:33 -07:00
parent 19a87ea003
commit 3ad69de404
7 changed files with 119 additions and 16 deletions

View file

@ -0,0 +1,20 @@
package WebGUI::Help::Workflow_Activity_NotifyAboutVersionTag;
use strict;
our $HELP = {
'email template' => {
title => 'email template title',
body => '',
variables => [
{ 'name' => 'message' },
{ 'name' => 'comments' },
{ 'name' => 'url' },
],
fields => [],
related => [],
},
};
1;

View file

@ -19,6 +19,7 @@ use strict;
use base 'WebGUI::Workflow::Activity';
use WebGUI::VersionTag;
use WebGUI::Inbox;
use WebGUI::Asset;
=head1 NAME
@ -71,8 +72,15 @@ sub definition {
label=> $i18n->get("notify message"),
hoverHelp => $i18n->get("notify message help")
},
}
});
templateId => {
fieldType =>"template",
defaultValue => "lYhMheuuLROK_iNjaQuPKg",
namespace => 'NotifyAboutVersionTag',
label => $i18n->get("email template", 'Workflow_Activity_NotifyAboutVersionTag'),
hoverHelp => $i18n->get("email template help", 'Workflow_Activity_NotifyAboutVersionTag')
},
}
});
return $class->SUPER::definition($session,$definition);
}
@ -95,11 +103,18 @@ sub execute {
my $asset = $versionTag->getAssets->[0];
$urlOfSingleAsset = "\n\n".$self->session->url->getSiteURL().$asset->getUrl("func=view;revision=".$asset->get("revisionDate"));
}
my $var = {
message => $self->get('message'),
comments => $versionTag->get('comments'),
url => $urlOfSingleAsset,
};
my $template = WebGUI::Asset->newByDynamicClass($self->session, $self->get('templateId'));
my $message = $template->process($var);
my $properties = {
status=>"completed",
subject=>$versionTag->get("name"),
message=>$self->get("message")."\n\n".$versionTag->get("comments").$urlOfSingleAsset,
};
message=>$message,
};
if ($self->get("who") eq "committer") {
$properties->{userId} = $versionTag->get("committedBy");
} elsif ($self->get("who") eq "creator") {

View file

@ -17,6 +17,7 @@ package WebGUI::Workflow::Activity::RequestApprovalForVersionTag;
use strict;
use base 'WebGUI::Workflow::Activity';
use WebGUI::Asset;
use WebGUI::VersionTag;
use WebGUI::Inbox;
use WebGUI::International;
@ -86,6 +87,13 @@ sub definition {
hoverHelp => $i18n->get("do on approve help"),
none => 1,
noneLabel => $i18n->get('continue with workflow'),
},
templateId => {
fieldType =>"template",
defaultValue => "lYhMheuuLROK_iNjaQuPKg",
namespace => 'NotifyAboutVersionTag',
label => $i18n->get("email template", 'Workflow_Activity_NotifyAboutVersionTag'),
hoverHelp => $i18n->get("email template help", 'Workflow_Activity_NotifyAboutVersionTag')
},
},
};
@ -265,13 +273,13 @@ sub sendMessage {
"op=manageRevisionsInTag;workflowInstanceId=" . $instance->getId
. ";tagId=" . $versionTag->getId
);
my $messageText
= join "\n\n",
$self->get("message"),
sprintf('<a href="%s">%s</a>', $approvalUrl, $approvalUrl,),
$versionTag->get("comments"),
;
my $var = {
message => $self->get('message'),
comments => $versionTag->get('comments'),
url => $approvalUrl,
};
my $template = WebGUI::Asset->newByDynamicClass($self->session, $self->get('templateId'));
my $messageText = $template->process($var);
for my $groupId ( @{ $self->getGroupToApprove } ) {
my $message
= $inbox->addMessage({

View file

@ -2,11 +2,48 @@ package WebGUI::i18n::English::Workflow_Activity_NotifyAboutVersionTag;
use strict;
our $I18N = {
'activityName' => {
message => q|Notify About Version Tag|,
context => q|The name of this workflow activity.|,
lastUpdated => 0,
},
'activityName' => {
message => q|Notify About Version Tag|,
context => q|The name of this workflow activity.|,
lastUpdated => 0,
},
'email template' => {
message => q|Email Template|,
context => q|Label in the edit form. A template for an email.|,
lastUpdated => 0,
},
'email template help' => {
message => q|Select a template for the email that is sent out.|,
context => q|Hoverhelp.|,
lastUpdated => 0,
},
'email template title' => {
message => q|Notify About Version Tag Email Template|,
context => q|Title of the template variable page.|,
lastUpdated => 0,
},
'message' => {
message => q|The message from the Workflow Activity settings|,
context => q|Title of the template variable page.|,
lastUpdated => 0,
},
'comments' => {
message => q|Comments from the version tag, when it was committed. These could be blank if no comments were entered, or if comments are not required on the site.|,
context => q|Title of the template variable page.|,
lastUpdated => 0,
},
'url' => {
message => q|The complete URL to work on the version tag. It is a bare URL, with no HTML wrapped around it.|,
context => q|Title of the template variable page.|,
lastUpdated => 0,
},
};