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)
{
$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';
$end = clone $start;
$incomeTopLength = 8;
$expenseTopLength = 8;
if ($shared == 'shared') {
$shared = true;
$subTitle = trans('firefly.reportForMonthShared', ['date' => $start->formatLocalized($this->monthFormat)]);
$subTitle = trans('firefly.reportForMonthShared', ['month' => $start->formatLocalized($this->monthFormat)]);
}
$end->endOfMonth();

View File

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

View File

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

View File

@ -10,11 +10,11 @@ var defaultLineChartOptions = {
chartArea: {
left: 50,
top: 10,
width: '85%',
height: '80%'
width: '95%',
height: '90%'
},
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: {
textStyle: {
color: '#838383',

View File

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

View File

@ -62,7 +62,7 @@ return [
'delete_budget' => 'Delete budget ":name"',
'delete_category' => 'Delete category ":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"',
'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">
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div>
<div class="box-body">
<div class="box-body table-responsive no-padding">
{% include 'list/journals.twig' with {sorting:true} %}
</div>
</div>

View File

@ -128,6 +128,12 @@
</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="bootstrap/js/bootstrap.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>
{% if showPiggyBank %}
<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>
{% for piggyBank in piggyBanks %}
<tr data-id="{{ piggyBank.id }}">
<td style="width:60px;">
<i class="fa fa-fw fa-bars handle"></i>
<i class="loadSpin"></i>
</td>
<td style="width:100px;">
<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.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 }}%
<tr data-id="{{ piggyBank.id }}">
<td style="width:60px;">
<i class="fa fa-fw fa-bars handle"></i>
<i class="loadSpin"></i>
</td>
<td style="width:100px;">
<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.delete', piggyBank.id) }}" class="btn btn-danger btn-xs"><i class="fa fa-trash fa-fw"></i></a>
</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;">
{% 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>
{% endif %}
</td>
<td style="width:200px;">
<span title="Target amount">{{ piggyBank.targetamount|formatAmount }}</span>
{% if piggyBank.leftToSave > 0 %}
<span title="Left to save">({{ piggyBank.leftToSave|formatAmount }})</span>
{% endif %}
</td>
</tr>
{% endfor %}
<td style="width:40px;">
{% 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>
{% endif %}
</td>
<td style="width:200px;">
<span title="Target amount">{{ piggyBank.targetamount|formatAmount }}</span>
{% if piggyBank.leftToSave > 0 %}
<span title="Left to save">({{ piggyBank.leftToSave|formatAmount }})</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>

View File

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

View File

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

View File

@ -1,57 +1,61 @@
<div class="box">
<div class="box-header with-border">
<i class="fa fa-sort-amount-asc fa-fw"></i>
{{ 'budgets'|_ }} ({{ 'splitByAccount'|_|lower }})
<h3 class="box-title">{{ 'budgets'|_ }} ({{ 'splitByAccount'|_|lower }})</h3>
</div>
<table class="table table-bordered table-striped">
<!-- build balance report header -->
<tr>
<th colspan="2">{{ 'budgets'|_ }}</th>
{% 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 %}
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<!-- build balance report header -->
<thead>
<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>
<th colspan="2">{{ 'budgets'|_ }}</th>
{% for account in balance.getBalanceHeader.getAccounts %}
<th><a href="{{ route('accounts.show',account.id) }}">{{ account.name }}</a></th>
{% endfor %}
<td>
{% if balanceLine.leftOfRepetition != 0 %}
{{ balanceLine.leftOfRepetition|formatAmount }}
{% endif %}
</td>
<td>
{% if balanceLine.sumOfLeft != 0 %}
{{ balanceLine.sumOfLeft|formatAmount }}
{% endif %}
</td>
<th>
{{ 'leftInBudget'|_ }}
</th>
<th>{{ 'sum'|_ }}</th>
</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>

View File

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

View File

@ -1,62 +1,69 @@
<div class="box">
<div class="box-header with-border">
<i class="fa fa-tasks fa-fw"></i>
{{ 'budgets'|_ }}
<h3 class="box-title">{{ 'budgets'|_ }}</h3>
</div>
<table class="table table-bordered">
<tr>
<th>{{ 'budget'|_ }}</th>
<th>{{ 'date'|_ }}</th>
<th>{{ 'budgeted'|_ }}</th>
<th>{{ 'spent'|_ }}</th>
<th>{{ 'left'|_ }}</th>
<th>{{ 'overspent'|_ }}</th>
</tr>
{% for budgetLine in budgets.getBudgetLines %}
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<thead>
<tr>
<td>
{% if budgetLine.getBudget %}
<a href="{{route('budgets.show',budgetLine.getBudget.id)}}">{{ budgetLine.getBudget.name }}</a>
{% else %}
<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>
<th>{{ 'budget'|_ }}</th>
<th>{{ 'date'|_ }}</th>
<th>{{ 'budgeted'|_ }}</th>
<th>{{ 'spent'|_ }}</th>
<th>{{ 'left'|_ }}</th>
<th>{{ 'overspent'|_ }}</th>
</tr>
{% endfor %}
<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>
</table>
</thead>
<tbody>
{% for budgetLine in budgets.getBudgetLines %}
<tr>
<td>
{% if budgetLine.getBudget %}
<a href="{{ route('budgets.show',budgetLine.getBudget.id) }}">{{ budgetLine.getBudget.name }}</a>
{% else %}
<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>

View File

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

View File

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

View File

@ -1,20 +1,21 @@
<div class="box">
<div class="box-header with-border">
<i class="fa fa-fw fa-exchange"></i>
{{ 'incomeVsExpenses'|_ }}
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
</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>
<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>

View File

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

View File

@ -6,55 +6,49 @@
{% block content %}
{{ 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="col-lg-6 col-md-12 col-sm-6">
<div class="box box-primary">
<div class="box-header with-border">
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="box-body">
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="box box-primary">
<div class="box-header with-border">
<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') }}
{{ ExpandedForm.text('name') }}
{{ ExpandedForm.select('account_id',accounts,null,{'label' : 'saveOnAccount'|_}) }}
{{ ExpandedForm.amount('targetamount') }}
</div>
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
<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 class="box-body">
{{ ExpandedForm.date('targetdate') }}
{{ ExpandedForm.checkbox('remind_me','1',false) }}
{{ ExpandedForm.select('reminder',periods,'month') }}
</div>
</div>
<!-- panel for options -->
<div class="box">
<div class="box-header with-border">
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
<!-- panel for options -->
<div class="box">
<div class="box-header with-border">
<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 class="box-body">
{{ ExpandedForm.optionsList('create','piggy bank') }}
</div>
</div>
</div>
</div>
</div>
<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>
{{ Form.close|raw }}
{% endblock %}

View File

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

View File

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

View File

@ -5,19 +5,17 @@
{% endblock %}
{% 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="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">{{ 'piggyBanks'|_ }}</div>
{% include 'list/piggy-banks.twig' %}
<div class="box-header with-border">
<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>
@ -26,28 +24,34 @@
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<i class="fa fa-fw fa-money"></i> {{ 'account_status'|_ }}
<h3 class="box-title">{{ 'account_status'|_ }}</h3>
</div>
<table class="table table-striped">
<tr>
<th>{{ 'account'|_ }}</th>
<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 %}
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<thead>
<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>
<th>{{ 'account'|_ }}</th>
<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>
{% endfor %}
</table>
</thead>
<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>

View File

@ -5,38 +5,36 @@
{% endblock %}
{% block content %}
<div class="row">
<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="row">
<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-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 -->
<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">
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
{{ 'actions'|_ }}
<span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><i class="fa fa-ellipsis-v"></i></button>
<ul class="dropdown-menu" 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.delete', piggyBank.id) }}"><i class="fa fa-trash fa-fw"></i> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<table class="table table-bordered table-striped">
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<tr>
<td>{{ 'account'|_ }}</td>
<td><a href="{{ route('accounts.show', piggyBank.account_id) }}">{{ piggyBank.account.name }}</a></td>
@ -57,7 +55,7 @@
<td>{{ 'start_date'|_ }}</td>
<td>
{% if piggyBank.startdate %}
{{ piggyBank.startdate.format('jS F Y')}}
{{ piggyBank.startdate.format('jS F Y') }}
{% else %}
<em>{{ 'no_start_date'|_ }}</em>
{% endif %}
@ -74,51 +72,46 @@
</td>
</tr>
{% if piggyBank.reminder %}
<tr>
<td>{{ 'reminder'|_ }}</td>
<td>
{% if piggyBank.remind_me == 0 %}
<em>{{ 'no_reminder'|_ }}</em>
{% else %}
{{ 'every'|_ }}
{% if piggyBank.reminder_skip != 0 %}
{{ piggyBank.reminder_skip }}
<tr>
<td>{{ 'reminder'|_ }}</td>
<td>
{% if piggyBank.remind_me == 0 %}
<em>{{ 'no_reminder'|_ }}</em>
{% else %}
{{ piggyBank.reminder }}(s)
{{ 'every'|_ }}
{% if piggyBank.reminder_skip != 0 %}
{{ piggyBank.reminder_skip }}
{% else %}
{{ piggyBank.reminder }}(s)
{% endif %}
{% endif %}
{% endif %}
</td>
</tr>
</td>
</tr>
{% endif %}
<tr>
<td>{{ 'reminders_left'|_ }}</td>
<td>{{ 'todo'|_ }}</td>
</tr>
<tr>
<td>{{ 'expected_amount_per_reminder'|_ }}</td>
<td>{{ 'todo'|_ }}</td>
</tr>
</table>
</div>
</div>
<div class="box">
<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>
{% include 'list/piggy-bank-events' %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript">
var piggyBankID = {{ piggyBank.id }};
</script>
<script type="text/javascript">
var piggyBankID = {{ piggyBank.id }};
</script>
<!-- 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="js/gcharts.options.js"></script>
<script type="text/javascript" src="js/gcharts.js"></script>
<script type="text/javascript" src="js/piggy-banks.js"></script>
<!-- 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="js/gcharts.options.js"></script>
<script type="text/javascript" src="js/gcharts.js"></script>
<script type="text/javascript" src="js/piggy-banks.js"></script>
{% endblock %}

View File

@ -11,7 +11,7 @@
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
<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 class="box-body">
<p class="text-info">Which accounts should be displayed on the home page?</p>
@ -34,7 +34,7 @@
</div>
<div class="box">
<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 class="box-body">
<p class="text-info">
@ -48,7 +48,7 @@
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
<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 class="box-body">
<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="box">
<div class="box-header with-border">
<i class="fa fa-flag fa-fw"></i> Languages
<h3 class="box-title">Languages</h3>
</div>
<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') %}
<div class="radio">
<label>

View File

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

View File

@ -5,49 +5,51 @@
{% endblock %}
{% block content %}
<div class="row">
<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">
{{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<p class="text-danger">
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>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="box box-danger">
<div class="box-header with-border">
<h3 class="box-title">Delete your account</h3>
</div>
<div class="box-body">
{% if errors|length > 0 %}
<ul>
<p class="text-danger">
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>
{% for error in errors.all %}
<li class="text-danger">{{ error }}</li>
{% endfor %}
<ul>
{% for error in errors.all %}
<li class="text-danger">{{ error }}</li>
{% endfor %}
</ul>
</ul>
</ul>
{% endif %}
{% endif %}
{{ Form.open({'class' : 'form-horizontal','id' : 'change-password'}) }}
<div class="form-group">
<label for="password" class="col-sm-4 control-label">Password</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password" placeholder="Password" name="password">
</div>
</div>
<div class="form-group">
<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">DELETE your account</button>
</div>
</div>
</form>
</div>
<div class="box-footer">
<button type="submit" onclick="confirm('Are you sure? You cannot undo this.')" class="btn btn-danger pull-right">DELETE your account
</button>
</div>
</div>
</div>
</div>
</div>
{{ Form.close|raw }}
{% endblock %}

View File

@ -6,15 +6,15 @@
{% block content %}
<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-header with-border">
Options
<h3 class="box-title">Options</h3>
</div>
<div class="box-body">
<ul>
<li><a href="{{route('change-password')}}">Change your password</a></li>
<li><a class="text-danger" href="{{route('delete-account')}}">Delete account</a></li>
<li><a href="{{route('profile.change-password')}}">Change your password</a></li>
<li><a class="text-danger" href="{{route('profile.delete-account')}}">Delete account</a></li>
</ul>
</div>
</div>

View File

@ -1,41 +1,7 @@
{% extends "./layout/default.twig" %}
{% block breadcrumbs %}
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }}
{% endblock %}
{% 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} %}
<p>
No longer used.
</p>
{% endblock %}

View File

@ -1,44 +1,5 @@
{% extends "./layout/default.twig" %}
{% block breadcrumbs %}
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, reminder) }}
{% 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>
<p>
No longer used.
</p>
{% endblock %}

View File

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

View File

@ -10,8 +10,7 @@
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<i class="fa fa-line-chart"></i>
{{ 'accountBalances'|_ }}
<h3 class="box-title">{{ 'accountBalances'|_ }}</h3>
</div>
<div class="box-body">
<div id="account-balances-chart"></div>
@ -60,20 +59,14 @@
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<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 %}
{% block styles %}
<link rel="stylesheet" href="css/bootstrap-sortable.css" type="text/css" media="all" />
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="js/bootstrap-sortable.js"></script>
<!-- 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="js/gcharts.options.js"></script>

View File

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

View File

@ -86,7 +86,9 @@
</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>