mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-29 22:47:42 +00:00 
			
		
		
		
	Piggy [skip ci]
This commit is contained in:
		| @@ -1,7 +1,8 @@ | |||||||
| $(function () { | $(function () { | ||||||
|  |  | ||||||
|     $('input[type="range"]').on('input', inputAmount); |     $('input[type="range"]').on('input', inputRange); | ||||||
|     $('input[type="range"]').on('change', changeAmount); |     $('input[type="range"]').on('change', updateAmount); | ||||||
|  |     $('input[type="number"]').on('input',inputNumber); | ||||||
|  |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| @@ -10,40 +11,80 @@ $(function () { | |||||||
|  * @param e |  * @param e | ||||||
|  * @returns {boolean} |  * @returns {boolean} | ||||||
|  */ |  */ | ||||||
| function inputAmount(e) { | function inputRange(e) { | ||||||
| //    var target = $(e.target); |     var target = $(e.target); | ||||||
| //    var piggyBankId = target.attr('name').substring(6); |     var piggyBankId = target.attr('name').substring(6); | ||||||
| //    var accountId = target.data('account'); |     var accountId = target.data('account'); | ||||||
| //    var value = target.val(); |     var value = parseFloat(target.val()); | ||||||
| // |  | ||||||
| //    // update all accounts and return false if we're going overboard. |     var leftInAccount = leftInAccounts(accountId); | ||||||
| //    var updateResult = updateAccounts(accountId); |  | ||||||
| //    if(!updateResult) { |     if(leftInAccount <= 0) { | ||||||
| //        return false; |         value = parseFloat($('#piggy_'+piggyBankId+'_amount').val()); | ||||||
| //    } |         target.val(parseFloat(value)); | ||||||
| // |     } | ||||||
| //    // new value for amount in piggy bank, formatted: |     var valueId = 'piggy_' + piggyBankId + '_amount'; | ||||||
| //    valueFormatted = '€ ' + (Math.round(value * 100) / 100).toFixed(2); |     $('#' + valueId).val(value.toFixed(2)); | ||||||
| //    var valueId = 'piggy_' + piggyBankId + '_amount'; |  | ||||||
| //    $('#' + valueId).text(valueFormatted); |  | ||||||
| // | // | ||||||
| //    // new percentage for amount in piggy bank, formatted. | //    // new percentage for amount in piggy bank, formatted. | ||||||
| //    var pctId = 'piggy_' + piggyBankId + '_pct'; |     var pctId = 'piggy_' + piggyBankId + '_pct'; | ||||||
| //    percentage = Math.round((value / parseFloat(target.attr('max'))) * 100) + '%'; //Math.round((value / parseFloat(target.attr('total'))) * 100) + '%'; |     percentage = Math.round((value / parseFloat(target.attr('max'))) * 100) + '%'; //Math.round((value / parseFloat(target.attr('total'))) * 100) + '%'; | ||||||
| //    $('#' + pctId).text(percentage); |     $('#' + pctId).text(percentage); | ||||||
|  |  | ||||||
|  |     // update the bar accordingly. | ||||||
|  |  | ||||||
|  |  | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| function changeAmount(e) { | function inputNumber(e) { | ||||||
|  |     var target = $(e.target); | ||||||
|  |     var amount = parseFloat(target.val()); | ||||||
|  |     var piggyBankId = target.data('piggy'); | ||||||
|  |     var accountId = target.data('account'); | ||||||
|  |     var leftInAccount = leftInAccounts(accountId); | ||||||
|  |  | ||||||
|  |     if(leftInAccount <= 0) { | ||||||
|  |         amount = parseFloat($('#piggy_'+piggyBankId+'_amount').val()); | ||||||
|  |     } else { | ||||||
|  |         // do something! | ||||||
|  |     } | ||||||
|  |     target.val(amount); | ||||||
|  |     console.log('SERVER'); | ||||||
|  |     $('input[name="piggy_'+piggyBankId+'"]').val(amount); | ||||||
|  |     $.post('piggybanks/updateAmount/' + piggyBankId, {amount: amount}); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | function updateAmount(e) { | ||||||
|     var target = $(e.target); |     var target = $(e.target); | ||||||
|     var piggyBankId = target.attr('name').substring(6); |     var piggyBankId = target.attr('name').substring(6); | ||||||
|     var accountId = target.data('account'); |     var accountId = target.data('account'); | ||||||
|     var value = target.val(); |     var value = target.val(); | ||||||
|  |     console.log('SERVER'); | ||||||
|     $.post('piggybanks/updateAmount/' + piggyBankId, {amount: value}); |     $.post('piggybanks/updateAmount/' + piggyBankId, {amount: value}); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function leftInAccounts(accountId) { | ||||||
|  |     // get the total: | ||||||
|  |     var total = parseFloat($('#account_'+accountId+'_total').data('raw')); | ||||||
|  |  | ||||||
|  |     // sub all piggy banks: | ||||||
|  |     var inPiggies = 0; | ||||||
|  |     $('input[type="range"]').each(function(i,v) { | ||||||
|  |         var p = $(v); | ||||||
|  |         if(parseInt(p.data('account')) == accountId) { | ||||||
|  |             inPiggies += parseFloat(p.val()); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  |     var left = total - inPiggies; | ||||||
|  |     console.log('LEFT: ' + left); | ||||||
|  |     // return amount left: | ||||||
|  |     return left; | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function updateAccounts(id) { | function updateAccounts(id) { | ||||||
|   | |||||||
| @@ -50,16 +50,13 @@ class PiggybankController extends BaseController | |||||||
|         // get accounts: |         // get accounts: | ||||||
|         foreach ($piggybanks as $piggyBank) { |         foreach ($piggybanks as $piggyBank) { | ||||||
|             $account = $piggyBank->account; |             $account = $piggyBank->account; | ||||||
|             $piggyBank->pct = round(($piggyBank->amount / $piggyBank->target) * 100, 2) . '%'; |             $piggyBank->pct = round(($piggyBank->amount / $piggyBank->target) * 100, 0) . '%'; | ||||||
|             $id = $account->id; |             $id = $account->id; | ||||||
|             if (!isset($accounts[$id])) { |             if (!isset($accounts[$id])) { | ||||||
|                 $account->balance = $account->balance(); |                 $account->balance = $account->balance(); | ||||||
|                 $account->left = $account->balance - $piggyBank->amount; |                 $account->left = $account->balance - $piggyBank->amount; | ||||||
|             } else { |             } else { | ||||||
|                 echo $account->left.'-'; |  | ||||||
|                 echo '('.$piggyBank->amount.')'; |  | ||||||
|                 $account->left -= $piggyBank->amount; |                 $account->left -= $piggyBank->amount; | ||||||
|                 echo $account->left; |  | ||||||
|  |  | ||||||
|             } |             } | ||||||
|             $accounts[$id] = $account; |             $accounts[$id] = $account; | ||||||
|   | |||||||
| @@ -32,8 +32,8 @@ | |||||||
|             @foreach($accounts as $account) |             @foreach($accounts as $account) | ||||||
|             <tr> |             <tr> | ||||||
|                 <td>{{{$account->name}}}</td> |                 <td>{{{$account->name}}}</td> | ||||||
|                 <td>{{mf($account->balance)}}</td> |                 <td id="account_{{$account->id}}_total" data-raw="{{$account->balance}}">{{mf($account->balance)}}</td> | ||||||
|                 <td id="account_{{$account->id}}_left">{{mf($account->left)}}</td> |                 <td id="account_{{$account->id}}_left" data-raw="{{$account->left}}">{{mf($account->left)}}</td> | ||||||
|             </tr> |             </tr> | ||||||
|             @endforeach |             @endforeach | ||||||
|         </table> |         </table> | ||||||
| @@ -48,7 +48,12 @@ | |||||||
|         <h4>{{{$piggybank->name}}} <small>{{mf($piggybank->target)}}</small></h4> |         <h4>{{{$piggybank->name}}} <small>{{mf($piggybank->target)}}</small></h4> | ||||||
|         <table class="table table-bordered"> |         <table class="table table-bordered"> | ||||||
|             <tr> |             <tr> | ||||||
|                 <td style="width:10%;"><span id="piggy_{{$piggybank->id}}_amount">{{mf($piggybank->amount,false)}}</span></td> |                 <td style="width:15%;"> | ||||||
|  |                     <div class="input-group"> | ||||||
|  |                         <span class="input-group-addon">€</span> | ||||||
|  |                     <input class="form-control"  type="number" data-piggy="{{$piggybank->id}}" data-account="{{$piggybank->account_id}}" step="any" min="0" max="{{$piggybank->target}}" id="piggy_{{$piggybank->id}}_amount" value="{{$piggybank->amount}}" /> | ||||||
|  |                         </div> | ||||||
|  |                 </td> | ||||||
|                 <td><input type="range" data-account="{{$piggybank->account_id}}" name="piggy_{{$piggybank->id}}" min="0" max="{{$piggybank->target}}" step="any" value="{{$piggybank->amount}}" /></td> |                 <td><input type="range" data-account="{{$piggybank->account_id}}" name="piggy_{{$piggybank->id}}" min="0" max="{{$piggybank->target}}" step="any" value="{{$piggybank->amount}}" /></td> | ||||||
|                 <td style="width: 10%;"><span id="piggy_{{$piggybank->id}}_pct">{{$piggybank->pct}}</span></td> |                 <td style="width: 10%;"><span id="piggy_{{$piggybank->id}}_pct">{{$piggybank->pct}}</span></td> | ||||||
|             </tr> |             </tr> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user