diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 2ad2ef161..e04b73e7d 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -24,6 +24,7 @@ - Added: United States Postal Service Shipping Driver. - Refactored transaction tmpl_var generation into WebGUI::Shop::Transaction. ( Martin Kamerbeek / Oqapi ) - rfe #9906: Inbox Filtering + - rfe #9911: Inbox: Copy Sender 7.7.5 - Adding StoryManager. diff --git a/docs/upgrades/upgrade_7.7.5-7.7.6.pl b/docs/upgrades/upgrade_7.7.5-7.7.6.pl index 7fee6449c..1dc7dcefd 100644 --- a/docs/upgrades/upgrade_7.7.5-7.7.6.pl +++ b/docs/upgrades/upgrade_7.7.5-7.7.6.pl @@ -37,6 +37,7 @@ addShippingDrivers( $session ); addTransactionTaxColumns( $session ); addListingsCacheTimeoutToMatrix( $session ); addSurveyFeedbackTemplateColumn( $session ); +installCopySender($session); finish($session); @@ -146,6 +147,14 @@ sub addSurveyFeedbackTemplateColumn { } +#---------------------------------------------------------------------------- +# Your sub here +sub installCopySender { + my $session = shift; + return if $session->setting->has('inboxCopySender'); + $session->setting->add('inboxCopySender',0); +} + # -------------- DO NOT EDIT BELOW THIS LINE -------------------------------- #---------------------------------------------------------------------------- diff --git a/lib/WebGUI/Account/Inbox.pm b/lib/WebGUI/Account/Inbox.pm index bc186a78c..b0d2f9cc7 100644 --- a/lib/WebGUI/Account/Inbox.pm +++ b/lib/WebGUI/Account/Inbox.pm @@ -223,6 +223,12 @@ sub editSettingsForm { label => $i18n->get("inbox rich editor label"), hoverHelp => $i18n->get("inbox rich editor description"), ); + $f->yesNo( + name => "inboxCopySender", + value => $setting->get("inboxCopySender"), + label => $i18n->get("inbox copy sender label"), + hoverHelp => $i18n->get("inbox copy sender hoverHelp") + ); return $f->printRowsOnly; } @@ -242,28 +248,29 @@ sub editSettingsFormSave { my $form = $session->form; #Messages Settings - $setting->set("inboxStyleTemplateId", $form->process("inboxStyleTemplateId","template")); - $setting->set("inboxLayoutTemplateId", $form->process("inboxLayoutTemplateId","template")); - $setting->set("inboxViewTemplateId", $form->process("inboxViewTemplateId","template")); - $setting->set("inboxViewMessageTemplateId",$form->process("inboxViewMessageTemplateId","template")); - $setting->set("inboxSendMessageTemplateId",$form->process("inboxSendMessageTemplateId","template")); + $setting->set("inboxStyleTemplateId", $form->process("inboxStyleTemplateId", "template")); + $setting->set("inboxLayoutTemplateId", $form->process("inboxLayoutTemplateId", "template")); + $setting->set("inboxViewTemplateId", $form->process("inboxViewTemplateId", "template")); + $setting->set("inboxViewMessageTemplateId", $form->process("inboxViewMessageTemplateId", "template")); + $setting->set("inboxSendMessageTemplateId", $form->process("inboxSendMessageTemplateId", "template")); $setting->set("inboxMessageConfirmationTemplateId",$form->process("inboxMessageConfirmationTemplateId","template")); - $setting->set("inboxErrorTemplateId",$form->process("inboxErrorTemplateId","template")); + $setting->set("inboxErrorTemplateId", $form->process("inboxErrorTemplateId", "template")); #Friends Invitations Settings - $setting->set("inboxManageInvitationsTemplateId",$form->process("inboxManageInvitationsTemplateId","template")); - $setting->set("inboxViewInvitationTemplateId",$form->process("inboxViewInvitationTemplateId","template")); - $setting->set("inboxInvitationConfirmTemplateId",$form->process("inboxInvitationConfirmTemplateId","template")); + $setting->set("inboxManageInvitationsTemplateId", $form->process("inboxManageInvitationsTemplateId", "template")); + $setting->set("inboxViewInvitationTemplateId", $form->process("inboxViewInvitationTemplateId", "template")); + $setting->set("inboxInvitationConfirmTemplateId", $form->process("inboxInvitationConfirmTemplateId", "template")); #User Invitation Settings - $setting->set("inboxInviteUserEnabled",$form->process("inboxInviteUserEnabled","yesNo")); - $setting->set("inboxInviteUserRestrictSubject",$form->process("inboxInviteUserRestrictSubject","yesNo")); - $setting->set("inboxInviteUserSubject",$form->process("inboxInviteUserSubject","text")); - $setting->set("inboxInviteUserRestrictMessage",$form->process("inboxInviteUserRestrictMessage","yesNo")); - $setting->set("inboxInviteUserMessage",$form->process("inboxInviteUserMessage","HTMLArea")); - $setting->set("inboxInviteUserMessageTemplateId",$form->process("inboxInviteUserMessageTemplateId","template")); - $setting->set("inboxInviteUserTemplateId",$form->process("inboxInviteUserTemplateId","template")); - $setting->set("inboxInviteUserConfirmTemplateId",$form->process("inboxInviteUserConfirmTemplateId","template")); - - $setting->set("inboxRichEditorId", $form->process("inboxRichEditorId", "selectRichEditor") ); + $setting->set("inboxInviteUserEnabled", $form->process("inboxInviteUserEnabled", "yesNo")); + $setting->set("inboxInviteUserRestrictSubject", $form->process("inboxInviteUserRestrictSubject", "yesNo")); + $setting->set("inboxInviteUserSubject", $form->process("inboxInviteUserSubject", "text")); + $setting->set("inboxInviteUserRestrictMessage", $form->process("inboxInviteUserRestrictMessage", "yesNo")); + $setting->set("inboxInviteUserMessage", $form->process("inboxInviteUserMessage", "HTMLArea")); + $setting->set("inboxInviteUserMessageTemplateId", $form->process("inboxInviteUserMessageTemplateId", "template")); + $setting->set("inboxInviteUserTemplateId", $form->process("inboxInviteUserTemplateId", "template")); + $setting->set("inboxInviteUserConfirmTemplateId", $form->process("inboxInviteUserConfirmTemplateId", "template")); + #General Inbox Settings + $setting->set("inboxRichEditorId", $form->process("inboxRichEditorId", "selectRichEditor") ); + $setting->set("inboxCopySender", $form->process("inboxCopySender", "yesNo")); } @@ -986,8 +993,9 @@ sub www_sendMessage { #Add any error passed in to be displayed if the form reloads $var->{'message_display_error'} = $displayError; - #Add common template variable for displaying the inbox my $inbox = WebGUI::Inbox->new($session); + + #Add common template variable for displaying the inbox $self->appendCommonVars($var,$inbox); my $messageId = $form->get("messageId"); @@ -1204,6 +1212,10 @@ sub www_sendMessageSave { } } + if($session->setting->get('inboxCopySender')) { + push @toUsers, $session->user->userId; + } + #Check for client errors if($subject eq "") { my $i18n = WebGUI::International->new($session,'Account_Inbox'); @@ -1225,13 +1237,16 @@ sub www_sendMessageSave { return $self->www_sendMessage($errorMsg) if $hasError; foreach my $uid (@toUsers) { - $inbox->addMessage({ + my $message = $inbox->addMessage({ message => $message, subject => $subject, userId => $uid, status => 'unread', sentBy => $fromUser->userId }); + if ($uid eq $session->user->userId) { + $message->setRead; + } } $self->appendCommonVars($var,$inbox); diff --git a/lib/WebGUI/i18n/English/Account_Inbox.pm b/lib/WebGUI/i18n/English/Account_Inbox.pm index 6fcf597ff..3f3a35ec7 100644 --- a/lib/WebGUI/i18n/English/Account_Inbox.pm +++ b/lib/WebGUI/i18n/English/Account_Inbox.pm @@ -738,6 +738,17 @@ our $I18N = { context => "Default setting for filtering in the Inbox. Short for Show messages from all users.", }, + 'inbox copy sender label' => { + message => q|Copy Sender on Messages?|, + context => q|Copy, as in receive a copy. Label for Account/Inbox settings|, + lastUpdated => 0, + }, + + 'inbox copy sender hoverHelp' => { + message => q|If this setting is 'yes', users will receive a copy of messages that they send using the inbox.|, + lastUpdated => 0, + }, + }; 1;