From de4da68884b40d42c7768c56107a84d0006b2e3a Mon Sep 17 00:00:00 2001 From: James Tolley Date: Tue, 10 Jul 2007 21:39:11 +0000 Subject: [PATCH] put the unsubscribe link in the CS notification template --- .../PBtmpl0000000000000027.tmpl | 47 +++++++ docs/upgrades/upgrade_7.3.19-7.4.0.pl | 6 +- lib/WebGUI/Asset.pm | 2 +- lib/WebGUI/Asset/Post.pm | 119 +++++++++--------- www/extras/draggable.js | 7 +- 5 files changed, 117 insertions(+), 64 deletions(-) create mode 100644 docs/upgrades/templates-7.4.0/PBtmpl0000000000000027.tmpl diff --git a/docs/upgrades/templates-7.4.0/PBtmpl0000000000000027.tmpl b/docs/upgrades/templates-7.4.0/PBtmpl0000000000000027.tmpl new file mode 100644 index 000000000..3ebdd576c --- /dev/null +++ b/docs/upgrades/templates-7.4.0/PBtmpl0000000000000027.tmpl @@ -0,0 +1,47 @@ +#PBtmpl0000000000000027 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
has posted to one of your subscriptions
  
+

diff --git a/docs/upgrades/upgrade_7.3.19-7.4.0.pl b/docs/upgrades/upgrade_7.3.19-7.4.0.pl index 75840aa6f..acd3881d7 100644 --- a/docs/upgrades/upgrade_7.3.19-7.4.0.pl +++ b/docs/upgrades/upgrade_7.3.19-7.4.0.pl @@ -40,6 +40,8 @@ finish($session); # this line required sub addCanStartThreadToCS { my $session = shift; + print "\tAdding canStartThreadGroupId setting to Collaboration Systems.\n" unless ($quiet); + # add the columns required $session->db->write("ALTER TABLE Collaboration add column canStartThreadGroupId varchar(22) NOT NULL default 2 AFTER postGroupId"); $session->db->write("ALTER TABLE Collaboration add column threadApprovalWorkflow varchar(22) NOT NULL default 'pbworkflow000000000003' AFTER approvalWorkflow"); @@ -58,8 +60,8 @@ sub addCanStartThreadToCS { #------------------------------------------------- sub addKeywordTagging { - my $session = shift; - print "\tAdding a keyword tagging system.\n" unless ($quiet); + my $session = shift; + print "\tAdding a keyword tagging system.\n" unless ($quiet); $session->db->write("create table assetKeyword ( keyword varchar(64) not null, assetId varchar(22) binary not null, diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 8d06edbbd..3ca3f84a2 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1839,7 +1839,7 @@ sub processTemplate { $var->{$meta->{$field}{fieldName}} = $meta->{$field}{value}; } $var->{'controls'} = $self->getToolbar; - my %vars = ( + my %vars = ( %{$self->{_properties}}, %{$var} ); diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 061a0665f..51bd3e0af 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -726,42 +726,43 @@ Send notifications to the thread and forum subscribers that a new post has been =cut sub notifySubscribers { - my $self = shift; - my $i18n = WebGUI::International->new($self->session); - my $var = $self->getTemplateVars(); - my $thread = $self->getThread; - my $cs = $thread->getParent; - $cs->appendTemplateLabels($var); - $var->{relativeUrl} = $var->{url}; - my $siteurl = $self->session->url->getSiteURL(); - $var->{url} = $siteurl.$self->getUrl; - $var->{'notify.subscription.message'} = $i18n->get(875,"Asset_Post"); - my $message = $self->processTemplate($var, $cs->get("notificationTemplateId")); - my $user = WebGUI::User->new($self->session, $self->get("ownerUserId")); - my $setting = $self->session->setting; - my $returnAddress = $setting->get("mailReturnPath"); - my $companyAddress = $setting->get("companyEmail"); - my $listAddress = $cs->get("mailAddress"); - my $posterAddress = $user->profileField("email"); - my $from = $posterAddress || $listAddress || $companyAddress; - my $replyTo = $listAddress || $returnAddress || $companyAddress; - my $sender = $listAddress || $companyAddress || $posterAddress; - my $returnPath = $returnAddress || $sender; - my $listId = $sender; - $listId =~ s/\@/\./; - my $domain = $cs->get("mailAddress"); - $domain =~ s/.*\@(.*)/$1/; - my $messageId = "cs-".$self->getId.'@'.$domain; - my $replyId = ""; - if ($self->isReply) { - $replyId = "cs-".$self->getParent->getId.'@'.$domain; - } - my $subject = $cs->get("mailPrefix").$self->get("title"); - - foreach my $subscriptionAsset ($cs, $thread) { - my $groupId = $subscriptionAsset->get('subscriptionGroupId'); - my $unsubscribe = '

'.$i18n->get("unsubscribe","Asset_Collaboration").'

