mivita/resources/views/admin/user/index.blade.php
2026-01-23 17:35:23 +01:00

619 lines
30 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2">
{{ __('User') }}
</h4>
@if ($errors->any())
<div class="alert alert-danger alert-dismissible fade show">
<button type="button" class="close" data-dismiss="alert">×</button>
<ul>
@foreach ($errors->all() as $error)
<li>{!! $error !!}</li>
@endforeach
</ul>
</div>
@endif
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-users table table-striped table-bordered">
<thead>
<tr>
<th>#</th>
<th>{{ __('tables.firstname') }}</th>
<th>{{ __('tables.lastname') }}</th>
<th>{{ __('E-Mail') }}</th>
<th>{{ __('Zugang') }}</th>
<th>{{ __('verified') }} (seit)</th>
<th>{{ __('active') }} (seit)</th>
<th>{{ __('tables.account') }} (bis)</th>
<th>{{ __('tables.shop') }} (bis)</th>
<th>{{ __('Shop URL') }}</th>
<th>{{ __('tables.shop') }} ab</th>
<th>{{ __('Zahlungsarten') }}</th>
<th>{{ __('Land') }}</th>
<th>{{ __('Test Modus') }}</th>
<th>{{ __('login') }}</th>
<th>{{ __('delete') }}</th>
</tr>
</thead>
</table>
</div>
</div>
<!-- Modal admin -->
<div class="modal fade" id="modals-admin">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="admin" class="form-label">{{ __('Role') }}</label>
<select class="selectpicker" data-style="btn-default" name="admin">
{!! HTMLHelper::getRolesOptions() !!}
</select>
</div>
</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" name="save-admin"
value="save-admin">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal confirmed -->
<div class="modal fade" id="modals-confirmed">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="confirmed" checked>
<span class="custom-control-label">{{ __('verified') }}</span>
</label>
</div>
<div class="form-row">
<div class="form-group col">
<label for="confirmation_date" class="form-label">{{ __('Datum') }} seit</label>
<input type="text" name="confirmation_date" class="form-control b-material-datetime-picker"
placeholder="Datum">
</div>
</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" name="save-confirmed"
value="save-confirmed">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal restore -->
<div class="modal fade" id="modals-restore">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('Account reaktivieren') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<hr>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="restore_account" >
<span class="custom-control-label">Soll der Account des Users wieder aktiviert werden?</span>
</label>
</div>
<div class="form-row">
<div class="form-group col">
<label for="payment_account" class="form-label">Wenn ja, wird der Account bis zum angegebenen Datum aktiviert.</label>
<input type="text" name="payment_account" class="form-control b-material-datetime-picker"
placeholder="Datum">
</div>
</div>
<hr>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="restore_childs" >
<span class="custom-control-label">Sollen die Berater dem User wieder zugewiesen werden?</span>
</label>
<p class="mt-2"><i>Bei der Löschung wurden alle Berater des Users auf dem Sponsor übertragen.</i></p>
</div>
<hr>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="restore_send_email">
<span class="custom-control-label">Dem User eine E-Mail mit den Informationen zum Wiederherstellen senden?</span>
</label>
<div class="alert alert-info mt-4">
Wiederhergestellte User müssen Ihr Passwort zurücksetzen, da das Passwort beim Löschen zurückgesetzt wurde. Auch der Shop-Name (Subdomain) muss neu vergeben werden, da dieser beim Löschen freigegeben wurde.
</div>
</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" name="save-restore"
value="save-restore">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal active -->
<div class="modal fade" id="modals-active">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="active" checked>
<span class="custom-control-label">{{ __('active') }}</span>
</label>
</div>
<div class="form-row">
<div class="form-group col">
<label for="active_date" class="form-label">{{ __('Datum') }} seit</label>
<input type="text" name="active_date" class="form-control b-material-datetime-picker"
placeholder="Datum">
</div>
</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" name="save-active"
value="save-active">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal account -->
<div class="modal fade" id="modals-account">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="payment_account" class="form-label">{{ __('tables.account') }} bis</label>
<input type="text" name="payment_account" class="form-control b-material-datetime-picker"
placeholder="Datum">
</div>
</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" name="save-account"
value="save-account">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal shop -->
<div class="modal fade" id="modals-shop">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="payment_shop" class="form-label">{{ __('tables.shop') }} bis</label>
<input type="text" name="payment_shop" class="form-control b-material-datetime-picker"
placeholder="Datum">
</div>
</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" name="save-shop"
value="save-shop">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal delete -->
<div class="modal fade" id="modals-user-delete">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_delete') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('löschen') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-group">
<hr>
<h5>User löschen</h5>
<p>Dieser User wird gelöscht, alle Daten werden auf den übergeordneten Berater übertragen, jedoch
sind die Grunddaten als Admin hier noch einsehbar.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="realy_delete_user">
<span class="custom-control-label">User wirklich löschen?</span>
</label>
</div>
<div class="form-group">
<hr>
<h5>User komplett ohne Wiederherstellung löschen</h5>
<p>Dieser User wird gelöscht, hier wird keine Wiederherstellung möglich sein.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="realy_delete_user_complete">
<span class="custom-control-label">User komplett ohne Wiederherstellung löschen?</span>
</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ __('close') }}</button>
<button type="submit" class="btn btn-danger" name="user-delete"
value="user-delete">{{ __('User löschen') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal test modus -->
<div class="modal fade" id="modals-test_mode">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
<div class="form-group">
<p>Aktiviert den Testmodus beim den Zahlungsdiensten. Käufe werden als TEST markiert und die Mails
gehen an devtest@mivita.care</p>
<p><a target="_blank" href="https://docs.payone.com/display/public/PLATFORM/Testdata">Zu den
Testdaten für den Kauf von Payone</a>.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="test_mode" checked>
<span class="custom-control-label">{{ __('Test Mode') }}</span>
</label>
</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" name="save-test_mode"
value="save-test_mode">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<!-- Modal test modus -->
<div class="modal fade" id="modals-payment_methods">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{ __('User') }} <span
class="font-weight-light">{{ __('create/edit') }}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{ __('E-Mail') }}</label>
<input type="text" class="form-control" name="email" placeholder="{{ __('E-Mail') }}"
readonly>
</div>
</div>
@foreach (\App\Models\PaymentMethod::where('active', true)->get() as $payment_method)
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input input-payment-methods"
name="payment_methods[]" value="{{ $payment_method->id }}"
@if ($payment_method->default) checked @endif>
<span class="custom-control-label">{{ $payment_method->name }}</span>
</label>
</div>
@endforeach
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ __('close') }}</button>
<button type="submit" class="btn btn-primary" name="save-payment_methods"
value="save-payment_methods">{{ __('save') }}</button>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function() {
$('#modals-admin').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body select[name='admin']").val(button.data('admin'));
$('.selectpicker').selectpicker('refresh');
});
$('#modals-confirmed').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='confirmed']").prop("checked", button.data(
'confirmed'));
$(this).find(".modal-body input[name='confirmation_date']").val(button.data(
'confirmation_date'));
});
$('#modals-active').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='active']").prop("checked", button.data('active'));
$(this).find(".modal-body input[name='active_date']").val(button.data('active_date'));
});
$('#modals-restore').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='active']").prop("checked", button.data('active'));
$(this).find(".modal-body input[name='payment_account']").val(button.data('payment_account'));
});
$('#modals-account').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='payment_account']").val(button.data(
'payment_account'));
});
$('#modals-shop').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='payment_shop']").val(button.data('payment_shop'));
});
$('#modals-user-delete').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
});
$('#modals-payment_methods').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
var payment_methods = button.data('payment_methods');
if (payment_methods) {
$.each($(this).find(".modal-body .input-payment-methods"), function(i, item) {
if ($.inArray(parseInt($(item).val()), payment_methods) !== -1) {
$(item).prop("checked", true);
} else {
$(item).prop("checked", false);
}
});
}
});
$('#modals-test_mode').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='test_mode']").prop("checked", button.data(
'test_mode'));
});
$('.datatables-users').dataTable({
"processing": true,
"serverSide": true,
"ajax": '{!! route('admin_user_datatable') !!}',
"order": [
[0, "desc"]
],
"columns": [{
data: 'id',
searchable: false
},
{
data: 'first_name',
name: 'account.first_name'
},
{
data: 'last_name',
name: 'account.last_name'
},
{
data: 'email',
name: 'email'
},
{
data: 'admin',
name: 'admin'
},
{
data: 'confirmed',
name: 'confirmed'
},
{
data: 'active',
name: 'active'
},
{
data: 'account',
name: 'account'
},
{
data: 'shop',
name: 'shop'
},
{
data: 'shop_domain',
name: 'shop_domain'
},
{
data: 'since',
name: 'since'
},
{
data: 'my_payment_methods',
name: 'my_payment_methods'
},
{
data: 'country',
name: 'country'
},
{
data: 'test_mode',
name: 'test_mode'
},
{
data: 'action_login',
orderable: false,
searchable: false
},
{
data: 'action_delete',
orderable: false,
searchable: false
},
],
"bLengthChange": false,
"iDisplayLength": 50,
"language": {
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}
});
});
</script>
@endsection