Remove old v1 views

This commit is contained in:
James Cole 2022-01-29 14:16:03 +01:00
parent 6da6a68e33
commit b0e6d12325
No known key found for this signature in database
GPG Key ID: BDE6667570EADBD5
251 changed files with 0 additions and 17989 deletions

View File

@ -1,97 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, objectType) }}
{% endblock %}
{% block content %}
<!-- set location data high up -->
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var locations = {{ locations|json_encode|raw }};
var mapboxToken = "{{ config('firefly.mapbox_api_key') }}";
</script>
<form action="{{ route('accounts.store') }}" method="post" id="store" class="form-horizontal" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="objectType" value="{{ objectType }}"/>
<input type="hidden" name="active" value="1"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<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') }}
{% if objectType == 'asset' or objectType == 'liabilities' %}
{{ CurrencyForm.currencyList('currency_id', null, {helpText:'account_default_currency'|_}) }}
{% endif %}
{% if objectType == 'liabilities' %}
{{ ExpandedForm.select('liability_type_id', liabilityTypes) }}
{{ ExpandedForm.amountNoCurrency('opening_balance', null, {label:'debt_start_amount'|_}) }}
{{ ExpandedForm.select('liability_direction', liabilityDirections) }}
{{ ExpandedForm.date('opening_balance_date', null, {label:'debt_start_date'|_}) }}
{{ ExpandedForm.percentage('interest') }}
{{ ExpandedForm.select('interest_period', interestPeriods, null, {helpText: 'interest_period_help'|_}) }}
{% endif %}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.text('iban') }}
{{ ExpandedForm.text('BIC', null, {maxlength: 11}) }}
{{ ExpandedForm.text('account_number') }}
{% if objectType == 'asset' %}
{{ ExpandedForm.amountNoCurrency('opening_balance') }}
{{ ExpandedForm.date('opening_balance_date') }}
{{ ExpandedForm.select('account_role', roles,null,{helpText : 'asset_account_role_help'|_}) }}
{{ ExpandedForm.amountNoCurrency('virtual_balance') }}
{% endif %}
{# only correct way to do active checkbox #}
{{ ExpandedForm.checkbox('include_net_worth', 1) }}
{{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }}
{{ ExpandedForm.location('location', null, {locations: locations}) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'options'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.optionsList('create','account') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ ('store_new_' ~ objectType ~ '_account')|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script src="v1/lib/leaflet/leaflet.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/modernizr-custom.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/accounts/create.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link rel="stylesheet" href="v1/lib/leaflet/leaflet.css?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,58 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, account) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('accounts.destroy',account.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_account', {'name': account.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.account_areYouSure', {'name': account.name}) }}
</p>
{% if account.transactions|length > 0 or account.piggyBanks|length > 0 %}
<p>
{% if account.transactions|length > 0 %}
{{ Lang.choice('form.also_delete_transactions', account.transactions|length, {count: account.transactions|length}) }}
{% endif %}<br/>
{% if account.piggyBanks|length > 0 %}
{{ Lang.choice('form.also_delete_piggyBanks', account.piggyBanks|length, {count: account.piggyBanks|length}) }}
{% endif %}
</p>
{% endif %}
{% if account.transactions.count() > 0 and account.accountType.type == 'Asset account' %}
<p class="text-success">
{{ trans_choice('firefly.save_transactions_by_moving', account.transactions|length ) }}
</p>
<p>
{{ Form.select('move_account_before_delete', accountList, null, {class: 'form-control'}) }}
</p>
{% else %}
<input type="hidden" name="move_account_before_delete" value="0"/>
{% endif %}
</div>
<div class="box-footer">
<input type="submit" name="submit" value="{{ trans('form.deletePermanently') }}" class="btn pull-right btn-danger"/>
<a href="{{ URL.previous() }}" class="btn-default btn">{{ trans('form.cancel') }}</a>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,128 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute().getName(), account) }}
{% endblock %}
{% block content %}
<!-- set location data high up -->
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var locations = {{ locations|json_encode|raw }};
var mapboxToken = "{{ config('firefly.mapbox_api_key') }}";
</script>
{{ Form.model(account, {
'class': 'form-horizontal',
'id': 'update',
'url': route('accounts.update',account.id),
'enctype': 'multipart/form-data'
} ) }}
<input type="hidden" name="id" value="{{ account.id }}"/>
<input type="hidden" name="objectType" value="{{ objectType }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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') }}
{% if account.accountType.type == 'Default account' or account.accountType.type == 'Asset account' or objectType == 'liabilities' %}
{{ CurrencyForm.currencyList('currency_id', null, {helpText:'account_default_currency'|_}) }}
{% endif %}
{% if objectType == 'liabilities' %}
{{ ExpandedForm.select('liability_type_id', liabilityTypes) }}
{{ ExpandedForm.amountNoCurrency('opening_balance', null, {label:'debt_start_amount'|_, helpText: 'debt_start_amount_help'|_}) }}
{{ ExpandedForm.select('liability_direction', liabilityDirections) }}
{{ ExpandedForm.date('opening_balance_date', null, {label:'debt_start_date'|_}) }}
{{ ExpandedForm.percentage('interest') }}
{{ ExpandedForm.select('interest_period', interestPeriods) }}
{% endif %}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.text('iban') }}
{{ ExpandedForm.text('BIC', null, {maxlength: 11}) }}
{% if preFilled.account_role == 'ccAsset' %}
{{ ExpandedForm.text('account_number', null , {label:trans('form.creditCardNumber')}) }}
{% else %}
{{ ExpandedForm.text('account_number') }}
{% endif %}
{% if account.accounttype.type == 'Default account' or account.accounttype.type == 'Asset account' %}
{# get opening balance entry for this thing! #}
{{ ExpandedForm.amountNoCurrency('opening_balance',null) }}
{{ ExpandedForm.date('opening_balance_date') }}
{{ ExpandedForm.select('account_role', roles) }}
{{ ExpandedForm.amountNoCurrency('virtual_balance',null) }}
{% endif %}
{{ ExpandedForm.checkbox('include_net_worth', 1) }}
{{ ExpandedForm.textarea('notes',preFilled.notes,{helpText: trans('firefly.field_supports_markdown')}) }}
{# only correct way to do active checkbox #}
{{ ExpandedForm.checkbox('active', 1) }}
{# only correct way to do active checkbox #}
{{ ExpandedForm.location('location', null, {locations: locations}) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
{# panel for credit card options #}
{% if preFilled.account_role == 'ccAsset' %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'credit_card_options'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.select('cc_type',Config.get('firefly.ccTypes')) }}
{{ ExpandedForm.date('cc_monthly_payment_date',null,{'helpText' : trans('firefly.cc_monthly_payment_date_help')}) }}
</div>
</div>
{% endif %}
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
{# 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','account') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ ('update_' ~ objectType ~ '_account')|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script src="v1/lib/leaflet/leaflet.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/modernizr-custom.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/accounts/edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link rel="stylesheet" href="v1/lib/leaflet/leaflet.css?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,83 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, objectType) }}
{% endblock %}
{% block content %}
{% if accounts.count() > 0 %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box" id="account-index-{{ objectType }}">
<div class="box-header with-border">
<h3 class="box-title">
{{ subTitle }}
</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('accounts.create', objectType) }}"><span
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}
</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a href="{{ route('accounts.create', objectType) }}" class="btn btn-success"><span class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}</a>
</div>
{% include 'v1.list.accounts' %}
</div>
<div class="box-footer">
<p>
<a href="{{ route('accounts.create', objectType) }}" class="btn btn-success"><span
class="fa fa-plus fa-fw"></span> {{ ('make_new_' ~ objectType ~ '_account')|_ }}</a>
</p>
{% if inactiveCount > 0 %}
<p><small>
<em>
<a href="{{ route('accounts.inactive.index', objectType) }}" class="text-muted">
{{ trans_choice('firefly.inactive_account_link', inactiveCount) }}
</a>
</em>
</small>
</p>
{% endif %}
{% if inactivePage %}
<p><small class="text-muted">
<em>
{{ 'all_accounts_inactive'|_ }}
<a href="{{ route('accounts.index', objectType) }}">
{{ trans('firefly.active_account_link', {count: inactiveCount}) }}
</a>
</em>
</small>
</p>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{% if accounts.count() == 0 and page == 1 %}
{% include 'v1.partials.empty' with {objectType: objectType, type: 'accounts',route: route('accounts.create', [objectType])} %}
{% endif %}
{% endblock %}
{% block styles %}
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var objectType = '{{ objectType|escape }}';
</script>
<script src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" nonce="{{ JS_NONCE }}" src="v1/js/ff/accounts/index.js?v={{ FF_VERSION }}"></script>
{% endblock %}

View File

@ -1,119 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, journal) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('accounts.reconcile.update',journal.id) }}" accept-charset="UTF-8" class="form-horizontal" id="update"
enctype="multipart/form-data">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ journal.id }}"/>
{% if errors.all|length > 0 %}
<div class="row">
<div class="col-lg-12">
<h3 class="text-danger">{{ 'errors'|_ }}</h3>
<ul>
{% for err in errors.all %}
<li class="text-danger">{{ err }}</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{# ALWAYS AVAILABLE #}
{{ ExpandedForm.staticText('description',journal.description) }}
{# ALWAYS SHOW AMOUNT #}
{{ ExpandedForm.nonSelectableAmount('amount',data.amount, {'currency' : data.currency}) }}
{# ALWAYS SHOW DATE #}
{{ ExpandedForm.staticText('date',journal.date.formatLocalized(monthAndDayFormat)) }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{# category always #}
{{ ExpandedForm.text('category',data.category) }}
{# tags #}
{{ ExpandedForm.text('tags') }}
</div>
</div>
{# box for attachments #}
{% if optionalFields.attachments %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optional_field_attachments'|_ }}</h3>
</div>
<div class="box-body">
{% if optionalFields.attachments %}
{# attachments #}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
{% endif %}
</div>
</div>
{% endif %}
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
{# 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','transaction') }}
</div>
<div class="box-footer">
<button type="submit" class="pull-right btn btn-success">{{ ('update_reconciliation')|_ }}</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var what = "{{ what }}";
</script>
<script type="text/javascript" src="v1/js/lib/typeahead/typeahead.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/common/autocomplete.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/bootstrap-tagsinput.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/modernizr-custom.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/jscript/accounts?ext=.js&amp;v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/jscript/currencies?ext=.js&amp;v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript">
var journal = {{ journal.toArray()|json_encode|raw }};
var journalData = {{ data|json_encode|raw }};
</script>
<script type="text/javascript" src="v1/js/ff/accounts/edit-reconciliation.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-tagsinput.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,137 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, account, start, end) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-9 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'reconcile_range'|_ }}</h3>
</div>
<div class="box-body no-padding">
<table class="table table-hover">
<thead>
<tr>
<th colspan="2" style="width:50%;">{{ 'start_balance'|_ }}</th>
<th colspan="2">{{ 'end_balance'|_ }}</th>
</tr>
</thead>
<tbody>
<tr>
<td style="width:25%;">
{{ 'date'|_ }}
</td>
<td style="width:25%;">
{{ 'balance'|_ }}
</td>
<td style="width:25%;">
{{ 'date'|_ }}
</td>
<td style="width:25%;">
{{ 'balance'|_ }}
</td>
</tr>
<tr>
<td>
<div class="input-group">
<div class="input-group-addon">
<span class="fa fa-calendar"></span>
</div>
<input type="date" value="{{ start.format('Y-m-d') }}" name="start_date" class="form-control">
</div>
</td>
<td>
<div class="input-group">
<span class="input-group-addon non-selectable-currency-symbol">{{ currency.symbol }}</span>
<input type="number" value="{{ startBalance }}" name="start_balance" class="form-control">
</div>
</td>
<td>
<div class="input-group">
<div class="input-group-addon">
<span class="fa fa-calendar"></span>
</div>
<input type="date" value="{{ end.format('Y-m-d') }}" name="end_date" class="form-control">
</div>
</td>
<td>
<div class="input-group">
<span class="input-group-addon non-selectable-currency-symbol">{{ currency.symbol }}</span>
<input type="number" value="{{ endBalance }}" name="end_balance" class="form-control">
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<div class="update_balance_instruction">
{{ 'update_balance_dates_instruction'|_ }}
</div>
<div class="select_transactions_instruction" style="display:none;">
{{ 'select_transactions_instruction'|_ }}
</div>
<div class="date_change_warning text-danger" style="display:none;">
{{ 'date_change_instruction'|_ }}
</div>
</td>
<td>
<a href="#" class="btn btn-default start_reconcile">{{ 'start_reconcile'|_ }}</a>
<a href="#" class="btn btn-default change_date_button" style="display: none;">{{ 'update_selection'|_ }}</a>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
<div class="col-lg-3 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'reconcile_options'|_ }}</h3>
</div>
<div class="box-body">
<p class="lead" id="difference"></p>
<div class="btn-group">
<button class="btn btn-default store_reconcile" disabled><span class="fa fa-fw fa-check"></span> {{ 'store_reconcile'|_ }}</button>
</div>
</div>
</div>
</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">
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div>
<div class="box-body">
<div id="transactions_holder">
<p class="text-center lead">{{ 'select_range_and_balance'|_ }}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
currencySymbol = "{{ currency.symbol }}";
var accountID = {{ account.id }};
var startBalance = {{ startBalance }};
var endBalance = {{ endBalance }};
var transactionsUri = '{{ transactionsUri }}';
var overviewUri = '{{ overviewUri }}';
var indexUri = '{{ indexUri }}';
var selectRangeAndBalance = '{{ 'select_range_and_balance'|_|escape('js') }}';
</script>
<script src="v1/js/ff/accounts/reconcile.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,107 +0,0 @@
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title">
{{ 'overview_of_reconcile_modal'|_ }}
</h4>
</div>
<form style="display: inline;" class="form-horizontal" id="income" action="{{ route }}" method="POST">
<div class="modal-body">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="start" value="{{ start.format('Y-m-d') }}"/>
<input type="hidden" name="end" value="{{ end.format('Y-m-d') }}"/>
<input type="hidden" name="startBalance" value="{{ startBalance }}"/>
<input type="hidden" name="endBalance" value="{{ endBalance }}"/>
{% for id in selectedIds %}
<input type="hidden" name="journals[]" value="{{ id }}"/>
{% endfor %}
<table class="table table-striped table-bordered">
<tr>
<td>{{ 'submitted_start_balance'|_ }} ({{ start.formatLocalized(monthAndDayFormat) }})</td>
<td>{{ formatAmountByAccount(account, startBalance) }}</td>
</tr>
<tr>
<td>{{ trans('firefly.selected_transactions', {count: selectedIds|length}) }}</td>
<td>{{ formatAmountByAccount(account, amount) }}</td>
</tr>
<tr>
<td>{{ trans('firefly.already_cleared_transactions', {count: countCleared}) }}</td>
<td>{{ formatAmountByAccount(account, clearedAmount) }}</td>
</tr>
<tr>
<td>{{ 'submitted_end_balance'|_ }} ({{ end.formatLocalized(monthAndDayFormat) }})</td>
<td>{{ formatAmountByAccount(account, endBalance) }}</td>
</tr>
<tr>
<td>{{ 'sum_of_reconciliation'|_ }}</td>
<td>{{ formatAmountByAccount(account, reconSum) }}</td>
</tr>
<tr>
<td>{{ 'difference'|_ }}</td>
<td>
{{ formatAmountByAccount(account, difference) }}
<input type="hidden" name="difference" value="{{ difference }}"/>
</td>
</tr>
</table>
<p>
{% if diffCompare > 0 %}
{{ 'reconcile_has_more'|_ }}
{% endif %}
{% if diffCompare < 0 %}
{{ 'reconcile_has_less'|_ }}
{% endif %}
</p>
{% if diffCompare == 0 %}
<p>
{{ 'reconcile_is_equal'|_ }}
</p>
<input type="hidden" name="reconcile" value="nothing">
{% endif %}
{% if diffCompare != 0 %}
<div class="form-group">
<div class="col-lg-12">
<div class="radio">
<label>
<input type="radio" name="reconcile" value="create">
{% if diffCompare > 0 %}
{{ trans('firefly.create_neg_reconcile_transaction', {amount: formatAmountByAccount(account, (difference*-1))})|raw }}
{% endif %}
{% if diffCompare < 0 %}
{{ trans('firefly.create_pos_reconcile_transaction', {amount: formatAmountByAccount(account, (difference*-1))})|raw }}
{% endif %}
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-12">
<div class="radio">
<label>
<input type="radio" checked name="reconcile" value="nothing"> {{ 'reconcile_do_nothing'|_ }}
</label>
</div>
</div>
</div>
<p>
{{ 'reconcile_go_back'|_ }}
</p>
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
<button type="submit" class="btn btn-primary">{{ 'confirm_reconciliation'|_ }}</button>
</div>
</form>
</div>
</div>

View File

@ -1,109 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, account, journal) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transaction_journal_information'|_ }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button id="transaction_menu" class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('transactions.edit',journal.id) }}"><span class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('transactions.delete',journal.id) }}"><span class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body no-padding">
<table class="table table-hover">
<tbody>
<tr>
<td>{{ trans('list.type') }}</td>
<td>{{ journal.transactiontype.type|_ }}</td>
</tr>
<tr>
<td>{{ trans('list.description') }}</td>
<td>{{ journal.description }}</td>
</tr>
{# total amount #}
<tr>
<td>{{ 'total_amount'|_ }}</td>
<td>
{{ formatAmountByAccount(transaction.account, transaction.amount) }}
</td>
</tr>
<tr>
<td style="width:30%;">{{ trans('list.date') }}</td>
<td>{{ journal.date.formatLocalized(monthAndDayFormat) }}</td>
</tr>
</tbody>
</table>
</div>
<div class="box-footer">
<div class="pull-right">
<div class="btn-group">
<a class="btn btn-default" href="{{ route('transactions.edit',journal.id) }}"><span class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a>
<a href="{{ route('transactions.delete',journal.id) }}" class="btn btn-danger"><span class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}
</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transaction_journal_meta'|_ }}</h3>
</div>
<div class="box-body no-padding">
<table class="table table-responsive table-hover">
<tbody>
{#
<tr>
<td>{{ 'categories'|_ }}</td>
<td>{{ journalCategories(journal)|raw }}</td>
</tr>
#}
{% if journal.tags|length > 0 %}
<tr>
<td>{{ 'tags'|_ }}</td>
<td>
{% for tag in journal.tags %}
<h4 style="display: inline;"><a class="label label-success" href="{{ route('tags.show',tag) }}">
{% if tag.tagMode == 'nothing' %}
<span class="fa fa-fw fa-tag"></span>
{% endif %}
{% if tag.tagMode == 'balancingAct' %}
<span class="fa fa-fw fa-refresh"></span>
{% endif %}
{% if tag.tagMode == 'advancePayment' %}
<span class="fa fa-fw fa-sort-numeric-desc"></span>
{% endif %}
{{ tag.tag }}</a>
</h4>
{% endfor %}
</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
{% endblock %}

View File

@ -1,176 +0,0 @@
<table class="table table-striped table-condensed">
<thead>
<tr class="ignore">
<th class="hidden-xs" colspan="2">&nbsp;</th>
<th>{{ trans('list.description') }}</th>
<th style="text-align:right;">{{ trans('list.amount') }}</th>
<th class="hidden-xs hidden-sm hidden-md">{{ trans('list.reconcile') }}</th>
<th class="hidden-xs hidden-sm">{{ trans('list.date') }}</th>
<th class="hidden-xs hidden-sm hidden-md">{{ trans('list.from') }}</th>
<th class="hidden-xs hidden-sm hidden-md">{{ trans('list.to') }}</th>
<th class="hidden-xs"><span class="fa fa-pie-chart fa-fw" title="{{ trans('list.budget') }}"></span></th>
<th class="hidden-xs"><span class="fa fa-bookmark fa-fw" title="{{ trans('list.category') }}"></span></th>
</tr>
</thead>
<tbody>
{# data for previous/next markers #}
{% set endSet = false %}
{% set startSet = false %}
{% for journal in journals %}
{# start marker #}
{% if journal.date < start and startSet == false %}
<tr>
<td colspan="4">
&nbsp;
</td>
<td>
<input type="checkbox" class="check_all_btn">
</td>
<td colspan="3">
<span class="label label-default">
{{ trans('firefly.start_of_reconcile_period', {period: start.formatLocalized(monthAndDayFormat) }) }}
</span>
</td>
<td colspan="2">
&nbsp;
</td>
</tr>
{% set startSet = true %}
{% endif %}
{# end marker #}
{% if journal.date <= end and endSet == false %}
<tr>
<td colspan="4">
&nbsp;
</td>
<td>
<input type="checkbox" class="check_all_btn">
</td>
<td colspan="3">
<span class="label label-default">
{{ trans('firefly.end_of_reconcile_period', {period: end.formatLocalized(monthAndDayFormat) }) }}
</span>
</td>
<td colspan="2">
&nbsp;
</td>
</tr>
{% set endSet = true %}
{% endif %}
<tr data-date="{{ journal.date.format('Y-m-d') }}" data-id="{{ journal.transaction_journal_id }}">
<td class="hidden-xs">
<div class="btn-group btn-group-xs">
<a href="{{ route('transactions.edit', [journal.transaction_group_id]) }}" class="btn btn-xs btn-default"><span
class="fa fa-fw fa-pencil"></span></a>
</div>
</td>
<!-- icon -->
<td class="hidden-xs">
{% if journal.transaction_type_type == 'Withdrawal' %}
<span class="fa fa-long-arrow-left fa-fw" title="{{ trans('firefly.Withdrawal') }}"></span>
{% endif %}
{% if journal.transaction_type_type == 'Deposit' %}
<span class="fa fa-long-arrow-right fa-fw" title="{{ trans('firefly.Deposit') }}"></span>
{% endif %}
{% if journal.transaction_type_type == 'Transfer' %}
<span class="fa fa-exchange fa-fw" title="{{ trans('firefly.Deposit') }}"></span>
{% endif %}
{% if journal.transaction_type_type == 'Reconciliation' %}
<span class="fa-fw fa fa-calculator" title="{{ trans('firefly.reconciliation_transaction') }}"></span>
{% endif %}
{% if journal.transaction_type_type == 'Opening balance' %}
<span class="fa-fw fa fa-star-o" title="{{ trans('firefly.Opening balance') }}"></span>
{% endif %}
</td>
<!-- description -->
<td>
<a href="{{ route('transactions.show', [journal.transaction_group_id]) }}" title="{{ journal.description }}">
{% if journal.group_title %}
<span class="text-muted"><span class="fa fa-fw fa-share-alt" aria-hidden="true"></span></span> {{ journal.group_title }}:
{% endif %}
{{ journal.description }}</a>
</td>
<td style="text-align: right;">
<span style="margin-right:5px;">
{{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }}
{% if null != journal.foreign_amount %}
({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }})
{% endif %}
</span>
</td>
<td>
{% if journal.date >= start and journal.date <= end %}
{% if journal.reconciled %}
<span class="fa fa-check" aria-hidden="true"></span>
<input type="hidden" name="cleared[]" data-younger="{% if journal.date < start %}true{% else %}false{% endif %}"
data-inrange="{% if journal.date >= start and journal.date <= end %}true{% else %}false"{% endif %}"
class="cleared" data-id="{{ journal.transaction_journal_id }}" value="{{ journal.amount }}">
{% else %}
<input type="checkbox" name="reconciled[]"
data-younger="{% if journal.date < start %}true{% else %}false{% endif %}"
data-inrange="{% if journal.date >= start and journal.date <= end %}true{% else %}false"{% endif %}"
value="{{ journal.amount }}" data-id="{{ journal.transaction_journal_id }}" disabled class="reconcile_checkbox">
{% endif %}
{% else %}
<!-- if not in range, just show reconciliation status -->
{% if journal.reconciled %}
<span class="fa fa-check" aria-hidden="true"></span>
{% else %}
<!-- See reference nr. 1 -->
{% endif %}
{% endif %}
</td>
<td class="hidden-sm hidden-xs">
{{ journal.date.formatLocalized(monthAndDayFormat) }}
</td>
<td class="hidden-xs hidden-sm hidden-md">
<a href="{{ route('accounts.show', [journal.source_account_id]) }}" title="{{ journal.source_account_iban|default(journal.source_account_name) }}">{{ journal.source_account_name }}</a>
</td>
<td class="hidden-xs hidden-sm hidden-md">
<a href="{{ route('accounts.show', [journal.destination_account_id]) }}" title="{{ journal.destination_account_iban|default(journal.destination_account_name) }}">{{ journal.destination_account_name }}</a>
</td>
{#
<td class="hidden-xs">
{{ transaction|transactionBudgets }}
</td>
<td class="hidden-xs">
{{ transaction|transactionCategories }}
</td>
#}
</tr>
{% endfor %}
{# if the start marker has not been generated yet, do it now, at the end of the loop. #}
{% if startSet == false %}
<tr>
<td colspan="5">
&nbsp;
</td>
<td colspan="3">
<span class="label label-default">
{{ trans('firefly.start_of_reconcile_period', {period: start.formatLocalized(monthAndDayFormat) }) }}
</span>
</td>
<td colspan="2">
&nbsp;
</td>
</tr>
{% set startSet = true %}
{% endif %}
</tbody>
</table>

View File

@ -1,220 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, account, start, end) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="{% if attachments.count() == 0 %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% else %}col-lg-8 col-md-6 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.chart_account_in_period', {
balance: formatAmountBySymbol(balance, currency.symbol, currency.decimal_places, true),
name: account.name|escape, start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat) })|raw }}
</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('accounts.edit', account.id) }}"><span class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('accounts.delete', account.id) }}"><span class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body">
<div>
<canvas id="overview-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
</div>
</div>
</div>
{% if attachments.count() > 0 %}
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ 'attachments'|_ }}
</h3>
</div>
<div class="box-body no-padding">
{% include 'v1.list.attachments' %}
</div>
</div>
</div>
{% endif %}
</div>
{% if not showAll and isLiability %}
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">pay-off by date</h3>
</div>
<div class="box-body">
Content
</div>
</div>
</div>
</div>
{% endif %}
{% if not showAll and not isLiability %}
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses_by_category'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="account-cat-out" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses_by_budget'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="account-budget-out" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'income_by_category'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="account-cat-in" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
</div>
</div>
</div>
{% endif %}
<div class="row">
{% if(location) %}
<div class="col-lg-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'location'|_ }}</h3>
</div>
<div class="box-body">
<div id="location_map" style="width:100%;height:300px;"></div>
</div>
</div>
</div>
{% endif %}
{% if account.notes.count() == 1 %}
<div class="col-lg-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'notes'|_ }}</h3>
</div>
<div class="box-body">
{{ account.notes.first().text|markdown }}
</div>
</div>
</div>
{% endif %}
</div>
<div class="row">
<div class="{% if periods|length > 0 %}col-lg-10 col-md-8 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactions'|_ }} ({{ formatAmountBySymbol(balance, currency.symbol, currency.decimal_places, true)|raw }})</h3>
</div>
<div class="box-body">
{% if account.accountType.type == 'Asset account' %}
{% set showReconcile = true %}
{% else %}
{% set showReconcile = false %}
{% endif %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
{% if periods|length > 0 %}
<a href="{{ route('accounts.show.all', [account.id]) }}">
{{ 'show_all_no_filter'|_ }}
</a>
{% else %}
<a href="{{ route('accounts.show', [account.id]) }}">
{{ 'show_the_current_period_and_overview'|_ }}
</a>
{% endif %}
</p>
</div>
</div>
</div>
{% if periods|length > 0 %}
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
{% include 'v1.list.periods' %}
</div>
{% endif %}
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var doPlaceMarker = false;
// location stuff
{% if location %}
var latitude = {{ location.latitude|default("52.3167") }};
var longitude = {{ location.longitude|default("5.5500") }};
var zoomLevel = {{ location.zoom_level|default("6") }};
doPlaceMarker = true;
// token for Mapbox:
var mapboxToken = "{{ config('firefly.mapbox_api_key') }}";
{% endif %}
var showAll = true;
currencySymbol = "{{ currency.symbol }}";
var accountID = {{ account.id }};
var chartUri = '{{ chartUri }}';
{% if not showAll %}
showAll = false;
// uri's for charts:
var incomeCategoryUri = '{{ route('chart.account.income-category', [account.id, start.format('Ymd'), end.format('Ymd')]) }}';
var expenseCategoryUri = '{{ route('chart.account.expense-category', [account.id, start.format('Ymd'), end.format('Ymd')]) }}';
var expenseBudgetUri = '{{ route('chart.account.expense-budget', [account.id, start.format('Ymd'), end.format('Ymd')]) }}';
var drawVerticalLine = '';
{# render vertical line with text "today" #}
{% if start.lte(today) and end.gte(today) %}
drawVerticalLine = '{{ today.formatLocalized(monthAndDayFormat) }}';
{% endif %}
{% endif %}
</script>
{% if location %}
<script src="v1/lib/leaflet/leaflet.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endif %}
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/chartjs-plugin-annotation.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
<script src="v1/js/lib/jquery.color-2.1.2.min.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
<script src="v1/js/ff/accounts/show.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
{% if location %}
<link rel="stylesheet" href="v1/lib/leaflet/leaflet.css?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}">
{% endif %}
{% endblock %}

View File

@ -1,69 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
<form action="{{ route('admin.configuration.index.post') }}" method="post" id="store" class="form-horizontal">
<div class="row">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
{# single user mode #}
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'setting_single_user_mode'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'setting_single_user_mode_explain'|_ }}
</p>
{{ ExpandedForm.checkbox('single_user_mode','1', singleUserMode) }}
</div>
</div>
</div>
{# installation is demo site #}
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'setting_is_demo_site'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'setting_is_demo_site_explain'|_ }}
</p>
{{ ExpandedForm.checkbox('is_demo_site','1', isDemoSite) }}
</div>
</div>
</div>
{# block for config setting #}
{#
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'setting_x'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'setting_x_explain'|_ }}
</p>
</div>
</div>
</div>
#}
</div>
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<button type="submit" class="btn btn-success">
{{ ('store_configuration')|_ }}
</button>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,67 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'instance_configuration'|_ }}</h3>
</div>
<div class="box-body">
<ul>
<li><a href="{{ route('admin.configuration.index') }}">{{ 'firefly_instance_configuration'|_ }}</a></li>
<li><a href="{{ route('admin.links.index') }}">{{ 'journal_link_configuration'|_ }}</a></li>
<li><a href="{{ route('admin.update-check') }}">{{ 'update_check_title'|_ }}</a></li>
</ul>
</div>
</div>
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'user_administration'|_ }}</h3>
</div>
<div class="box-body">
<ul>
<li><a href="{{ route('admin.users') }}">{{ 'list_all_users'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'send_test_email'|_ }}</h3>
</div>
<form action="{{ route('admin.test-message') }}" method="post">
<div class="box-body">
<p>
{{ trans('firefly.send_test_email_text', {email:email})|raw }}
</p>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</div>
<div class="box-footer">
<button type="submit" class="btn btn-success">
<span class="fa fa-envelope"></span> {{ ('send_message')|_ }}
</button>
</div>
</form>
</div>
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'admin_maintanance_title'|_ }}</h3>
</div>
<div class="box-body">
<p>
{{ 'admin_maintanance_expl'|_ }}
</p>
<p>
<a href="{{ route('flush') }}" class="btn btn-warning">{{ 'admin_maintenance_clear_cache'|_ }}</a>
</p>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,46 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('admin.links.store') }}" accept-charset="UTF-8" class="form-horizontal">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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', null, {helpText: trans('firefly.link_type_help_name')}) }}
{{ ExpandedForm.text('inward', null, {helpText: trans('firefly.link_type_help_inward')}) }}
{{ ExpandedForm.text('outward', null, {helpText: trans('firefly.link_type_help_outward')}) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','link_type') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">{{ 'store_new_link_type'|_ }}</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,53 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, linkType) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('admin.links.destroy',linkType.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_link_type', {'name': linkType.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.linkType_areYouSure', {'name': linkType.name,'inward': linkType.inward,'outward': linkType.outward}) }}
</p>
{% if count > 0 %}
<p>
{{ Lang.choice('form.also_delete_connections', count, {count: count}) }}
</p>
{% endif %}
{% if count > 0 %}
<p class="text-success">
{{ 'save_connections_by_moving'|_ }}
</p>
<p>
{{ Form.select('move_link_type_before_delete', moveTo, null, {class: 'form-control'}) }}
</p>
{% else %}
<input type="hidden" name="move_link_type_before_delete" value="0"/>
{% endif %}
</div>
<div class="box-footer">
<input type="submit" name="submit" value="{{ trans('form.deletePermanently') }}" class="btn pull-right btn-danger"/>
<a href="{{ URL.previous() }}" class="btn-default btn">{{ trans('form.cancel') }}</a>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,50 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, linkType) }}
{% endblock %}
{% block content %}
{{ Form.model(linkType, {'class' : 'form-horizontal','id' : 'update','url' : route('admin.links.update', linkType.id) } ) }}
<input type="hidden" name="id" value="{{ linkType.id }}"/>
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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', null, {helpText: trans('firefly.link_type_help_name')}) }}
{{ ExpandedForm.text('inward', null, {helpText: trans('firefly.link_type_help_inward')}) }}
{{ ExpandedForm.text('outward', null, {helpText: trans('firefly.link_type_help_outward')}) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','link_type') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ ('update_link_type')|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,68 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'journal_link_configuration'|_ }}</h3>
</div>
<div class="box-body no-padding">
<table class="table table-hover sortable">
<thead>
<tr>
<th class="hidden-sm hidden-xs" data-defaultsort="disabled">&nbsp;</th>
<th data-defaultsign="az">{{ trans('list.name') }}</th>
<th class="hidden-sm hidden-xs" data-defaultsign="az">{{ trans('list.inward') }}</th>
<th class="hidden-sm hidden-xs" data-defaultsign="az">{{ trans('list.outward') }}</th>
<th data-defaultsign="_19">{{ trans('list.number_of_transactions') }}</th>
</tr>
</thead>
<tbody>
{% for linkType in linkTypes %}
<tr>
<td>
{% if linkType.editable %}
<div class="btn-group btn-group-xs">
<a class="btn btn-default btn-xs" href="{{ route('admin.links.edit',linkType.id) }}"><span
class="fa fa-fw fa-pencil"></span></a>
<a class="btn btn-danger btn-xs" href="{{ route('admin.links.delete',linkType.id) }}"><span
class="fa fa-fw fa-trash-o"></span></a>
</div>
{% endif %}
</td>
<td>
<strong>{{ journalLinkTranslation('name', linkType.name) }}</strong>
</td>
<td>
{{ journalLinkTranslation('inward', linkType.inward) }}
</td>
<td>
{{ journalLinkTranslation('outward', linkType.outward) }}
</td>
<td data-value="{{ linkType.journalCount }}">
<a href="{{ route('admin.links.show', [linkType.id]) }}">{{ linkType.journalCount }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="box-footer">
<a href="{{ route('admin.links.create') }}" class="btn btn-success">{{ 'create_new_link_type'|_ }}</a>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
<link rel="stylesheet" href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,87 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, linkType) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ trans('firefly.overview_for_link', {name: journalLinkTranslation('name', linkType.name)}) }}</h3>
</div>
<div class="box-body no-padding">
<table class="table table-hover sortable">
<thead>
<tr>
<th>&nbsp;</th>
<th>{{ trans('firefly.inward_transaction') }}</th>
<th>&nbsp;</th>
<th>{{ trans('firefly.link_description') }}</th>
<th>{{ trans('firefly.outward_transaction') }}</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for link in links %}
<tr>
<td>
<div class="btn-group btn-group-xs">
<a href="{{ route('transactions.link.delete', [link.id]) }}" class="btn btn-danger delete-link" data-id="{{ link.id }}"><span class="fa fa-trash"></span></a>
<a href="#" class="btn btn-default switch-link" data-id="{{ link.id }}"><span
class="fa fa-fw fa-arrows-h"></span></a>
</div>
</td>
<td data-value="{{ link.source.description }}">
<a href="{{ route('transactions.show', [link.source.transaction_group_id]) }}">{{ link.source.description }}</a>
</td>
<td>
{{ journalObjectAmount(link.source) }}
</td>
<td>{{ journalLinkTranslation('outward', linkType.outward) }}</td>
<td data-value="{{ link.destination.description }}">
<a href="{{ route('transactions.show', [link.destination.transaction_group_id]) }}">{{ link.destination.description }}</a>
</td>
<td>
{{ journalObjectAmount(link.destination) }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script nonce="{{ JS_NONCE }}">
$('.switch-link').on('click', switchLink);
var switchLinkUrl = '{{ route('transactions.link.switch') }}';
function switchLink(e) {
e.preventDefault();
var obj = $(e.currentTarget);
$.post(switchLinkUrl, {
_token: token,
id: obj.data('id')
}).done(function () {
location.reload();
}).fail(function () {
console.error('I failed :(');
});
//alert(obj.data('id'));
return false
}
</script>
{% endblock %}
{% block styles %}
<link rel="stylesheet" href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,75 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
<form action="{{ route('admin.update-check.post') }}" method="post" id="store" class="form-horizontal">
<div class="row">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<div class="col-lg-6 col-md-8 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'admin_update_channel_title'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'admin_update_channel_explain'|_ }}
</p>
{{ ExpandedForm.select('update_channel', channelOptions, channelSelected) }}
</div>
</div>
</div>
{# do update check. #}
<div class="col-lg-6 col-md-8 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'admin_update_check_title'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'admin_update_check_explain'|_ }}
</p>
{{ ExpandedForm.select('check_for_updates',options, selected) }}
</div>
</div>
</div>
{# check now button #}
<div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'admin_update_check_now_title'|_ }}</h3>
</div>
<div class="box-body">
<p class="text-info">
{{ 'admin_update_check_now_explain'|_ }}
</p>
<p>
<a href="{{ route('admin.update-check.manual') }}" class="btn btn-info">{{ 'check_for_updates_button'|_ }}</a>
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<button type="submit" class="btn btn-success">
{{ ('store_configuration')|_ }}
</button>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var updateCheckUri = '{{ route('admin.update-check.manual') }}';
</script>
<script type="text/javascript" src="v1/js/ff/admin/update/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,38 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, user) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('admin.users.destroy',user.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_user', {'email': user.email}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.user_areYouSure', {'email': user.email}) }}
</p>
</div>
<div class="box-footer">
<input type="submit" onclick="return confirm('{{ trans('firefly.are_you_sure')|escape('js') }}');" 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>
</form>
{% endblock %}

View File

@ -1,57 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, user) }}
{% endblock %}
{% block content %}
{{ Form.model(user, {'class' : 'form-horizontal','id' : 'update','url' : route('admin.users.update',user.id) } ) }}
<input type="hidden" name="id" value="{{ user.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{% if canEditDetails %}
{{ ExpandedForm.text('email',null,{'helpText': trans('firefly.admin_update_email')}) }}
{{ ExpandedForm.password('password') }}
{{ ExpandedForm.password('password_confirmation') }}
{% else %}
<input type="hidden" name="email" value="{{ user.email }}"/>
<input type="hidden" name="password" value=""/>
<input type="hidden" name="password_confirmation" value=""/>
{% endif %}
{{ ExpandedForm.checkbox('blocked') }}
{{ ExpandedForm.select('blocked_code', codes, user.blocked_code) }}
{% if user.id != currentUser.id %}
{{ ExpandedForm.checkbox('is_owner',1,isAdmin) }}
{% endif %}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','account') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ ('update_user')|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,93 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'all_users'|_ }}</h3>
</div>
<div class="box-body no-padding">
<table class="table table-responsive table-condensed sortable">
<thead>
<tr>
<th data-defaultsign="_19" class="hidden-xs" colspan="2">&nbsp;</th>
<th data-defaultsign="az">{{ trans('list.email') }}</th>
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.registered_at') }}</th>
<th data-defaultsign="month" class="hidden-xs">{{ trans('list.updated_at') }}</th>
<th class="hidden-xs">{{ trans('list.is_admin') }}</th>
<th class="hidden-xs">{{ trans('list.has_two_factor') }}</th>
<th>{{ trans('list.is_blocked') }}</th>
<th data-defaultsign="az" class="hidden-xs">{{ trans('list.blocked_code') }}</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td class="hidden-xs" data-value="{{ user.id }}">
<div class="btn-group btn-group-xs">
<a class="btn btn-default" href="{{ route('admin.users.edit',user.id) }}"><span class="fa fa-pencil"></span></a>
<a class="btn btn-danger" href="{{ route('admin.users.delete',user.id) }}"><span class="fa fa-trash"></span></a>
</div>
</td>
<td class="hidden-xs" data-value="{{ user.id }}">#{{ user.id }}</td>
<td data-value="{{ user.email }}">
<a href="{{ route('admin.users.show',user.id) }}">{{ user.email }}</a></td>
<td class="hidden-xs" data-value="{{ user.created_at.format('Y-m-d H-i-s') }}">
{{ user.created_at.formatLocalized(monthAndDayFormat) }}
{{ user.created_at.format('H:i') }}
</td>
<td class="hidden-xs" data-value="{{ user.updated_at.format('Y-m-d H-i-s') }}">
{{ user.updated_at.formatLocalized(monthAndDayFormat) }}
{{ user.updated_at.format('H:i') }}
</td>
<td class="hidden-xs" data-value="{% if user.isAdmin %}1{% else %}0{% endif %}">
{% if user.isAdmin %}
<small class="text-success"><span class="fa fa-fw fa-check"></span></small>
{% else %}
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small>
{% endif %}
</td>
<td class="hidden-xs" data-value="{% if user.has2FA %}1{% else %}0{% endif %}">
{% if user.has2FA %}
<small class="text-success"><span class="fa fa-fw fa-check"></span></small>
{% else %}
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small>
{% endif %}
</td>
<td data-value="{% if user.blocked %}1{% else %}0{% endif %}">
{% if user.blocked == 1 %}
<small class="text-danger"><span class="fa fa-fw fa-check" title="{{ 'yes'|_ }}"></span></small>
{% else %}
<small class="text-success"><span class="fa fa-fw fa-times" title="{{ 'no'|_ }}"></span></small>
{% endif %}
</td>
<td class="hidden-xs">
<small>
{% if user.blocked == 1 %}
{% if user.blocked_code == "" %}
<em>~</em>
{% else %}
{{ user.blocked_code }}
{% endif %}
{% endif %}
</small>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}
{% block styles %}
<link rel="stylesheet" href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,121 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, user) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'user_information'|_ }}</h3>
</div>
<div class="box-body">
<table class="table table-striped table-bordered table-responsive">
<tbody>
<tr>
<td>{{ trans('list.id') }}</td>
<td>#{{ user.id }}</td>
</tr>
<tr>
<td>{{ trans('list.email') }}</td>
<td><a href="mailto:{{ user.email }}">{{ user.email }}</a>
<td>
</tr>
<tr>
<td>{{ trans('list.created_at') }}</td>
<td>
{{ user.created_at.formatLocalized(monthAndDayFormat) }}
{{ user.created_at.format('H:i') }}</td>
</tr>
<tr>
<td>{{ trans('list.is_admin') }}</td>
<td>
{% if information.is_admin %}
<small class="text-success"><span class="fa fa-fw fa-check"></span></small> {{ 'yes'|_ }}
{% else %}
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small> {{ 'no'|_ }}
{% endif %}
</td>
</tr>
<tr>
<td>{{ trans('list.has_two_factor') }}</td>
<td>
{% if information.has_2fa %}
<small class="text-success"><span class="fa fa-fw fa-check"></span></small> {{ 'yes'|_ }}
{% else %}
<small class="text-danger"><span class="fa fa-fw fa-times"></span></small> {{ 'no'|_ }}
{% endif %}
</td>
</tr>
<tr>
<td>{{ trans('list.is_blocked') }}</td>
<td>
{% if information.blocked %}
<small class="text-danger"><span class="fa fa-fw fa-check" title="{{ 'yes'|_ }}"></span></small> {{ 'yes'|_ }}:
{% if information.blocked_code == "" %}
<em>~</em>
{% else %}
{{ information.blocked_code }}
{% endif %}
{% else %}
<small class="text-success"><span class="fa fa-fw fa-times" title="{{ 'no'|_ }}"></span></small> {{ 'no'|_ }}
{% endif %}
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'user_data_information'|_ }}</h3>
</div>
<div class="box-body">
<table class="table table-striped table-bordered table-responsive">
<tr>
<td>{{ trans('list.accounts_count') }}</td>
<td>{{ information.accounts }}</td>
</tr>
<tr>
<td>{{ trans('list.journals_count') }}</td>
<td>{{ information.journals }} ({{ information.transactions }} {{ trans('firefly.transactions') }})</td>
</tr>
<tr>
<td>{{ trans('list.attachments_count') }}</td>
<td>{{ information.attachments }} ({{ trans('firefly.total_size') }}: {{ information.attachments_size|filesize }})</td>
</tr>
<tr>
<td>{{ trans('list.bills_count') }}</td>
<td>{{ information.bills }}</td>
</tr>
<tr>
<td>{{ trans('list.categories_count') }}</td>
<td>{{ information.categories }}</td>
</tr>
<tr>
<td>{{ trans('list.budget_count') }}</td>
<td>{{ trans_choice('firefly.budget_or_budgets', information.budgets ) }},
{{ trans_choice('firefly.budgets_with_limits', information.budgets_with_limits ) }}</td>
</tr>
<tr>
<td>{{ trans('list.rule_and_groups_count') }}</td>
<td>
{{ trans('firefly.nr_of_rules_in_total_groups', {count_rules: information.rules, count_groups: information.rule_groups}) }}
</td>
</tr>
<tr>
<td>{{ trans('list.tags_count') }}</td>
<td>{{ trans_choice('firefly.tag_or_tags', information.tags ) }}</td>
</tr>
</table>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,34 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute().getName(), attachment) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('attachments.destroy',attachment.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_attachment', {'name': attachment.filename}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.attachment_areYouSure', {'name': attachment.filename}) }}
</p>
</div>
<div class="box-footer">
<input type="submit" name="submit" value="{{ trans('form.deletePermanently') }}" class="btn pull-right btn-danger"/>
<a href="{{ URL.previous() }}" class="btn-default btn">{{ trans('form.cancel') }}</a>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,61 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute().getName(), attachment) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('attachments.update', attachment.id) }}" accept-charset="UTF-8" class="form-horizontal" id="update">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="id" value="{{ attachment.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.staticText('filename',attachment.filename|escape) }}
{{ ExpandedForm.staticText('mime',attachment.mime|escape) }}
{{ ExpandedForm.staticText('size',attachment.size|filesize) }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.text('title', attachment.title) }}
{{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','attachment') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'update_attachment'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,77 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ 'list_all_attachments'|_ }}
</h3>
</div>
<div class="box-body no-padding">
<table class="table table-striped sortable">
<thead>
<tr>
<th data-defaultsign="_19">&nbsp;</th>
<th data-defaultsign="az">{{ trans('list.file_name') }}</th>
<th data-defaultsign="_19">{{ trans('list.file_size') }}</th>
<th data-defaultsign="az">{{ trans('list.file_type') }}</th>
<th data-defaultsign="az">{{ trans('list.attached_to') }}</th>
<th data-defaultsign="_19">{{ trans('list.file_exists') }}</th>
</tr>
</thead>
<tbody>
{% for att in set %}
<tr>
<td data-value="{{ att.id }}">
<div class="btn-group btn-group-xs">
<a href="{{ route('attachments.edit', att.id) }}" class="btn btn-default"><span class="fa fa-pencil"></span></a>
<a href="{{ route('attachments.delete', att.id) }}" class="btn btn-danger"><span class="fa fa-trash"></span></a>
<a href="{{ route('attachments.download', att.id) }}" class="btn btn-default"><span class="fa fa-download"></span></a>
</div>
</td>
<td data-value="{{ att.filename }}">
<a href="{{ route('attachments.view', att.id) }}" title="{{ att.filename }}">
{{ att.filename }}
</a>
</td>
<td data-value="{{ att.size }}">{{ att.size|filesize }}</td>
<td data-value="{{ att.mime }}">{{ att.mime }}</td>
<td data-value="{{ att.attachable_type }}_{{ att.attachable_id }}">
{% if att.attachable_type == 'FireflyIII\\Models\\TransactionJournal' %}
<a href="{{ route('transactions.show', [att.attachable_id]) }}">
{{ att.attachable.description }}
</a>
{% else %}
{{ att.attachable_type }}
{% endif %}
</td>
<td data-value="{% if att.file_exists %}1{% else %}0{% endif %}">
{% if att.file_exists %}
<span class="fa fa-check text-success"></span>
{% else %}
<span class="fa fa-warning text-danger"></span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
<link rel="stylesheet" href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}

View File

@ -1,98 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if IS_DEMO_SITE %}
<div class="row">
<div class="col-lg-12">
<p class="well">
Welcome to the Firefly III demonstration website!<br/>
<br/>
To log in, please use email address <strong>{{ DEMO_USERNAME }}</strong> with password <strong>{{ DEMO_PASSWORD }}</strong>
</p>
</div>
</div>
{% endif %}
{# SUCCESS MESSAGE (ALWAYS SINGULAR) #}
{% if Session.has('success') %}
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert">
<span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<strong>{{ 'flash_success'|_ }}</strong> {{ session('success') }}
</div>
{% endif %}
{% if errors.count > 0 %}
<div class="row">
<div class="col-lg-12">
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<strong>{{ 'flash_error'|_ }}</strong> {{ errors.first }}
</div>
</div>
</div>
{% endif %}
{% if session('logoutMessage') %}
<div class="row">
<div class="col-lg-12">
<div class="alert alert-info alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
{{ session('logoutMessage') }}
</div>
</div>
</div>
{% endif %}
{# LDAP warning #}
{% if ldapWarning %}
<div class="row">
<div class="col-lg-12">
<div class="alert alert-danger alert-dismissible" role="alert">
<a target="_blank" href="https://docs.firefly-iii.org/firefly-iii/advanced-installation/authentication/#ldap">Please upgrade LDAP configuration</a>
</div>
</div>
</div>
{% endif %}
<div class="login-box-body">
<p class="login-box-msg">{{ 'sign_in_to_start'|_ }}</p>
<form action="{{ route('login') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<div class="form-group has-feedback">
{% if config('firefly.authentication_guard') == 'web' %}
<input type="email" autocomplete="email" name="email" value="{% if not IS_DEMO_SITE %}{{ email }}{% else %}{{ DEMO_USERNAME }}{% endif %}" class="form-control" placeholder="{{ trans('form.email') }}"/>
{% else %}
<input type="text" autocomplete="username" name="{{ usernameField }}" value="{{ email }}" class="form-control" placeholder="{{ trans('form.login_name') }}"/>
{% endif %}
</div>
<div class="form-group has-feedback">
<input type="password" name="password" autocomplete="current-password" {% if IS_DEMO_SITE %}value="{{ DEMO_PASSWORD }}"{% endif%} class="form-control" placeholder="{{ trans('form.password') }}"/>
</div>
<div class="row">
<div class="col-xs-6">
<div class="checkbox">
<label>
<input type="checkbox" name="remember" {% if remember %}checked="checked"{% endif %} value="1"> {{ trans('form.remember_me') }}
</label>
</div>
</div>
<div class="col-xs-6">
<button type="submit" class="btn btn-primary btn-block btn-flat">{{ 'sign_in'|_ }}</button>
</div>
</div>
</form>
{% if allowRegistration %}
<a href="{{ route('register') }}" class="text-center">{{ 'register_new_account'|_ }}</a><br>
{% endif %}
{% if allowReset %}
<a href="{{ route('password.reset.request') }}">{{ 'forgot_my_password'|_ }}</a>
{% endif %}
</div>
{% endblock %}

View File

@ -1,47 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow, noarchive, noodp, NoImageIndex, noydir">
<title>Firefly III</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
<base href="{{ route('index') }}/">
<link rel="stylesheet" href="v1/lib/bs/css/bootstrap.min.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
<link rel="stylesheet" href="v1/lib/fa/css/font-awesome.min.css?v={{ FF_VERSION }}" type="text/css" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/lib/adminlte/css/AdminLTE.min.css?v={{ FF_VERSION }}" rel="stylesheet" type="text/css" nonce="{{ JS_NONCE }}">
{# favicons #}
{% include('v1.partials.favicons') %}
</head>
<body class="container">
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12">
<h1><a href="{{ route('index') }}"><b>Firefly</b>III</a></h1>
</div>
</div>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12">
<h3 class="text-info">{{ 'two_factor_lost_header'|_ }}</h3>
</div>
</div>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12">
<p>
{{ 'two_factor_lost_intro'|_ }}
</p>
<ul>
<li>
{{ 'two_factor_lost_fix_self'|_ }}
</li>
<li>
{{ trans('firefly.two_factor_lost_fix_owner', {site_owner: siteOwner})|raw }}
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@ -1,32 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if session_has('error') %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert">
<span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<strong>{{ 'flash_error'|_ }}</strong> {{ session('error') }}
</div>
{% endif %}
<div class="login-box-body">
<p class="login-box-msg">{{ trans('firefly.two_factor_welcome', {user: user.email}) }}</p>
<p class="login-box-msg">{{ 'two_factor_enter_code'|_ }}</p>
<form action="{{ route('two-factor.submit') }}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<div class="form-group has-feedback">
<input type="text" name="one_time_password" class="form-control" placeholder="{{ 'two_factor_code_here'|_ }}" autocomplete="off"/>
</div>
<div class="row">
<div class="col-xs-6 col-xs-offset-6">
<button type="submit" class="btn btn-primary btn-block btn-flat">{{ 'authenticate'|_ }}</button>
</div>
</div>
</form>
<a href="{{ route('two-factor.lost') }}">{{ 'two_factor_forgot'|_ }}</a>
</div>
{% endblock %}

View File

@ -1,53 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if session.status %}
<div class="alert alert-success">
{{ session.status }}
</div>
{% endif %}
{% if errors|length > 0 %}
<div class="alert alert-danger">
<strong>{{ 'flash_error'|_ }}</strong> {{ 'problems_with_input'|_ }}<br><br>
<ul>
{% for error in errors.all %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="login-box-body">
{% if session('status') %}
<p class="login-box-msg text-success">
{{ session('status') }}
</p>
{% else %}
<p class="login-box-msg">{{ 'reset_password'|_ }}</p>
<form role="form" method="POST" action="{{ route('password.email') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<div class="form-group has-feedback">
<input type="email" class="form-control" name="email" placeholder="{{ trans('form.email') }}"/>
</div>
<div class="row">
<div class="col-xs-12">
<button type="submit" class="btn btn-primary btn-flat pull-right">{{ 'reset_button'|_ }}</button>
</div>
</div>
</form>
{% endif %}
<a href="{{ route('login') }}">{{ 'want_to_login'|_ }}</a><br>
{% if allowRegistration %}
<a href="{{ route('register') }}" class="text-center">{{ 'register_new_account'|_ }}</a><br>
{% endif %}
</div>
{% endblock %}

View File

@ -1,49 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if errors|length > 0 %}
<div class="alert alert-danger">
<strong>{{ 'flash_error'|_ }}</strong> {{ 'problems_with_input'|_ }}<br><br>
<ul>
{% for error in errors.all %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="register-box-body">
<p class="login-box-msg">{{ 'reset_password'|_ }}</p>
<form method="POST" action="{{ url('/password/reset') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="token" value="{{ token }}">
<div class="form-group has-feedback">
<input type="email" name="email" class="form-control" value="{{ old('email') }}" placeholder="{{ trans('form.email') }}"/>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="{{ trans('form.password') }}" name="password"/>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="{{ trans('form.password_confirmation') }}" name="password_confirmation"/>
</div>
<div class="row">
<div class="col-xs-12">
<button type="submit" class="btn btn-primary pull-right btn-flat">{{ 'button_reset_password'|_ }}</button>
</div>
</div>
</form>
<a href="{{ route('login') }}">{{ 'want_to_login'|_ }}</a><br>
{% if allowRegistration %}
<a href="{{ route('register') }}" class="text-center">{{ 'register_new_account'|_ }}</a><br>
{% endif %}
</div>
{% endblock %}

View File

@ -1,50 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if errors|length > 0 %}
<div class="alert alert-danger">
<strong>{{ 'flash_error'|_ }}</strong> {{ 'problems_with_input'|_ }}<br><br>
<ul>
{% for error in errors.all %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="register-box-body">
<p class="login-box-msg">{{ 'register_new_account'|_ }}</p>
<form id="register" method="POST" action="{{ route('register') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group has-feedback">
<input type="email" name="email" value="{{ email }}" class="form-control" placeholder="{{ trans('form.email') }}"/>
</div>
<div class="form-group has-feedback">
<input type="password" autocomplete="new-password" class="form-control" placeholder="{{ trans('form.password') }}" name="password"/>
</div>
<div class="form-group has-feedback">
<input type="password" autocomplete="new-password" class="form-control" placeholder="{{ trans('form.password_confirmation') }}" name="password_confirmation"/>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox">
<label>
<input type="checkbox" checked name="verify_password" value="1"> {{ trans('form.verify_password') }} <a data-toggle="modal" data-target="#passwordModal" href="#passwordModal"><span class="fa fa-fw fa-question-circle"></span></a>
</label>
</div>
</div>
<div class="col-xs-4">
<button class="btn btn-primary pull-right btn-flat">{{ 'button_register'|_ }}</button>
</div>
</div>
</form>
<a href="{{ route('login') }}">{{ 'want_to_login'|_ }}</a><br>
<a href="{{ route('password.reset.request') }}">{{ 'forgot_my_password'|_ }}</a>
</div>
{% include 'v1.partials.password-modal' %}
{% endblock %}

View File

@ -1,37 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
{% if errors.has('code') %}
<div class="row">
<div class="col-lg-12">
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<strong>{{ 'flash_error'|_ }}</strong> {{ errors.get('code')[0] }}
</div>
</div>
</div>
{% endif %}
<div class="login-box-body">
<p class="login-box-msg">{{ trans('firefly.two_factor_welcome', {user: user.email}) }}</p>
<p class="login-box-msg">{{ 'two_factor_enter_code'|_ }}</p>
<form action="{{ route('two-factor.post') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<div class="form-group has-feedback">
<input type="number" name="code" class="form-control" placeholder="{{ 'two_factor_code_here'|_ }}"/>
</div>
<div class="row">
<div class="col-xs-6 col-xs-offset-6">
<button type="submit" class="btn btn-primary btn-block btn-flat">{{ 'authenticate'|_ }}</button>
</div>
</div>
</form>
<a href="{{ route('two-factor.lost') }}">{{ 'two_factor_forgot'|_ }}</a>
</div>
{% endblock %}

View File

@ -1,80 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, piggyBank) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('bills.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store" enctype="multipart/form-data">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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') }}
{{ CurrencyForm.currencyList('transaction_currency_id', defaultCurrency.id) }}
{{ ExpandedForm.amountNoCurrency('amount_min') }}
{{ ExpandedForm.amountNoCurrency('amount_max') }}
{{ ExpandedForm.date('date',phpdate('Y-m-d')) }}
{{ ExpandedForm.select('repeat_freq',periods,'monthly') }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
{{ ExpandedForm.integer('skip',0) }}
{{ ExpandedForm.objectGroup() }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','bill') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'store_new_bill'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-tagsinput.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-tagsinput.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/modernizr-custom.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/bills/create.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{# auto complete for object groups #}
<script type="text/javascript" src="v1/js/lib/typeahead/typeahead.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/object-groups/create-edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,40 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, bill) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('bills.destroy',bill.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_bill', {'name': bill.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.bill_areYouSure', {'name': bill.name}) }}
</p>
<p>
{% if bill.transactionjournals.count() > 0 %}
{{ Lang.choice('form.bill_keep_transactions', bill.transactionjournals.count(),{count: bill.transactionjournals.count()}) }}
{% endif %}
</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>
</form>
{% endblock %}

View File

@ -1,86 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, bill) }}
{% endblock %}
{% block content %}
{{ Form.model(bill, {'class' : 'form-horizontal','enctype': 'multipart/form-data','id' : 'update','url' : route('bills.update', bill.id)}) }}
<input type="hidden" name="id" value="{{ bill.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{% if rules.count() > 0 %}
{{ ExpandedForm.text('name',null, {helpText: trans_choice('firefly.bill_edit_rules', rules.count())}) }}
{% else %}
{{ ExpandedForm.text('name') }}
{% endif %}
{{ CurrencyForm.currencyList('transaction_currency_id') }}
{{ ExpandedForm.amountNoCurrency('amount_min') }}
{{ ExpandedForm.amountNoCurrency('amount_max') }}
{{ ExpandedForm.date('date',bill.date.format('Y-m-d')) }}
{{ ExpandedForm.select('repeat_freq',periods) }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
{{ ExpandedForm.integer('skip') }}
{{ ExpandedForm.objectGroup() }}
{# only correct way to do active checkbox #}
{{ ExpandedForm.checkbox('active', 1) }}
</div>
</div>
</div>
</div>
<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">
<h3 class="box-title">{{ 'options'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.optionsList('update','bill') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'update_bill'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-tagsinput.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.structure.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
<link href="v1/css/jquery-ui/jquery-ui.theme.min.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-tagsinput.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/modernizr-custom.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/accounts/edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{# auto complete for object groups #}
<script type="text/javascript" src="v1/js/lib/typeahead/typeahead.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/object-groups/create-edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,46 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
{% if total == 0 %}
{% include 'v1.partials.empty' with {objectType: 'default', type: 'bills',route: route('bills.create')} %}
{% else %}
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ title }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_bill'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
{% include 'v1.list/bills' %}
</div>
<div class="box-footer">
<a class="btn btn-success" href="{{ route('bills.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'create_new_bill'|_ }}</a>
</div>
</div>
</div>
</div>
{% endif %}
{% endblock %}
{% block styles %}
{% endblock %}
{% block scripts %}
<script src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/bills/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,177 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, bill) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-6 col-sm-12 col-md-12">
<div class="box" id="billInfo">
<div class="box-header with-border">
<h3 class="box-title">{{ object.data.name }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('bills.edit', object.data.id) }}"><span class="fa fa-fw fa-pencil"></span> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('bills.delete', object.data.id) }}"><span class="fa fa-fw fa-trash-o"></span> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body">
<table class="table table-striped">
<tr>
<td colspan="2">
{{ trans('firefly.match_between_amounts', {low: formatAmountByCurrency(object.data.currency,object.data.amount_min), high: formatAmountByCurrency(object.data.currency,object.data.amount_max) })|raw }}
{{ 'repeats'|_ }}
{{ trans('firefly.repeat_freq_' ~object.data.repeat_freq) }}.
</td>
</tr>
<tr>
<td style="width:50%;">{{ 'bill_is_active'|_ }}</td>
<td>
{% if object.data.active %}
<span class="fa fa-check fa-fw" title="{{ 'active'|_ }}"></span> {{ 'yes'|_ }}
{% else %}
<span class="fa fa-times fa-fw" title="{{ 'inactive'|_ }}"></span> {{ 'no'|_ }}
{% endif %}
</td>
</tr>
<tr>
<td>{{ 'next_expected_match'|_ }}</td>
<td>
{% if object.data.next_expected_match|length > 0 %}
{{ formatDate(object.data.next_expected_match, monthAndDayFormat) }}
{% else %}
{{ 'unknown'|_ }}
{% endif %}
</td>
</tr>
<tr>
<td>{{ trans('firefly.average_bill_amount_year', {year: year}) }}</td>
<td>
{% for avg in yearAverage %}
{{ formatAmountBySymbol(avg.avg, avg.currency_symbol, avg.currency_decimal_places, true) }}<br>
{% endfor %}
</td>
</tr>
<tr>
<td>{{ 'average_bill_amount_overall'|_ }}</td>
<td>
{% for avg in overallAverage %}
{{ formatAmountBySymbol(avg.avg, avg.currency_symbol, avg.currency_decimal_places, true) }}<br>
{% endfor %}
</td>
</tr>
</table>
</div>
<div class="box-footer">
<div class="btn-group">
<a class="btn btn-default" href="{{ route('bills.edit', [object.data.id]) }}">{{ 'edit'|_ }}</a>
<a class="btn btn-danger" href="{{ route('bills.delete', [object.data.id]) }}">{{ 'delete'|_ }}</a>
</div>
</div>
</div>
</div>
<div class="col-lg-6 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'bill_related_rules'|_ }}</h3>
</div>
<div class="box-body">
{% if rules.count() > 0 %}
<ul>
{% for rule in rules %}
<li><a href="{{ route('rules.edit', [rule.id]) }}">{{ rule.title }}</a>
{% if not rule.active %}({{ 'list_inactive_rule'|_|lower }}){% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
<div class="box-footer">
<form action="{{ route('bills.rescan',object.data.id) }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<p>
<input type="submit" name="submit" value="{{ 'rescan_old'|_ }}" class="btn btn-default" />
</p>
</form>
<p><small class="text-muted">
{{ 'running_again_loss'|_ }}
</small>
</p>
</div>
</div>
{% if object.data.notes %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'notes'|_ }}</h3>
</div>
<div class="box-body">
{{ object.data.notes|default('')|markdown }}
</div>
</div>
{% endif %}
{% if attachments.count() > 0 %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'attachments'|_ }}</h3>
</div>
<div class="box-body no-padding">
{% include 'v1.list.attachments' %}
</div>
</div>
{% endif %}
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box" id="billChart">
<div class="box-header with-border">
<h3 class="box-title">{{ 'chart'|_ }}</h3>
</div>
<div class="box-body">
<canvas id="bill-overview" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'connected_journals'|_ }}</h3>
</div>
<div class="box-body">
{% include 'v1.list.groups' %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var billCurrencySymbol = "{{ object.data.currency.symbol }}";
var billUri = '{{ route('chart.bill.single', [object.data.id]) }}';
</script>
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/bills/show.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,37 +0,0 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title">
{{ trans('firefly.update_budget_amount_range',
{start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat)}) }}
</h4>
</div>
<form style="display: inline;" id="income" action="{{ route('available-budgets.store') }}" method="POST">
<div class="modal-body">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="start" value="{{ start.format('Y-m-d') }}"/>
<input type="hidden" name="end" value="{{ end.format('Y-m-d') }}"/>
<input type="hidden" name="page" value="{{ page }}"/>
<div class="form-group">
<select class="form-control" name="currency_id">
{% for currency in currencies %}
<option label="{{ currency.name }}" value="{{ currency.id }}">{{ currency.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input step="any" required class="form-control" id="amount" value="" autocomplete="off" name="amount" type="number"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
<button type="submit" class="btn btn-primary">{{ 'set_available_amount'|_ }}</button>
</div>
</form>
</div>
</div>

View File

@ -1,37 +0,0 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title">
{{ trans('firefly.update_budget_amount_range',
{start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat)}) }}
</h4>
</div>
<form style="display: inline;" id="income" action="{{ route('available-budgets.store') }}" method="POST">
<div class="modal-body">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="start" value="{{ start.format('Y-m-d') }}"/>
<input type="hidden" name="end" value="{{ end.format('Y-m-d') }}"/>
<input type="hidden" name="page" value="{{ page }}"/>
<input type="hidden" name="currency_id" value="{{ currency.id }}"/>
<div class="form-group">
<p class="form-control-static">{{ trans('firefly.ab_basic_modal_explain', {currency: currency.name}) }}</p>
</div>
<div class="input-group">
<div class="input-group-addon">{{ currency.symbol|raw }}</div>
<input step="any" required class="form-control" id="amount" value="" autocomplete="off" name="amount" type="number"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
<button type="submit" class="btn btn-primary">{{ 'set_available_amount'|_ }}</button>
</div>
</form>
</div>
</div>

View File

@ -1,33 +0,0 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title">
{{ trans('firefly.update_budget_amount_range',
{start: availableBudget.start_date.formatLocalized(monthAndDayFormat), end: availableBudget.end_date.formatLocalized(monthAndDayFormat)}) }}
</h4>
</div>
<form style="display: inline;" id="income" action="{{ route('available-budgets.update', [availableBudget.id, start.format('Y-m-d'), end.format('Y-m-d')]) }}" method="POST">
<div class="modal-body">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="page" value="{{ page }}"/>
<div class="form-group">
<p class="form-control-static">{{ trans('firefly.ab_basic_modal_explain', {currency: availableBudget.transactionCurrency.name}) }}</p>
</div>
<div class="input-group">
<div class="input-group-addon">{{ availableBudget.transactionCurrency.symbol|raw }}</div>
<input step="any" required class="form-control" id="amount" value="{{ availableBudget.amount }}" autocomplete="off" name="amount" type="number"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
<button type="submit" class="btn btn-primary">{{ 'update_available_amount'|_ }}</button>
</div>
</form>
</div>
</div>

View File

@ -1,36 +0,0 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title">
{{ trans('firefly.set_budget_limit_title',
{start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat), budget: budget.name}) }}
</h4>
</div>
<form style="display: inline;" id="income" action="{{ route('budget-limits.store') }}" method="POST">
<div class="modal-body">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input type="hidden" name="start" value="{{ start.format('Y-m-d') }}"/>
<input type="hidden" name="end" value="{{ end.format('Y-m-d') }}"/>
<input type="hidden" name="budget_id" value="{{ budget.id }}"/>
<div class="form-group">
<select class="form-control" name="transaction_currency_id">
{% for currency in currencies %}
<option label="{{ currency.name }}" value="{{ currency.id }}">{{ currency.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<input step="any" class="form-control" id="amount" value="" autocomplete="off" name="amount" type="number"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
<button type="submit" class="btn btn-primary">{{ 'set_budget_limit'|_ }}</button>
</div>
</form>
</div>
</div>

View File

@ -1,64 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('budgets.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store" enctype="multipart/form-data">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<input name="active" type="hidden" value="1">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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') }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# panel for auto-budget#}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.select('auto_budget_type', autoBudgetTypes,null, {helpText: trans('firefly.auto_budget_help')}) }}
{{ CurrencyForm.currencyList('auto_budget_currency_id') }}
{{ ExpandedForm.amountNoCurrency('auto_budget_amount') }}
{{ ExpandedForm.select('auto_budget_period', autoBudgetPeriods, null) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','budget') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">{{ 'store_new_budget'|_ }}</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/ff/budgets/create.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,44 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, budget) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('budgets.destroy',budget.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_budget', {'name': budget.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.budget_areYouSure', {'name': budget.name}) }}
</p>
<p>
{% if budget.transactionjournals.count() > 0 %}
{{ Lang.choice('form.budget_keep_transactions', budget.transactionjournals.count(), {count: budget.transactionjournals.count() }) }}
{% endif %}
</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>
</form>
{% endblock %}

View File

@ -1,62 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, budget) }}
{% endblock %}
{% block content %}
{{ Form.model(budget, {'class' : 'form-horizontal','enctype': 'multipart/form-data','id' : 'update','url' : route('budgets.update',budget.id) } ) }}
<input type="hidden" name="id" value="{{ budget.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
</div>
<div class="box-body">
{# only correct way to do active checkbox #}
{{ ExpandedForm.checkbox('active', 1) }}
{{ ExpandedForm.text('name') }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# panel for auto-budget #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.select('auto_budget_type', autoBudgetTypes, autoBudget.auto_budget_type) }}
{{ CurrencyForm.currencyList('auto_budget_currency_id', autoBudget.transaction_currency_id) }}
{{ ExpandedForm.amountNoCurrency('auto_budget_amount', preFilled.auto_budget_amount) }}
{{ ExpandedForm.select('auto_budget_period', autoBudgetPeriods, autoBudget.period) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','budget') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">{{ 'update_budget'|_ }}</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/ff/budgets/edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,482 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<!-- date selector -->
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'budget_period_navigator'|_ }}</h3>
</div>
<div class="box-body">
<div class="row" id="periodNavigator">
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
<select class="form-control selectPeriod" name="previous">
<option label="{{ 'select_date'|_ }}" value="x">{{ 'select_date'|_ }}</option>
{% for array in prevLoop %}
<option label="{{ array.title }}" value="{{ array.label }}" data-start="{{ array.start.format('Y-m-d') }}"
data-end="{{ array.end.format('Y-m-d') }}">{{ array.title }}</option>
{% endfor %}
</select>
</div>
<div class="col-lg-8 col-md-4 col-sm-12 col-xs-12 text-center">
<div class="btn btn-group btn-group-lg" style="padding-top:0;">
<a href="{{ route('budgets.index', [prevLoop[0].start.format('Y-m-d'), prevLoop[0].end.format('Y-m-d')]) }}"
class="btn btn-default" title="{{ prevLoop[0].title }}">&larr;</a>
<a title="{{ start.formatLocalized(monthAndDayFormat) }} - {{ end.formatLocalized(monthAndDayFormat) }}"
href="{{ route('budgets.index', [start.format('Y-m-d'), end.format('Y-m-d')]) }}"
class="btn btn-default">{{ periodTitle }}</a>
<a href="{{ route('budgets.index', [nextLoop[0].start.format('Y-m-d'), nextLoop[0].end.format('Y-m-d')]) }}"
class="btn btn-default" title="{{ nextLoop[0].title }}">&rarr;</a>
</div>
</div>
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12 text-right">
<select class="form-control selectPeriod" name="next">
<option label="{{ 'select_date'|_ }}" value="x">{{ 'select_date'|_ }}</option>
{% for array in nextLoop %}
<option label="{{ array.title }}" value="{{ array.label }}" data-start="{{ array.start.format('Y-m-d') }}"
data-end="{{ array.end.format('Y-m-d') }}">{{ array.title }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- available budget configurator. -->
{% if availableBudgets|length == 0 %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.total_available_budget_in_currency', {currency: defaultCurrency.name}) }}
<br>
<small>{{ trans('firefly.between_dates_breadcrumb', {start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat)}) }}</small>
</h3>
</div>
<div class="box-body">
<div class="row">
{# info about the amount budgeted #}
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">
<small>{{ 'budgeted'|_ }} ({{ 'see_below'|_ }}):
<span class="budgeted_amount" data-value="{{ budgeted }}" data-id="0" data-currency="{{ defaultCurrency.id }}">
{{ formatAmountBySymbol(budgeted, defaultCurrency.symbol, defaultCurrency.decimal_places) }}
</span>
</small>
</div>
{# info about the amount spent #}
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9" style="text-align:right;margin-bottom:3px;">
<small class="available_bar"
data-id="0">{{ trans('firefly.available_between', {start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat) }) }}
:
<span class="available_amount" data-id="0" data-value="0" data-currency="{{ defaultCurrency.id }}"
data-value="0">{{ formatAmountBySymbol(0, defaultCurrency.symbol, defaultCurrency.decimal_places, true) }}</span>
<a href="#" data-id="0" class="update_ab btn btn-default btn-xs"><span class="fa fa-pencil"></span></a>
</small>
</div>
</div>
{# info text to show how much is spent (in currency). #}
<div class="row spentInfo" data-id="0" data-value="{{ spent }}">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<small>{{ trans('firefly.spent_between', {start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat)}) }}
: {{ formatAmountBySymbol(spent, defaultCurrency.symbol, defaultCurrency.decimal_places) }} </small>
</div>
</div>
</div>
</div>
{% if enableAddButton %}
<div class="col-lg-12">
<p class="pull-right">
<a href="#" class="btn btn-light btn-xs create_ab_alt">
<span class="fa fa-plus-circle"></span>
{{ 'alt_currency_ab_create'|_ }}</a>
</p>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% set boxSize = 12 %}
{% if availableBudgets|length > 1 %}
{% set boxSize = 6 %}
{% endif %}
{% if availableBudgets|length > 0 %}
<div class="row">
{% for budget in availableBudgets %}
<div class="col-lg-{{ boxSize }} col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.total_available_budget_in_currency', {currency: budget.transaction_currency.name}) }}
<br>
<small>{{ trans('firefly.between_dates_breadcrumb', {start: budget.start_date.formatLocalized(monthAndDayFormat), end: budget.end_date.formatLocalized(monthAndDayFormat)}) }}</small>
</h3>
</div>
<div class="box-body">
<div class="row">
{# info about the amount budgeted #}
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">
<small>{{ 'budgeted'|_ }}:
<span class="text-success budgeted_amount" data-id="{{ budget.id }}" data-currency="{{ budget.transaction_currency.id }}">
{{ formatAmountBySymbol(budget.budgeted, budget.transaction_currency.symbol, budget.transaction_currency.decimal_places, false) }}
</span>
</small>
</div>
{# info about the amount spent #}
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9" style="text-align:right;margin-bottom:3px;">
<small class="available_bar"
data-id="{{ budget.id }}">{{ trans('firefly.available_between', {start: budget.start_date.formatLocalized(monthAndDayFormat), end: budget.end_date.formatLocalized(monthAndDayFormat) }) }}
:
<span class="available_amount" data-id="{{ budget.id }}"
data-value="{{ budget.amount }}">{{ formatAmountBySymbol(budget.amount, budget.transaction_currency.symbol, budget.transaction_currency.decimal_places, true) }}</span>
<a href="#" data-id="{{ budget.id }}" class="update_ab btn btn-default btn-xs"><span class="fa fa-pencil"></span></a>
<a href="#" data-id="{{ budget.id }}" class="delete_ab btn btn-danger btn-xs"><span class="fa fa-trash"></span></a>
</small>
</div>
</div>
{# progresss bar to visualise available vs budgeted. #}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="progress budgeted_bar" data-id="{{ budget.id }}" data-budgeted="{{ budget.budgeted }}"
data-available="{{ budget.amount }}" data-currency="{{ budget.transaction_currency.id }}">
{# red: the exact amount of the available budget, if more has budgeted. #}
<div class="progress-bar progress-bar-danger" data-id="{{ budget.id }}" role="progressbar" aria-valuenow="10"
aria-valuemin="0"
aria-valuemax="100" style="width: 0;"></div>
{# orange: overbudgeted amount #}
<div class="progress-bar progress-bar-warning" data-id="{{ budget.id }}" role="progressbar" aria-valuenow="0"
aria-valuemin="0"
aria-valuemax="100" style="width: 0;"></div>
{# budgeted amount if enough or les #}
<div class="progress-bar progress-bar-info" data-id="{{ budget.id }}" role="progressbar" aria-valuenow="0"
aria-valuemin="0"
aria-valuemax="100" style="width: 0;"></div>
</div>
</div>
</div>
{# info text to show how much is spent (in currency). #}
<div class="row spentInfo" data-id="{{ budget.id }}">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<small>{{ trans('firefly.spent_between', {start: budget.start_date.formatLocalized(monthAndDayFormat), end: budget.end_date.formatLocalized(monthAndDayFormat)}) }}
: {{ formatAmountBySymbol(budget.spent, budget.transaction_currency.symbol, budget.transaction_currency.decimal_places) }} </small>
</div>
</div>
{# bar to visualise spending in budget .#}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="progress spent_bar" data-id="{{ budget.id }}" data-budgeted="{{ budget.budgeted }}"
data-spent="{{ budget.spent }}">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="0" aria-valuemin="0"
aria-valuemax="100"
style="width: 0;"></div>
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0;"></div>
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% if enableAddButton %}
<div class="col-lg-12">
<p class="pull-right">
<a href="#" class="btn btn-light btn-xs create_ab_alt">
<span class="fa fa-plus-circle"></span>
{{ 'alt_currency_ab_create'|_ }}</a>
</p>
</div>
{% endif %}
</div>
{% endif %}
{% if budgets|length == 0 and inactive.count() == 0 %}
{% include 'v1.partials.empty' with {objectType: 'default', type: 'budgets',route: route('budgets.create')} %}
{# make FF ignore demo for now. #}
{% set shownDemo = true %}
{% else %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'budgets'|_ }}</h3>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a href="{{ route('budgets.create') }}" class="btn btn-success"><span class="fa fa-plus fa-fw"></span> {{ 'createBudget'|_ }}</a>
</div>
<table class="table table-bordered sortable-table table-striped sortable" id="budgetList">
<thead>
<tr>
<th class="hidden-sm hidden-xs" style="width:10%;">&nbsp;</th>
<th>{{ 'budget'|_ }}</th>
<th style="width:25%;">{{ 'budgeted'|_ }}</th>
<th class="hidden-sm hidden-xs">{{ 'spent'|_ }} ({{ 'per_day'|_|lower }})</th>
<th>{{ 'left'|_ }} ({{ 'per_day'|_|lower }})</th>
</tr>
</thead>
<tbody>
{% for budget in budgets %}
<tr data-id="{{ budget.id }}">
<td class="hidden-sm hidden-xs">
<div class="btn-group btn-group-xs">
<a href="#" class="handle object-handle btn btn-default"><span class="fa fa-fw fa-bars"></span></a>
<a href="{{ route('budgets.edit', budget.id) }}" class="btn btn-xs btn-default"><span class="fa fa-fw fa-pencil"></span></a>
<a href="{{ route('budgets.delete', budget.id) }}" class="btn btn-xs btn-danger"><span class="fa fa-fw fa-trash-o"></span></a>
</div>
</td>
<td>
{% if 0 == budget.budgeted|length %}
<a href="{{ route('budgets.show', budget.id) }}" data-id="{{ budget.id }}">{{ budget.name }}</a>
{% endif %}
{% if 1 == budget.budgeted|length %}
{% for budgetLimit in budget.budgeted %}
<a href="{{ route('budgets.show.limit', [budget.id, budgetLimit.id]) }}" data-id="{{ budget.id }}">{{ budget.name }}</a>
{% endfor %}
{% endif %}
{% if budget.budgeted|length > 1 %}
{% for budgetLimit in budget.budgeted %}
<a href="{{ route('budgets.show.limit', [budget.id, budgetLimit.id]) }}" data-id="{{ budget.id }}">{{ budget.name }} ({{ budgetLimit.currency_name }})</a><br>
{% endfor %}
{% endif %}
{% if budget.auto_budget %}
{% if 1 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-check-o" title="{{ 'auto_budget_reset_icon'|_ }}"></span>
{% endif %}
{% if 2 == budget.auto_budget.auto_budget_type %}
<span class="fa fa-fw fa-calendar-plus-o" title="{{ 'auto_budget_rollover_icon'|_ }}"></span>
{% endif %}
{% endif %}
{% if budget.attachments.count() > 0 %}
<span class="fa fa-paperclip"></span>
{% endif %}
</td>
<td>
{% if 0==budget.budgeted|length %}
<div class="input-group">
<div class="input-group-addon">{{ defaultCurrency.symbol }}</div>
<input type="hidden" name="balance_currency_id" value="{{ defaultCurrency.id }}"/>
<input class="form-control budget_amount" data-original="0" data-id="{{ budget.id }}"
data-currency="{{ defaultCurrency.id }}" data-limit="0" value="0" autocomplete="off" min="0" name="amount"
type="number">
</div>
<span class="text-danger budget_warning" data-id="{{ budget.id }}" data-budgetLimit="{{ budgetLimit.id }}"
style="display:none;"></span>
{% endif %}
{% if budget.budgeted|length > 0 %}
{% for budgetLimit in budget.budgeted %}
{% if not budgetLimit.in_range %}
<small class="text-muted">
{{ trans('firefly.budget_limit_not_in_range', {start: budgetLimit.start_date, end: budgetLimit.end_date}) }}
</small><br>
{% endif %}
<div class="input-group bl_entry" data-budget-limit-id="{{ budgetLimit.id }}">
<div class="input-group-addon">{{ budgetLimit.currency_symbol }}</div>
<input class="form-control budget_amount" data-original="{{ budgetLimit.amount }}"
data-id="{{ budget.id }}" data-limit="{{ budgetLimit.id }}" value="{{ budgetLimit.amount }}"
autocomplete="off"
min="0" name="amount" type="number">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li>
<a class="delete_bl" href="#" data-budget-limit-id="{{ budgetLimit.id }}">{{ trans('firefly.remove_budgeted_amount', {currency: budgetLimit.currency_name }) }}</a>
</li>
</ul>
</div>
</div>
<span class="text-danger budget_warning" data-id="{{ budget.id }}" data-budgetLimit="{{ budgetLimit.id }}"
style="display:none;"></span>
{% endfor %}
{% endif %}
{% if budget.budgeted|length < currencies.count() %}
<a href="#" class="btn btn-light btn-xs create_bl" data-id="{{ budget.id }}">
<span class="fa fa-plus-circle"></span>
</a>
{% endif %}
</td>
<td class="hidden-sm hidden-xs spent" data-id="{{ budget.id }}" style="text-align:right;">
{% for spentInfo in budget.spent %}
{{ formatAmountBySymbol(spentInfo.spent, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }}
({{ formatAmountBySymbol(spentInfo.spent / activeDaysPassed, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }})
<br/>
{% endfor %}
{% for budgetLimit in budget.budgeted %}
{% if null == budget.spent[budgetLimit.currency_id] %}
{{ formatAmountBySymbol(0, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }}<br/>
{% endif %}
{% endfor %}
</td>
<td class="left" data-id="{{ budget.id }}" style="text-align: right;">
{% for spentInfo in budget.spent %}
{% set countLimit = 0 %}
{% for budgetLimit in budget.budgeted %}
{% if spentInfo.currency_id == budgetLimit.currency_id and budgetLimit.in_range %}
{% set countLimit = countLimit + 1 %}
<span class="left_span" data-currency="{{ spentInfo.currency_id }}" data-limit="{{ budgetLimit.id }}"
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
{{ formatAmountBySymbol(spentInfo.spent + budgetLimit.amount, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }}
{% if spentInfo.spent + budgetLimit.amount > 0 %}
({{ formatAmountBySymbol((spentInfo.spent + budgetLimit.amount) / activeDaysLeft, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }})
{% else %}
({{ formatAmountBySymbol(0, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }})
{% endif %}
</span>
<br/>
{% endif %}
{% endfor %}
{% if countLimit == 0 %}
<span class="left_span" data-id="{{ budget.id }}" data-currency="{{ spentInfo.currency_id }}" data-limit="0"
class="amount_left" data-value="{{ spentInfo.spent }}">
{{ formatAmountBySymbol(spentInfo.spent, spentInfo.currency_symbol, spentInfo.currency_decimal_places) }}
</span>
<br/>
{% endif %}
{% endfor %}
{% for budgetLimit in budget.budgeted %}
{% if null == budget.spent[budgetLimit.currency_id] %}
<span class="left_span" data-currency="{{ spentInfo.currency_id }}" data-limit="{{ budgetLimit.id }}"
data-value="{{ spentInfo.spent + budgetLimit.amount }}" class="amount_left">
{{ formatAmountBySymbol(budgetLimit.amount, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }}
{% if budgetLimit.in_range %}
({{ formatAmountBySymbol(budgetLimit.amount / activeDaysLeft, budgetLimit.currency_symbol, budgetLimit.currency_decimal_places) }})
{% endif %}
</span>
<br/>
{% endif %}
{% endfor %}
</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td>&nbsp;</td>
<td><em>{{ 'sum'|_ }}</em></td>
<td class="hidden-sm hidden-xs" style="text-align:right;">
{% for arr in sums.budgeted %}
{{ formatAmountBySymbol(arr.amount, arr.currency_symbol, arr.currency_decimal_places) }}<br/>
{% endfor %}
</td>
<td class="hidden-sm hidden-xs" style="text-align:right;">
{% for arr in sums.spent %}
{{ formatAmountBySymbol(arr.amount, arr.currency_symbol, arr.currency_decimal_places) }}
({{ formatAmountBySymbol(arr.amount / activeDaysPassed, arr.currency_symbol, arr.currency_decimal_places) }})
<br/>
{% endfor %}
</td>
<td style="text-align: right;">
{% for arr in sums.left %}
{{ formatAmountBySymbol(arr.amount, arr.currency_symbol, arr.currency_decimal_places) }}
({{ formatAmountBySymbol(arr.amount / activeDaysLeft, arr.currency_symbol, arr.currency_decimal_places) }})
<br/>
{% endfor %}
</td>
</tr>
</tfoot>
</table>
</div>
<div class="box-footer">
<a href="{{ route('budgets.create') }}" class="btn btn-success"><span class="fa fa-plus fa-fw"></span> {{ 'createBudget'|_ }}</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactionsWithoutBudget'|_ }}</h3>
</div>
<div class="box-body">
<p>
<a href="{{ route('budgets.no-budget', [start.format('Y-m-d'), end.format('Y-m-d')]) }}">
{{ trans('firefly.transactions_no_budget', {start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat)}) }}
</a>
</p>
</div>
</div>
</div>
{% if paginator.count() > 0 and inactive.count() > 0 %}
<div class="col-lg-3 col-md-4 col-sm-12 col-xs-12">
<div class="box" id="createBudgetBox">
<div class="box-header with-border">
<h3 class="box-title">{{ 'createBudget'|_ }}</h3>
</div>
<div class="box-body">
<a href="{{ route('budgets.create') }}" class="btn btn-success pull-right">{{ 'createBudget'|_ }}</a>
</div>
</div>
</div>
{% endif %}
{% if inactive|length > 0 %}
<div class="col-lg-3 col-sm-4 col-md-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'inactiveBudgets'|_ }}</h3>
</div>
<div class="box-body">
{% for budget in inactive %}
{% if loop.index == inactive.count() %}
<a href="{{ route('budgets.show',budget.id) }}">{{ budget.name }}</a>
{% else %}
<a href="{{ route('budgets.show',budget.id) }}">{{ budget.name }}</a>,
{% endif %}
{% endfor %}
</div>
</div>
</div>
{% endif %}
</div>
{% endif %}
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script src="v1/js/lib/jquery-ui.min.js?v={{ FF_VERSION }}" type="text/javascript" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" nonce="{{ JS_NONCE }}">
// index route.
var budgetIndexUri = "{{ route('budgets.index',['START','END']) }}";
// create available budgets / edit
var createAvailableBudgetUri = "{{ route('available-budgets.create', [start.format('Y-m-d'), end.format('Y-m-d')]) }}";
var createAltAvailableBudgetUri = "{{ route('available-budgets.create-alternative', [start.format('Y-m-d'), end.format('Y-m-d')]) }}";
var editAvailableBudgetUri = "{{ route('available-budgets.edit', ['REPLACEME', start.format('Y-m-d'), end.format('Y-m-d')]) }}";
var deleteABUrl = "{{ route('available-budgets.delete') }}";
// budget limit create form.
var createBudgetLimitUri = "{{ route('budget-limits.create', ['REPLACEME', start.format('Y-m-d'), end.format('Y-m-d')]) }}";
var storeBudgetLimitUri = "{{ route('budget-limits.store') }}";
var updateBudgetLimitUri = "{{ route('budget-limits.update', ['REPLACEME']) }}";
var deleteBudgetLimitUrl = "{{ route('budget-limits.delete', ['REPLACEME']) }}";
var totalBudgetedUri = "{{ route('json.budget.total-budgeted', ['REPLACEME', start.format('Y-m-d'), end.format('Y-m-d')]) }}";
// period thing:
var periodStart = "{{ start.format('Y-m-d') }}";
var periodEnd = "{{ end.format('Y-m-d') }}";
</script>
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/budgets/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,64 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, start, end) }}
{% endblock %}
{% block content %}
{# upper show-all instruction #}
{% if periods|length > 0 %}
<div class="row">
<div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('budgets.no-budget',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods|length > 0 %}col-lg-9 col-md-9 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ subTitle }}</h3>
</div>
<div class="box-body ">
{% if periods|length > 0 %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('budgets.no-budget-all') }}">{{ 'show_all_no_filter'|_ }}</a>
</p>
{% else %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('budgets.no-budget') }}">{{ 'show_the_current_period_and_overview'|_ }}</a>
</p>
{% endif %}
</div>
</div>
</div>
{% if periods|length > 0 %}
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
{% include 'v1.list.periods' %}
</div>
{% endif %}
</div>
{# lower show-all instruction #}
{% if periods|length > 0 %}
<div class="row">
<div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('budgets.no-budget-all') }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
{% endblock %}
{% block scripts %}
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,229 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, budget, budgetLimit) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="{% if attachments.count() == 0 %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% else %}col-lg-8 col-md-6 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{% if budgetLimit %}
{{ trans('firefly.chart_budget_in_period', {name: budget.name, start: budgetLimit.start_date.formatLocalized(monthAndDayFormat), end: budgetLimit.end_date.formatLocalized(monthAndDayFormat),currency: budgetLimit.transactionCurrency.name }) }}
{% else %}
{{ trans('firefly.chart_all_journals_for_budget', {name:budget.name}) }}
{% endif %}
</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('budgets.edit',budget.id) }}"><span class="fa fa-pencil fa-fw"></span> {{ 'edit'|_ }}</a></li>
<li><a href="{{ route('budgets.delete',budget.id) }}"><span class="fa fa-trash fa-fw"></span> {{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body">
<canvas id="budgetOverview" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
{% if budgetLimit %}
<div class="box-footer">
<p class="text-muted">
{{ trans('firefly.chart_budget_in_period_only_currency', {currency: budgetLimit.transactionCurrency.name}) }}
</p>
</div>
{% endif %}
</div>
</div>
{% if attachments.count() > 0 %}
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ 'attachments'|_ }}
</h3>
</div>
<div class="box-body no-padding">
{% include 'v1.list.attachments' %}
</div>
</div>
</div>
{% endif %}
</div>
<div class="row">
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses_by_category'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="budget-cat-out" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
{% if budgetLimit %}
<div class="box-footer">
<p class="text-muted">
{{ trans('firefly.chart_budget_in_period_only_currency', {currency: budgetLimit.transactionCurrency.name}) }}
</p>
</div>
{% endif %}
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses_by_asset_account'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="budget-asset-out" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
{% if budgetLimit %}
<div class="box-footer">
<p class="text-muted">
{{ trans('firefly.chart_budget_in_period_only_currency', {currency: budgetLimit.transactionCurrency.name}) }}
</p>
</div>
{% endif %}
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses_by_expense_account'|_ }}</h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="budget-expense-out" style="width:100%;height:250px;" height="250"></canvas>
</div>
</div>
{% if budgetLimit %}
<div class="box-footer">
<p class="text-muted">
{{ trans('firefly.chart_budget_in_period_only_currency', {currency: budgetLimit.transactionCurrency.name}) }}
</p>
</div>
{% endif %}
</div>
</div>
</div>
{% if limits|length > 0 %}
<div class="row">
<div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('budgets.show',budget.id) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if limits|length > 0 %}col-lg-9 col-md-9 col-sm-12 col-xs-12{% else %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div>
<div class="box-body">
{% include 'v1.list.groups' %}
{% if budgetLimit %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('budgets.show', [budget.id]) }}">
{{ 'show_all_no_filter'|_ }}
</a>
</p>
{% endif %}
</div>
</div>
</div>
{% if limits|length > 0 %}
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
{% for limit in limits %}
<div class="box {% if limit.start_date == budgetLimit.start_date %}box-primary box-solid{% endif %}">
<div class="box-header with-border">
<h3 class="box-title"><a
href="{{ route('budgets.show.limit',[budget.id,limit.id]) }}">
{{ limit.start_date.formatLocalized(monthAndDayFormat) }} &mdash;
{{ limit.end_date.formatLocalized(monthAndDayFormat) }}
</a>
</h3>
</div>
<div class="box-body no-padding">
<table class="table table-hover">
<tr>
<td style="width:33%;">{{ 'amount'|_ }}</td>
<td>
{{ formatAmountBySymbol(limit.amount, limit.transactionCurrency.symbol, limit.transactionCurrency.decimal_places) }}
</td>
</tr>
<tr>
<td style="width:33%;">{{ 'spent'|_ }}</td>
<td>
{{ formatAmountBySymbol(limit.spent, limit.transactionCurrency.symbol, limit.transactionCurrency.decimal_places) }}
</td>
</tr>
{% if limit.spent > 0 %}
<tr>
<td colspan="2">
{% set overspent = limit.amount + limit.spent < 0 %}
{% if overspent %}
{% set pct = (limit.spent != 0 ? (limit.amount / (limit.spent*-1))*100 : 0) %} {# must have -1 here #}
<div class="progress progress-striped">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="{{ pct|round }}"
aria-valuemin="0"
aria-valuemax="100" style="width: {{ pct|round }}%;"></div>
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="{{ (100-pct)|round }}"
aria-valuemin="0" aria-valuemax="100" style="width: {{ (100-pct)|round }}%;"></div>
</div>
{% else %}
{% set pct = (limit.amount != 0 ? (((limit.spent*-1) / limit.amount)*100) : 0) %} {# must have -1 here #}
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="{{ pct|round }}"
aria-valuemin="0"
aria-valuemax="100" style="width: {{ pct|round }}%;"></div>
</div>
{% endif %}
</td>
</tr>
{% endif %}
</table>
</div>
</div>
{% endfor %}
<p class="small text-center"><a href="{{ route('budgets.show',budget.id) }}">{{ 'showEverything'|_ }}</a></p>
</div>
{% endif %}
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var budgetID = {{ budget.id }};
var budgetLimitID = 0;
{% if budgetLimit.id %}
budgetLimitID = {{ budgetLimit.id }};
var budgetChartUri = '{{ route('chart.budget.budget-limit', [budget.id, budgetLimit.id] ) }}';
var currencySymbol = '{{ budgetLimit.transactionCurrency.symbol }}';
var expenseCategoryUri = '{{ route('chart.budget.expense-category', [budget.id, budgetLimit.id]) }}';
var expenseAssetUri = '{{ route('chart.budget.expense-asset', [budget.id, budgetLimit.id]) }}';
var expenseExpenseUri = '{{ route('chart.budget.expense-expense', [budget.id, budgetLimit.id]) }}';
{% else %}
var budgetChartUri = '{{ route('chart.budget.budget', [budget.id] ) }}';
var expenseCategoryUri = '{{ route('chart.budget.expense-category', [budget.id]) }}';
var expenseAssetUri = '{{ route('chart.budget.expense-asset', [budget.id]) }}';
var expenseExpenseUri = '{{ route('chart.budget.expense-expense', [budget.id]) }}';
{% endif %}
</script>
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/budgets/show.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,57 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('categories.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store" enctype="multipart/form-data">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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') }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# panel for optional fields#}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.textarea('notes', null, {helpText: trans('firefly.field_supports_markdown')} ) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','category') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'store_category'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/ff/budgets/create.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,41 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, category) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('categories.destroy',category.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_category', {'name': category.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.category_areYouSure', {'name': category.name}) }}
</p>
<p>
{% if category.transactionjournals.count() > 0 %}
{{ Lang.choice('form.category_keep_transactions', category.transactionjournals.count(), {count: category.transactionjournals.count() }) }}
{% endif %}
</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>
</form>
{% endblock %}

View File

@ -1,58 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, category) }}
{% endblock %}
{% block content %}
{{ Form.model(category, {'class' : 'form-horizontal','enctype': 'multipart/form-data','id' : 'update','url' : route('categories.update',category.id)}) }}
<input type="hidden" name="id" value="{{ category.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<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') }}
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# panel for optional fields#}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>
</div>
<div class="box-body">
{{ ExpandedForm.textarea('notes', preFilled.notes, {helpText: trans('firefly.field_supports_markdown')} ) }}
{{ ExpandedForm.file('attachments[]', {'multiple': 'multiple','helpText': trans('firefly.upload_max_file_size', {'size': uploadSize|filesize}) }) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
{# 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','category') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'update_category'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/ff/categories/edit.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,49 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
{% if categories.count() > 0 %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'categories'|_ }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><span class="fa fa-ellipsis-v"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route('categories.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_category'|_ }}</a></li>
</ul>
</div>
</div>
</div>
<div class="box-body no-padding">
<div style="padding:8px;">
<a class="btn btn-success" href="{{ route('categories.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_category'|_ }}</a>
</div>
{% include 'v1.list/categories' %}
</div>
<div class="box-footer">
<a class="btn btn-success" href="{{ route('categories.create') }}"><span class="fa fa-plus fa-fw"></span> {{ 'new_category'|_ }}</a>
</div>
</div>
</div>
</div>
{% else %}
{% include 'v1.partials.empty' with {objectType: 'default', type: 'categories',route: route('categories.create')} %}
{% endif %}
{% endblock %}
{% block styles %}
<link href="v1/css/bootstrap-sortable.css?v={{ FF_VERSION }}" type="text/css" rel="stylesheet" media="all" nonce="{{ JS_NONCE }}">
{% endblock %}
{% block scripts %}
<script type="text/javascript" src="v1/js/lib/bootstrap-sortable.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/categories/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,64 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, start, end) }}
{% endblock %}
{% block content %}
{# upper show-all instruction #}
{% if periods|length > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('categories.no-category.all') }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods|length > 0 %}col-lg-10 col-md-9 col-sm-12 col-xs-12{% else %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ subTitle }}</h3>
</div>
<div class="box-body ">
{% if periods|length > 0 %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('categories.no-category.all') }}">{{ 'show_all_no_filter'|_ }}</a>
</p>
{% else %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('categories.no-category') }}">{{ 'show_the_current_period_and_overview'|_ }}</a>
</p>
{% endif %}
</div>
</div>
</div>
{% if periods|length > 0 %}
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
{% include 'v1.list.periods' %}
</div>
{% endif %}
</div>
{# lower show-all instruction #}
{% if periods|length > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('categories.no-category',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
{% endblock %}
{% block scripts %}
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,122 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, category, start, end) }}
{% endblock %}
{% block content %}
<div class="row">
{% if Route.getCurrentRoute.getName == 'categories.show' %}
{# both charts #}
<div class="{% if attachments.count() == 0 %}col-lg-6 col-md-12 col-sm-12 col-xs-12{% else %}col-lg-4 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.chart_category_in_period', {name: category.name, start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat) }) }}
</h3>
</div>
<div class="box-body">
<canvas id="specific-period" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
</div>
</div>
<div class="{% if attachments.count() == 0 %}col-lg-6 col-md-12 col-sm-12 col-xs-12{% else %}col-lg-4 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.chart_category_all', {name: category.name }) }}
</h3>
</div>
<div class="box-body">
<canvas id="category-everything" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
</div>
</div>
{% endif %}
{% if Route.getCurrentRoute.getName == 'categories.show.all' %}
{# all chart #}
<div class="{% if attachments.count() == 0 %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% else %}col-lg-8 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ trans('firefly.chart_category_all', {name: category.name }) }}
</h3>
</div>
<div class="box-body">
<canvas id="category-everything" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
</div>
</div>
{% endif %}
{% if attachments.count() > 0 %}
<div class="col-lg-4 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ 'attachments'|_ }}
</h3>
</div>
<div class="box-body no-padding">
{% include 'v1.list.attachments' %}
</div>
</div>
</div>
{% endif %}
</div>
{% if periods|length > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('categories.show.all',[category.id]) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods|length > 0 %}col-lg-10 col-md-8 col-sm-12 col-xs-12{% else %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div>
<div class="box-body">
{% if periods|length > 0 %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('categories.show.all', [category.id]) }}">
{{ 'show_all_no_filter'|_ }}
</a>
</p>
{% else %}
{% include 'v1.list.groups' %}
<p>
<span class="fa fa-calendar"></span>
<a href="{{ route('categories.show', [category.id]) }}">
{{ 'show_the_current_period_and_overview'|_ }}
</a>
</p>
{% endif %}
</div>
</div>
</div>
{% if periods|length > 0 %}
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
{% include 'v1.list.periods' %}
</div>
{% endif %}
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var current = '{{ route('chart.category.current', [category.id]) }}';
var everything = '{{ route('chart.category.all', [category.id]) }}';
var specific = '{{ route('chart.category.specific', [category.id, start.format('Ymd')]) }}';
</script>
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/categories/show.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{# required for groups.twig #}
<script type="text/javascript" src="v1/js/ff/list/groups.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,47 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('currencies.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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',null,{'maxlength' : 48}) }}
{{ ExpandedForm.text('symbol',null,{'maxlength': 51}) }}
{{ ExpandedForm.text('code',null,{'maxlength' : 51}) }}
{{ ExpandedForm.integer('decimal_places',2,{'maxlength' : 2,'min': 0,'max': 12}) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','currency') }}
</div>
<div class="box-footer">
<button type="submit" class="btn pull-right btn-success">
{{ 'store_currency'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,35 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, currency) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('currencies.destroy',currency.id) }}" accept-charset="UTF-8" class="form-horizontal" id="destroy">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<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_currency', {'name': currency.name}) }}</h3>
</div>
<div class="box-body">
<p class="text-danger">
{{ trans('form.permDeleteWarning') }}
</p>
<p>
{{ trans('form.currency_areYouSure', {'name': currency.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>
</form>
{% endblock %}

View File

@ -1,48 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, currency) }}
{% endblock %}
{% block content %}
{{ Form.model(currency, {'class' : 'form-horizontal','id' : 'update','url' : route('currencies.update',currency.id)}) }}
<input type="hidden" name="id" value="{{ currency.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<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',null,{'maxlength' : 48}) }}
{{ ExpandedForm.text('symbol',null,{'maxlength' : 51}) }}
{{ ExpandedForm.text('code',null,{'maxlength' : 51}) }}
{{ ExpandedForm.integer('decimal_places',null,{'maxlength' : 2,'min': 0,'max': 12}) }}
{{ ExpandedForm.checkbox('enabled',null) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
{# 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','currency') }}
</div>
<div class="box-footer">
<button type="submit" class="btn btn-success pull-right">
{{ 'update_currency'|_ }}
</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View File

@ -1,108 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-sm-12 col-md-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'currencies'|_ }}</h3>
<a class="btn btn-success pull-right" href="{{ route('currencies.create') }}">{{ 'create_currency'|_ }}</a>
</div>
<div class="box-body">
<p class="text-info">
{{ 'currencies_intro'|_ }}
</p>
<p class="text-info">
{{ 'currencies_default_disabled'|_ }}
</p>
{% if currencies|length > 0 %}
<div style="padding-left:8px;">
{{ currencies.links('v1.pagination.bootstrap-4')|raw }}
</div>
<table class="table table-hover">
<thead>
<tr>
{% if isOwner %}
<th>&nbsp;</th>
{% endif %}
<th>{{ 'currency'|_ }}</th>
<th>{{ 'number_of_decimals'|_ }}</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for currency in currencies %}
<tr>
{% if isOwner %}
<td>
<div class="btn-group btn-group-xs">
<a class="btn btn-default" href="{{ route('currencies.edit',currency.id) }}"><span
class="fa fa-fw fa-pencil"></span></a>
<a class="btn btn-danger" href="{{ route('currencies.delete',currency.id) }}"><span
class="fa fa-fw fa-trash"></span></a>
</div>
</td>
{% endif %}
<td>
{% if currency.enabled == false %}
<span class="text-muted">
{% endif %}
{{ currency.name }} ({{ currency.code }}) ({{ currency.symbol|raw }})
{% if currency.id == defaultCurrency.id %}
<span class="label label-success" id="default-currency">{{ 'default_currency'|_ }}</span>
{% endif %}
{% if currency.enabled == false %}
</span>
<br><small class="text-danger">{{ 'currency_is_disabled'|_ }}</small>
{% endif %}
</td>
<td>{{ currency.decimal_places }}</td>
<td class="buttons">
<div class="btn-group">
{% if currency.id != defaultCurrency.id %}
<button data-id="{{ currency.id }}" class="make_default btn btn-default"><span
class="fa fa-fw fa-star"></span> {{ 'make_default_currency'|_ }}</button>
{% endif %}
{% if currency.enabled %}
<a class="btn btn-default disable-currency" data-id="{{ currency.id }}"
href="#">
<span class="fa fa-fw fa-square-o"></span>
{{ 'disable_currency'|_ }}</a>
{% endif %}
{% if not currency.enabled %}
<a class="btn btn-default enable-currency" data-id="{{ currency.id }}"
href="#">
<span class="fa fa-fw fa-check-square-o"></span>
{{ 'enable_currency'|_ }}</a>
{% endif %}
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div style="padding-left:8px;">
{{ currencies.links('v1.pagination.bootstrap-4')|raw }}
</div>
{% endif %}
</div>
<div class="box-footer">
<a class="btn btn-success pull-right" href="{{ route('currencies.create') }}">{{ 'create_currency'|_ }}</a>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var makeDefaultUrl = "{{ route('currencies.default') }}";
var disableCurrencyUrl = "{{ route('currencies.disable') }}";
var enableCurrencyUrl = "{{ route('currencies.enable') }}";
</script>
<script type="text/javascript" src="v1/js/ff/currencies/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1 +0,0 @@
{{ trans('demo.accounts-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.budgets-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.currencies-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.index', {asset: route('accounts.index', ['asset']), budgets: route('budgets.index'), reports: route('reports.index')})|raw }}

View File

@ -1 +0,0 @@
{{ trans('demo.index', {asset: route('accounts.index', ['asset']), budgets: route('budgets.index'), reports: route('reports.index')})|raw }}

View File

@ -1,3 +0,0 @@
{{ trans('demo.no_demo_text', {route: Route.getCurrentRoute.getName})|raw }}
{{ trans('demo.see_help_icon')|raw }}

View File

@ -1 +0,0 @@
{{ trans('demo.piggy-banks-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.profile-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.recurring-index') }}

View File

@ -1 +0,0 @@
{{ trans('demo.recurring-create') }}

View File

@ -1,7 +0,0 @@
{{ trans('demo.reports-index-start')|raw }}
<br/>
<br/>
{{ trans('demo.reports-index-examples', {
one: route('reports.report.default', ['1,2,3','currentMonthStart','currentMonthEnd']),
two: route('reports.report.default', ['1,2,3','20160101','20161231']),
three: route('reports.report.budget', ['1,2,3','2,1','20160101','20161231'])})|raw }}

View File

@ -1 +0,0 @@
{{ trans('demo.transactions-index') }}

View File

@ -1,32 +0,0 @@
{% extends "./v1/layout/guest" %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<h3 class="text-danger">Sorry, an error occurred.</h3>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<p>{{ message |default('General unknown errror')|raw }}</p>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<p>
If you do not know how to handle this error, please open an issue on
<a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>
or <a href="mailto:james@firefly-iii.org">send me a message</a>.
</p>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<p><a href="{{ route('index') }}">Follow this link back to the index.</a></p>
</div>
</div>
{% endblock %}

View File

@ -1,36 +0,0 @@
{% extends './v1/layout/default' %}
{% block breadcrumbs %}
{{ Breadcrumbs.render(Route.getCurrentRoute.getName) }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'export_data_main_title'|_ }}</h3>
</div>
<div class="box-body">
<p>
{{ 'export_data_expl'|_ }}
</p>
<form action="{{ route('export.export') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<button type="submit"><span class="fa fa-fw fa-download"></span> {{ 'export_data_all_transactions'|_ }}</button>
</form>
<p>
{{ 'export_data_advanced_expl'|_ }}
</p>
</div>
</div>
</div>
</div>
{% endblock %}
{% block styles %}
{% endblock %}
{% block scripts %}
{% endblock %}

View File

@ -1,8 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('number', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,24 +0,0 @@
<div class="input-group">
<div class="input-group-btn">
<button type="button"
class="btn btn-default dropdown-toggle currency-dropdown" id="currency_dropdown_{{ name }}" data-toggle="dropdown"
aria-expanded="false">
<span id="currency_select_symbol_{{ name }}">{{ defaultCurrency.symbol|raw }}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu currency-dropdown-menu" role="menu">
{% for currency in currencies %}
<li>
<a href="#"
class="currency-option"
data-id="{{ currency.id }}"
data-name="{{ name }}"
data-currency="{{ currency.code }}"
data-symbol="{{ currency.symbol|raw }}">{{ currency.name }}</a></li>
{% endfor %}
</ul>
</div>
{{ Form.input('number', name, value, options) }}
</div>
<input type="hidden" name="amount_currency_id_{{ name }}" value="{{ defaultCurrency.id }}"/>

View File

@ -1,33 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<div class="input-group">
<div class="input-group-btn">
<button type="button"
class="btn btn-default dropdown-toggle currency-dropdown" id="currency_dropdown_{{ name }}" data-toggle="dropdown"
aria-expanded="false">
<span id="currency_select_symbol_{{ name }}">{{ defaultCurrency.symbol|raw }}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu currency-dropdown-menu" role="menu">
{% for currency in currencies %}
<li>
<a href="#"
class="currency-option"
data-id="{{ currency.id }}"
data-name="{{ name }}"
data-currency="{{ currency.code }}"
data-symbol="{{ currency.symbol|raw }}">{{ currency.name }}</a></li>
{% endfor %}
</ul>
</div>
{{ Form.input('number', name, value, options) }}
</div>
{% include 'v1.form.feedback' %}
</div>
<!-- Going to put in this value: {{ defaultCurrency.id }} -->
<input type="hidden" name="amount_currency_id_{{ name }}" value="{{ defaultCurrency.id }}" data-backup="{{ defaultCurrency.id }}"/>
</div>

View File

@ -1,24 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{% for groupName, accounts in grouped %}
<strong>{{ groupName }}</strong><br />
{% for id, account in accounts %}
<div class="checkbox" style="margin-left:2em;">
<label>
{% if account in selected or (selected|length == 0 and options.select_all == true) %}
{{ Form.checkbox(name~'[]', id, true, options) }}
{% else %}
{{ Form.checkbox(name~'[]', id, false, options) }}
{% endif %}
{{ account|escape }}
</label>
</div>
{% endfor %}
{% endfor %}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,33 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<div class="input-group">
<div class="input-group-btn">
<button type="button"
class="btn btn-default dropdown-toggle currency-dropdown" id="currency_dropdown_{{ name }}" data-toggle="dropdown"
aria-expanded="false">
<span id="currency_select_symbol_{{ name }}">{{ defaultCurrency.symbol|raw }}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu currency-dropdown-menu" role="menu">
{% for currency in currencies %}
<li>
<a href="#"
class="currency-option"
data-id="{{ currency.id }}"
data-name="{{ name }}"
data-currency="{{ currency.code }}"
data-symbol="{{ currency.symbol|raw }}">{{ currency.name }}</a></li>
{% endfor %}
</ul>
</div>
{{ Form.input('number', name, value, options) }}
</div>
{% include 'v1.form.feedback' %}
</div>
<input type="hidden" name="amount_currency_id_{{ name }}" value="{{ defaultCurrency.id }}"/>
</div>

View File

@ -1,19 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="
{% if options.small %}
col-sm-8
{% else %}
col-sm-4
{% endif %}
control-label">{{ label }}</label>
<div class="{% if options.small %}col-sm-4{% else %}col-sm-8{% endif %}">
<div class="checkbox">
<label>
{{ Form.checkbox(name, value, options.checked, options) }}
</label>
</div>
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,14 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<div class="input-group">
<div class="input-group-addon">
<span class="fa fa-calendar"></span>
</div>
{{ Form.input('date', name, value, options) }}
</div>
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,4 +0,0 @@
{% if errors.has(name) %}
<span class="form-control-feedback"><span class="fa fa-fw fa-remove"></span></span>
<p class="text-danger">{{ errors.first(name) }}</p>
{% endif %}

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.file(name, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,3 +0,0 @@
{% if options.helpText %}
<p class="help-block">{{ options.helpText|raw }}</p>
{% endif %}

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('number', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,114 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{% if config('firefly.mapbox_api_key') == '' %}
<p class="text-danger">
{{ trans('firefly.mapbox_api_key')|raw }}
</p>
{% else %}
<div id="{{ name }}_map" style="width:100%;height:300px;"></div>
<div id="{{ name }}_map_canvas"></div>
<p class="help-block">
{{ 'press_object_location'|_ }}
<button class="btn btn-default btn-xs" type="button" id="{{ name }}_clear_location">{{ 'clear_location'|_ }}</button>
</p>
{# latitude #}
<input type="hidden" name="{{ name }}_latitude" value="{{ options.locations[name].latitude|default('52.3167') }}"/>
{# longitude #}
<input type="hidden" name="{{ name }}_longitude" value="{{ options.locations[name].longitude|default('5.5500') }}"/>
{# zoomlevel #}
<input type="hidden" name="{{ name }}_zoom_level" value="{{ options.locations[name].zoom_level|default('6') }}"/>
{# has location set? #}
<input type="hidden" name="{{ name }}_has_location" value="{{ options.locations[name].has_location|default('false') }}"/>
{% include 'v1.form.feedback' %}
{% endif %}
</div>
</div>
{% if config('firefly.mapbox_api_key') != '' %}
{% set latitudevar = name~'_latitude' %}
{% set longitudevar = name~'_longitude' %}
{% set zoomlevelvar = name~'_zoom_level' %}
{% set haslocationvar = name~'_has_location' %}
{% set clearvar = name~'_clear_location' %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var mymap;
var marker;
if (typeof locations.{{ name }}.latitude === 'undefined') {
locations.{{ name }}.latitude = '52.3167';
}
if (typeof locations.{{ name }}.longitude === 'undefined') {
locations.{{ name }}.longitude = '5.5500';
}
if (typeof locations.{{ name }}.zoom_level === 'undefined') {
locations.{{ name }}.zoom_level = '6';
}
if (typeof mapboxToken === 'undefined') {
var mapboxToken = 'invalid';
}
window.onload = function () {
document.getElementById('{{ clearvar }}').addEventListener('click', function () {
if (typeof marker !== 'undefined') {
marker.remove();
$('input[name="{{ haslocationvar }}"]').val('false');
$('input[name="{{ latitudevar }}"]').val('');
$('input[name="{{ longitudevar }}"]').val('');
$('input[name="{{ zoomlevelvar }}"]').val('');
}
});
};
// set location thing:
function setObjectLocation(e) {
if (typeof e.latlng !== 'undefined') {
console.log('Set object location: lat(' + e.latlng.lat + '), long(' + e.latlng.lng + '), zoom (' + mymap.getZoom() + ')');
$('input[name="{{ latitudevar }}"]').val(e.latlng.lat);
$('input[name="{{ longitudevar }}"]').val(e.latlng.lng);
$('input[name="{{ haslocationvar }}"]').val('true');
}
if (typeof e.latlng === 'undefined') {
console.log('Set object zoom level to ' + mymap.getZoom());
}
$('input[name="{{ zoomlevelvar }}"]').val(mymap.getZoom());
// remove existing marker:
if (typeof marker !== 'undefined' && typeof e.latlng !== 'undefined') {
marker.remove();
}
if (typeof e.latlng !== 'undefined') {
// new marker
marker = L.marker({lat: e.latlng.lat, lng: e.latlng.lng}).addTo(mymap);
}
}
document.addEventListener("DOMContentLoaded", function () {
"use strict";
// make map:
mymap = L.map('{{ name }}_map').setView({lat: locations.{{ name }}.latitude, lng: locations.{{ name }}.longitude}, locations.{{ name }}.zoom_level);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?access_token={accessToken}', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
maxZoom: 18,
id: 'mapbox.streets',
accessToken: mapboxToken
}).addTo(mymap);
mymap.on('contextmenu', setObjectLocation);
mymap.on('zoomend', setObjectLocation);
// add marker
if (typeof locations.{{ name }}.has_location !== 'undefined' && locations.{{ name }}.has_location === true) {
marker = L.marker({lat: locations.{{ name }}.latitude, lng: locations.{{ name }}.longitude}).addTo(mymap);
}
});
</script>
{% endif %}

View File

@ -1,11 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<div class="input-group">
<span class="input-group-addon non-selectable-currency-symbol">{{ selectedCurrency.symbol }}</span>
{{ Form.input('number', name, value, options) }}
</div>
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('number', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('text', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,34 +0,0 @@
{% if type == 'create' %}
<div class="form-group">
<label for="{{ name }}_return_to_form" class="col-sm-4 control-label">
{{ trans('form.returnHere') }}
</label>
<div class="col-sm-8">
<div class="checkbox">
<label>
{{ Form.checkbox('create_another', '1', false, {'id': name ~ '_return_to_form'}) }}
{{ trans('form.returnHereExplanation') }}
</label>
</div>
</div>
</div>
{% endif %}
{% if type == 'update' %}
<div class="form-group">
<label for="{{ name }}_return_to_edit" class="col-sm-4 control-label">
{{ trans('form.returnHere') }}
</label>
<div class="col-sm-8">
<div class="checkbox"><label>
{{ Form.checkbox('return_to_edit', '1', null, {'id': name ~ '_return_to_edit'}) }}
{{ trans('form.returnHereUpdateExplanation') }}
</label>
</div>
</div>
</div>
{% endif %}

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('password', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,12 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<div class="input-group">
{{ Form.input('number', name, value, options) }}
<div class="input-group-addon">%</div>
</div>
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,10 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.select(name, list, selected , options ) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,7 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
<p class="form-control-static" id="{{ options.id }}">{{ value|raw }}</p>
</div>
</div>

View File

@ -1,8 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('text', name, value, options) }}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.input('text', name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,9 +0,0 @@
<div class="{{ classes }}" id="{{ name }}_holder">
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8">
{{ Form.textarea(name, value, options) }}
{% include 'v1.form.help' %}
{% include 'v1.form.feedback' %}
</div>
</div>

View File

@ -1,191 +0,0 @@
{% extends "./v1/layout/default" %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
{% include 'v1.partials.boxes' %}
<div class="row">
<div class="col-lg-8 col-md-12 col-sm-12">
{# ACCOUNTS #}
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('accounts.index',['asset']) }}" title="{{ 'yourAccounts'|_ }}">{{ 'yourAccounts'|_ }}</a></h3>
</div>
<div class="box-body">
<canvas id="accounts-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
<a href="{{ route('accounts.index','asset') }}" class="btn btn-default button-sm"><span
class="fa fa-money"></span> {{ 'go_to_asset_accounts'|_ }}</a>
</div>
</div>
{# BUDGETS #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('budgets.index') }}" title="{{ 'budgetsAndSpending'|_ }}">{{ 'budgetsAndSpending'|_ }}</a></h3>
</div>
<div class="box-body">
<canvas id="budgets-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
<a href="{{ route('budgets.index') }}" class="btn btn-default button-sm">
<span class="fa fa-pie-chart"></span>
<span>{{ 'go_to_budgets'|_ }}</span>
</a>
</div>
</div>
{# CATEGORIES #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('categories.index') }}" title="{{ 'categories'|_ }}">{{ 'categories'|_ }}</a></h3>
</div>
<div class="box-body">
<canvas id="categories-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
<a href="{{ route('categories.index') }}" class="btn btn-default button-sm">
<span class="fa fa-bookmark"></span>
<span>{{ 'go_to_categories'|_ }}</span>
</a>
</div>
</div>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
{# TRANSACTIONS #}
<div id="all_transactions">
{% for data in transactions %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('accounts.show', data.account.id) }}">{{ data.account.name }}</a></h3>
</div>
{% if data.transactions|length > 0 %}
<div class="box-body no-padding">
{% include 'v1.list.groups-tiny' with {'transactions': data.transactions,'account': data.account} %}
</div>
{% else %}
<div class="box-body">
<p>
<em>
{{ trans('firefly.no_transactions_account', {name: data.account.name}) }}
</em>
</p>
</div>
{% endif %}
<div class="box-footer clearfix">
<!-- Single button -->
<div class="btn-group">
<a type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ 'sidebar_frontpage_create'|_ }} <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="{{ route('transactions.create', ['withdrawal']) }}?source={{ data.account.id }}">{{ 'create_new_withdrawal'|_ }}</a></li>
<li><a href="{{ route('transactions.create', ['deposit']) }}?destination={{ data.account.id }}">{{ 'create_new_deposit'|_ }}</a></li>
<li><a href="{{ route('transactions.create', ['transfer']) }}?source={{ data.account.id }}">{{ 'create_new_transfer'|_ }}</a></li>
</ul>
</div>
<div class="btn-group">
<a type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
href="{{ route('accounts.show', [data.account.id]) }}">{{ formatAmountByAccount(data.account, data.account|balance, false) }}
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="{{ route('accounts.show', [data.account.id]) }}">{{ 'show'|_ }}</a></li>
<li><a href="{{ route('accounts.reconcile', [data.account.id]) }}">{{ 'reconcile'|_ }}</a></li>
<li><a href="{{ route('accounts.edit', [data.account.id]) }}">{{ 'edit'|_ }}</a></li>
<li><a href="{{ route('accounts.delete', [data.account.id]) }}">{{ 'delete'|_ }}</a></li>
</ul>
</div>
</div>
</div>
{% endfor %}
</div>
{% if billCount > 0 %}
{# BILLS #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('bills.index') }}" title="{{ 'bills'|_ }}">{{ 'bills'|_ }}</a></h3>
</div>
<div class="box-body">
<div style="width:100%;margin:0 auto;">
<canvas id="bills-chart" style="width:100%;height:200px;" height="200"></canvas>
</div>
</div>
<div class="box-footer">
<a href="{{ route('bills.index') }}" class="btn btn-default button-sm"><span
class="fa fa-calendar"></span> {{ 'go_to_bills'|_ }}</a>
</div>
</div>
{% endif %}
{# box for piggy bank data (JSON) #}
<div id="piggy_bank_overview">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
{# EXPENSE ACCOUNTS #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('accounts.index',['expense']) }}"
title="{{ 'expense_accounts'|_ }}">{{ 'expense_accounts'|_ }}</a>
</h3>
</div>
<div class="box-body">
<canvas id="expense-accounts-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
<a href="{{ route('accounts.index', ['expense']) }}" class="btn btn-default button-sm"><span
class="fa fa-shopping-cart"></span> {{ 'go_to_expense_accounts'|_ }}</a>
</div>
</div>
{# OPTIONAL REVENUE ACCOUNTS #}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('accounts.index',['revenue']) }}"
title="{{ 'revenue_accounts'|_ }}">{{ 'revenue_accounts'|_ }}</a></h3>
</div>
<div class="box-body">
<canvas id="revenue-accounts-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
<a href="{{ route('accounts.index', ['revenue']) }}" class="btn btn-default button-sm"><span
class="fa fa-download"></span> {{ 'go_to_revenue_accounts'|_ }}</a>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var billCount = {{ billCount }};
var accountFrontpageUri = '{{ route('chart.account.frontpage') }}';
var accountRevenueUri = '{{ route('chart.account.revenue') }}';
var accountExpenseUri = '{{ route('chart.account.expense') }}';
var piggyInfoUri = '{{ route('json.fp.piggy-banks') }}';
var drawVerticalLine = '';
{# render vertical line with text "today" #}
{% if start.lte(today) and end.gte(today) %}
drawVerticalLine = '{{ today.formatLocalized(monthAndDayFormat) }}';
{% endif %}
</script>
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/lib/chartjs-plugin-annotation.min.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/charts.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
<script type="text/javascript" src="v1/js/ff/index.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
{% endblock %}
{% block styles %}
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "./v1/layout/install" %}
{% block content %}
<div class="login-box-body">
<p class="login-box-msg">Please wait...</p>
<div class="row">
<div class="col-lg-12">
<div id="status-box" style="border:1px #ddd solid;padding:5px;">
<span class="fa fa-spin fa-spinner"></span> Waiting to start...
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
var token = '{{ csrf_token() }}';
var index = 0;
var runCommandUri = '{{ route('installer.runCommand') }}';
var homeUri = '{{ route('flush') }}';
</script>
<script type="text/javascript" src="v1/js/ff/install/index.js" nonce="{{ JS_NONCE }}"></script>
{% endblock %}

View File

@ -1,4 +0,0 @@
var accountInfo = [];
{% for id, account in accounts %}
accountInfo[{{ id }}] = {preferredCurrency: {{ account.preferredCurrency }}, name: "{{ account.name }}"};
{% endfor %}

View File

@ -1,4 +0,0 @@
var currencyInfo = [];
{% for id, currency in currencies %}
currencyInfo[{{ id }}] = {name: "{{ currency.name }}", symbol: "{{ currency.symbol }}", code: "{{ currency.code }}"};
{% endfor %}

View File

@ -1,66 +0,0 @@
// date ranges
var ranges = {};
{% for title, range in dateRangeConfig.ranges %}
ranges["{{ title }}"] = [moment("{{ range[0].format('Y-m-d') }}"), moment("{{ range[1].format('Y-m-d') }}")];
{% endfor %}
// date range meta configuration
var dateRangeMeta = {
title: "{{ dateRangeTitle }}",
uri: "{{ route('daterange') }}",
labels: {
apply: "{{ 'apply'|_ }}",
cancel: "{{ 'cancel'|_ }}",
from: "{{ 'from'|_ }}",
to: "{{ 'to'|_ }}",
customRange: "{{ 'customRange'|_ }}"
}
};
// date range actual configuration:
var dateRangeConfig = {
startDate: moment("{{ dateRangeConfig.start }}"),
endDate: moment("{{ dateRangeConfig.end }}"),
ranges: ranges
};
var uid = "{{ uid }}";
var language = "{{ language|escape }}";
var locale = "{{ locale|escape }}";
var currencyCode = '{{ currencyCode|escape('js') }}';
var currencySymbol = '{{ currencySymbol|escape('js') }}';
var mon_decimal_point = "{{ accountingLocaleInfo.mon_decimal_point|escape('js') }}";
var mon_thousands_sep = "{{ accountingLocaleInfo.mon_thousands_sep|escape('js') }}";
var frac_digits = {{ accountingLocaleInfo.frac_digits|default('0') }};
var noDataForChart = '{{ trans('firefly.no_data_for_chart')|escape('js') }}';
var showFullList = '{{ trans('firefly.show_full_list')|escape('js') }}';
var showOnlyTop = '{{ trans('firefly.show_only_top',{number:listLength})|escape('js') }}';
var accountingConfig = {{ accountingLocaleInfo.format|json_encode|raw }};
var token = '{{ csrf_token() }}';
var sessionStart = '{{ session('start').format('Y-m-d') }}';
var sessionEnd = '{{ session('end').format('Y-m-d') }}';
var todayText = ' {{ trans('firefly.today')|escape('js') }}';
// some formatting stuff:
var month_and_day_js = "{{ trans('config.month_and_day_js') }}";
var acc_config_new = {format: accountingConfig};
// strings and translations used often:
var helpPageTitle = "{{ trans('firefly.help_for_this_page')|escape('js') }}";
var noHelpForPage = "{{ trans('firefly.no_help_could_be_found')|escape('js') }}";
var noHelpForPageTitle = "{{ trans('firefly.no_help_title')|escape('js') }}";
var edit_selected_txt = "{{ trans('firefly.mass_edit')|escape('js') }}";
var edit_bulk_selected_txt = "{{ trans('firefly.bulk_edit')|escape('js') }}";
var delete_selected_txt = "{{ trans('firefly.mass_delete')|escape('js') }}";
var mass_edit_url = '{{ route('transactions.mass.edit', ['']) }}';
var bulk_edit_url = '{{ route('transactions.bulk.edit', ['']) }}';
var mass_delete_url = '{{ route('transactions.mass.delete', ['']) }}';
// for demo:
var nextLabel = "{{ trans('firefly.intro_next_label')|escape('js') }}";
var prevLabel = "{{ trans('firefly.intro_prev_label')|escape('js') }}";
var skipLabel = "{{ trans('firefly.intro_skip_label')|escape('js') }}";
var doneLabel = "{{ trans('firefly.intro_done_label')|escape('js') }}";

View File

@ -1,22 +0,0 @@
<div class="box">
<div class="box-header with-border">
<h3 class="box-title"><a href="{{ route('piggy-banks.index') }}" title="{{ 'piggyBanks'|_ }}">{{ 'piggyBanks'|_ }}</a></h3>
</div>
<div class="box-body">
{% for entry in info %}
<strong>{{ entry.name }}</strong><br/>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="{{ entry.percentage }}" aria-valuemin="0" aria-valuemax="100"
style="width: {{ entry.percentage }}%;">
{% if entry.percentage >=20 %}{{ entry.amount|formatAmountPlain }}{% endif %}
</div>
{% if entry.percentage < 20 %}&nbsp;{{ entry.amount|formatAmountPlain }}{% endif %}
</div>
{% endfor %}
</div>
<div class="box-footer">
<a href="{{ route('piggy-banks.index') }}" class="btn btn-default button-sm"><span
class="fa fa-download"></span> {{ 'go_to_piggies'|_ }}</a>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More