mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-24 04:41:01 +00:00
Remove import code.
This commit is contained in:
@@ -97,10 +97,6 @@
|
||||
<td>{{ trans('list.categories_count') }}</td>
|
||||
<td>{{ information.categories }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ trans('list.import_jobs_count') }}</td>
|
||||
<td>{{ information.import_jobs }}, {{ trans('firefly.successful_count', {count: information.import_jobs_success}) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ trans('list.budget_count') }}</td>
|
||||
<td>{{ trans_choice('firefly.budget_or_budgets', information.budgets ) }},
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{{ trans('demo.import-index') }}
|
||||
@@ -1,69 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.bank.form.post',[bank]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('bank.bank_form_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('bank.bank_form_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">{{ 'list.account'|_ }}</th>
|
||||
<th>{{ 'list.currentBalance'|_ }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% for remoteAccount in remoteAccounts %}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="do_import[{{ remoteAccount.id }}]" checked id="do_import_{{ remoteAccount.id }}"/>
|
||||
</td>
|
||||
<td>
|
||||
<strong {% if remoteAccount.color !='' %} style="color:{{ remoteAccount.color }}"{% endif %}>
|
||||
{{ remoteAccount.name }}
|
||||
</strong>
|
||||
<br/>{{ remoteAccount.number }}
|
||||
</td>
|
||||
<td>
|
||||
{{ remoteAccount.currency }}
|
||||
{{ remoteAccount.balance }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,108 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post',[importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_bunq_apply_rules') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<p>
|
||||
{{ trans('import.job_config_bunq_apply_rules_text') }}
|
||||
</p>
|
||||
{{ ExpandedForm.checkbox('apply_rules', 1, true) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_bunq_accounts_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.job_config_bunq_accounts_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>{{ trans('list.account_at_bunq') }}</th>
|
||||
<th>{{ trans('list.account') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for account in data.accounts %}
|
||||
{% set currentIban = 'not-iban' %}
|
||||
<tr>
|
||||
<td style="background:{{ account.settings.color }};"></td>
|
||||
<td>
|
||||
<strong>{{ account.description }}</strong>
|
||||
<ul>
|
||||
{% for alias in account.aliases %}
|
||||
{% if alias.type == 'IBAN' %}
|
||||
<li>{{ alias.name }}: {{ alias.value }}{% set currentIban = alias.value %}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if account.status != 'ACTIVE' %}
|
||||
<li>{{ trans('import.bunq_account_status_'~account.status|escape) }}</li>
|
||||
{% endif %}
|
||||
{% if account.type == 'MonetaryAccountSavings' %}
|
||||
<li>{{ trans('import.bunq_savings_goal', {'amount': account.savingsGoal.currency ~' '~account.savingsGoal.value,'percentage' : account.savingsGoal.percentage}) }}</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="account_mapping[{{ account.id }}]">
|
||||
<option value="0" label="{{ trans('import.spectre_do_not_import') }}">
|
||||
{{ trans('import.spectre_do_not_import') }}
|
||||
</option>
|
||||
{% for localId, localAccount in data.local_accounts %}
|
||||
{% if localAccount.code == account.currency_code %}
|
||||
<option value="{{ localId }}"{% if currentIban != '' and currentIban == localAccount.iban %} selected{% endif %}>
|
||||
{{ localAccount.name }}{% if localAccount.iban !='' %} ({{ localAccount.iban }}){% endif %}
|
||||
</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,57 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.prerequisites.post',['bunq', importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.prereq_bunq_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.prereq_bunq_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('api_key', api_key) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.prereq_bunq_ip')|raw }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('external_ip', external_ip) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,56 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_apply_rules_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_apply_rules_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', importJob.key) }}" accept-charset="UTF-8" class="form-horizontal"
|
||||
enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
{{ trans('import.job_config_input') }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.select('apply_rules', data.rulesOptions) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
Submit it!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,53 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_fake_album_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_fake_album_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', importJob.key) }}" accept-charset="UTF-8" class="form-horizontal" enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.text('album') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
Submit it!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,53 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_fake_artist_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_fake_artist_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', importJob.key) }}" accept-charset="UTF-8" class="form-horizontal" enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.text('artist') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
Submit it!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,53 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_fake_song_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_fake_song_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', importJob.key) }}" accept-charset="UTF-8" class="form-horizontal" enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.text('song') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
Submit it!
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,43 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.prerequisites.post',['fake', importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.prereq_fake_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.prereq_fake_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('api_key', api_key) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,115 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, importJob) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_uc_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_uc_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post', importJob.key) }}" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h4>{{ 'mandatoryFields'|_ }}</h4>
|
||||
{{ ExpandedForm.checkbox('has_headers',1,importJob.configuration['has-headers'],{helpText: trans('import.job_config_uc_header_help')}) }}
|
||||
{{ ExpandedForm.text('date_format',importJob.configuration['date-format'],{helpText: trans('import.job_config_uc_date_help', {dateExample: phpdate('Ymd')}) }) }}
|
||||
{{ ExpandedForm.select('csv_delimiter', data.delimiters, importJob.configuration['delimiter'], {helpText: trans('import.job_config_uc_delimiter_help') } ) }}
|
||||
{{ AccountForm.activeAssetAccountList('csv_import_account', importJob.configuration['import-account'], {helpText: trans('import.job_config_uc_account_help')}) }}
|
||||
|
||||
<h4>{{ 'optionalFields'|_ }}</h4>
|
||||
<div class="form-group">
|
||||
<label for="apply_rules_label" class="col-sm-4 control-label">
|
||||
{{ trans('import.job_config_uc_apply_rules_title') }}
|
||||
</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<div class="checkbox"><label>
|
||||
{{ Form.checkbox('apply_rules', '1',
|
||||
importJob.configuration['apply-rules'] == true, {'id': 'apply_rules_label'}) }}
|
||||
{{ trans('import.job_config_uc_apply_rules_text') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputSpecifics" class="col-sm-4 control-label">{{ trans('import.job_config_uc_specifics_title') }}</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<p>
|
||||
{{ trans('import.job_config_uc_specifics_txt') }}
|
||||
</p>
|
||||
<select id="inputSpecifics" name="specifics[]" multiple class="form-control">
|
||||
{% for type, specific in data.specifics %}
|
||||
<option value="{{ type }}" {% if importJob.configuration.specifics[type] == 1 %}selected{% endif %}>
|
||||
{{ trans(specific.name) }}
|
||||
<small><br>{{ trans(specific.description) }}</small>
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="pull-right btn btn-success">
|
||||
{{ trans('import.job_config_uc_submit') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p>
|
||||
<br/> <br/> <br/> <br/> <br/> <br/> <br/>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
<link href="v1/css/bootstrap-multiselect.css?v={{ FF_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
<script type="text/javascript" nonce="{{ JS_NONCE }}">
|
||||
var selectAllText = "{{ trans('firefly.multi_select_select_all')|escape('js') }}";
|
||||
var nonSelectedText = "{{ trans('firefly.multi_select_no_selection')|escape('js') }}";
|
||||
var nSelectedText = "{{ trans('firefly.multi_select_n_selected')|escape('js') }}";
|
||||
var allSelectedText = "{{ trans('firefly.multi_select_all_selected')|escape('js') }}";
|
||||
var filterPlaceholder = "{{ trans('firefly.multi_select_filter_placeholder')|escape('js') }}";
|
||||
</script>
|
||||
<script type="text/javascript" src="v1/js/lib/bootstrap-multiselect.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
|
||||
<script type="text/javascript" src="v1/js/ff/import/file/configure-upload.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
|
||||
{% endblock %}
|
||||
@@ -1,86 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, importJob) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_map_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_map_text') }}
|
||||
</p>
|
||||
{% if data|length == 0 %}
|
||||
<p class="text-danger">
|
||||
{{ trans('import.job_config_map_nothing') }}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<form action="{{ route('import.job.configuration.post', importJob.key) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
|
||||
{% for index, field in data %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.column_'~field.name) }}</h3>
|
||||
</div>
|
||||
<div class="box-body no-padding">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:50%;">{{ trans('import.job_config_field_value') }}</th>
|
||||
<th>{{ trans('import.job_config_field_mapped') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for option in field.values %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>{{ option }}</code>
|
||||
</td>
|
||||
<td>
|
||||
{{ Form.select('mapping['~index~']['~option~']',
|
||||
field.options,
|
||||
importJob.configuration['column-mapping-config'][index][option], {class: 'form-control'}) }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
{{ trans('import.job_config_map_submit') }} <i class="fa fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,60 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_file_upload_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_file_upload_text') }}
|
||||
</p>
|
||||
<p class="text-warning">
|
||||
{{ trans('import.final_csv_import')|raw }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', [importJob.key]) }}" accept-charset="UTF-8" class="form-horizontal" enctype="multipart/form-data">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="settings" value="upload"/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.file('import_file', {helpText: trans('import.job_config_file_upload_help')}) }}
|
||||
{{ ExpandedForm.file('configuration_file', {helpText: trans('import.job_config_file_upload_config_help')|raw}) }}
|
||||
{{ ExpandedForm.select('import_file_type', data.file_types, data.default_type, {'helpText' : trans('import.job_config_file_upload_type_help')}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
{{ trans('import.job_config_file_upload_submit') }} <i class="fa fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,100 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render(Route.getCurrentRoute.getName, importJob) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_roles_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.job_config_roles_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<form action="{{ route('import.job.configuration.post', importJob.key) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%;">{{ trans('import.job_config_roles_column_name') }}</th>
|
||||
<th style="width:40%;">{{ trans('import.job_config_roles_column_example') }}</th>
|
||||
<th style="width:30%;">{{ trans('import.job_config_roles_column_role') }}</th>
|
||||
<th style="width:10%;">{{ trans('import.job_config_roles_do_map_value') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{% for i in 0..(data.total -1) %}
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
{% if data.headers[i] == '' %}
|
||||
{{ trans('import.job_config_roles_colum_count') }} #{{ loop.index }}
|
||||
{% else %}
|
||||
{{ data.headers[i] }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if data.examples[i]|length == 0 %}
|
||||
<em>{{ trans('import.job_config_roles_no_example') }}</em>
|
||||
{% else %}
|
||||
{% for example in data.examples[i] %}
|
||||
<code>{{ example }}</code><br/>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<td>
|
||||
{{ Form.select(('role['~loop.index0~']'),
|
||||
data.roles,
|
||||
importJob.configuration['column-roles'][loop.index0],
|
||||
{class: 'form-control'}) }}
|
||||
</td>
|
||||
<td>
|
||||
{{ Form.checkbox(('map['~loop.index0~']'),1,
|
||||
importJob.configuration['column-do-mapping'][loop.index0]
|
||||
|
||||
) }}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
{{ trans('import.job_config_roles_submit') }} <i class="fa fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,44 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', [importJob.key]) }}" accept-charset="UTF-8"
|
||||
class="form-horizontal">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.select('fints_account', data.fints_accounts, data.fints_account, {helpText: trans('import.job_config_fints_account_help'), required: true}) }}
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.select('local_account', data.local_accounts, data.local_account, {helpText: trans('import.job_config_local_account_help'), required: true}) }}
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.date('from_date', data.from_date, {required: true}) }}
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.date('to_date', data.to_date, {required: true}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
{{ ('submit')|_ }} <i class="fa fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,40 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<form method="POST" action="{{ route('import.job.configuration.post', [importJob.key]) }}" accept-charset="UTF-8"
|
||||
class="form-horizontal">
|
||||
<input name="_token" type="hidden" value="{{ csrf_token() }}">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_input') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ ExpandedForm.text('fints_url', data.fints_url, {helpText: trans('import.job_config_fints_url_help'), required: true}) }}
|
||||
{{ ExpandedForm.text('fints_port', data.fints_port, {helpText: trans('import.job_config_fints_port_help'), required: true}) }}
|
||||
{{ ExpandedForm.text('fints_bank_code', data.fints_bank_code, {required: true}) }}
|
||||
{{ ExpandedForm.text('fints_username', data.fints_username, {helpText: trans('import.job_config_fints_username_help'), required: false}) }}
|
||||
{{ ExpandedForm.password('fints_password', {required: true}) }}
|
||||
{{ ExpandedForm.checkbox('apply_rules', 1, true) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="box">
|
||||
<div class="box-body">
|
||||
<button type="submit" class="btn btn-success pull-right">
|
||||
{{ ('submit')|_ }} <i class="fa fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,101 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-md-6 col-sm-12 col-xs-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('firefly.import_index_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.general_index_intro') }}
|
||||
</p>
|
||||
<p class="text-warning">
|
||||
{{ trans('import.final_csv_import')|raw }}
|
||||
</p>
|
||||
<div class="row">
|
||||
{% for name, provider in providers %}
|
||||
{# button for each import thing: #}
|
||||
<div class="col-lg-2 col-md-4 col-sm-6 text-center">
|
||||
{% if not provider.allowed_for_demo and isDemoUser %}
|
||||
<img src="v1/images/logos/{{ name }}.png" alt="{{ trans(('import.button_'~name)) }}"/><br/>
|
||||
{{ trans(('import.button_'~name)) }}<br>
|
||||
({{ trans('import.disabled_for_demo_user') }})
|
||||
{% else %}
|
||||
<a href="{{ route('import.create', [name]) }}">
|
||||
<img src="v1/images/logos/{{ name }}.png" alt="{{ trans(('import.button_'~name)) }}"/><br/>
|
||||
{{ trans(('import.button_'~name)) }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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">{{ trans('firefly.import_tools_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('firefly.tools_index_intro')|raw }}
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://github.com/firefly-iii/csv-importer" title="{{ 'firefly_iii_csv_importer_name'|_ }}">{{ 'firefly_iii_csv_importer_name'|_ }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://github.com/firefly-iii/bunq-importer" title="{{ 'firefly_iii_bunq_importer_name'|_ }}">{{ 'firefly_iii_bunq_importer_name'|_ }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://github.com/firefly-iii/ynab-importer" title="{{ 'firefly_iii_ynab_importer_name'|_ }}">{{ 'firefly_iii_ynab_importer_name'|_ }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://gitlab.com/ludo444/fireflyrevoluttransactions" title="{{ 'ludo_revolut_importer_name'|_ }}">{{ 'ludo_revolut_importer_name'|_ }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4 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('import.need_prereq_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.need_prereq_intro') }}
|
||||
</p>
|
||||
<ul>
|
||||
{% for name, provider in providers %}
|
||||
{% if provider.has_prereq %}
|
||||
<li>
|
||||
{% if provider.prereq_complete %}
|
||||
<i class="fa fa-fw fa-check text-success"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-fw fa-warning text-danger"></i>
|
||||
{% endif %}
|
||||
<a href="{{ route('import.prerequisites.index', [name]) }}">{{ trans('import.do_prereq_'~name) }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,107 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post',[importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_spectre_apply_rules') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<p>
|
||||
{{ trans('import.job_config_spectre_apply_rules_text') }}
|
||||
</p>
|
||||
{{ ExpandedForm.checkbox('apply_rules', 1, true) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_spectre_accounts_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.job_config_spectre_accounts_text', {count: data.accounts|length,country: data.login.getCountryCode(),name: data.login.getProviderName()}) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('list.account_on_spectre') }}</th>
|
||||
<th>{{ trans('list.account') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for account in data.accounts %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ account.getNature()|capitalize }} "<strong>{{ account.getName() }}</strong>"
|
||||
({{ formatAmountBySymbol(account.getBalance(), account.getCurrencyCode()~' ') }})<br/>
|
||||
{% set currentIban = '' %}
|
||||
{% for name, value in account.getExtra() %}
|
||||
{% if not value is iterable and name != 'sort_code' and name !='current_date' and name != 'available_amount' and name !='current_time' and name != 'last_posted_transaction_id' %}
|
||||
{{ trans('import.spectre_extra_key_'~name) }}: {{ value }}<br/>
|
||||
{% endif %}
|
||||
{% if name == 'available_amount' %}
|
||||
{{ trans('import.spectre_extra_key_'~name) }}: {{ formatAmountBySymbol(value, account.getCurrencyCode()~' ') }}
|
||||
{% endif %}
|
||||
{% if name == 'iban' %}
|
||||
{% set currentIban = value %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="account_mapping[{{ account.getId() }}]">
|
||||
<option value="0" label="{{ trans('import.spectre_do_not_import') }}">
|
||||
{{ trans('import.spectre_do_not_import') }}
|
||||
</option>
|
||||
{% for ffId, ffAccount in data.ff_accounts %}
|
||||
{% if ffAccount.code == account.getCurrencyCode() %}
|
||||
<option value="{{ ffId }}"{% if currentIban != '' and currentIban == ffAccount.iban %} selected{% endif %}>
|
||||
{{ ffAccount.name }}{% if ffAccount.iban !='' %} ({{ ffAccount.iban }}){% endif %}
|
||||
</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,87 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post',[importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_spectre_login_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.job_config_spectre_login_text', {count: data.logins|length}) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>{{ trans('list.spectre_bank') }}</th>
|
||||
<th>{{ trans('list.spectre_last_use') }}</th>
|
||||
<th>{{ trans('list.spectre_status') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for login in data.logins %}
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<input
|
||||
{% if login.getStatus() == 'disabled' %}disabled{% endif %}
|
||||
|
||||
id="{{ login.getId() }}" type="radio" name="spectre_login_id" value="{{ login.getId() }}">
|
||||
</td>
|
||||
<td>
|
||||
<label for="{{ login.getId() }}">
|
||||
{{ login.getProviderName() }} ({{ login.getCountryCode() }})
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
{{ login.getLastSuccessAt().formatLocalized(monthAndDayFormat) }}<br>
|
||||
{{ login.getUpdatedAt().format("Y-m-d H:i:s") }}<br>
|
||||
</td>
|
||||
<td>
|
||||
{{ trans('import.spectre_login_status_'~login.getStatus()) }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
<tr>
|
||||
<td>
|
||||
<input id="new_login" type="radio" name="spectre_login_id" value="00">
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<label for="new_login"><em>
|
||||
{{ trans('import.spectre_login_new_login') }}
|
||||
</em>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,57 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.prerequisites.post',['spectre', importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.prereq_spectre_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.prereq_spectre_text')|raw }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('app_id', app_id) }}
|
||||
{{ ExpandedForm.text('secret', secret) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>{{ trans('import.prereq_spectre_pub')|raw }}</p>
|
||||
<div class="form-group" id="pub_key_holder">
|
||||
<label for="ffInput_pub_key_holder" class="col-sm-4 control-label">{{ trans('form.public_key') }}</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<textarea class="form-control"
|
||||
rows="10"
|
||||
id="ffInput_pub_key_holder" name="pub_key_holder" contenteditable="false">{{ public_key }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,14 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="refresh" content="0; url={{ data['token-url'] }}">
|
||||
<script type="text/javascript" nonce="{{ JS_NONCE }}">
|
||||
window.location.href = "{{ data['token-url'] }}";
|
||||
</script>
|
||||
<title>Page Redirection</title>
|
||||
</head>
|
||||
<body>
|
||||
If you are not redirected automatically, follow this <a href='{{ data['token-url'] }}'>link to Spectre.</a>.
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,196 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
{# Initial display. Will refresh (and disappear almost immediately. #}
|
||||
<div class="row status_initial statusbox">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.status_wait_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.status_wait_text') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# Fatal error display. Will be shown (duh) when something goes horribly wrong. #}
|
||||
<div class="row fatal_error" style="display:none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-danger">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.status_fatal_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{{ trans('import.status_fatal_text') }}
|
||||
</p>
|
||||
<p class="text-danger fatal_error_txt">
|
||||
|
||||
</p>
|
||||
<p>
|
||||
{{ trans('import.status_fatal_more') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{# box to show when job is running ... #}
|
||||
<div class="row status_running statusbox" style="display: none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title" id="import-status-title">{{ trans('import.status_running_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div id="import-status-holder">
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-info active progress-bar-striped" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
|
||||
<span class="sr-only">Running...</span>
|
||||
</div>
|
||||
</div>
|
||||
<p id="import-status-txt"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# Box for when the job is ready to start
|
||||
<div class="row status_configured statusbox" style="display:none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.status_ready_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p>
|
||||
{% if job.configuration['has-config-file'] == false %}
|
||||
{{ trans('import.status_ready_noconfig_text') }}
|
||||
{% else %}
|
||||
{{ trans('import.status_ready_text') }}
|
||||
{% endif %}
|
||||
</p>
|
||||
<p>
|
||||
<code>php artisan firefly:start-import {{ job.key }}</code>
|
||||
</p>
|
||||
<div class="row">
|
||||
{% if job.configuration['has-config-file'] != false %}
|
||||
<div class="col-lg-4">
|
||||
<a href="{{ route('import.download', [job.key]) }}" class="btn btn-default"><i
|
||||
class="fa fa-fw fa-download"></i> {{ trans('import.status_ready_config') }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-lg-4">
|
||||
<button class="btn btn-success start-job"><i class="fa fa-fw fa-gears"></i> {{ trans('import.status_ready_start') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
{% if job.configuration['has-config-file'] != false %}
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p class="text-info">
|
||||
{{ trans('import.status_ready_share')|raw }}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
#}
|
||||
|
||||
{# Box for when the job is running!
|
||||
<div class="row status_running statusbox" style="display: none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title" id="import-status-title">{{ trans('import.status_running_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div id="import-status-holder">
|
||||
<div class="progress" id="import-status-holder">
|
||||
<div id="import-status-bar" class="progress-bar progress-bar-info active progress-bar-striped" role="progressbar"
|
||||
aria-valuenow="100" aria-valuemin="0"
|
||||
aria-valuemax="100" style="width: 100%;min-width:40px;">
|
||||
</div>
|
||||
</div>
|
||||
<p id="import-status-txt">{{ trans('import.status_running_placeholder') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
#}
|
||||
{# displays the finished status of the import #}
|
||||
<div class="row status_finished statusbox" style="display:none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.status_finished_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p id="import-status-intro">
|
||||
{{ trans('import.status_finished_text') }}
|
||||
<span id="import-status-more-info"></span>
|
||||
</p>
|
||||
<p id="import-status-download">
|
||||
|
||||
</p>
|
||||
<p id="import-status-error-txt" style="display:none;">{{ trans('import.finished_with_errors') }}</p>
|
||||
<ul id="import-status-errors" class="text-danger">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{# box to show error information. #}
|
||||
{#
|
||||
<div class="row info_errors" style="display:none;">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-12 col-sm-12">
|
||||
<div class="box box-danger">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.status_errors_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<p id="import-status-error-intro">
|
||||
</p>
|
||||
<div id="import-status-error-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
#}
|
||||
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
<script type="text/javascript" nonce="{{ JS_NONCE }}">
|
||||
var jobStatusUri = '{{ route('import.job.status.json', [importJob.key]) }}';
|
||||
var jobStartUri = '{{ route('import.job.start', [importJob.key]) }}';
|
||||
var jobConfigurationUri = '{{ route('import.job.configuration.index', [importJob.key]) }}';
|
||||
var jobStorageStartUri = '{{ route('import.job.store', [importJob.key]) }}';
|
||||
|
||||
// import is running:
|
||||
var langImportRunning = '{{ trans('import.status_job_running')|escape('js') }}';
|
||||
var langImportStoring = '{{ trans('import.status_job_storing')|escape('js') }}';
|
||||
var langImportRules = '{{ trans('import.status_job_rules')|escape('js') }}';
|
||||
|
||||
// some useful translations.
|
||||
{#var langImportTimeOutError = '(time out thing)';#}
|
||||
{#var langImportSingleError = '{{ trans('import.status_errors_single')|escape('js') }}';#}
|
||||
{#var langImportMultiError = '{{ trans('import.status_errors_multi')|escape('js') }}';#}
|
||||
|
||||
var token = '{{ csrf_token() }}';
|
||||
var job = {{ job|json_encode|raw }};
|
||||
</script>
|
||||
<script type="text/javascript" src="v1/js/ff/import/status_v2.js?v={{ FF_VERSION }}" nonce="{{ JS_NONCE }}"></script>
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,100 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post',[importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_ynab_apply_rules') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<p>
|
||||
{{ trans('import.job_config_ynab_apply_rules_text') }}
|
||||
</p>
|
||||
{{ ExpandedForm.checkbox('apply_rules', 1, true) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_ynab_accounts_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.job_config_ynab_accounts_text', {count: data.accounts|length}) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ trans('list.account_on_ynab') }}</th>
|
||||
<th>{{ trans('list.account') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for account in data.ynab_accounts %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ account.name }} ({{ trans('import.ynab_account_type_'~account.type) }})
|
||||
{% if account.closed %}
|
||||
<br/><span class="text-warning">{{ trans('import.ynab_account_closed') }}</span>
|
||||
{% endif %}
|
||||
{% if account.deleted %}
|
||||
<br/><span class="text-danger">{{ trans('import.ynab_account_deleted') }}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="account_mapping[{{ account.id }}]">
|
||||
<option value="0" label="{{ trans('import.ynab_do_not_import') }}">
|
||||
{{ trans('import.ynab_do_not_import') }}
|
||||
</option>
|
||||
{% for ffId, ffAccount in data.ff_accounts %}
|
||||
{% if ffAccount.code == data.budget.currency_code %}
|
||||
<option value="{{ ffId }}"{% if currentIban != '' and currentIban == ffAccount.iban %} selected{% endif %}>
|
||||
{{ ffAccount.name }}{% if ffAccount.iban !='' %} ({{ ffAccount.iban }}){% endif %}
|
||||
</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,69 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.prerequisites.post',['ynab', importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.prereq_ynab_title') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<p>
|
||||
{{ trans('import.prereq_ynab_text')|raw }}
|
||||
</p>
|
||||
{% if not is_https %}
|
||||
<p class="text-danger">
|
||||
{{ trans('import.callback_not_tls') }}
|
||||
<br /><br />
|
||||
<code>{{ callback_uri }}</code>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if is_https %}
|
||||
<p>
|
||||
{{ trans('import.prereq_ynab_redirect')|raw }}
|
||||
<br /><br />
|
||||
<code>{{ callback_uri }}</code>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('client_id', client_id) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
{{ ExpandedForm.text('client_secret', client_secret) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
{% if is_https %}
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
{% endif %}
|
||||
{% if not is_https %}
|
||||
<button type="submit" class="btn pull-right btn-warning">
|
||||
{{ ('submit_yes_really')|_ }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -1,14 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="refresh" content="0; url={{ data['token-url'] }}">
|
||||
<script type="text/javascript" nonce="{{ JS_NONCE }}">
|
||||
window.location.href = "{{ data['token-url'] }}";
|
||||
</script>
|
||||
<title>Page Redirection</title>
|
||||
</head>
|
||||
<body>
|
||||
If you are not redirected automatically, follow this <a href='{{ data['token-url'] }}'>link to YNAB.</a>.
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,58 +0,0 @@
|
||||
{% extends "./layout/default" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.render }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<form class="form-horizontal" action="{{ route('import.job.configuration.post',[importJob.key]) }}" method="post">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">{{ trans('import.job_config_ynab_select_budgets') }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<p>
|
||||
{{ trans('import.job_config_ynab_select_budgets_text', {count: data.total}) }}
|
||||
</p>
|
||||
{% if data.available|length == 0 %}
|
||||
<p class="text-danger">
|
||||
{{ trans('import.job_config_ynab_no_budgets') }}
|
||||
</p>
|
||||
{% else %}
|
||||
{{ ExpandedForm.select('budget_id', data.available) }}
|
||||
{% endif %}
|
||||
|
||||
{% if data.not_available|length > 0 %}
|
||||
<p class="text-warning">
|
||||
{{ trans('import.job_config_ynab_bad_currency') }}
|
||||
</p>
|
||||
<ul>
|
||||
{% for budget in data.not_available %}
|
||||
<li>{{ budget }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
{% if data.available|length != 0 %}
|
||||
<button type="submit" class="btn pull-right btn-success">
|
||||
{{ ('submit')|_ }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
{% endblock %}
|
||||
@@ -158,32 +158,15 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="{{ activeRoutePartial('import') }} {{ activeRoutePartial('export') }} treeview">
|
||||
<a href="#">
|
||||
<i class="fa fa-cogs fa-fw"></i>
|
||||
<span>{{ 'tools'|_ }}</span>
|
||||
<span class="pull-right-container">
|
||||
<i class="fa fa-angle-left pull-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<ul class="treeview-menu">
|
||||
<li class="{{ activeRoutePartial('import') }}">
|
||||
<a href="{{ route('import.index') }}">
|
||||
<i class="fa fa-angle-right fa-fw"></i>
|
||||
<span>{{ 'import_transactions'|_ }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% if config('firefly.feature_flags.export') %}
|
||||
<li class="{{ activeRoutePartial('export') }}">
|
||||
<a href="{{ route('export.index') }}">
|
||||
<i class="fa fa-angle-right fa-fw"></i>
|
||||
<span>{{ 'export_data_menu'|_ }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
{% if config('firefly.feature_flags.export') %}
|
||||
<li class="{{ activeRoutePartial('export') }}" id="report-menu">
|
||||
<a href="{{ route('export.index') }}">
|
||||
<i class="fa fa-upload fa-fw"></i>
|
||||
<span>{{ 'export_data_menu'|_ }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="{{ activeRoutePartial('admin') }} {{ activeRoutePartial('profile') }} {{ activeRoutePartial('preferences') }} {{ activeRoutePartial('currencies') }} treeview" id="option-menu">
|
||||
<a href="#">
|
||||
|
||||
Reference in New Issue
Block a user