From 254796dea3662682d55d1e8f923e807b785daf67 Mon Sep 17 00:00:00 2001 From: Hao Ching Date: Fri, 1 May 2009 17:21:02 +0000 Subject: [PATCH] RFE #9998, mark selected inbox messages as read/unread. --- ...nt_inbox_default-inbox-view-template.wgpkg | Bin 0 -> 2224 bytes lib/WebGUI/Account/Inbox.pm | 75 +++++++++++++++++- lib/WebGUI/i18n/English/Account_Inbox.pm | 15 ++-- 3 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg diff --git a/docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg b/docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..a3d92c1c70b8c883f00cc440753535b9864a76dc GIT binary patch literal 2224 zcmV;h2v7GPiwFP!000001ML}UZ`(N5pXXN)24?GE68V@MP2w0xn-iO+>C|m@c04s` ziL%+qqCir1oI(HlK9agE#mPrD68iJ{>{|SY}99WxR_9!u!=DLr}0O8=Hh1AbSrv5L1 zG}rCScSpZR-`01*{J+gEVBFn?{f1}B{kbBAT z1;I`qkM+WOSJ<2e63InCjs|rJGn(J=44dIW9SLs3__tHFQZyDJZH_|fIn4#0Ft+8e z=@yw0UlxCZcWfLE>b-8$VCoI{z*qmP2+_qT&M)0ygXYgxGiQ*nI;Lk4ymp+CcGaSU}xIG;aBLO3={}8q}v| z>7c%WIFTXuk>nvcjA+2BXw=1?NQQqz;36lIjmI82_B_oAaT;VMb1cj-N7(a#N5G8G z5z2^s!lu@k$i|>;TR54g&3q84iqEGMFL@u`tpyjwJuw6Zy}@CoufWFFCnDmXxzU=%1GUMI1n4#El0s;>1df zpOG>%8ZkzI9p{P)Nx;1Gx&bk4kJ@)2P*L$lZ9mK-F~-!3unj$*&P=ku>&xbx|> z^)Gq0e?q@LT+P$DA@{UHamHkmPL)45v2C*u%wH?9=@1u(p4`&Ewq}&fw2+iA7%@a~1}d&Z$GCS=C9GB?MH^=}MqBRNDsoHyuvEV+hwS z)ph6$*${~Yxby8fkaDRIZr7sEhwV>E* zm~kYiZy|L{j5IQ(|f`1xV8z>8Tn)XRDshhR`Zu9Bf{GcX#JTCZ{d zf6vlHnM7LK!%-+D^92Zoy3`NCB!U|N1nwF3LKV^rfh^%UW-pRh*#z*2bvgh*l*2?gno?P<0S98gB$dMdUG!7T?+_M{ zF0k|JL_&WRna3?O=Xc6|B0Zx3kEwAM3tq{4733_)BoN(b;E_s`UqV>$$2jh!_*Vpj zC4^-hax$YV6gR->7qGc5M%pZ6`&IEUC1?eO>0l~xU{s)MsDXf~E}f1G)lU-ar$9(F z)nsc-T~+8nc9UR>HxX(W06R*8aRu={P=X2x!+&hwCiWCVa8U`_--e3ESdfzuIJ|-} zD-8Oq-HLbtN6xUK9A`$9(t7!@X#h$GWfG_wQPp)S@|g+RxmPG%#ex+WvwA?0N|anr zHa4Xeqd>z~UR)peR>D5PLb6jUtfNdb@iMcoEA2;3FWApD3>n+WS;bTBVMRX5nvHr- z&F(1#@-`CHjd85!L6Fw*{R2-wCrL8#IuOG zk`Ps-m3f-W*;MCSfEV(s0+lDCDD*r-URN$E7=Wz%o!GL1hY0#|Y*cH)fnxi!#M7XH z6$O78KKhlrp-%Lns9?YV{|gqtTFPxYlLBJDtBjlA7m4jBQF1u^cyclv_HNIab*F%NEJc1&PbMsBE3kglHLPks2i@S=+0K63EcAL=d)p=4u(qAcS zy4Z1{lMVghw3$r(3E@=25%~-XlpD;UdMh@gJ?ayP!)93Bh*n;arg(LKGv>Uy_3+wJ!L+xA|jn=YyJ47C%} zlt;R|i@rir9xYRhI_wInQSPO@Q=$6q>I7=-cyiz*5Z}+!<-N^_DdkKCQv3L3JJI?0A yhxu&eZlArs*pm2b|5IIEMF05d$4lIEuW_t3u-3p@18WWBHSiybvL)33C;$M=Pf#%c literal 0 HcmV?d00001 diff --git a/lib/WebGUI/Account/Inbox.pm b/lib/WebGUI/Account/Inbox.pm index 57d6b5af1..49ca9128a 100644 --- a/lib/WebGUI/Account/Inbox.pm +++ b/lib/WebGUI/Account/Inbox.pm @@ -623,6 +623,79 @@ sub www_deleteMessages { #------------------------------------------------------------------- +=head2 www_actOnMessages ( ) + +Acts on a list of messages selected for the current user + +=cut + +sub www_actOnMessages { + my $self = shift; + my $session = $self->session; + my $action = $session->form->process( 'action' ); + my $i18n = WebGUI::International->new( $session, 'Account_Inbox' ); + + my %handler = ( + $i18n->get( 'delete label' ) => \&www_deleteMessages, + $i18n->get( 'mark as read label' ) => \&www_markAsReadMessages, + $i18n->get( 'mark as unread label' ) => \&www_markAsUnreadMessages, + ); + if ( defined $action && length $action && defined $handler{$action} ) { + return $handler{$action}->( $self, @_ ); + } + return $self->www_view(); +} + +#------------------------------------------------------------------- + +=head2 www_markAsReadMessages ( ) + +Marks a list of messages selected for the current user as read + +=cut + +sub www_markAsReadMessages { + my $self = shift; + my $session = $self->session; + + $self->store->{tab} = 'inbox'; + + my @messages = $session->form->process( 'message', 'checkList' ); + + foreach my $messageId ( @messages ) { + my $message = WebGUI::Inbox::Message->new( $session, $messageId ); + $message->setRead; + } + + return $self->www_view(); +} + +#------------------------------------------------------------------- + +=head2 www_markAsUnreadMessages ( ) + +Marks a list of messages selected for the current user as unread + +=cut + +sub www_markAsUnreadMessages { + my $self = shift; + my $session = $self->session; + + $self->store->{tab} = 'inbox'; + + my @messages = $session->form->process( 'message', 'checkList' ); + + foreach my $messageId ( @messages ) { + my $message = WebGUI::Inbox::Message->new( $session, $messageId ); + $message->setUnread; + } + + return $self->www_view(); +} + +#------------------------------------------------------------------- + =head2 www_inviteUser ( ) Form for inviting a user to join the site. @@ -1259,7 +1332,7 @@ sub www_view { }); $var->{'form_header'} = WebGUI::Form::formHeader($session,{ - action => $self->getUrl("module=inbox;do=deleteMessages") + action => $self->getUrl("module=inbox;do=actOnMessages") }); $var->{'form_footer'} = WebGUI::Form::formFooter($session); diff --git a/lib/WebGUI/i18n/English/Account_Inbox.pm b/lib/WebGUI/i18n/English/Account_Inbox.pm index 142cafaeb..28a089fec 100644 --- a/lib/WebGUI/i18n/English/Account_Inbox.pm +++ b/lib/WebGUI/i18n/English/Account_Inbox.pm @@ -3,6 +3,16 @@ use strict; our $I18N = { + 'mark as read label' => { + message => q{Mark as Read}, + lastUpdated => 12411788761, + }, + + 'mark as unread label' => { + message => q{Mark as Unread}, + lastUpdated => 12411788761, + }, + 'title' => { message => q{Inbox}, lastUpdated => 1225724810, @@ -265,11 +275,6 @@ our $I18N = { lastUpdated => 1119068809 }, - 'delete label' => { - message => q{Delete}, - lastUpdated => 1119068809 - }, - 'cancel label' => { message => q{Cancel}, lastUpdated => 1119068809