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