'; - my $mail = WebGUI::Mail::Send->create($self->session, { + my $self = shift; + my $i18n = WebGUI::International->new($self->session); + my $var = $self->getTemplateVars(); + my $thread = $self->getThread; + my $cs = $thread->getParent; + $cs->appendTemplateLabels($var); + $var->{relativeUrl} = $var->{url}; + my $siteurl = $self->session->url->getSiteURL(); + $var->{url} = $siteurl.$self->getUrl; + $var->{'notify.subscription.message'} = $i18n->get(875,"Asset_Post"); + my $user = WebGUI::User->new($self->session, $self->get("ownerUserId")); + my $setting = $self->session->setting; + my $returnAddress = $setting->get("mailReturnPath"); + my $companyAddress = $setting->get("companyEmail"); + my $listAddress = $cs->get("mailAddress"); + my $posterAddress = $user->profileField("email"); + my $from = $posterAddress || $listAddress || $companyAddress; + my $replyTo = $listAddress || $returnAddress || $companyAddress; + my $sender = $listAddress || $companyAddress || $posterAddress; + my $returnPath = $returnAddress || $sender; + my $listId = $sender; + $listId =~ s/\@/\./; + my $domain = $cs->get("mailAddress"); + $domain =~ s/.*\@(.*)/$1/; + my $messageId = "cs-".$self->getId.'@'.$domain; + my $replyId = ""; + if ($self->isReply) { + $replyId = "cs-".$self->getParent->getId.'@'.$domain; + } + my $subject = $cs->get("mailPrefix").$self->get("title"); + + foreach my $subscriptionAsset ($cs, $thread) { + $var->{unsubscribeUrl} = $siteurl.$subscriptionAsset->getUnsubscribeUrl; + $var->{unsubscribeLinkText} = $i18n->get("unsubscribe","Asset_Collaboration"); + my $message = $self->processTemplate($var, $cs->get("notificationTemplateId")); + my $groupId = $subscriptionAsset->get('subscriptionGroupId'); + my $mail = WebGUI::Mail::Send->create($self->session, { from=>"<".$from.">", returnPath => "<".$returnPath.">", replyTo=>"<".$replyTo.">", @@ -769,29 +770,29 @@ sub notifySubscribers { subject=>$subject, messageId=>'<'.$messageId.'>' }); - if ($self->isReply) { - $mail->addHeaderField("In-Reply-To", "<".$replyId.">"); - $mail->addHeaderField("References", "<".$replyId.">"); - } - $mail->addHeaderField("List-ID", $cs->getTitle." <".$listId.">"); - $mail->addHeaderField("List-Help", ", <".$setting->get("companyURL").">"); - $mail->addHeaderField("List-Unsubscribe", "<".$siteurl.$subscriptionAsset->getUnsubscribeUrl.">"); - $mail->addHeaderField("List-Subscribe", "<".$siteurl.$subscriptionAsset->getSubscribeUrl.">"); - $mail->addHeaderField("List-Owner", ", <".$setting->get("companyURL")."> (".$setting->get("companyName").")"); - $mail->addHeaderField("Sender", "<".$sender.">"); - if ($listAddress eq "") { - $mail->addHeaderField("List-Post", "No"); - } else { - $mail->addHeaderField("List-Post", ""); - } - $mail->addHeaderField("List-Archive", "<".$siteurl.$cs->getUrl.">"); - $mail->addHeaderField("X-Unsubscribe-Web", "<".$siteurl.$subscriptionAsset->getUnsubscribeUrl.">"); - $mail->addHeaderField("X-Subscribe-Web", "<".$siteurl.$subscriptionAsset->getSubscribeUrl.">"); - $mail->addHeaderField("X-Archives", "<".$siteurl.$cs->getUrl.">"); - $mail->addHtml($message.$unsubscribe); - $mail->addFooter; - $mail->queue; - } + if ($self->isReply) { + $mail->addHeaderField("In-Reply-To", "<".$replyId.">"); + $mail->addHeaderField("References", "<".$replyId.">"); + } + $mail->addHeaderField("List-ID", $cs->getTitle." <".$listId.">"); + $mail->addHeaderField("List-Help", ", <".$setting->get("companyURL").">"); + $mail->addHeaderField("List-Unsubscribe", "<".$siteurl.$subscriptionAsset->getUnsubscribeUrl.">"); + $mail->addHeaderField("List-Subscribe", "<".$siteurl.$subscriptionAsset->getSubscribeUrl.">"); + $mail->addHeaderField("List-Owner", ", <".$setting->get("companyURL")."> (".$setting->get("companyName").")"); + $mail->addHeaderField("Sender", "<".$sender.">"); + if ($listAddress eq "") { + $mail->addHeaderField("List-Post", "No"); + } else { + $mail->addHeaderField("List-Post", ""); + } + $mail->addHeaderField("List-Archive", "<".$siteurl.$cs->getUrl.">"); + $mail->addHeaderField("X-Unsubscribe-Web", "<".$siteurl.$subscriptionAsset->getUnsubscribeUrl.">"); + $mail->addHeaderField("X-Subscribe-Web", "<".$siteurl.$subscriptionAsset->getSubscribeUrl.">"); + $mail->addHeaderField("X-Archives", "<".$siteurl.$cs->getUrl.">"); + $mail->addHtml($message); + $mail->addFooter; + $mail->queue; + } } diff --git a/www/extras/draggable.js b/www/extras/draggable.js index 62bfeed1b..136c021b3 100644 --- a/www/extras/draggable.js +++ b/www/extras/draggable.js @@ -25,6 +25,7 @@ var pageHeight=0; var pageWidth=0; var scrollJump=50; var blankCount=1; +var draggableListOrigClassNames = []; // make sure that we're preserving the locked-asset class, if present //checks the key Events for copy and paste operations //ctrlC ctrlV shiftP shiftY @@ -142,7 +143,8 @@ function dragable_init(url) { for (i = 0; i< children.length;i++) { draggableObjectList[draggableObjectList.length] = children[i]; dragableList[dragableList.length]=document.getElementById(children[i].id + "_div"); - } + draggableListOrigClassNames[draggableListOrigClassNames.length] = dragableList[dragableList.length - 1].className; + } } obj = document.getElementById("position" + contentCount); contentCount++; @@ -338,7 +340,8 @@ function dragable_dragStop(e) { for(i=0;i