diff options
| author | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:14:41 -0500 |
|---|---|---|
| committer | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:14:41 -0500 |
| commit | e9192b3d42660a5781101df4357d276318151e8a (patch) | |
| tree | 059eb6ace6147cf9559af74ed1ab5e221c80e280 /lib/message.pm | |
| parent | 79670053c7247d3a49b607960efd284e93f057e5 (diff) | |
cgi-bin & lib
Diffstat (limited to 'lib/message.pm')
| -rw-r--r-- | lib/message.pm | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/lib/message.pm b/lib/message.pm new file mode 100644 index 0000000..4dad0d6 --- /dev/null +++ b/lib/message.pm @@ -0,0 +1,195 @@ +sub send_message + { + my ($message) = @_; + new_message("$sender.outbox", $message); + new_message("$recipient.inbox", $message); + } + +sub display_message + { + my $message = shift; + my $image = get_profile_image($message->{sender}, $AVATAR_MED_PREFIX); + print qq!<center>!; + print qq!<table width=400 border=0 cellpadding=0 cellspacing=0>!; + print qq!<tr><td class="bluebox">!; + + print qq(<table width=100% border=0 cellpadding=0 cellspacing=0>); + print qq(<tr>); + if ($image != -1) + { + print qq(<td rowspan=2 align="left" valign="middle" width=).($AVATAR_MED_WIDTH+10).qq(>); + print qq(<a href="$BUCKY/profile/$message->{sender}">); + print qq(<img src="$image" width="$AVATAR_MED_WIDTH" height="$AVATAR_MED_WIDTH" border=1">); + print qq(</a>); + print qq(</td>); + } + + print qq!<td align=left valign=bottom>!; + print qq!<b><big>$message->{subject}</big></b>!; + print qq!</td></tr>!; + print qq!<tr><td align=left valign=top>!; + print qq!<small>!; + print qq!sent by <a href="$BUCKY/profile/$message->{sender}">$message->{sender}</a> !; + print qq!on </small>!.(verbosedate($message->{date})); +# print qq! <small>(!.get_age($message->{date}).qq! ago)</small>!; + print qq!</td></tr>!; + + print qq!<tr><td colspan=2>!; + print qq!<hr noshade color="$BUCKY_COLOR_HR">!; + print qq!</td></tr>!; + + print qq!<tr><td align=left valign=top height=310 colspan=2 style="padding: 0px 20px 0px 20px;">\n!; + print linebr($message->{body}); + print qq!</td></tr>!; + + print qq!<tr><td colspan=2>!; + print qq!<hr noshade color="$BUCKY_COLOR_HR">!; + print qq!</td></tr>!; + + print qq!<tr><td align=right colspan=2>!; + print qq!<small>!; + if ($message->{mbox} =~ /drafts/) + { + print qq{[<a href="$BUCKY/message?c=r&id=$message->{id}">edit</a>] }; + } + else + { + print qq{[<a href="$BUCKY/message?c=r&id=$message->{id}">reply</a>] }; + } + print qq![<a href="$BUCKY/message?c=d&id=$message->{id}">delete</a>]!; + print qq!</small>!; + print qq!</td></tr>!; + print qq!</td></tr></table>!; + print qq!</center>!; + } + +sub message_list + { + my ($messages, $box) = @_; + my $r = 0; + + if ($DEBUG) + { + print qq!Printing message list. Message ids:!; + for (my $i = 0; $i < @$messages; $i++) + { print $messages->[$i]->{id}." "; } + print qq!<p>\n\n!; + } + + if ($messages == -1) + { + print qq[<br><span style="margin-left: 50px;"><b><big>No messages in this mailbox!</big></b></span>]; + return; + } + + print qq!<table border=0 cellpadding=0 cellspacing=0 class="threadmain" width=750>!; + + foreach my $message (@$messages) + { + display_message_row($message, $box, $r); + $r = $r ? 0 : 1; + } + + print "</table>\n\n"; + } + +sub display_message_row + { + my ($m, $box, $r) = @_; + my $color = carbondate($m->{date}); + + if ($DEBUG) + { + print qq!Displaying message $m->{id}\n!; + } + + print qq[<tr>]; + + print qq[<td align="right" valign="middle" nowrap> ]; + print "<small>"; + if ($m->{sender} eq "system") + { + print qq(system); + } + elsif ($m->{sender} eq $USER->{username}) + { + print qq[to <a href="$BUCKY/profile/$m->{recipient}" class="quietlink">$m->{recipient}</a>]; + } + else + { + print qq[<a href="$BUCKY/profile/$$m{sender}" class="quietlink">$$m{sender}</a>]; + } + print qq[ · ]; + print "</small>"; + print "</td>"; + + print qq[<td align="left" valign="middle" nowrap class="plain$r" width=300 nowrap>]; + print qq[<span class="threadname" style="white-space:nowrap;">]; + if ($$m{unread}) + { print qq[<b><a href="$BUCKY/inbox/$m->{id}">$m->{subject}</a></b>]; } + else + { print qq[<a href="$BUCKY/inbox/$m->{id}">$m->{subject}</a>]; } + print qq[</span>]; + print "</td>"; + + my ($tddate, $tdtime) = verbosedatetime($m->{date}); + print qq[<td align="right" valign="middle" nowrap style="padding-right: 0px; margin-right: 0px;">]; + print qq[<span class="$color">$tddate </span>]; + print "</td>"; + print qq[<td align="left" valign="middle" nowrap style="padding-left: 0px; margin-left: 0px; padding-top: 2px;">]; + print qq[<span class="$color"><small>$tdtime</small></span>]; + print "</td>"; + + print qq[<td align="right" valign="middle" nowrap style="padding-right: 10px; margin-left: 0px; padding-top: 2px;">]; + print qq[<small>].hushsize($m->{size},.0000001,1).qq[</small>]; + print "</td>"; + + print qq[<td align=left valign=middle><small>]; + if ($box =~ /drafts/) + { + print qq{[<a href="$BUCKY/message?c=r&id=$m->{id}">edit</a>] }; + } + else + { + print qq{[<a href="$BUCKY/message?c=r&id=$m->{id}">reply</a>] }; + } + print qq{[<a href="$BUCKY/message?c=d&id=$m->{id}">delete</a>]}; + print qq[</small></td>]; + + print qq[</tr>\n]; + } + +# sort methods +# title, date, size, files, username + +sub get_sort_method + { + my ($s, $o) = @_; + + if ($o eq "a") + { + if ($s eq "t") { return \&sort_by_subject; } + elsif ($s eq "s") { return \&sort_by_sender; } + elsif ($s eq "d") { return \&sort_by_date; } + } + elsif ($o eq "d") + { + if ($s eq "t") { return \&rsort_by_subject; } + elsif ($s eq "s") { return \&rsort_by_sender; } + elsif ($s eq "d") { return \&rsort_by_date; } + } + else + { return \&rsort_by_date; } + } + +sub sort_by_subject { sort { uc($a->{subject}) cmp uc($b->{subject}) } @_; } +sub rsort_by_subject { sort { uc($b->{subject}) cmp uc($a->{subject}) } @_; } +sub sort_by_date { sort { $a->{date} <=> $b->{date} } @_; } +sub rsort_by_date { sort { $b->{date} <=> $a->{date} } @_; } +sub sort_by_sender { sort { uc($a->{sender}) cmp uc($b->{sender}) } @_; } +sub rsort_by_sender { sort { uc($b->{sender}) cmp uc($a->{sender}) } @_; } + + +1; + + |
