mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Created 'other' option on payments page, showed and hid dropdown, accordingly.
This commit is contained in:
parent
40ee3c8b40
commit
0143881732
@ -229,16 +229,21 @@ class AccountController extends \BaseController {
|
||||
|
||||
foreach($recommendedGateways as $recommendedGateway)
|
||||
{
|
||||
$newRow = count($recommendedGatewayArray) + 1 == round(count($recommendedGateways) / 2);
|
||||
|
||||
$arrayItem = array(
|
||||
'value' => $recommendedGateway->id,
|
||||
'other' => 'false',
|
||||
'data-imageUrl' => $recommendedGateway->getLogoUrl(),
|
||||
'data-siteUrl' => $recommendedGateway->site_url,
|
||||
'data-newRow' => $newRow
|
||||
'data-siteUrl' => $recommendedGateway->site_url
|
||||
);
|
||||
$recommendedGatewayArray[$recommendedGateway->name] = $arrayItem;
|
||||
}
|
||||
$otherItem = array(
|
||||
'value' => 1000000,
|
||||
'other' => 'true',
|
||||
'data-imageUrl' => '',
|
||||
'data-siteUrl' => ''
|
||||
);
|
||||
$recommendedGatewayArray['other'] = $otherItem;
|
||||
|
||||
$data = [
|
||||
'account' => $account,
|
||||
@ -247,6 +252,10 @@ class AccountController extends \BaseController {
|
||||
'gateways' => Gateway::remember(DEFAULT_QUERY_CACHE)
|
||||
->orderBy('name')
|
||||
->get(),
|
||||
'dropdownGateways' => Gateway::remember(DEFAULT_QUERY_CACHE)
|
||||
->where('recommended', '=', '0')
|
||||
->orderBy('name')
|
||||
->get(),
|
||||
'recommendedGateways' => $recommendedGatewayArray,
|
||||
];
|
||||
|
||||
@ -580,8 +589,9 @@ class AccountController extends \BaseController {
|
||||
private function savePayments()
|
||||
{
|
||||
$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);
|
||||
|
||||
|
@ -12,16 +12,10 @@
|
||||
{{ Former::legend('Payment Gateway') }}
|
||||
|
||||
{{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)
|
||||
{{ Former::populateField('gateway_id', $accountGateway->gateway_id) }}
|
||||
{{ Former::populateField('recommendedGateway_id', $accountGateway->gateway_id) }}
|
||||
@foreach ($accountGateway->fields as $field => $junk)
|
||||
@if (in_array($field, ['solutionType', 'landingPage', 'headerImageUrl', 'brandName']))
|
||||
{{-- do nothing --}}
|
||||
@ -30,10 +24,17 @@
|
||||
@endif
|
||||
@endforeach
|
||||
@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('', '')
|
||||
->dataClass('gateway-dropdown')
|
||||
->fromQuery($gateways, 'name', 'id')
|
||||
->fromQuery($dropdownGateways, 'name', 'id')
|
||||
->onchange('setFieldsShown()'); }}
|
||||
|
||||
@foreach ($gateways as $gateway)
|
||||
@ -63,16 +64,18 @@
|
||||
<script type="text/javascript">
|
||||
|
||||
function setFieldsShown() {
|
||||
var val = $('#gateway_id').val();
|
||||
var activeElement = $('.recommended-gateway[value=' + val + ']');
|
||||
var recommendedRadios = $('#recommendedGateway_id');
|
||||
var recommendedVal = $('input:radio[name=recommendedGateway_id]:checked').val();
|
||||
var gatewayVal = $('#gateway_id').val();
|
||||
var val = recommendedVal && recommendedVal != 1000000 ? recommendedVal : gatewayVal;
|
||||
|
||||
$('.gateway-fields').hide();
|
||||
$('#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(
|
||||
function(){
|
||||
var recVal = $(this).val();
|
||||
$('#gateway_id').val(recVal);
|
||||
|
||||
if(recVal == 1000000)
|
||||
{
|
||||
$('#gateway_id').parent().parent().show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#gateway_id').parent().parent().hide();
|
||||
}
|
||||
|
||||
setFieldsShown();
|
||||
}
|
||||
);
|
||||
|
||||
$('select[data-class=gateway-dropdown]').change(function(){
|
||||
$('.recommended-gateway').attr('checked', false);
|
||||
var activeElement = $('.recommended-gateway[value=' + $(this).val() + ']');
|
||||
|
||||
if(activeElement)
|
||||
{
|
||||
activeElement.attr('checked', true);
|
||||
}
|
||||
});
|
||||
|
||||
$('.recommended-gateway').each(function(){
|
||||
$('.recommended-gateway[other != true]').each(function(){
|
||||
var contents = $(this).parent().contents();
|
||||
contents[contents.length - 1].nodeValue = '';
|
||||
$(this).after('<img src="' +$(this).attr('data-imageUrl') + '" /><br />');
|
||||
$(this).parent().children().last().after('<a href="' + $(this).attr('data-siteUrl') + '">Create an account</a>');
|
||||
if($(this).attr('data-newRow') && true)
|
||||
{
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user