Merge branch 'develop' into 5.8-dev

This commit is contained in:
James Cole
2022-10-01 19:06:55 +02:00
25 changed files with 367 additions and 122 deletions

View File

@@ -0,0 +1,8 @@
@component('mail::message')
{{ trans('email.invitation_introduction', ['host' => $host]) }}
{{ trans('email.invitation_invited_by', ['invitee' => $invitee, 'admin' => $admin]) }}
{{ trans('email.invitation_url', ['url' => $url]) }}
@endcomponent

View File

@@ -13,7 +13,8 @@
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="{{ route('profile.index') }}#options" aria-controls="home" role="tab" data-toggle="tab">{{ 'options'|_ }}</a>
<a href="{{ route('profile.index') }}#options" aria-controls="home" role="tab"
data-toggle="tab">{{ 'options'|_ }}</a>
</li>
<li role="presentation">
<a href="#cmd" aria-controls="profile" role="tab" data-toggle="tab">{{ 'command_line_token'|_ }}</a>
@@ -22,14 +23,16 @@
<a href="#oauth" aria-controls="messages" role="tab" data-toggle="tab">{{ 'oauth'|_ }}</a>
</li>
{% if true == isInternalAuth and true == isInternalIdentity %}
<li role="presentation">
<a href="#mfa" aria-controls="settings" role="tab" data-toggle="tab">{{ 'pref_two_factor_auth'|_ }}</a>
</li>
<li role="presentation">
<a href="#mfa" aria-controls="settings" role="tab"
data-toggle="tab">{{ 'pref_two_factor_auth'|_ }}</a>
</li>
{% endif %}
{% if true == isInternalAuth and true == isInternalIdentity %}
<li role="presentation">
<a href="#delete" aria-controls="settings" role="tab" data-toggle="tab">{{ 'delete_stuff_header'|_ }}</a>
</li>
<li role="presentation">
<a href="#delete" aria-controls="settings" role="tab"
data-toggle="tab">{{ 'delete_stuff_header'|_ }}</a>
</li>
{% endif %}
</ul>
<div class="tab-content">
@@ -45,23 +48,24 @@
<div class="col-lg-6">
<ul>
{% if true == isInternalAuth and true == isInternalIdentity %}
<li>
<a href="{{ route('profile.change-email') }}">{{ 'change_your_email'|_ }}</a>
</li>
<li>
<a href="{{ route('profile.change-password') }}">{{ 'change_your_password'|_ }}</a>
</li>
<li>
<a href="{{ route('profile.change-email') }}">{{ 'change_your_email'|_ }}</a>
</li>
<li>
<a href="{{ route('profile.change-password') }}">{{ 'change_your_password'|_ }}</a>
</li>
{% endif %}
<li><a href="{{ route('logout') }}" class="logout-link">{{ 'logout'|_ }}</a></li>
<li><a href="{{ route('logout') }}" class="logout-link">{{ 'logout'|_ }}</a>
</li>
{% if true == isInternalAuth and true == isInternalIdentity %}
<li>
<a href="{{ route('profile.logout-others') }}">{{ 'logout_other_sessions'|_ }}</a>
</li>
<li><a class="text-danger"
href="{{ route('profile.delete-account') }}">{{ 'delete_account'|_ }}</a>
</li>
<li>
<a href="{{ route('profile.logout-others') }}">{{ 'logout_other_sessions'|_ }}</a>
</li>
<li><a class="text-danger"
href="{{ route('profile.delete-account') }}">{{ 'delete_account'|_ }}</a>
</li>
{% endif %}
</ul>
</div>
@@ -102,153 +106,181 @@
</div>
{% if true == isInternalAuth and true == isInternalIdentity %}
<!-- MFA -->
<div role="tabpanel" class="tab-pane" id="mfa">
<div class="box box-default">
<div class="box-body">
<p class="text-info">{{ 'pref_two_factor_auth_help'|_ }}</p>
{% if enabled2FA == true %}
<p class="text-info">
{{ trans_choice('firefly.pref_two_factor_backup_code_count', mfaBackupCount) }}
</p>
<!-- MFA -->
<div role="tabpanel" class="tab-pane" id="mfa">
<div class="box box-default">
<div class="box-body">
<p class="text-info">{{ 'pref_two_factor_auth_help'|_ }}</p>
{% if enabled2FA == true %}
<p class="text-info">
{{ trans_choice('firefly.pref_two_factor_backup_code_count', mfaBackupCount) }}
</p>
<div class="btn-group">
<a class="btn btn-info" href="{{ route('profile.code') }}">
<span class="fa fa-recycle"></span>
{{ 'pref_two_factor_auth_reset_code'|_ }}</a>
</div>
<form method="post" action="{{ route('profile.delete-code') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input class="btn btn-danger" style="margin-top:20px;" type="submit" name="submit" value="{{ 'pref_two_factor_auth_disable_2fa'|_ }}" />
</form>
<form method="post" action="{{ route('profile.new-backup-codes') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input class="btn btn-default" style="margin-top:20px;" type="submit" name="submit" value="{{ 'pref_two_factor_new_backup_codes'|_ }}" />
</form>
{% else %}
<form action="{{ route('profile.enable2FA') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<button type="submit" class="btn btn-info"><span
class="fa fa-lock"></span> {{ 'pref_enable_two_factor_auth'|_ }}</button>
</form>
{% endif %}
<div class="btn-group">
<a class="btn btn-info" href="{{ route('profile.code') }}">
<span class="fa fa-recycle"></span>
{{ 'pref_two_factor_auth_reset_code'|_ }}</a>
</div>
<form method="post" action="{{ route('profile.delete-code') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input class="btn btn-danger" style="margin-top:20px;" type="submit"
name="submit" value="{{ 'pref_two_factor_auth_disable_2fa'|_ }}"/>
</form>
<form method="post" action="{{ route('profile.new-backup-codes') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<input class="btn btn-default" style="margin-top:20px;" type="submit"
name="submit" value="{{ 'pref_two_factor_new_backup_codes'|_ }}"/>
</form>
{% else %}
<form action="{{ route('profile.enable2FA') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
<button type="submit" class="btn btn-info"><span
class="fa fa-lock"></span> {{ 'pref_enable_two_factor_auth'|_ }}
</button>
</form>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
<!-- delete stuff -->
<!-- purge stuff -->
<div role="tabpanel" class="tab-pane" id="delete">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'purge_data_title'|_ }}</h3>
</div>
<div class="box-body with-border">
<div class="col-lg-12">
<p class="text-info">
{{ 'purge_data_expl'|_ }}
</p>
<p>
<button type="button"
data-success="{{ trans('firefly.purged_all_records')|escape('html') }}"
data-type="purge" class="confirm btn btn-danger btn-sm"><span
class="fa fa-trash"></span> {{ 'purge_all_data'|_ }}</button>
</p>
</div>
</div>
</div>
<!-- delete stuff -->
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">{{ 'delete_data_title'|_ }}</h3>
</div>
<div class="box-body with-border">
<div class="col-lg-12">
<p class="text-info">
{{ 'permanent_delete_stuff'|_ }}
</p>
<h4>{{ 'financial_control'|_ }}</h4>
<p>
<div class="btn-group">
<button type="button"
data-success="{{ trans('firefly.deleted_all_budgets')|escape('html') }}"
data-type="budgets" class="confirm btn btn-danger btn-sm"><span
data-type="budgets" class="confirm btn btn-warning btn-sm"><span
class="fa fa-pie-chart"></span> {{ 'delete_all_budgets'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_bills')|escape('html') }}"
data-type="bills" class="confirm btn btn-danger btn-sm"><span
data-type="bills" class="confirm btn btn-warning btn-sm"><span
class="fa fa-calendar-o"></span> {{ 'delete_all_bills'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_piggy_banks')|escape('html') }}"
data-type="piggy_banks" class="confirm btn btn-danger btn-sm"><span
data-type="piggy_banks" class="confirm btn btn-warning btn-sm"><span
class="fa fa-bullseye"></span> {{ 'delete_all_piggy_banks'|_ }}</button>
</p>
</div>
<h4>{{ 'automation'|_ }}</h4>
<p>
<div class="btn-group">
<button type="button"
data-success="{{ trans('firefly.deleted_all_rules')|escape('html') }}"
data-type="rules" class="confirm btn btn-danger btn-sm"><span
data-type="rules" class="confirm btn btn-warning btn-sm"><span
class="fa fa-random"></span> {{ 'delete_all_rules'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_recurring')|escape('html') }}"
data-type="recurring" class="confirm btn btn-danger btn-sm"><span
class="fa fa-paint-brush"></span> {{ 'delete_all_recurring'|_ }}</button>
</p>
data-type="recurring" class="confirm btn btn-warning btn-sm"><span
class="fa fa-paint-brush"></span> {{ 'delete_all_recurring'|_ }}
</button>
</div>
<h4>{{ 'classification'|_ }}</h4>
<p>
<div class="btn-group">
<button type="button"
data-success="{{ trans('firefly.deleted_all_categories')|escape('html') }}"
data-type="categories" class="confirm btn btn-danger btn-sm"><span
data-type="categories" class="confirm btn btn-warning btn-sm"><span
class="fa fa-bookmark"></span> {{ 'delete_all_categories'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_tags')|escape('html') }}"
data-type="tags" class="confirm btn btn-danger btn-sm"><span
data-type="tags" class="confirm btn btn-warning btn-sm"><span
class="fa fa-tag"></span> {{ 'delete_all_tags'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_object_groups')|escape('html') }}"
data-type="object_groups" class="confirm btn btn-danger btn-sm"><span
class="fa fa-envelope-o"></span> {{ 'delete_all_object_groups'|_ }}</button>
</p>
data-type="object_groups" class="confirm btn btn-warning btn-sm"><span
class="fa fa-envelope-o"></span> {{ 'delete_all_object_groups'|_ }}
</button>
</div>
<h4>{{ 'accounts'|_ }}</h4>
<p>
<em class="text-danger">{{ 'also_delete_transactions'|_ }}</em>
</p>
<p>
<div class="btn-group">
<button type="button"
data-success="{{ trans('firefly.deleted_all_accounts')|escape('html') }}"
data-type="accounts" class="confirm btn btn-danger btn-sm"><span
data-type="accounts" class="confirm btn btn-warning btn-sm"><span
class="fa fa-credit-card"></span> {{ 'delete_all_accounts'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_asset_accounts')|escape('html') }}"
data-type="asset_accounts" class="confirm btn btn-danger btn-sm"><span
data-type="asset_accounts" class="confirm btn btn-warning btn-sm"><span
class="fa fa-money"></span> {{ 'delete_all_asset_accounts'|_ }}</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_expense_accounts')|escape('html') }}"
data-type="expense_accounts" class="confirm btn btn-danger btn-sm"><span
class="fa fa-shopping-cart"></span> {{ 'delete_all_expense_accounts'|_ }}</button>
</p>
<p>
data-type="expense_accounts" class="confirm btn btn-warning btn-sm"><span
class="fa fa-shopping-cart"></span> {{ 'delete_all_expense_accounts'|_ }}
</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_revenue_accounts')|escape('html') }}"
data-type="revenue_accounts" class="confirm btn btn-danger btn-sm"><span
class="fa fa-download"></span> {{ 'delete_all_revenue_accounts'|_ }}</button>
data-type="revenue_accounts" class="confirm btn btn-warning btn-sm"><span
class="fa fa-download"></span> {{ 'delete_all_revenue_accounts'|_ }}
</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_liabilities')|escape('html') }}"
data-type="liabilities" class="confirm btn btn-danger btn-sm"><span
data-type="liabilities" class="confirm btn btn-warning btn-sm"><span
class="fa fa-ticket"></span> {{ 'delete_all_liabilities'|_ }}</button>
</p>
</div>
<h4>{{ 'transactions'|_ }}</h4>
<p>
<div class="btn-group">
<button type="button"
data-success="{{ trans('firefly.deleted_all_transactions')|escape('html') }}"
data-type="transactions" class="confirm btn btn-danger btn-sm"><span
class="fa fa-exchange"></span> {{ 'delete_all_transactions'|_ }}</button>
data-type="transactions" class="confirm btn btn-warning btn-sm"><span
class="fa fa-exchange"></span> {{ 'delete_all_transactions'|_ }}
</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_withdrawals')|escape('html') }}"
data-type="withdrawals" class="confirm btn btn-danger btn-sm"><span
class="fa fa-long-arrow-left"></span> {{ 'delete_all_withdrawals'|_ }}</button>
data-type="withdrawals" class="confirm btn btn-warning btn-sm"><span
class="fa fa-long-arrow-left"></span> {{ 'delete_all_withdrawals'|_ }}
</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_deposits')|escape('html') }}"
data-type="deposits" class="confirm btn btn-danger btn-sm"><span
class="fa fa-long-arrow-right"></span> {{ 'delete_all_deposits'|_ }}</button>
</p>
<p>
data-type="deposits" class="confirm btn btn-warning btn-sm"><span
class="fa fa-long-arrow-right"></span> {{ 'delete_all_deposits'|_ }}
</button>
<button type="button"
data-success="{{ trans('firefly.deleted_all_transfers')|escape('html') }}"
data-type="transfers" class="confirm btn btn-danger btn-sm"><span
data-type="transfers" class="confirm btn btn-warning btn-sm"><span
class="fa fa-exchange"></span> {{ 'delete_all_transfers'|_ }}</button>
</p>
</div>
</div>
</div>
</div>
@@ -267,6 +299,11 @@
$('.confirm').on('click', function (e) {
var link = $(e.currentTarget);
var classes = link.find('i').attr('class');
var url = deleteAPIRoute + '?objects=' + link.data('type');
// different URL for purge route:
if(link.data('type') === 'purge') {
url = '{{ route('api.v1.data.purge') }}';
}
// replace icon with loading thing
link.prop('disabled', true);
@@ -275,7 +312,7 @@
// call API:
$.ajax({
method: 'DELETE',
url: deleteAPIRoute + '?objects=' + link.data('type'),
url: url,
}).done(
function () {
// enable button again: