firefly-iii/resources/views/index.twig

225 lines
11 KiB
Twig
Raw Normal View History

2022-01-29 07:15:34 -06:00
{% extends "./layout/default" %}
{% block breadcrumbs %}
{{ Breadcrumbs.render }}
{% endblock %}
{% block content %}
2022-01-29 07:17:25 -06:00
{% include 'partials.boxes' %}
2022-01-29 07:15:34 -06:00
<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">
2023-09-05 12:34:46 -05:00
<h3 class="box-title"><a href="{{ route('accounts.index',['asset']) }}"
2023-08-31 11:45:11 -05:00
title="{{ 'yourAccounts'|_ }}">{{ 'yourAccounts'|_ }}</a></h3>
2022-01-29 07:15:34 -06:00
</div>
<div class="box-body">
<canvas id="accounts-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.index',['asset']) }}" class="btn btn-default button-sm"><span
2023-08-31 11:45:11 -05:00
class="fa fa-money"></span> {{ 'go_to_asset_accounts'|_ }}</a>
2022-01-29 07:15:34 -06:00
</div>
</div>
{# BUDGETS #}
<div class="box">
<div class="box-header with-border">
2023-09-05 12:34:46 -05:00
<h3 class="box-title"><a href="{{ route('budgets.index') }}"
2023-08-31 11:45:11 -05:00
title="{{ 'budgetsAndSpending'|_ }}">{{ 'budgetsAndSpending'|_ }}</a></h3>
2022-01-29 07:15:34 -06:00
</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">
2022-01-29 07:15:34 -06:00
<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') }}"
2023-08-31 11:45:11 -05:00
title="{{ 'categories'|_ }}">{{ 'categories'|_ }}</a></h3>
2022-01-29 07:15:34 -06:00
</div>
<div class="box-body">
<canvas id="categories-chart" style="width:100%;height:400px;" height="400" width="100%"></canvas>
</div>
<div class="box-footer">
2023-09-05 12:34:46 -05:00
<a href="{{ route('categories.index') }}" class="btn btn-default button-sm">
2022-01-29 07:15:34 -06:00
<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">
2023-08-31 11:45:11 -05:00
<h3 class="box-title"><a
2023-09-05 12:34:46 -05:00
href="{{ route('accounts.show', [data.account.id]) }}">{{ data.account.name }}</a>
2023-08-31 11:45:11 -05:00
</h3>
2022-01-29 07:15:34 -06:00
</div>
{% if data.transactions|length > 0 %}
<div class="box-body no-padding">
2022-01-29 07:17:25 -06:00
{% include 'list.groups-tiny' with {'transactions': data.transactions,'account': data.account} %}
2022-01-29 07:15:34 -06:00
</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">
2023-08-31 11:45:11 -05:00
<a type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
2022-01-29 07:15:34 -06:00
{{ 'sidebar_frontpage_create'|_ }} <span class="caret"></span>
</a>
<ul class="dropdown-menu">
2023-08-31 11:45:11 -05:00
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('transactions.create', ['withdrawal']) }}?source={{ data.account.id }}">{{ 'create_new_withdrawal'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('transactions.create', ['deposit']) }}?destination={{ data.account.id }}">{{ 'create_new_deposit'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('transactions.create', ['transfer']) }}?source={{ data.account.id }}">{{ 'create_new_transfer'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
2022-01-29 07:15:34 -06:00
</ul>
</div>
<div class="btn-group">
2023-08-31 11:45:11 -05:00
<a type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"
2023-09-05 12:34:46 -05:00
href="{{ route('accounts.show', [data.account.id]) }}">{{ formatAmountByAccount(data.account, data.account|balance, false) }}
2022-01-29 07:15:34 -06:00
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
2023-08-31 11:45:11 -05:00
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.show', [data.account.id]) }}">{{ 'show'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.reconcile', [data.account.id]) }}">{{ 'reconcile'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.edit', [data.account.id]) }}">{{ 'edit'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
<li>
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.delete', [data.account.id]) }}">{{ 'delete'|_ }}</a>
2023-08-31 11:45:11 -05:00
</li>
2022-01-29 07:15:34 -06:00
</ul>
</div>
</div>
</div>
{% endfor %}
</div>
{% if billCount > 0 %}
{# BILLS #}
<div class="box">
<div class="box-header with-border">
2023-09-05 12:34:46 -05:00
<h3 class="box-title"><a href="{{ route('bills.index') }}"
2023-08-31 11:45:11 -05:00
title="{{ 'bills'|_ }}">{{ 'bills'|_ }}</a></h3>
2022-01-29 07:15:34 -06:00
</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">
2023-09-05 12:34:46 -05:00
<a href="{{ route('bills.index') }}" class="btn btn-default button-sm"><span
2023-08-31 11:45:11 -05:00
class="fa fa-calendar"></span> {{ 'go_to_bills'|_ }}</a>
2022-01-29 07:15:34 -06:00
</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">
2023-09-05 12:34:46 -05:00
<h3 class="box-title"><a href="{{ route('accounts.index',['expense']) }}"
2022-01-29 07:15:34 -06:00
title="{{ 'expense_accounts'|_ }}">{{ 'expense_accounts'|_ }}</a>
</h3>
</div>
<div class="box-body">
2023-08-31 11:45:11 -05:00
<canvas id="expense-accounts-chart" style="width:100%;height:400px;" height="400"
width="100%"></canvas>
2022-01-29 07:15:34 -06:00
</div>
<div class="box-footer">
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.index', ['expense']) }}" class="btn btn-default button-sm"><span
2023-08-31 11:45:11 -05:00
class="fa fa-shopping-cart"></span> {{ 'go_to_expense_accounts'|_ }}</a>
2022-01-29 07:15:34 -06:00
</div>
</div>
{# OPTIONAL REVENUE ACCOUNTS #}
<div class="box">
<div class="box-header with-border">
2023-09-05 12:34:46 -05:00
<h3 class="box-title"><a href="{{ route('accounts.index',['revenue']) }}"
2022-01-29 07:15:34 -06:00
title="{{ 'revenue_accounts'|_ }}">{{ 'revenue_accounts'|_ }}</a></h3>
</div>
<div class="box-body">
2023-08-31 11:45:11 -05:00
<canvas id="revenue-accounts-chart" style="width:100%;height:400px;" height="400"
width="100%"></canvas>
2022-01-29 07:15:34 -06:00
</div>
<div class="box-footer">
2023-09-05 12:34:46 -05:00
<a href="{{ route('accounts.index', ['revenue']) }}" class="btn btn-default button-sm"><span
2023-08-31 11:45:11 -05:00
class="fa fa-download"></span> {{ 'go_to_revenue_accounts'|_ }}</a>
2022-01-29 07:15:34 -06:00
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script type="text/javascript" nonce="{{ JS_NONCE }}">
2023-02-26 23:04:32 -06:00
var lineColor = 'red';
var lineTextColor = '#000';
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
2023-02-28 23:40:58 -06:00
lineColor = '#a00';
lineTextColor = '#bec5cb';
2023-02-26 23:04:32 -06:00
}
2022-01-29 07:15:34 -06:00
var billCount = {{ billCount }};
2023-09-05 12:34:46 -05:00
var accountFrontpageUrl = '{{ route('chart.account.frontpage') }}';
var accountRevenueUrl = '{{ route('chart.account.revenue') }}';
var accountExpenseUrl = '{{ route('chart.account.expense') }}';
2022-04-12 11:19:30 -05:00
var piggyInfoUrl = '{{ route('json.fp.piggy-banks') }}';
2022-01-29 07:15:34 -06:00
var drawVerticalLine = '';
{# render vertical line with text "today" #}
{% if start.lte(today) and end.gte(today) %}
2022-03-27 13:33:25 -05:00
drawVerticalLine = '{{ today.isoFormat(monthAndDayFormat) }}';
2022-01-29 07:15:34 -06:00
{% endif %}
</script>
2023-09-02 03:47:10 -05:00
<script type="text/javascript" src="v1/js/lib/Chart.bundle.min.js?v={{ FF_VERSION }}"
2023-08-31 11:45:11 -05:00
nonce="{{ JS_NONCE }}"></script>
2023-09-02 03:47:10 -05:00
<script type="text/javascript" src="v1/js/lib/chartjs-plugin-annotation.min.js?v={{ FF_VERSION }}"
2023-08-31 11:45:11 -05:00
nonce="{{ JS_NONCE }}"></script>
2023-09-02 03:47:10 -05:00
<script type="text/javascript" src="v1/js/ff/charts.defaults.js?v={{ FF_VERSION }}"
2023-08-31 11:45:11 -05:00
nonce="{{ JS_NONCE }}"></script>
2023-09-02 03:47:10 -05:00
<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>
2022-01-29 07:15:34 -06:00
{% endblock %}
{% block styles %}
{% endblock %}