Created 'other' option on payments page, showed and hid dropdown, accordingly.

This commit is contained in:
blkmutt 2014-04-12 18:49:18 -04:00
parent 40ee3c8b40
commit 0143881732
2 changed files with 42 additions and 34 deletions

View File

@ -229,16 +229,21 @@ class AccountController extends \BaseController {
foreach($recommendedGateways as $recommendedGateway) foreach($recommendedGateways as $recommendedGateway)
{ {
$newRow = count($recommendedGatewayArray) + 1 == round(count($recommendedGateways) / 2);
$arrayItem = array( $arrayItem = array(
'value' => $recommendedGateway->id, 'value' => $recommendedGateway->id,
'other' => 'false',
'data-imageUrl' => $recommendedGateway->getLogoUrl(), 'data-imageUrl' => $recommendedGateway->getLogoUrl(),
'data-siteUrl' => $recommendedGateway->site_url, 'data-siteUrl' => $recommendedGateway->site_url
'data-newRow' => $newRow
); );
$recommendedGatewayArray[$recommendedGateway->name] = $arrayItem; $recommendedGatewayArray[$recommendedGateway->name] = $arrayItem;
} }
$otherItem = array(
'value' => 1000000,
'other' => 'true',
'data-imageUrl' => '',
'data-siteUrl' => ''
);
$recommendedGatewayArray['other'] = $otherItem;
$data = [ $data = [
'account' => $account, 'account' => $account,
@ -247,6 +252,10 @@ class AccountController extends \BaseController {
'gateways' => Gateway::remember(DEFAULT_QUERY_CACHE) 'gateways' => Gateway::remember(DEFAULT_QUERY_CACHE)
->orderBy('name') ->orderBy('name')
->get(), ->get(),
'dropdownGateways' => Gateway::remember(DEFAULT_QUERY_CACHE)
->where('recommended', '=', '0')
->orderBy('name')
->get(),
'recommendedGateways' => $recommendedGatewayArray, 'recommendedGateways' => $recommendedGatewayArray,
]; ];
@ -580,8 +589,9 @@ class AccountController extends \BaseController {
private function savePayments() private function savePayments()
{ {
$rules = array(); $rules = array();
$recommendedId = Input::get('recommendedGateway_id');
if ($gatewayId = Input::get('gateway_id')) if ($gatewayId = $recommendedId == 1000000 ? Input::get('gateway_id') : $recommendedId)
{ {
$gateway = Gateway::findOrFail($gatewayId); $gateway = Gateway::findOrFail($gatewayId);

View File

@ -13,15 +13,9 @@
{{Former::label('Lorem Ipsum goes here.')}} {{Former::label('Lorem Ipsum goes here.')}}
<div class="two-column">
{{ Former::radios('recommendedGateway_id')
->label('Recommended Gateways')
->radios($recommendedGateways)
->class('recommended-gateway')}}
</div>
@if ($accountGateway) @if ($accountGateway)
{{ Former::populateField('gateway_id', $accountGateway->gateway_id) }} {{ Former::populateField('gateway_id', $accountGateway->gateway_id) }}
{{ Former::populateField('recommendedGateway_id', $accountGateway->gateway_id) }}
@foreach ($accountGateway->fields as $field => $junk) @foreach ($accountGateway->fields as $field => $junk)
@if (in_array($field, ['solutionType', 'landingPage', 'headerImageUrl', 'brandName'])) @if (in_array($field, ['solutionType', 'landingPage', 'headerImageUrl', 'brandName']))
{{-- do nothing --}} {{-- do nothing --}}
@ -31,9 +25,16 @@
@endforeach @endforeach
@endif @endif
<div class="two-column">
{{ Former::radios('recommendedGateway_id')
->label('Recommended Gateways')
->radios($recommendedGateways)
->class('recommended-gateway')}}
</div>
{{ Former::select('gateway_id')->label('PayPal & Other Gateways')->addOption('', '') {{ Former::select('gateway_id')->label('PayPal & Other Gateways')->addOption('', '')
->dataClass('gateway-dropdown') ->dataClass('gateway-dropdown')
->fromQuery($gateways, 'name', 'id') ->fromQuery($dropdownGateways, 'name', 'id')
->onchange('setFieldsShown()'); }} ->onchange('setFieldsShown()'); }}
@foreach ($gateways as $gateway) @foreach ($gateways as $gateway)
@ -63,16 +64,18 @@
<script type="text/javascript"> <script type="text/javascript">
function setFieldsShown() { function setFieldsShown() {
var val = $('#gateway_id').val(); var recommendedVal = $('input:radio[name=recommendedGateway_id]:checked').val();
var activeElement = $('.recommended-gateway[value=' + val + ']'); var gatewayVal = $('#gateway_id').val();
var recommendedRadios = $('#recommendedGateway_id'); var val = recommendedVal && recommendedVal != 1000000 ? recommendedVal : gatewayVal;
$('.gateway-fields').hide(); $('.gateway-fields').hide();
$('#gateway_' + val + '_div').show(); $('#gateway_' + val + '_div').show();
if(activeElement && !activeElement.attr('checked')) $('#gateway_id').parent().parent().hide();
if(!$('input:radio[name=recommendedGateway_id][value!=1000000]:checked').val())
{ {
activeElement.attr('checked', true); $('.recommended-gateway[value=1000000]').attr('checked', true);
$('#gateway_id').parent().parent().show();
} }
} }
@ -80,30 +83,25 @@
$('.recommended-gateway').change( $('.recommended-gateway').change(
function(){ function(){
var recVal = $(this).val(); var recVal = $(this).val();
$('#gateway_id').val(recVal);
if(recVal == 1000000)
{
$('#gateway_id').parent().parent().show();
}
else
{
$('#gateway_id').parent().parent().hide();
}
setFieldsShown(); setFieldsShown();
} }
); );
$('select[data-class=gateway-dropdown]').change(function(){ $('.recommended-gateway[other != true]').each(function(){
$('.recommended-gateway').attr('checked', false);
var activeElement = $('.recommended-gateway[value=' + $(this).val() + ']');
if(activeElement)
{
activeElement.attr('checked', true);
}
});
$('.recommended-gateway').each(function(){
var contents = $(this).parent().contents(); var contents = $(this).parent().contents();
contents[contents.length - 1].nodeValue = ''; contents[contents.length - 1].nodeValue = '';
$(this).after('<img src="' +$(this).attr('data-imageUrl') + '" /><br />'); $(this).after('<img src="' +$(this).attr('data-imageUrl') + '" /><br />');
$(this).parent().children().last().after('<a href="' + $(this).attr('data-siteUrl') + '">Create an account</a>'); $(this).parent().children().last().after('<a href="' + $(this).attr('data-siteUrl') + '">Create an account</a>');
if($(this).attr('data-newRow') && true)
{
}
}); });