Apache-App-Mercury

 view release on metacpan or  search on metacpan

Mercury/Display.pm  view on Meta::CPAN

	? $self->{$self->{'current_box'}}->{'msgs'}->{$msg}->{'subject'}
	: '(no subject)'));
    $self->{controller}->pagebody($self->display_message);
}

sub show_mail_settings {
    my ($self) = @_;

    $self->{controller}->pagetitle(Apache::App::Mercury::Config::APPLICATION_NAME()." - Settings");
    $self->{controller}->pagebody($self->display_mail_settings);
}

############################ Sub Display Methods ############################

sub display_center_in_table {
    my ($self) = @_;
    my $q = $self->{q};

    return
      ($q->div({-align => 'center'}, $q->h2("Message Center")) .
       $q->hr({-width => '80%', -align => 'center'}) .
       $q->startform(-action => BASE_URI) .
       $q->table({-cellspacing => 0, -cellpadding => 2,
		  -border => 3, -width => '100%'},
		 $q->Tr($q->td({-valign => 'top', -width => '90%'},
			       $self->display_msglist) .
			$q->td({-width => 2, -bgcolor => '#999999'}, ' ').
			$q->td({-align => 'right', -valign => 'top',
				-width => '9%', -bgcolor => '#cccccc'},
			       $self->display_center_overview .
			       $self->display_center_menu))) .
       $q->endform);
}

sub display_center_overview {
    my ($self, $labels) = @_;
    my $q = $self->{q};

    $labels = { map { $_ => ucfirst($_) } @{$self->{'mailboxes'}} }
        if !$labels or ref $labels ne 'HASH';

    my $color = '#ffffff';

    return
      ($q->table
       ({-cellspacing => 1, -border => 2},
	$q->Tr
	([$q->th({-align => 'left', -bgcolor => '#cc6699'},
		 [ $q->font({-size => '-1'}, "Mailbox"),
		   $q->font({-size => '-1'}, "Msgs"),
		   $q->font({-size => '-1'}, "Unread") ]),
	  (map {
	      my $bgcol = $color;
	      $color = ($color eq '#ffffff' ? '#ffccff' : '#ffffff');
	      my ($tot_unread, $box_unread) = $self->count_unread(undef, $_);
	      ($q->td({-bgcolor => $bgcol, -nowrap},
		      $q->font({-size => '-1'},
			       ($_ eq $self->{'current_box'}
				? $q->strong('* '.$labels->{$_}.' *')
				: $q->a({-href => BASE_URI."?mailbox=".
					 $self->uri_escape_noamp($_)},
					$labels->{$_})))) .
	       $q->td({-bgcolor => $bgcol, -align => 'right'},
		      $q->font({-size => '-1'}, $#{$self->{$_}->{'index'}}+1)).
	       $q->td({-bgcolor => $bgcol, -align => 'right'},
		      $q->font({-size => '-1'},
			       ($box_unread > 0
				? $q->strong($q->span({-class => 'msgunread'},
						      $box_unread))
				: ($_ ne 'outbox' ? '0' : '-')))))
	  } @{$self->{'mailboxes'}})
	 ])
       )
      );
}

sub display_center_menu {
    my ($self, $labels) = @_;
    my $q = $self->{q};

    my $last_time = localtime($self->{'last_mail_check'});
    my $box = $self->{'current_box'};

    # only allow message transfering if more than just in and out boxes
    # never allow transfering to  or from outbox
    my (@transfer_boxes, $lbls);
    if (($#{$self->{'mailboxes'}} >= 2) and ($box ne 'outbox')) {
	foreach (@{$self->{'mailboxes'}}) {
	    if (($_ ne 'outbox') and ($_ ne $box)) {
		push(@transfer_boxes, $_);
		$lbls->{$_} = ucfirst($_);
	    }
	}
	$labels = $lbls if !$labels or ref $labels ne 'HASH';
    }

    my $msg_in_progress =
      ref $self->{compose_msg} eq "Apache::App::Mercury::Message";

    return
      ($q->table
       ({-cellspacing => 0, -cellpadding => 0,
	 -border => 0, -bgcolor => '#cccccc'},
	$q->Tr
	([$q->td({-align => 'right'},
		 $q->font({-size => '-1'},
			  $q->a({-href => BASE_URI.'?edit_mail_prefs=1'},
				"Edit mail settings"))),
	  $q->td({-align => 'right'},
		 $q->hr({-width => '50%', -align => 'right', -size => 1})),
	  $q->td({-align => 'right'},
		 $q->font({-size => '-1'},
			  $q->submit('check_mail', "Check mail"))),
	  $q->td({-align => 'right'},
		 $q->font({-size => '-1'},
			  $q->em("Mail last checked at:".$q->br.
				 $q->u($last_time)))),
	  $q->td({-align => 'right'},
		 $q->hr({-width => '50%', -align => 'right', -size => 1})),
	  $q->td({-align => 'right'},
		 $q->font({-size => '-1'},



( run in 0.514 second using v1.01-cache-2.11-cpan-5b529ec07f3 )