mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-22 12:11:19 +00:00
Lots of new code for importer and some preferences.
This commit is contained in:
@@ -718,6 +718,18 @@ return [
|
||||
'user_administration' => 'User administration',
|
||||
'list_all_users' => 'All users',
|
||||
'all_users' => 'All users',
|
||||
'all_blocked_domains' => 'All blocked domains',
|
||||
'blocked_domains' => 'Blocked domains',
|
||||
'no_domains_banned' => 'No domains blocked',
|
||||
'all_user_domains' => 'All user email address domains',
|
||||
'all_domains_is_filtered' => 'This list does not include already blocked domains.',
|
||||
'domain_now_blocked' => 'Domain :domain is now blocked',
|
||||
'domain_now_unblocked' => 'Domain :domain is now unblocked',
|
||||
'manual_block_domain' => 'Block a domain by hand',
|
||||
'block_domain' => 'Block domain',
|
||||
'no_domain_filled_in' => 'No domain filled in',
|
||||
'domain_already_blocked' => 'Domain :domain is already blocked',
|
||||
'domain_is_now_blocked' => 'Domain :domain is now blocked',
|
||||
|
||||
// split a transaction:
|
||||
'transaction_meta_data' => 'Transaction meta-data',
|
||||
|
@@ -131,6 +131,9 @@ return [
|
||||
'category_keep_transactions' => 'The only transaction connected to this category will not be deleted.|All :count transactions connected to this category will spared deletion.',
|
||||
'tag_keep_transactions' => 'The only transaction connected to this tag will not be deleted.|All :count transactions connected to this tag will spared deletion.',
|
||||
|
||||
// admin
|
||||
'domain' => 'Domain',
|
||||
|
||||
// import
|
||||
'import_file' => 'Import file',
|
||||
'configuration_file' => 'Configuration file',
|
||||
|
@@ -8,54 +8,56 @@
|
||||
*/
|
||||
|
||||
return [
|
||||
'buttons' => 'Buttons',
|
||||
'icon' => 'Icon',
|
||||
'create_date' => 'Created at',
|
||||
'update_date' => 'Updated at',
|
||||
'balance_before' => 'Balance before',
|
||||
'balance_after' => 'Balance after',
|
||||
'name' => 'Name',
|
||||
'role' => 'Role',
|
||||
'currentBalance' => 'Current balance',
|
||||
'active' => 'Is active?',
|
||||
'lastActivity' => 'Last activity',
|
||||
'balanceDiff' => 'Balance difference between :start and :end',
|
||||
'matchedOn' => 'Matched on',
|
||||
'matchesOn' => 'Matched on',
|
||||
'account_type' => 'Account type',
|
||||
'new_balance' => 'New balance',
|
||||
'account' => 'Account',
|
||||
'matchingAmount' => 'Amount',
|
||||
'lastMatch' => 'Last match',
|
||||
'split_number' => 'Split #',
|
||||
'destination' => 'Destination',
|
||||
'expectedMatch' => 'Expected match',
|
||||
'automatch' => 'Auto match?',
|
||||
'repeat_freq' => 'Repeats',
|
||||
'description' => 'Description',
|
||||
'amount' => 'Amount',
|
||||
'date' => 'Date',
|
||||
'interest_date' => 'Interest date',
|
||||
'book_date' => 'Book date',
|
||||
'process_date' => 'Processing date',
|
||||
'from' => 'From',
|
||||
'piggy_bank' => 'Piggy bank',
|
||||
'to' => 'To',
|
||||
'budget' => 'Budget',
|
||||
'category' => 'Category',
|
||||
'bill' => 'Bill',
|
||||
'withdrawal' => 'Withdrawal',
|
||||
'deposit' => 'Deposit',
|
||||
'transfer' => 'Transfer',
|
||||
'type' => 'Type',
|
||||
'completed' => 'Completed',
|
||||
'iban' => 'IBAN',
|
||||
'paid_current_period' => 'Paid this period',
|
||||
'email' => 'Email',
|
||||
'registered_at' => 'Registered at',
|
||||
'is_activated' => 'Is activated',
|
||||
'is_blocked' => 'Is blocked',
|
||||
'is_admin' => 'Is admin',
|
||||
'has_two_factor' => 'Has 2FA',
|
||||
'blocked_code' => 'Block code',
|
||||
'buttons' => 'Buttons',
|
||||
'icon' => 'Icon',
|
||||
'create_date' => 'Created at',
|
||||
'update_date' => 'Updated at',
|
||||
'balance_before' => 'Balance before',
|
||||
'balance_after' => 'Balance after',
|
||||
'name' => 'Name',
|
||||
'role' => 'Role',
|
||||
'currentBalance' => 'Current balance',
|
||||
'active' => 'Is active?',
|
||||
'lastActivity' => 'Last activity',
|
||||
'balanceDiff' => 'Balance difference between :start and :end',
|
||||
'matchedOn' => 'Matched on',
|
||||
'matchesOn' => 'Matched on',
|
||||
'account_type' => 'Account type',
|
||||
'new_balance' => 'New balance',
|
||||
'account' => 'Account',
|
||||
'matchingAmount' => 'Amount',
|
||||
'lastMatch' => 'Last match',
|
||||
'split_number' => 'Split #',
|
||||
'destination' => 'Destination',
|
||||
'expectedMatch' => 'Expected match',
|
||||
'automatch' => 'Auto match?',
|
||||
'repeat_freq' => 'Repeats',
|
||||
'description' => 'Description',
|
||||
'amount' => 'Amount',
|
||||
'date' => 'Date',
|
||||
'interest_date' => 'Interest date',
|
||||
'book_date' => 'Book date',
|
||||
'process_date' => 'Processing date',
|
||||
'from' => 'From',
|
||||
'piggy_bank' => 'Piggy bank',
|
||||
'to' => 'To',
|
||||
'budget' => 'Budget',
|
||||
'category' => 'Category',
|
||||
'bill' => 'Bill',
|
||||
'withdrawal' => 'Withdrawal',
|
||||
'deposit' => 'Deposit',
|
||||
'transfer' => 'Transfer',
|
||||
'type' => 'Type',
|
||||
'completed' => 'Completed',
|
||||
'iban' => 'IBAN',
|
||||
'paid_current_period' => 'Paid this period',
|
||||
'email' => 'Email',
|
||||
'registered_at' => 'Registered at',
|
||||
'is_activated' => 'Is activated',
|
||||
'is_blocked' => 'Is blocked',
|
||||
'is_admin' => 'Is admin',
|
||||
'has_two_factor' => 'Has 2FA',
|
||||
'blocked_code' => 'Block code',
|
||||
'domain' => 'Domain',
|
||||
'registration_attempts' => 'Registration attempts',
|
||||
];
|
||||
|
@@ -13,6 +13,7 @@
|
||||
<div class="box-body">
|
||||
<ul>
|
||||
<li><a href="{{ route('admin.users') }}">{{ 'list_all_users'|_ }}</a></li>
|
||||
<li><a href="{{ route('admin.users.domains') }}">{{ 'blocked_domains'|_ }}</a></li>
|
||||
<!-- <li><a href="#">{{ 'user_related_settings'|_ }}</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
|
120
resources/views/admin/users/domains.twig
Normal file
120
resources/views/admin/users/domains.twig
Normal file
@@ -0,0 +1,120 @@
|
||||
{% extends "./layout/default.twig" %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{{ Breadcrumbs.renderIfExists }}
|
||||
{% 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_blocked_domains'|_ }}</h3>
|
||||
</div>
|
||||
<div class="box-body table-responsive">
|
||||
{% if domains|length > 0 %}
|
||||
<table class="table table-condensed table-sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%;"> </th>
|
||||
<th>{{ trans('list.domain') }}</th>
|
||||
<th>{{ trans('list.is_blocked') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for domain in domains %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('admin.users.domains.block-toggle', [domain]) }}" class="btn btn-sm btn-success"><i
|
||||
class="fa fa-fw fa-times"></i> unblock</a>
|
||||
</td>
|
||||
<td>{{ domain }}</td>
|
||||
<td>
|
||||
<small class="text-success"><i class="fa fa-fw fa-check"></i></small>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>
|
||||
<em>{{ 'no_domains_banned'|_ }}</em>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- domains found in users (not in top list) -->
|
||||
<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_user_domains'|_ }}</h3>
|
||||
</div>
|
||||
<div class="box-body table-responsive">
|
||||
{% if knownDomains|length > 0 %}
|
||||
<p>
|
||||
{{ 'all_domains_is_filtered'|_ }}
|
||||
|
||||
</p>
|
||||
<table class="table table-condensed table-sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%;"> </th>
|
||||
<th>{{ trans('list.domain') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for domain in knownDomains %}
|
||||
<tr>
|
||||
<td><a href="{{ route('admin.users.domains.block-toggle', [domain]) }}" class="btn btn-sm btn-danger"><i
|
||||
class="fa fa-fw fa-check"></i> block</a></td>
|
||||
<td>{{ domain }}</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p class="well">
|
||||
<em>{{ 'no_domains_banned'|_ }}</em>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- block domain by hand -->
|
||||
<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">{{ 'manual_block_domain'|_ }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<form action="{{ route('admin.users.domains.manual') }}" method="post" id="store" class="form-horizontal">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||
<input type="hidden" name="what" value="{{ what }}"/>
|
||||
|
||||
{{ ExpandedForm.text('domain') }}
|
||||
|
||||
<input type="submit" name="submit" class="btn btn-success" value="{{ ('block_domain')|_ }}"/>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
Reference in New Issue
Block a user