Cleaned up lots of views.

This commit is contained in:
James Cole 2015-06-21 10:50:45 +02:00
parent f84381c927
commit 7559383089
34 changed files with 616 additions and 659 deletions

View File

@ -70,14 +70,14 @@ class ReportController extends Controller
public function month($year = '2014', $month = '1', $shared = false) public function month($year = '2014', $month = '1', $shared = false)
{ {
$start = new Carbon($year . '-' . $month . '-01'); $start = new Carbon($year . '-' . $month . '-01');
$subTitle = trans('firefly.reportForMonth', ['date' => $start->formatLocalized($this->monthFormat)]); $subTitle = trans('firefly.reportForMonth', ['month' => $start->formatLocalized($this->monthFormat)]);
$subTitleIcon = 'fa-calendar'; $subTitleIcon = 'fa-calendar';
$end = clone $start; $end = clone $start;
$incomeTopLength = 8; $incomeTopLength = 8;
$expenseTopLength = 8; $expenseTopLength = 8;
if ($shared == 'shared') { if ($shared == 'shared') {
$shared = true; $shared = true;
$subTitle = trans('firefly.reportForMonthShared', ['date' => $start->formatLocalized($this->monthFormat)]); $subTitle = trans('firefly.reportForMonthShared', ['month' => $start->formatLocalized($this->monthFormat)]);
} }
$end->endOfMonth(); $end->endOfMonth();

View File

@ -321,11 +321,13 @@ Breadcrumbs::register(
Breadcrumbs::register( Breadcrumbs::register(
'reports.month', function (Generator $breadcrumbs, Carbon $date, $shared) { 'reports.month', function (Generator $breadcrumbs, Carbon $date, $shared) {
$breadcrumbs->parent('reports.year', $date, $shared); $breadcrumbs->parent('reports.year', $date, $shared);
$language = Preferences::get('language', 'en')->data;
$format = Config::get('firefly.month.' . $language);
if ($shared) { if ($shared) {
$title = trans('breadcrumbs.monthly_report_shared', ['date' => $date->year]); $title = trans('breadcrumbs.monthly_report_shared', ['date' => $date->formatLocalized($format)]);
} else { } else {
$title = trans('breadcrumbs.monthly_report', ['date' => $date->year]); $title = trans('breadcrumbs.monthly_report', ['date' => $date->formatLocalized($format)]);
} }
$breadcrumbs->push($title, route('reports.month', [$date->year, $date->month])); $breadcrumbs->push($title, route('reports.month', [$date->year, $date->month]));

View File

@ -350,8 +350,8 @@ Route::group(
* Profile Controller * Profile Controller
*/ */
Route::get('/profile', ['uses' => 'ProfileController@index', 'as' => 'profile']); Route::get('/profile', ['uses' => 'ProfileController@index', 'as' => 'profile']);
Route::get('/profile/change-password', ['uses' => 'ProfileController@changePassword', 'as' => 'change-password']); Route::get('/profile/change-password', ['uses' => 'ProfileController@changePassword', 'as' => 'profile.change-password']);
Route::get('/profile/delete-account', ['uses' => 'ProfileController@deleteAccount', 'as' => 'delete-account']); Route::get('/profile/delete-account', ['uses' => 'ProfileController@deleteAccount', 'as' => 'profile.delete-account']);
Route::post('/profile/delete-account', ['uses' => 'ProfileController@postDeleteAccount', 'as' => 'delete-account-post']); Route::post('/profile/delete-account', ['uses' => 'ProfileController@postDeleteAccount', 'as' => 'delete-account-post']);
Route::post('/profile/change-password', ['uses' => 'ProfileController@postChangePassword', 'as' => 'change-password-post']); Route::post('/profile/change-password', ['uses' => 'ProfileController@postChangePassword', 'as' => 'change-password-post']);

View File

@ -10,11 +10,11 @@ var defaultLineChartOptions = {
chartArea: { chartArea: {
left: 50, left: 50,
top: 10, top: 10,
width: '85%', width: '95%',
height: '80%' height: '90%'
}, },
height: 400, height: 400,
colors: ["#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"], colors: ["#357ca5", "#008d4c", "#db8b0b", "#ca195a", "#555299", "#4285f4", "#db4437", "#f4b400", "#0f9d58", "#ab47bc", "#00acc1", "#ff7043", "#9e9d24", "#5c6bc0", "#f06292", "#00796b", "#c2185b"],
hAxis: { hAxis: {
textStyle: { textStyle: {
color: '#838383', color: '#838383',

View File

@ -196,8 +196,8 @@ return [
// reports: // reports:
'reportForYear' => 'Yearly report for :year', 'reportForYear' => 'Yearly report for :year',
'reportForYearShared' => 'Yearly report for :year (including shared accounts)', 'reportForYearShared' => 'Yearly report for :year (including shared accounts)',
'reportForMonth' => 'Montly report for :year', 'reportForMonth' => 'Montly report for :month',
'reportForMonthShared' => 'Montly report for :year (including shared accounts)', 'reportForMonthShared' => 'Montly report for :month (including shared accounts)',
'incomeVsExpenses' => 'Income vs. expenses', 'incomeVsExpenses' => 'Income vs. expenses',
'accountBalances' => 'Account balances', 'accountBalances' => 'Account balances',
'balanceStartOfYear' => 'Balance at start of year', 'balanceStartOfYear' => 'Balance at start of year',

View File

@ -62,7 +62,7 @@ return [
'delete_budget' => 'Delete budget ":name"', 'delete_budget' => 'Delete budget ":name"',
'delete_category' => 'Delete category ":name"', 'delete_category' => 'Delete category ":name"',
'delete_currency' => 'Delete currency ":name"', 'delete_currency' => 'Delete currency ":name"',
'delete_piggyBank' => 'Delete piggy banl ":name"', 'delete_piggyBank' => 'Delete piggy bank ":name"',
'delete_journal' => 'Delete transaction with description ":description"', 'delete_journal' => 'Delete transaction with description ":description"',
'account_areYouSure' => 'Are you sure you want to delete the account named ":name"?', 'account_areYouSure' => 'Are you sure you want to delete the account named ":name"?',

View File

@ -40,7 +40,7 @@
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title">{{ 'transactions'|_ }}</h3> <h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div> </div>
<div class="box-body"> <div class="box-body table-responsive no-padding">
{% include 'list/journals.twig' with {sorting:true} %} {% include 'list/journals.twig' with {sorting:true} %}
</div> </div>
</div> </div>

View File

@ -128,6 +128,12 @@
</div><!-- ./wrapper --> </div><!-- ./wrapper -->
<!-- Modal -->
<div class="modal fade" id="defaultModal" tabindex="-1" role="dialog" aria-labelledby="defaultModalLabel">
</div>
<script src="js/jquery-2.1.3.min.js" type="text/javascript"></script> <script src="js/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script> <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script src="js/moment.min.js" type="text/javascript"></script> <script src="js/moment.min.js" type="text/javascript"></script>

View File

@ -1,4 +1,4 @@
<table class="table table-bordered table-striped"> <table class="table table-hover">
<tr> <tr>
{% if showPiggyBank %} {% if showPiggyBank %}
<th>Piggy bank</th> <th>Piggy bank</th>

View File

@ -1,56 +1,59 @@
<table class="table table-striped" id="sortable"> <table class="table table-hover" id="sortable">
<tbody> <tbody>
{% for piggyBank in piggyBanks %} {% for piggyBank in piggyBanks %}
<tr data-id="{{ piggyBank.id }}"> <tr data-id="{{ piggyBank.id }}">
<td style="width:60px;"> <td style="width:60px;">
<i class="fa fa-fw fa-bars handle"></i> <i class="fa fa-fw fa-bars handle"></i>
<i class="loadSpin"></i> <i class="loadSpin"></i>
</td> </td>
<td style="width:100px;"> <td style="width:100px;">
<div class="btn-group btn-group-xs"> <div class="btn-group btn-group-xs">
<a href="{{ route('piggy-banks.edit', piggyBank.id)}}" class="btn btn-default btn-xs"><i class="fa fa-pencil fa-fw"></i></a> <a href="{{ route('piggy-banks.edit', piggyBank.id) }}" class="btn btn-default btn-xs"><i class="fa fa-pencil fa-fw"></i></a>
<a href="{{ route('piggy-banks.delete', piggyBank.id)}}" class="btn btn-danger btn-xs"><i class="fa fa-trash fa-fw"></i></a> <a href="{{ route('piggy-banks.delete', piggyBank.id) }}" class="btn btn-danger btn-xs"><i class="fa fa-trash fa-fw"></i></a>
</div>
</td>
<td>
<a href="{{ route('piggy-banks.show', piggyBank.id) }}" title="{{ piggyBank.order }}">{{ piggyBank.name }}</a>
</td>
<td>
<span title="Saved so far">{{piggyBank.savedSoFar|formatAmountPlain }}</span>
</td>
<td style="text-align:right;width:40px;">
{% if piggyBank.savedSoFar > 0 %}
<a href="{{route('piggy-banks.removeMoney', piggyBank.id)}}" class="btn btn-default btn-xs removeMoney" data-id="{{ piggyBank.id }}"><span data-id="{{ piggyBank.id }}" class="glyphicon glyphicon-minus"></span></a>
{% endif %}
</td>
<td>
<div class="progress progress-striped" style="margin-bottom:0;">
<div
{% if piggyBank.percentage == 100 %}
class="progress-bar progress-bar-success"
{% else %}
class="progress-bar progress-bar-info"
{% endif %}
role="progressbar" aria-valuenow="{{ piggyBank.percentage }}" aria-valuemin="0" aria-valuemax="100" style="min-width: 40px;width: {{ piggyBank.percentage }}%;">
{{ piggyBank.percentage }}%
</div> </div>
</div> </td>
</td> <td>
<a href="{{ route('piggy-banks.show', piggyBank.id) }}" title="{{ piggyBank.order }}">{{ piggyBank.name }}</a>
</td>
<td>
<span title="Saved so far">{{ piggyBank.savedSoFar|formatAmountPlain }}</span>
</td>
<td style="text-align:right;width:40px;">
{% if piggyBank.savedSoFar > 0 %}
<a href="{{ route('piggy-banks.removeMoney', piggyBank.id) }}" class="btn btn-default btn-xs removeMoney" data-id="{{ piggyBank.id }}"><span
data-id="{{ piggyBank.id }}" class="glyphicon glyphicon-minus"></span></a>
{% endif %}
</td>
<td>
<div class="progress progress" style="margin-bottom:0;">
<div
{% if piggyBank.percentage == 100 %}
class="progress-bar progress-bar-success"
{% else %}
class="progress-bar progress-bar-info"
{% endif %}
role="progressbar" aria-valuenow="{{ piggyBank.percentage }}" aria-valuemin="0" aria-valuemax="100"
style="min-width: 40px;width: {{ piggyBank.percentage }}%;">
{{ piggyBank.percentage }}%
</div>
</div>
</td>
<td style="width:40px;"> <td style="width:40px;">
{% if piggyBank.leftToSave > 0 %} {% if piggyBank.leftToSave > 0 %}
<a href="{{ route('piggy-banks.addMoney', piggyBank.id) }}" class="btn btn-default btn-xs addMoney" data-id="{{ piggyBank.id }}"><span data-id="{{ piggyBank.id }}" class="glyphicon glyphicon-plus"></span></a> <a href="{{ route('piggy-banks.addMoney', piggyBank.id) }}" class="btn btn-default btn-xs addMoney" data-id="{{ piggyBank.id }}"><span
{% endif %} data-id="{{ piggyBank.id }}" class="glyphicon glyphicon-plus"></span></a>
</td> {% endif %}
<td style="width:200px;"> </td>
<span title="Target amount">{{ piggyBank.targetamount|formatAmount }}</span> <td style="width:200px;">
{% if piggyBank.leftToSave > 0 %} <span title="Target amount">{{ piggyBank.targetamount|formatAmount }}</span>
<span title="Left to save">({{ piggyBank.leftToSave|formatAmount }})</span> {% if piggyBank.leftToSave > 0 %}
{% endif %} <span title="Left to save">({{ piggyBank.leftToSave|formatAmount }})</span>
</td> {% endif %}
</tr> </td>
{% endfor %} </tr>
{% endfor %}
</tbody> </tbody>
</table> </table>

View File

@ -32,7 +32,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript::;"> <a href="{{ route('accounts.create', 'asset') }}">
<i class="menu-icon fa fa-money bg-maroon"></i> <i class="menu-icon fa fa-money bg-maroon"></i>
<div class="menu-info"> <div class="menu-info">
<h4 class="control-sidebar-subheading">New asset account</h4> <h4 class="control-sidebar-subheading">New asset account</h4>
@ -40,7 +40,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript::;"> <a href="{{ route('accounts.create', 'expense') }}">
<i class="menu-icon fa fa-shopping-cart bg-maroon"></i> <i class="menu-icon fa fa-shopping-cart bg-maroon"></i>
<div class="menu-info"> <div class="menu-info">
<h4 class="control-sidebar-subheading">New expense account</h4> <h4 class="control-sidebar-subheading">New expense account</h4>
@ -48,7 +48,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript::;"> <a href="{{ route('accounts.create', 'revenue') }}">
<i class="menu-icon fa fa-download bg-maroon"></i> <i class="menu-icon fa fa-download bg-maroon"></i>
<div class="menu-info"> <div class="menu-info">
<h4 class="control-sidebar-subheading">New revenue</h4> <h4 class="control-sidebar-subheading">New revenue</h4>
@ -56,7 +56,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript::;"> <a href="{{ route('piggy-banks.create') }}">
<i class="menu-icon fa fa-sort-amount-asc bg-teal"></i> <i class="menu-icon fa fa-sort-amount-asc bg-teal"></i>
<div class="menu-info"> <div class="menu-info">
<h4 class="control-sidebar-subheading">New piggy bank</h4> <h4 class="control-sidebar-subheading">New piggy bank</h4>
@ -64,7 +64,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript::;"> <a href="{{ route('bills.create') }}">
<i class="menu-icon fa fa-download bg-purple"></i> <i class="menu-icon fa fa-download bg-purple"></i>
<div class="menu-info"> <div class="menu-info">
<h4 class="control-sidebar-subheading">New bill</h4> <h4 class="control-sidebar-subheading">New bill</h4>

View File

@ -1,30 +1,37 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-credit-card fa-fw"></i> <h3 class="box-title">{{ 'accountBalances'|_ }}</h3>
{{ 'accountBalances'|_ }}
</div> </div>
<table class="table table-bordered table-striped"> <div class="box-body table-responsive no-padding">
<tr> <table class="table table-hover sortable">
<th>{{ 'name'|_ }}</th> <thead>
<th>{{ 'balanceStart'|_ }}</th>
<th>{{ 'balanceStart'|_ }}</th>
<th>{{ 'difference'|_ }}</th>
</tr>
{% for account in accounts.getAccounts %}
<tr> <tr>
<td> <th>{{ 'name'|_ }}</th>
<a href="{{ route('accounts.show',account.id) }}" title="{{ account.name }}">{{ account.name }}</a> <th>{{ 'balanceStart'|_ }}</th>
</td> <th>{{ 'balanceStart'|_ }}</th>
<td>{{ account.startBalance|formatAmount }}</td> <th>{{ 'difference'|_ }}</th>
<td>{{ account.endBalance|formatAmount }}</td>
<td>{{ (account.endBalance - account.startBalance)|formatAmount }}</td>
</tr> </tr>
{% endfor %} </thead>
<tr> <tbody>
<td><em>{{ 'sumOfSums'|_ }}</em></td> {% for account in accounts.getAccounts %}
<td>{{ accounts.getStart|formatAmount }}</td> <tr>
<td>{{ accounts.getEnd|formatAmount }}</td> <td>
<td>{{ accounts.getDifference|formatAmount }}</td> <a href="{{ route('accounts.show',account.id) }}" title="{{ account.name }}">{{ account.name }}</a>
</tr> </td>
</table> <td data-value="{{ account.startBalance }}">{{ account.startBalance|formatAmount }}</td>
<td data-value="{{ account.endBalance }}">{{ account.endBalance|formatAmount }}</td>
<td data-value="{{ (account.endBalance - account.startBalance) }}">{{ (account.endBalance - account.startBalance)|formatAmount }}</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td><em>{{ 'sumOfSums'|_ }}</em></td>
<td>{{ accounts.getStart|formatAmount }}</td>
<td>{{ accounts.getEnd|formatAmount }}</td>
<td>{{ accounts.getDifference|formatAmount }}</td>
</tr>
</tfoot>
</table>
</div>
</div> </div>

View File

@ -1,57 +1,61 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-sort-amount-asc fa-fw"></i> <h3 class="box-title">{{ 'budgets'|_ }} ({{ 'splitByAccount'|_|lower }})</h3>
{{ 'budgets'|_ }} ({{ 'splitByAccount'|_|lower }})
</div> </div>
<table class="table table-bordered table-striped"> <div class="box-body table-responsive no-padding">
<!-- build balance report header --> <table class="table table-hover">
<tr> <!-- build balance report header -->
<th colspan="2">{{ 'budgets'|_ }}</th> <thead>
{% for account in balance.getBalanceHeader.getAccounts %}
<th><a href="{{route('accounts.show',account.id)}}">{{ account.name }}</a></th>
{% endfor %}
<th>
{{ 'leftInBudget'|_ }}
</th>
<th>{{ 'sum'|_ }}</th>
</tr>
<!-- make rows -->
{% for balanceLine in balance.getBalanceLines %}
<tr> <tr>
<th colspan="2">{{ 'budgets'|_ }}</th>
{% if balanceLine.getBudget %} {% for account in balance.getBalanceHeader.getAccounts %}
<td> <th><a href="{{ route('accounts.show',account.id) }}">{{ account.name }}</a></th>
<a href="{{ route('budgets.show',balanceLine.getBudget.id) }}">{{ balanceLine.getTitle }}</a>
</td>
<td>{{ balanceLine.getRepetition.amount|formatAmount }}</td>
{% else %}
<td colspan="2">{{ balanceLine.getTitle }}</td>
{% endif %}
{% for balanceEntry in balanceLine.getBalanceEntries %}
<td>
{% if balanceEntry.getSpent != 0 %}
<span class="text-danger">{{ (balanceEntry.getSpent*-1)|formatAmountPlain }}</span>
{% endif %}
{% if balanceEntry.getLeft != 0 %}
<span class="text-success">{{ (balanceEntry.getLeft)|formatAmountPlain }}</span>
{% endif %}
</td>
{% endfor %} {% endfor %}
<td> <th>
{% if balanceLine.leftOfRepetition != 0 %} {{ 'leftInBudget'|_ }}
{{ balanceLine.leftOfRepetition|formatAmount }} </th>
{% endif %} <th>{{ 'sum'|_ }}</th>
</td>
<td>
{% if balanceLine.sumOfLeft != 0 %}
{{ balanceLine.sumOfLeft|formatAmount }}
{% endif %}
</td>
</tr> </tr>
{% endfor %} </thead>
<tbody>
</table> <!-- make rows -->
{% for balanceLine in balance.getBalanceLines %}
<tr>
{% if balanceLine.getBudget %}
<td>
<a href="{{ route('budgets.show',balanceLine.getBudget.id) }}">{{ balanceLine.getTitle }}</a>
</td>
<td>{{ balanceLine.getRepetition.amount|formatAmount }}</td>
{% else %}
<td colspan="2">{{ balanceLine.getTitle }}</td>
{% endif %}
{% for balanceEntry in balanceLine.getBalanceEntries %}
<td>
{% if balanceEntry.getSpent != 0 %}
<span class="text-danger">{{ (balanceEntry.getSpent*-1)|formatAmountPlain }}</span>
{% endif %}
{% if balanceEntry.getLeft != 0 %}
<span class="text-success">{{ (balanceEntry.getLeft)|formatAmountPlain }}</span>
{% endif %}
</td>
{% endfor %}
<td>
{% if balanceLine.leftOfRepetition != 0 %}
{{ balanceLine.leftOfRepetition|formatAmount }}
{% endif %}
</td>
<td>
{% if balanceLine.sumOfLeft != 0 %}
{{ balanceLine.sumOfLeft|formatAmount }}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div> </div>

View File

@ -1,10 +1,10 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-calendar-o fa-fw"></i> <h3 class="box-title">{{ 'bills'|_ }}</h3>
{{ 'bills'|_ }}
</div> </div>
<table class="table table-bordered table-striped sortable"> <div class="box-body table-responsive no-padding">
<thead> <table class="table table-hover sortable">
<thead>
<tr> <tr>
<th>{{ trans('form.name') }}</th> <th>{{ trans('form.name') }}</th>
<th>{{ trans('form.amount_min') }}</th> <th>{{ trans('form.amount_min') }}</th>
@ -12,14 +12,14 @@
<th>{{ trans('form.amount') }}</th> <th>{{ trans('form.amount') }}</th>
<th>{{ trans('form.under') }}</th> <th>{{ trans('form.under') }}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for line in bills.getBills %} {% for line in bills.getBills %}
{% if not line.isActive %} {% if not line.isActive %}
<tr class="text-muted"> <tr class="text-muted">
{% else %} {% else %}
<tr> <tr>
{% endif %} {% endif %}
<td data-value="{{ line.getBill.name }}"> <td data-value="{{ line.getBill.name }}">
<a href="{{ route('bills.show',line.getBill.id) }}">{{ line.getBill.name }}</a> <a href="{{ route('bills.show',line.getBill.id) }}">{{ line.getBill.name }}</a>
{% if not line.isActive %} {% if not line.isActive %}
@ -36,16 +36,17 @@
{% endif %} {% endif %}
{% if not line.isActive %} {% if not line.isActive %}
<td data-value="-1">&nbsp;</td> <td data-value="-1">&nbsp;</td>
{% endif %} {% endif %}
<td data-value="{{ (line.getMax - line.getAmount) }}"> <td data-value="{{ (line.getMax - line.getAmount) }}">
{% if line.isActive %} {% if line.isActive %}
{{ (line.getMax - line.getAmount)|formatAmount }} {{ (line.getMax - line.getAmount)|formatAmount }}
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div>
</div> </div>

View File

@ -1,62 +1,69 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-tasks fa-fw"></i> <h3 class="box-title">{{ 'budgets'|_ }}</h3>
{{ 'budgets'|_ }}
</div> </div>
<table class="table table-bordered"> <div class="box-body table-responsive no-padding">
<tr> <table class="table table-hover">
<th>{{ 'budget'|_ }}</th> <thead>
<th>{{ 'date'|_ }}</th>
<th>{{ 'budgeted'|_ }}</th>
<th>{{ 'spent'|_ }}</th>
<th>{{ 'left'|_ }}</th>
<th>{{ 'overspent'|_ }}</th>
</tr>
{% for budgetLine in budgets.getBudgetLines %}
<tr> <tr>
<td> <th>{{ 'budget'|_ }}</th>
{% if budgetLine.getBudget %} <th>{{ 'date'|_ }}</th>
<a href="{{route('budgets.show',budgetLine.getBudget.id)}}">{{ budgetLine.getBudget.name }}</a> <th>{{ 'budgeted'|_ }}</th>
{% else %} <th>{{ 'spent'|_ }}</th>
<em>{{ 'noBudget'|_ }}</em> <th>{{ 'left'|_ }}</th>
{% endif %} <th>{{ 'overspent'|_ }}</th>
</td>
<td>
{% if budgetLine.getRepetition %}
<a href="{{ route('budgets.show', [budgetLine.getBudget.id, budgetLine.getRepetition.id]) }}">{{ budgetLine.getRepetition.startdate.formatLocalized(monthAndDayFormat) }}</a>
{% endif %}
</td>
<td>
{% if budgetLine.getRepetition %}
{{ budgetLine.getRepetition.amount|formatAmount }}
{% else %}
{{ 0|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getSpent != 0 %}
{{ budgetLine.getSpent|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getLeft != 0 %}
{{ budgetLine.getLeft|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getOverspent != 0 %}
<span class="text-danger">{{ budgetLine.getOverspent|formatAmountPlain }}</span>
{% endif %}
</td>
</tr> </tr>
{% endfor %} </thead>
<tr> <tbody>
<td colspan="2"><em>{{ 'sum'|_ }}</em></td> {% for budgetLine in budgets.getBudgetLines %}
<td>{{ budgets.getBudgeted|formatAmount }}</td> <tr>
<td>{{ budgets.getSpent|formatAmount }}</td> <td>
<td>{{ budgets.getLeft|formatAmount }}</td> {% if budgetLine.getBudget %}
<td><span class="text-danger">{{ budgets.getOverspent|formatAmountPlain }}</span></td> <a href="{{ route('budgets.show',budgetLine.getBudget.id) }}">{{ budgetLine.getBudget.name }}</a>
</tr> {% else %}
</table> <em>{{ 'noBudget'|_ }}</em>
{% endif %}
</td>
<td>
{% if budgetLine.getRepetition %}
<a href="{{ route('budgets.show', [budgetLine.getBudget.id, budgetLine.getRepetition.id]) }}">{{ budgetLine.getRepetition.startdate.formatLocalized(monthAndDayFormat) }}</a>
{% endif %}
</td>
<td>
{% if budgetLine.getRepetition %}
{{ budgetLine.getRepetition.amount|formatAmount }}
{% else %}
{{ 0|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getSpent != 0 %}
{{ budgetLine.getSpent|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getLeft != 0 %}
{{ budgetLine.getLeft|formatAmount }}
{% endif %}
</td>
<td>
{% if budgetLine.getOverspent != 0 %}
<span class="text-danger">{{ budgetLine.getOverspent|formatAmountPlain }}</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="2"><em>{{ 'sum'|_ }}</em></td>
<td>{{ budgets.getBudgeted|formatAmount }}</td>
<td>{{ budgets.getSpent|formatAmount }}</td>
<td>{{ budgets.getLeft|formatAmount }}</td>
<td><span class="text-danger">{{ budgets.getOverspent|formatAmountPlain }}</span></td>
</tr>
</tfoot>
</table>
</div>
</div> </div>

View File

@ -1,24 +1,31 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-bar-chart fa-fw"></i> <h3 class="box-title">{{ 'categories'|_ }}</h3>
{{ 'categories'|_ }}
</div> </div>
<table class="table table-bordered"> <div class="box-body table-responsive no-padding">
<tr> <table class="table table-hover">
<th>{{ 'categories'|_ }}</th> <thead>
<th>{{ 'spent'|_ }}</th>
</tr>
{% for cat in categories.getCategories %}
<tr> <tr>
<td> <th>{{ 'categories'|_ }}</th>
<a href="{{ route('categories.show',cat.id) }}">{{ cat.name }}</a> <th>{{ 'spent'|_ }}</th>
</td>
<td><span class="text-danger">{{ (cat.spent)|formatAmountPlain }}</span></td>
</tr> </tr>
{% endfor %} </thead>
<tr> <tbody>
<td><em>{{ 'sum'|_ }}</em></td> {% for cat in categories.getCategories %}
<td class="text-danger">{{ categories.getTotal|formatAmountPlain }}</td> <tr>
</tr> <td>
</table> <a href="{{ route('categories.show',cat.id) }}">{{ cat.name }}</a>
</td>
<td><span class="text-danger">{{ (cat.spent)|formatAmountPlain }}</span></td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td><em>{{ 'sum'|_ }}</em></td>
<td class="text-danger">{{ categories.getTotal|formatAmountPlain }}</td>
</tr>
</tfoot>
</table>
</div>
</div> </div>

View File

@ -1,34 +1,40 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-long-arrow-left fa-fw"></i> <h3 class="box-title">{{ 'expenses'|_ }}</h3>
{{ 'expenses'|_ }} ({{ trans('firefly.topX',{number: expenseTopLength}) }})
</div> </div>
<table class="table"> <div class="box-body table-responsive no-padding">
{% for expense in expenses.getExpenses %} <table class="table table-hover">
{% if loop.index > expenseTopLength %} <tbody>
<tr class="collapse out expenseCollapsed"> {% for expense in expenses.getExpenses %}
{% else %} {% if loop.index > expenseTopLength %}
<tr> <tr class="collapse out expenseCollapsed">
{% endif %} {% else %}
<td> <tr>
<a href="{{ route('accounts.show',expense.id) }}">{{ expense.name }}</a>
{% if expense.count > 1 %}
<br /><small>{{ expense.count }} {{ 'transactions'|_|lower }}</small>
{% endif %} {% endif %}
</td> <td>
<td><span class="text-danger">{{ (expense.amount)|formatAmountPlain }}</span></td> <a href="{{ route('accounts.show',expense.id) }}">{{ expense.name }}</a>
</tr> {% if expense.count > 1 %}
{% endfor %} <br/>
{% if expenses.getExpenses|length > expenseTopLength %} <small>{{ expense.count }} {{ 'transactions'|_|lower }}</small>
<tr> {% endif %}
<td colspan="2" class="active">
<a href="#" id="showExpenses">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
</td> </td>
<td><span class="text-danger">{{ (expense.amount)|formatAmountPlain }}</span></td>
</tr>
{% endfor %}
</tbody>
<tfoot>
{% if expenses.getExpenses|length > expenseTopLength %}
<tr>
<td colspan="2" class="active">
<a href="#" id="showExpenses">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
</td>
</tr>
{% endif %}
<tr>
<td><em>{{ 'sum'|_ }}</em></td>
<td><span class="text-danger">{{ (expenses.getTotal)|formatAmountPlain }}</span></td>
</tr> </tr>
{% endif %} </tfoot>
<tr> </table>
<td><em>{{ 'sum'|_ }}</em></td> </div>
<td><span class="text-danger">{{ (expenses.getTotal)|formatAmountPlain }}</span></td>
</tr>
</table>
</div> </div>

View File

@ -1,20 +1,21 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-exchange"></i> <h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
{{ 'incomeVsExpenses'|_ }} </div>
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<tr>
<td>{{ 'in'|_ }}</td>
<td>{{ incomes.getTotal|formatAmount }}</td>
</tr>
<tr>
<td>{{ 'out'|_ }}</td>
<td><span class="text-danger">{{ (expenses.getTotal)|formatAmountPlain }}</span></td>
</tr>
<tr>
<td>{{ 'difference'|_ }}</td>
<td>{{ (incomes.getTotal + (expenses.getTotal * -1))|formatAmount }}</td>
</tr>
</table>
</div> </div>
<table class="table table-bordered table-striped">
<tr>
<td>{{ 'in'|_ }}</td>
<td>{{ incomes.getTotal|formatAmount }}</td>
</tr>
<tr>
<td>{{ 'out'|_ }}</td>
<td><span class="text-danger">{{ (expenses.getTotal)|formatAmountPlain }}</span></td>
</tr>
<tr>
<td>{{ 'difference'|_ }}</td>
<td>{{ (incomes.getTotal + (expenses.getTotal * -1))|formatAmount }}</td>
</tr>
</table>
</div> </div>

View File

@ -1,34 +1,40 @@
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-long-arrow-right fa-fw"></i> <h3 class="box-title">{{ 'income'|_ }}</h3>
{{ 'income'|_ }} ({{ trans('firefly.topX',{number: incomeTopLength}) }})
</div> </div>
<table class="table"> <div class="box-body table-responsive no-padding">
{% for income in incomes.getIncomes %} <table class="table table-hover">
{% if loop.index > incomeTopLength %} <tbody>
<tr class="collapse out incomesCollapsed"> {% for income in incomes.getIncomes %}
{% else %} {% if loop.index > incomeTopLength %}
<tr> <tr class="collapse out incomesCollapsed">
{% endif %} {% else %}
<td> <tr>
<a href="{{ route('accounts.show',income.id) }}" title="{{ income.name }}">{{ income.name }}</a>
{% if income.count > 1 %}
<br /><small>{{ income.count }} {{ 'transactions'|_|lower }}</small>
{% endif %} {% endif %}
</td> <td>
<td>{{ income.amount|formatAmount }}</td> <a href="{{ route('accounts.show',income.id) }}" title="{{ income.name }}">{{ income.name }}</a>
</tr> {% if income.count > 1 %}
{% endfor %} <br/>
{% if incomes.getIncomes|length > incomeTopLength %} <small>{{ income.count }} {{ 'transactions'|_|lower }}</small>
<tr> {% endif %}
<td colspan="2" class="active">
<a href="#" id="showIncomes">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
</td> </td>
<td>{{ income.amount|formatAmount }}</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
{% if incomes.getIncomes|length > incomeTopLength %}
<tr>
<td colspan="2" class="active">
<a href="#" id="showIncomes">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
</td>
</tr>
{% endif %}
<tr>
<td><em>{{ 'sum'|_ }}</em></td>
<td>{{ incomes.getTotal|formatAmount }}</td>
</tr> </tr>
{% endif %} </tfoot>
<tr> </table>
<td><em>{{ 'sum'|_ }}</em></td> </div>
<td>{{ incomes.getTotal|formatAmount }}</td>
</tr>
</table>
</div> </div>

View File

@ -6,55 +6,49 @@
{% block content %} {% block content %}
{{ Form.open({'class' : 'form-horizontal','id' : 'store','url' : route('piggy-banks.store')}) }} {{ Form.open({'class' : 'form-horizontal','id' : 'store','url' : route('piggy-banks.store')}) }}
<input type="hidden" name="repeats" value="0" /> <input type="hidden" name="repeats" value="0"/>
<div class="row"> <div class="row">
<div class="col-lg-6 col-md-12 col-sm-6"> <div class="col-lg-6 col-md-12 col-sm-6">
<div class="box box-primary"> <div class="box box-primary">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }} <h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
{{ ExpandedForm.text('name') }} {{ ExpandedForm.text('name') }}
{{ ExpandedForm.select('account_id',accounts,null,{'label' : 'saveOnAccount'|_}) }} {{ ExpandedForm.select('account_id',accounts,null,{'label' : 'saveOnAccount'|_}) }}
{{ ExpandedForm.amount('targetamount') }} {{ ExpandedForm.amount('targetamount') }}
</div>
</div> </div>
</div> </div>
</div> <div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-12 col-sm-12"> <div class="box">
<div class="box"> <div class="box-header with-border">
<div class="box-header with-border"> <h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }} </div>
<div class="box-body">
{{ ExpandedForm.date('targetdate') }}
</div>
</div> </div>
<div class="box-body">
{{ ExpandedForm.date('targetdate') }}
{{ ExpandedForm.checkbox('remind_me','1',false) }}
{{ ExpandedForm.select('reminder',periods,'month') }}
</div>
</div>
<!-- panel for options --> <!-- panel for options -->
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-bolt"></i> {{ 'options'|_ }} <h3 class="box-title">{{ 'options'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.optionsList('create','piggy bank') }}
</div>
<div class="box-footer">
<button type="submit" class="btn btn-success pull-right">
Store new piggy bank
</button>
</div>
</div> </div>
<div class="box-body">
{{ ExpandedForm.optionsList('create','piggy bank') }}
</div>
</div>
</div>
</div> </div>
</div> {{ Form.close|raw }}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<p>
<button type="submit" class="btn btn-lg btn-success">
<i class="fa fa-plus-circle"></i> Store new piggy bank
</button>
</p>
</div>
</div>
</form>
{% endblock %} {% endblock %}

View File

@ -5,30 +5,29 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{{ Form.open({'class' : 'form-horizontal','id' : 'destroy','url' : route('piggy-banks.destroy',piggyBank.id)}) }} {{ Form.open({'class' : 'form-horizontal','id' : 'destroy','url' : route('piggy-banks.destroy',piggyBank.id)}) }}
<div class="row"> <div class="row">
<div class="col-lg-6 col-lg-offset-3 col-md-12 col-sm-12"> <div class="col-lg-6 col-lg-offset-3 col-md-12 col-sm-12">
<div class="box box-danger"> <div class="box box-danger">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-exclamation-circle"></i> <h3 class="box-title">{{ trans('form.delete_piggyBank', {'name': piggyBank.name}) }}</h3>
{{ trans('form.delete_piggyBank', {'name': piggyBank.name}) }} </div>
</div> <div class="box-body">
<div class="box-body"> <p class="text-danger">
<p class="text-danger"> {{ trans('form.permDeleteWarning') }}
{{ trans('form.permDeleteWarning') }} </p>
</p>
<p>
{{ trans('form.piggyBank_areYouSure', {'name': piggyBank.name}) }}
</p>
<p> <p>
<input type="submit" name="submit" value="{{ trans('form.deletePermanently') }}" class="btn btn-danger" /> {{ trans('form.piggyBank_areYouSure', {'name': piggyBank.name}) }}
<a href="{{ URL.previous() }}" class="btn-default btn">{{ trans('form.cancel') }}</a > </p>
</p> </div>
<div class="box-footer">
<input type="submit" name="submit" value="{{ trans('form.deletePermanently') }}" class="btn btn-danger pull-right"/>
<a href="{{ URL.previous() }}" class="btn-default btn">{{ trans('form.cancel') }}</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
</form> {{ Form.close|raw }}
{% endblock %} {% endblock %}

View File

@ -7,58 +7,51 @@
{% block content %} {% block content %}
{{ Form.model(piggyBank, {'class' : 'form-horizontal','id' : 'update','url' : route('piggy-banks.update',piggyBank.id)}) }} {{ Form.model(piggyBank, {'class' : 'form-horizontal','id' : 'update','url' : route('piggy-banks.update',piggyBank.id)}) }}
<input type="hidden" name="repeats" value="0" /> <input type="hidden" name="repeats" value="0"/>
<input type="hidden" name="id" value="{{ piggyBank.id }}" /> <input type="hidden" name="id" value="{{ piggyBank.id }}"/>
<div class="row"> <div class="row">
<div class="col-lg-6 col-md-12 col-sm-6"> <div class="col-lg-6 col-md-12 col-sm-6">
<div class="box box-primary"> <div class="box box-primary">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }} <h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.text('name') }}
{{ ExpandedForm.select('account_id',accounts,null,{'label' : 'saveOnAccount'|_}) }}
{{ ExpandedForm.amount('targetamount') }}
</div>
</div> </div>
<div class="box-body">
{{ ExpandedForm.text('name') }}
{{ ExpandedForm.select('account_id',accounts,null,{'label' : 'saveOnAccount'|_}) }}
{{ ExpandedForm.amount('targetamount') }}
</div>
</div> </div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.date('targetdate') }}
</div>
</div>
</div> <!-- panel for options -->
<div class="col-lg-6 col-md-12 col-sm-12"> <div class="box">
<div class="box"> <div class="box-header with-border">
<div class="box-header with-border"> <h3 class="box-title">{{ 'options'|_ }}</h3>
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }} </div>
</div> <div class="box-body">
<div class="box-body"> {{ ExpandedForm.optionsList('update','piggy bank') }}
{{ ExpandedForm.date('targetdate') }} </div>
{{ ExpandedForm.checkbox('remind_me','1',preFilled.remind_me) }} <div class="box-footer">
{{ ExpandedForm.select('reminder',periods,preFilled.reminder) }} <button type="submit" class="btn btn-success pull-right">
{{ 'update_piggy_button'|_ }}
</button>
</div>
</div> </div>
</div> </div>
<!-- panel for options -->
<div class="box">
<div class="box-header with-border">
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="box-body">
{{ ExpandedForm.optionsList('update','piggy bank') }}
</div>
</div>
</div> </div>
</div> {{ Form.close|raw }}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<p>
<button type="submit" class="btn btn-lg btn-success">
<i class="fa fa-pencil"></i> {{ 'update_piggy_button'|_ }}
</button>
</p>
</div>
</div>
</form>
{% endblock %} {% endblock %}

View File

@ -5,19 +5,17 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<p>
<a href="{{ route('piggy-banks.create') }}" class="btn btn-success"><i class="fa fa-sort-amount-asc fa-fw"></i> {{ 'new_piggy_bank'|_ }}</a>
</p>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border">{{ 'piggyBanks'|_ }}</div> <div class="box-header with-border">
{% include 'list/piggy-banks.twig' %} <h3 class="box-title">{{ 'piggyBanks'|_ }}</h3></div>
<div class="box-body table-responsive no-padding">
{% include 'list/piggy-banks.twig' %}
</div>
<div class="box-footer">
<a href="{{ route('piggy-banks.create') }}" class="btn btn-success pull-right">{{ 'new_piggy_bank'|_ }}</a>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -26,28 +24,34 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-money"></i> {{ 'account_status'|_ }} <h3 class="box-title">{{ 'account_status'|_ }}</h3>
</div> </div>
<table class="table table-striped"> <div class="box-body table-responsive no-padding">
<tr> <table class="table table-hover">
<th>{{ 'account'|_ }}</th> <thead>
<th>{{ 'balance'|_ }}</th>
<th>{{ 'left_for_piggy_banks'|_ }}</th>
<th>{{ 'sum_of_piggy_banks'|_ }}</th>
<th>{{ 'saved_so_far'|_ }}</th>
<th>{{ 'left_to_save'|_ }}</th>
</tr>
{% for id,info in accounts %}
<tr> <tr>
<td><a href="{{ route('accounts.show',id) }}">{{ info.name }}</a></td> <th>{{ 'account'|_ }}</th>
<td>{{ info.balance|formatAmount }}</td> <th>{{ 'balance'|_ }}</th>
<td>{{ info.leftForPiggyBanks|formatAmount }}</td> <th>{{ 'left_for_piggy_banks'|_ }}</th>
<td>{{ info.sumOfTargets|formatAmount }}</td> <th>{{ 'sum_of_piggy_banks'|_ }}</th>
<td>{{ info.sumOfSaved|formatAmount }}</td> <th>{{ 'saved_so_far'|_ }}</th>
<td>{{ info.leftToSave|formatAmount }}</td> <th>{{ 'left_to_save'|_ }}</th>
</tr> </tr>
{% endfor %} </thead>
</table> <tbody>
{% for id,info in accounts %}
<tr>
<td><a href="{{ route('accounts.show',id) }}">{{ info.name }}</a></td>
<td>{{ info.balance|formatAmount }}</td>
<td>{{ info.leftForPiggyBanks|formatAmount }}</td>
<td>{{ info.sumOfTargets|formatAmount }}</td>
<td>{{ info.sumOfSaved|formatAmount }}</td>
<td>{{ info.leftToSave|formatAmount }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -5,38 +5,36 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-lg-8 col-md-8 col-sm-6"> <div class="col-lg-8 col-md-8 col-sm-6">
<div class="box">
<div class="box-header with-border">
<i class="fa fa-fw fa-clock-o"></i> {{ 'events'|_ }}
</div>
<div class="box-body">
<div id="piggy-bank-history"></div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4 col-sm-6">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-info-circle"></i> {{ 'details'|_ }} <h3 class="box-title">{{ 'events'|_ }}</h3>
</div>
<div class="box-body">
<div id="piggy-bank-history"></div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4 col-sm-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'details'|_ }}</h3>
<!-- ACTIONS MENU --> <!-- ACTIONS MENU -->
<div class="pull-right"> <div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"> <button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><i class="fa fa-ellipsis-v"></i></button>
{{ 'actions'|_ }} <ul class="dropdown-menu" role="menu">
<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="{{ route('piggy-banks.edit', piggyBank.id) }}"><i class="fa fa-pencil fa-fw"></i> {{ 'edit'|_ }}</a></li> <li><a href="{{ route('piggy-banks.edit', piggyBank.id) }}"><i class="fa fa-pencil fa-fw"></i> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('piggy-banks.delete', piggyBank.id) }}"><i class="fa fa-trash fa-fw"></i> {{ 'delete'|_ }}</a></li> <li><a href="{{ route('piggy-banks.delete', piggyBank.id) }}"><i class="fa fa-trash fa-fw"></i> {{ 'delete'|_ }}</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<table class="table table-bordered table-striped"> <div class="box-body table-responsive no-padding">
<table class="table table-hover">
<tr> <tr>
<td>{{ 'account'|_ }}</td> <td>{{ 'account'|_ }}</td>
<td><a href="{{ route('accounts.show', piggyBank.account_id) }}">{{ piggyBank.account.name }}</a></td> <td><a href="{{ route('accounts.show', piggyBank.account_id) }}">{{ piggyBank.account.name }}</a></td>
@ -57,7 +55,7 @@
<td>{{ 'start_date'|_ }}</td> <td>{{ 'start_date'|_ }}</td>
<td> <td>
{% if piggyBank.startdate %} {% if piggyBank.startdate %}
{{ piggyBank.startdate.format('jS F Y')}} {{ piggyBank.startdate.format('jS F Y') }}
{% else %} {% else %}
<em>{{ 'no_start_date'|_ }}</em> <em>{{ 'no_start_date'|_ }}</em>
{% endif %} {% endif %}
@ -74,51 +72,46 @@
</td> </td>
</tr> </tr>
{% if piggyBank.reminder %} {% if piggyBank.reminder %}
<tr> <tr>
<td>{{ 'reminder'|_ }}</td> <td>{{ 'reminder'|_ }}</td>
<td> <td>
{% if piggyBank.remind_me == 0 %} {% if piggyBank.remind_me == 0 %}
<em>{{ 'no_reminder'|_ }}</em> <em>{{ 'no_reminder'|_ }}</em>
{% else %}
{{ 'every'|_ }}
{% if piggyBank.reminder_skip != 0 %}
{{ piggyBank.reminder_skip }}
{% else %} {% else %}
{{ piggyBank.reminder }}(s) {{ 'every'|_ }}
{% if piggyBank.reminder_skip != 0 %}
{{ piggyBank.reminder_skip }}
{% else %}
{{ piggyBank.reminder }}(s)
{% endif %}
{% endif %} {% endif %}
{% endif %} </td>
</td> </tr>
</tr>
{% endif %} {% endif %}
<tr>
<td>{{ 'reminders_left'|_ }}</td>
<td>{{ 'todo'|_ }}</td>
</tr>
<tr>
<td>{{ 'expected_amount_per_reminder'|_ }}</td>
<td>{{ 'todo'|_ }}</td>
</tr>
</table> </table>
</div>
</div> </div>
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-fw fa-clock-o"></i> {{ 'table'|_ }} <h3 class="box-title">{{ 'table'|_ }}</h3>
</div>
<div class="box-body table-responsive no-padding">
{% include 'list/piggy-bank-events' %}
</div> </div>
{% include 'list/piggy-bank-events' %}
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script type="text/javascript"> <script type="text/javascript">
var piggyBankID = {{ piggyBank.id }}; var piggyBankID = {{ piggyBank.id }};
</script> </script>
<!-- load the libraries and scripts necessary for Google Charts: --> <!-- load the libraries and scripts necessary for Google Charts: -->
<script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="js/gcharts.options.js"></script> <script type="text/javascript" src="js/gcharts.options.js"></script>
<script type="text/javascript" src="js/gcharts.js"></script> <script type="text/javascript" src="js/gcharts.js"></script>
<script type="text/javascript" src="js/piggy-banks.js"></script> <script type="text/javascript" src="js/piggy-banks.js"></script>
{% endblock %} {% endblock %}

View File

@ -11,7 +11,7 @@
<div class="col-lg-6 col-md-6 col-sm-6"> <div class="col-lg-6 col-md-6 col-sm-6">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-credit-card fa-fw"></i> Home screen accounts <h3 class="box-title">Home screen accounts</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
<p class="text-info">Which accounts should be displayed on the home page?</p> <p class="text-info">Which accounts should be displayed on the home page?</p>
@ -34,7 +34,7 @@
</div> </div>
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-credit-card fa-fw"></i> Budget settings <h3 class="box-title">Budget settings</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
<p class="text-info"> <p class="text-info">
@ -48,7 +48,7 @@
<div class="col-lg-6 col-md-6 col-sm-6"> <div class="col-lg-6 col-md-6 col-sm-6">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-clock-o fa-fw"></i> View range <h3 class="box-title">View range</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
<p class="text-info">Some charts are automatically grouped in periods. What period would you prefer?</p> <p class="text-info">Some charts are automatically grouped in periods. What period would you prefer?</p>
@ -92,9 +92,10 @@
<div class="col-lg-6 col-md-6 col-sm-6"> <div class="col-lg-6 col-md-6 col-sm-6">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-flag fa-fw"></i> Languages <h3 class="box-title">Languages</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
<p class="text-info">Firefly III supports several languages. Which one do you prefer?</p>
{% for key, lang in Config.get('firefly.lang') %} {% for key, lang in Config.get('firefly.lang') %}
<div class="radio"> <div class="radio">
<label> <label>

View File

@ -5,29 +5,31 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="row"> {{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="box box-primary">
<div class="box-header with-border">
Change your password
</div>
<div class="box-body">
{% if errors|length > 0 %} <div class="row">
<ul> <div class="col-lg-6 col-md-12 col-sm-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Change your password</h3>
</div>
<div class="box-body">
{% if errors|length > 0 %}
<ul> <ul>
{% for error in errors.all %} <ul>
<li class="text-danger">{{ error }}</li> {% for error in errors.all %}
{% endfor %} <li class="text-danger">{{ error }}</li>
{% endfor %}
</ul>
</ul> </ul>
</ul>
{% endif %} {% endif %}
{{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<div class="form-group"> <div class="form-group">
<label for="inputOldPassword" class="col-sm-4 control-label">Old password</label> <label for="inputOldPassword" class="col-sm-4 control-label">Old password</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="password" class="form-control" id="inputOldPassword" placeholder="Old password" name="current_password"> <input type="password" class="form-control" id="inputOldPassword" placeholder="Old password" name="current_password">
</div> </div>
@ -35,6 +37,7 @@
<div class="form-group"> <div class="form-group">
<label for="inputNewPassword1" class="col-sm-4 control-label">New password</label> <label for="inputNewPassword1" class="col-sm-4 control-label">New password</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="password" class="form-control" id="inputNewPassword1" placeholder="New password" name="new_password"> <input type="password" class="form-control" id="inputNewPassword1" placeholder="New password" name="new_password">
</div> </div>
@ -42,18 +45,20 @@
<div class="form-group"> <div class="form-group">
<label for="inputNewPassword2" class="col-sm-4 control-label">New password (again)</label> <label for="inputNewPassword2" class="col-sm-4 control-label">New password (again)</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="password" class="form-control" id="inputNewPassword2" placeholder="New password (again)" name="new_password_confirmation"> <input type="password" class="form-control" id="inputNewPassword2" placeholder="New password (again)"
name="new_password_confirmation">
</div> </div>
</div> </div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-10">
<button type="submit" class="btn btn-success">Change your password</button> </div>
</div> <div class="box-footer">
</div> <button type="submit" class="btn btn-success pull-right">Change your password</button>
</form> </div>
</div> </div>
</div> </div>
</div> </div>
</div> {{ Form.close|raw }}
{% endblock %} {% endblock %}

View File

@ -5,49 +5,51 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="row"> {{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="box box-danger">
<div class="box-header with-border">
Delete your account
</div>
<div class="box-body">
<p class="text-danger"> <div class="row">
Deleting your account will also delete any accounts, transactions, <em>anything</em> <div class="col-lg-6 col-md-12 col-sm-12">
you might have saved into Firefly III. It'll be GONE. <div class="box box-danger">
</p> <div class="box-header with-border">
<p class="text-danger"> <h3 class="box-title">Delete your account</h3>
Enter your password to continue. </div>
</p> <div class="box-body">
{% if errors|length > 0 %} <p class="text-danger">
<ul> Deleting your account will also delete any accounts, transactions, <em>anything</em>
you might have saved into Firefly III. It'll be GONE.
</p>
<p class="text-danger">
Enter your password to continue.
</p>
{% if errors|length > 0 %}
<ul> <ul>
{% for error in errors.all %} <ul>
<li class="text-danger">{{ error }}</li> {% for error in errors.all %}
{% endfor %} <li class="text-danger">{{ error }}</li>
{% endfor %}
</ul>
</ul> </ul>
</ul>
{% endif %} {% endif %}
{{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<div class="form-group"> <div class="form-group">
<label for="password" class="col-sm-4 control-label">Password</label> <label for="password" class="col-sm-4 control-label">Password</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input type="password" class="form-control" id="password" placeholder="Password" name="password"> <input type="password" class="form-control" id="password" placeholder="Password" name="password">
</div> </div>
</div> </div>
</div>
<div class="form-group"> <div class="box-footer">
<div class="col-sm-offset-4 col-sm-10"> <button type="submit" onclick="confirm('Are you sure? You cannot undo this.')" class="btn btn-danger pull-right">DELETE your account
<button type="submit" onclick="confirm('Are you sure? You cannot undo this.')" class="btn btn-danger">DELETE your account</button> </button>
</div> </div>
</div>
</form>
</div> </div>
</div> </div>
</div> </div>
</div> {{ Form.close|raw }}
{% endblock %} {% endblock %}

View File

@ -6,15 +6,15 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-lg-6 col-md-12 col-sm-12"> <div class="col-lg-6 col-lg-offset-3 col-md-6 col-sm-12">
<div class="box box-primary"> <div class="box box-primary">
<div class="box-header with-border"> <div class="box-header with-border">
Options <h3 class="box-title">Options</h3>
</div> </div>
<div class="box-body"> <div class="box-body">
<ul> <ul>
<li><a href="{{route('change-password')}}">Change your password</a></li> <li><a href="{{route('profile.change-password')}}">Change your password</a></li>
<li><a class="text-danger" href="{{route('delete-account')}}">Delete account</a></li> <li><a class="text-danger" href="{{route('profile.delete-account')}}">Delete account</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -1,41 +1,7 @@
{% extends "./layout/default.twig" %} {% extends "./layout/default.twig" %}
{% block breadcrumbs %} <p>
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }} No longer used.
{% endblock %} </p>
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<h3>Active reminders</h3>
</div>
</div>
{% include 'list/reminders.twig' with {'reminders': active} %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<h3>Dismissed reminders</h3>
</div>
</div>
{% include 'list/reminders.twig' with {'reminders': dismissed} %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<h3>Expired reminders</h3>
</div>
</div>
{% include 'list/reminders.twig' with {'reminders': expired} %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<h3>Inactive reminders</h3>
</div>
</div>
{% include 'list/reminders.twig' with {'reminders': inactive} %}
{% endblock %} {% endblock %}

View File

@ -1,44 +1,5 @@
{% extends "./layout/default.twig" %} {% extends "./layout/default.twig" %}
<p>
{% block breadcrumbs %} No longer used.
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, reminder) }} </p>
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<a href="{{route('reminders.show',reminder.id)}}">
{% if reminder.notnow %}
Dismissed reminder
{% else %}
Reminder
{% endif %}
for piggy bank "{{reminder.remindersable.name}}"
</a>
</div>
<div class="box-body">
<p>
Active between {{reminder.startdate.format('jS F Y')}}
and {{reminder.enddate.format('jS F Y')}}.
</p>
{% if reminder.description %}
<p>{!! reminder.description !!}</p>
{% endif %}
</div>
<div class="panel-footer">
<div class="btn-group">
{% if not reminder.notnow %}
<a class="btn btn-warning" href="{{route('reminders.dismiss',reminder.id)}}">Dismiss</a>
{% endif %}
{% if reminder.active %}
<a class="btn btn-success" href="{{route('reminders.act',reminder.id)}}">Act</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -9,8 +9,7 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-calendar fa-fw"></i> <h3 class="box-title">{{ 'reportsOwnAccounts'|_ }}</h3>
{{ 'reportsOwnAccounts'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
@ -31,8 +30,7 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-calendar fa-fw"></i> <h3 class="box-title">{{ 'reportsOwnAccountsAndShared'|_ }}</h3>
{{ 'reportsOwnAccountsAndShared'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">

View File

@ -10,8 +10,7 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-line-chart"></i> <h3 class="box-title">{{ 'accountBalances'|_ }}</h3>
{{ 'accountBalances'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
<div id="account-balances-chart"></div> <div id="account-balances-chart"></div>
@ -60,20 +59,14 @@
</div> </div>
</div> </div>
<div class="row"> {% endblock %}
<div class="col-lg-12 col-md-12 col-sm-12"> {% block styles %}
<div class="box"> <link rel="stylesheet" href="css/bootstrap-sortable.css" type="text/css" media="all" />
<div class="box-header with-border">
<i class="fa fa-fw fa-folder-o"></i>
{{ 'outsideOfBudgets'|_ }}
</div>
<div class="box-body">Body</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script type="text/javascript" src="js/bootstrap-sortable.js"></script>
<!-- load the libraries and scripts necessary for Google Charts: --> <!-- load the libraries and scripts necessary for Google Charts: -->
<script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="js/gcharts.options.js"></script> <script type="text/javascript" src="js/gcharts.options.js"></script>

View File

@ -10,8 +10,7 @@
<div class="col-lg-10 col-md-8 col-sm-12"> <div class="col-lg-10 col-md-8 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-line-chart"></i> <h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
{{ 'incomeVsExpenses'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
<div id="income-expenses-chart"></div> <div id="income-expenses-chart"></div>
@ -21,8 +20,7 @@
<div class="col-lg-2 col-md-4 col-sm-12"> <div class="col-lg-2 col-md-4 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-calendar"></i> <h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
{{ 'incomeVsExpenses'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
<div id="income-expenses-sum-chart"></div> <div id="income-expenses-sum-chart"></div>
@ -48,8 +46,7 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-tasks fa-fw"></i> <h3 class="box-title">{{ 'categories'|_ }}</h3>
{{ 'categories'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
<div id="categories"></div> <div id="categories"></div>
@ -61,8 +58,7 @@
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<i class="fa fa-tasks fa-fw"></i> <h3 class="box-title">{{ 'budgets'|_ }}</h3>
{{ 'budgets'|_ }}
</div> </div>
<div class="box-body"> <div class="box-body">
<div id="budgets"></div> <div id="budgets"></div>

View File

@ -86,7 +86,9 @@
</div> </div>
</div> </div>
</div> </div>
{% include 'list/journals.twig' with {'journals': tag.transactionjournals} %} <div class="box-body table-responsive no-padding">
{% include 'list/journals.twig' with {'journals': tag.transactionjournals} %}
</div>
</div> </div>
</div> </div>
</div> </div>