From 0d1b0fe7ac62f179ed3458d8ae4739ed58068a51 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Thu, 9 Dec 2010 14:10:19 +0100 Subject: [PATCH] Add sortable YUI data table to bounce score overview. --- lib/WebGUI/Mailing/Bounce.pm | 62 ++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/lib/WebGUI/Mailing/Bounce.pm b/lib/WebGUI/Mailing/Bounce.pm index c76b572..422cc23 100644 --- a/lib/WebGUI/Mailing/Bounce.pm +++ b/lib/WebGUI/Mailing/Bounce.pm @@ -86,21 +86,77 @@ EOSQL my $sth = $db->read( $sql, [ $windowSize, $windowSize - 1 ] ); - my $output = '
' + my $output = '
'; + . ''; while ( my $values = $sth->arrayRef ) { $output .= ''; } - $output .= '
' . join( '', $i18n->get('email'), $i18n->get('bounce score'), $i18n->get('bounce reason'), $i18n->get('bounce message') ) - . '
'. join( '', @$values ) . '
'; + $output .= '
'; + + $self->addBounceScoreTableJS; return WebGUI::Mailing::Admin->new( $session )->getAdminConsole->render( $output, $i18n->get( 'bounce scores' ) ); } +sub addBounceScoreTableJS { + my $self = shift; + my ($style, $url) = $self->session->quick( qw{ style url } ); + my $i18n = WebGUI::International->new( $self->session, 'MailingManager' ); + + my $emailLabel = $i18n->get('email'); + my $scoreLabel = $i18n->get('bounce score'); + my $reasonLabel = $i18n->get('bounce reason'); + my $messageLabel= $i18n->get('bounce message'); + + my $js = < + // + +EOJS + + $style->setLink( $url->extras('yui/build/datatable/assets/skins/sam/datatable.css'), { type => 'text/css', rel => 'stylesheet' } ); + $style->setScript( $url->extras('yui/build/yahoo-dom-event/yahoo-dom-event.js'), { type => 'text/javascript' } ); + $style->setScript( $url->extras('yui/build/element/element-min.js'), { type => 'text/javascript' } ); + $style->setScript( $url->extras('yui/build/datasource/datasource-min.js'), { type => 'text/javascript' } ); + $style->setScript( $url->extras('yui/build/datatable/datatable-min.js'), { type => 'text/javascript' } ); + $style->setRawHeadTags( $js ); + + return; +} + + 1;