migrate listSubscriptionCodes to FormBuilder

This commit is contained in:
Doug Bell 2011-01-25 17:18:19 -06:00
parent 7b383ec391
commit d35e128528
2 changed files with 73 additions and 14 deletions

View file

@ -858,13 +858,13 @@ sub www_listSubscriptionCodes {
# Build a subscription code selection form
my $f = WebGUI::HTMLForm->new( $session );
$f->hidden(
my $f = WebGUI::FormBuilder->new( $session, action => $self->getUrl );
$f->addField( "hidden",
name => 'func',
value => 'listSubscriptionCodes',
);
#--- Selection by date created
$f->readOnly(
#--- Selection by date used
$f->addField( "readOnly",
label =>
WebGUI::Form::radio( $session, { name => 'selection', value => 'du', checked => ($selection eq 'du') } )
. $i18n->get('selection used'),
@ -873,8 +873,8 @@ sub www_listSubscriptionCodes {
. ' ' . $i18n->get( 'and' ) . ' '
. WebGUI::Form::date( $session, { name => 'duStop', value=> $duStop } ),
);
#--- Selection by date used
$f->readOnly(
#--- Selection by date created
$f->addField( "readOnly",
label =>
WebGUI::Form::radio( $session, { name => 'selection', value => 'dc', checked => ($selection eq 'dc') } )
. $i18n->get('selection created'),
@ -884,7 +884,7 @@ sub www_listSubscriptionCodes {
. WebGUI::Form::date( $session, { name => 'dcStop', value=> $dcStop } ),
);
#--- Selection by batch
$f->readOnly(
$f->addField( "readOnly",
label =>
WebGUI::Form::radio( $session, { name => 'selection', value => 'b', checked => ($selection eq 'b') } )
. $i18n->get('selection batch name'),
@ -892,10 +892,13 @@ sub www_listSubscriptionCodes {
WebGUI::Form::selectBox( $session, { name => 'bid', value => $batchId, options => $batches } ),
);
#--- Submit button
$f->submit(
$f->addField( "submit",
value => $i18n->get('select'),
);
$output = $i18n->get('selection message');
$output .= $f->toHtml;
if ($session->form->process("selection") eq 'du') {
$where = " and dateUsed >= ".$session->db->quote($duStart)." and dateUsed <= ".$session->db->quote($duStop);
$ops = ';duStart='.$session->form->process('duStart').';duStop='.$session->form->process('duStop').';selection=du';
@ -909,7 +912,7 @@ sub www_listSubscriptionCodes {
$ops = ';bid='.$session->form->process("bid").';selection=b';
$delete = '<a href="'.$self->getUrl('func=deleteSubscriptionCodeBatch'.$ops).'">'.$i18n->get('delete codes').'</a>';
} else {
return $self->getAdminConsoleWithSubmenu->render( $output, $i18n->get('listSubscriptionCodes title') );
return $output;
}
$p = WebGUI::Paginator->new( $session, $self->getUrl('func=listSubscriptionCodes'.$ops) );
@ -924,8 +927,6 @@ sub www_listSubscriptionCodes {
$codes = $p->getPageData;
$output = $i18n->get('selection message');
$output .= $f->print;
$output .= '<br />'.$delete.'<br />' if ($delete) and $p->getRowCount;
$output .= $p->getBarTraditional($session->form->process("pn"));
$output .= '<br />';
@ -947,7 +948,7 @@ sub www_listSubscriptionCodes {
$output .= '</table>';
$output .= $p->getBarTraditional($session->form->process("pn"));
return $self->getAdminConsoleWithSubmenu->render( $output, $i18n->get('listSubscriptionCodes title') );
return $output;
}

View file

@ -35,7 +35,7 @@ WebGUI::Test->addToCleanup($user);
#----------------------------------------------------------------------------
# Tests
plan tests => 16; # Increment this number for each test you create
plan tests => 32; # Increment this number for each test you create
#----------------------------------------------------------------------------
# put your tests here
@ -133,7 +133,7 @@ $mech->get_ok( '/' );
$mech->session->user({ userId => 3 });
# Add another code for the selection
$session->db->setRow( 'Subscription_codeBatch', 'batchId', {
my $batchId = $session->db->setRow( 'Subscription_codeBatch', 'batchId', {
batchId => 'new',
name => "Fired!",
description => "Sign up to get fired!",
@ -156,4 +156,62 @@ $mech->content_lacks( "Sign up to get your paycheck!" );
$mech->text_contains( "Sign up to get fired!" );
#----------------------------------------------------------------------------
# www_listSubscriptionCodes
my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file );
$mech->get_ok( '/' );
$mech->session->user({ userId => 3 });
# Add more codes for the selection
my $codeId = $session->db->setRow( 'Subscription_code', 'code', {
batchId => $batchId,
usedBy => 3,
dateUsed => time+150,
}, "1234567890qwertyuiopasdfghjklzxcvbnm" );
# Limit by dateCreated
$mech->get_ok( $sku->getUrl( 'func=listSubscriptionCodes' ) );
$mech->submit_form_ok( {
fields => {
selection => "dc",
dcStart => time+1000,
dcStop => time+2000,
},
}, 'limit subscription code batches by date created' );
# The codes are there
$mech->content_lacks( $codes->[0]{code} );
$mech->content_lacks( $codes->[1]{code} );
$mech->content_contains( $codeId );
# Limit by dateUsed
$mech->get_ok( $sku->getUrl( 'func=listSubscriptionCodes' ) );
$mech->submit_form_ok( {
fields => {
selection => "du",
duStart => time+100,
duStop => time+200,
},
}, 'limit subscription code batches by date used' );
# The codes are there
$mech->content_lacks( $codes->[0]{code} );
$mech->content_lacks( $codes->[1]{code} );
$mech->content_contains( $codeId );
# Limit by batchId
$mech->get_ok( $sku->getUrl( 'func=listSubscriptionCodes' ) );
$mech->submit_form_ok( {
fields => {
selection => "b",
bid => $batches->[0]{batchId},
},
}, 'limit subscription code batches by batchId' );
# The codes are there
$mech->content_contains( $codes->[0]{code} );
$mech->content_contains( $codes->[1]{code} );
$mech->content_lacks( $codeId );