Mulit Submits disable, global Tag

This commit is contained in:
Kevin Adametz 2021-08-03 16:01:11 +02:00
parent 78f43169c8
commit 0ed47d3553
14 changed files with 107 additions and 23 deletions

2
.env
View file

@ -48,7 +48,7 @@ MAIL_HOST=s182.goserver.host
MAIL_PORT=587 MAIL_PORT=587
MAIL_USERNAME=web28p3 MAIL_USERNAME=web28p3
MAIL_PASSWORD=WeE2bmI9GjB7pDgi MAIL_PASSWORD=WeE2bmI9GjB7pDgi
#MAIL_ENCRYPTION=SSL MAIL_ENCRYPTION=""
MAIL_FROM_ADDRESS=partner@gruene-seele.bio MAIL_FROM_ADDRESS=partner@gruene-seele.bio
MAIL_FROM_NAME="Partner GRÜNE SEELE Naturkosmetik" MAIL_FROM_NAME="Partner GRÜNE SEELE Naturkosmetik"

View file

@ -64,6 +64,12 @@ class AdminUserController extends Controller
$data = Request::all(); $data = Request::all();
$user = User::findOrFail($data['id']); $user = User::findOrFail($data['id']);
if(isset($data['user-delete'])){
if(isset($data['realy_delete_user'])){
return redirect(route('admin_user_delete', [$user->id]));
}
}
if(isset($data['save-admin'])){ if(isset($data['save-admin'])){
$user->admin = $data['admin']; $user->admin = $data['admin'];
SysLog::action('save-admin', 'admin_user', 3) SysLog::action('save-admin', 'admin_user', 3)

View file

@ -80,9 +80,11 @@ class DataTableController extends Controller
return $link.'<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> '.$user->getPaymentMethodsShort().'</span></a>'; return $link.'<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> '.$user->getPaymentMethodsShort().'</span></a>';
}) })
->addColumn('action_login', function (User $user) {
return '<a href="' . route('admin_user_login_as', [$user->id]) . '" class="btn icon-btn btn-sm btn-warning" onclick="return confirm(\''.__('Login as User?').'\');"><span class="fa fa-sign-in-alt"></span></a>';
})
->addColumn('action_delete', function (User $user) { ->addColumn('action_delete', function (User $user) {
return '<span class="no-line-break"><a href="' . route('admin_user_delete', [$user->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a> return '<a class="btn icon-btn btn-sm btn-danger" href="#" data-toggle="modal" data-target="#modals-user-delete" data-id="'.$user->id.'" data-email="'.$user->email.'"><span class="fa fa-trash"></span></a>';
<a href="' . route('admin_user_login_as', [$user->id]) . '" class="btn icon-btn btn-sm btn-warning" onclick="return confirm(\''.__('Login as User?').'\');"><span class="fa fa-sign-in-alt"></span></a></span>';
}) })
->addColumn('test_mode', function (User $user) { ->addColumn('test_mode', function (User $user) {
$link = '<a href="#" data-toggle="modal" data-target="#modals-test_mode" data-id="'.$user->id.'" data-email="'.$user->email.'" data-test_mode="'.$user->test_mode.'">'; $link = '<a href="#" data-toggle="modal" data-target="#modals-test_mode" data-id="'.$user->id.'" data-email="'.$user->email.'" data-test_mode="'.$user->test_mode.'">';
@ -94,7 +96,7 @@ class DataTableController extends Controller
->orderColumn('active', 'active $1') ->orderColumn('active', 'active $1')
->orderColumn('shop', 'shop $1') ->orderColumn('shop', 'shop $1')
->orderColumn('admin', 'active $1') ->orderColumn('admin', 'active $1')
->rawColumns(['id', 'admin', 'confirmed', 'active', 'account', 'shop', 'my_payment_methods', 'test_mode', 'action_delete']) ->rawColumns(['id', 'admin', 'confirmed', 'active', 'account', 'shop', 'my_payment_methods', 'test_mode', 'action_login', 'action_delete'])
->make(true); ->make(true);
} }
} }

View file

@ -460,6 +460,7 @@ class WizardController extends Controller
$image = $product->images->first()->slug; $image = $product->images->first()->slug;
} }
Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, $product->tax, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]); Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, $product->tax, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
Yard::instance('shopping')->setGlobalTaxRate(0);
//set onboarding products //set onboarding products
if(Request::get('products_on_board')){ if(Request::get('products_on_board')){

View file

@ -13,7 +13,18 @@ use Illuminate\Session\SessionManager;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
/*
0% MWST - prüfen CardItem - ob hier die TaxRate gesetzt wird!
public function setTaxRate($taxRate)
{
$this->taxRate = floatval($taxRate);
return $this;
}
*/
class Yard extends Cart class Yard extends Cart
{ {
private $shipping_price = 0; private $shipping_price = 0;

View file

@ -78,3 +78,7 @@ a[aria-expanded='true'] > .fa-caret-expand:before {
.no-line-break { .no-line-break {
white-space: nowrap; white-space: nowrap;
} }
.spinner {
display: none;
}

View file

@ -86,6 +86,10 @@ jQuery(document).ready(function() {
}); });
} }
$('.form-prevent-multiple-submits').on('submit', function(){
$('.button-prevent-multiple-submits').attr('disabled', true);
$(this).find('.spinner').show();
});
}); });
function _scrollTo(to, offset) { function _scrollTo(to, offset) {
@ -125,6 +129,11 @@ $(function () {
loadModalInner(this, data); loadModalInner(this, data);
}); });
$('.form-prevent-multiple-submits').on('submit', function(){
$('.button-prevent-multiple-submits').attr('disabled', true);
$(this).find('.spinner').show();
});
} }
function loadModalInner(self, data){ function loadModalInner(self, data){
var url = data.route, var url = data.route,

View file

@ -50,7 +50,6 @@
</div> </div>
</div> </div>
<div class="card mb-2"> <div class="card mb-2">
<h5 class="card-header"> <h5 class="card-header">
Anzeige und Währung Anzeige und Währung
@ -60,7 +59,13 @@
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
<label class="custom-control custom-checkbox"> <label class="custom-control custom-checkbox">
{!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!} {!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Land aus Auswahl auf der Webseite anzeigen (Länderwechsel)</span> <span class="custom-control-label">Land als Auswahl auf der Webseite anzeigen (Länderwechsel)</span>
</label>
</div>
<div class="form-group col-sm-12">
<label class="custom-control custom-checkbox">
{!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Eigenes Lieferland ()</span>
</label> </label>
</div> </div>
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!} {!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"> <h5 class="modal-title">
{{ __('Gutschrift') }} {{ __('Gutschrift') }}
@ -33,7 +33,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button> <button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
<button type="submit" class="btn btn-primary">{{__('Gutschrift hinzufügen')}}</button> <button type="submit" class="btn btn-primary button-prevent-multiple-submits">{{__('Gutschrift hinzufügen')}}</button>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => route('admin_payments_paycredit'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!} {!! Form::open(['url' => route('admin_payments_paycredit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"> <h5 class="modal-title">
{{ __('Einkaufsguthaben') }} {{ __('Einkaufsguthaben') }}
@ -33,7 +33,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button> <button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
<button type="submit" class="btn btn-primary">{{__('Einkaufsguthaben aufladen')}}</button> <button type="submit" class="btn btn-primary button-prevent-multiple-submits">{{__('Einkaufsguthaben aufladen')}}</button>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}

View file

@ -217,7 +217,7 @@
<div class="modal fade" id="modals-credit"> <div class="modal fade" id="modals-credit">
<div class="modal-dialog"> <div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_payments_credit_create') }}" method="post"> <form class="modal-content form-prevent-multiple-submits" action="{{ route('admin_payments_credit_create') }}" method="post">
@csrf @csrf
<input type="hidden" name="userid" value=""> <input type="hidden" name="userid" value="">
<input type="hidden" name="action" value="create_credit"> <input type="hidden" name="action" value="create_credit">
@ -228,6 +228,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
{{ Form::select('credit_option', ['create'=>'Gutschrift erstellen'], false, array('data-live-search'=>'false', 'class'=>'selectpicker')) }} {{ Form::select('credit_option', ['create'=>'Gutschrift erstellen'], false, array('data-live-search'=>'false', 'class'=>'selectpicker')) }}
</div> </div>
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
@ -248,7 +249,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button> <button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('save')}}</button> <button type="submit" class="btn btn-primary button-prevent-multiple-submits"><i class="spinner fa fa-spinner fa-spin"></i> {{ __('save')}}</button>
</div> </div>
</form> </form>
</div> </div>
@ -290,12 +291,13 @@
$( document ).ready(function() { $( document ).ready(function() {
$('#modals-credit').on('show.bs.modal', function (event) { $('#modals-credit').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); var button = $(event.relatedTarget);
if(event.relatedTarget){
$(this).find(".modal-content input[name='userid']").val(button.data('userid')); $(this).find(".modal-content input[name='userid']").val(button.data('userid'));
$(this).find(".modal-body #set_credit_send_mail").html(button.data('email')); $(this).find(".modal-body #set_credit_send_mail").html(button.data('email'));
}
}); });
}); });
}); });
</script> </script>

View file

@ -687,10 +687,11 @@
$( document ).ready(function() { $( document ).ready(function() {
$('#modals-txaction').on('show.bs.modal', function (event) { $('#modals-txaction').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); var button = $(event.relatedTarget);
if(event.relatedTarget){
$(this).find(".modal-content input[name='payment_id']").val(button.data('payment_id')); $(this).find(".modal-content input[name='payment_id']").val(button.data('payment_id'));
$(this).find(".modal-body select[name='txaction']").val(button.data('txaction')); $(this).find(".modal-body select[name='txaction']").val(button.data('txaction'));
$('.selectpicker').selectpicker('refresh'); $('.selectpicker').selectpicker('refresh');
}
}); });
}); });
</script> </script>

View file

@ -23,6 +23,7 @@
<th>{{__('Account')}} (bis)</th> <th>{{__('Account')}} (bis)</th>
<th>{{__('Zahlungsarten')}}</th> <th>{{__('Zahlungsarten')}}</th>
<th>{{__('Test Modus')}}</th> <th>{{__('Test Modus')}}</th>
<th>{{__('login')}}</th>
<th>{{__('delete')}}</th> <th>{{__('delete')}}</th>
</tr> </tr>
</thead> </thead>
@ -219,6 +220,40 @@
</div> </div>
</div> </div>
<!-- Modal delete -->
<div class="modal fade" id="modals-user-delete">
<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">{{__('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">
<p>User die Einkäufe getätigt haben, oder Kunden haben, sollte nicht gelöscht werden, es kann zu Systemfehler führen.</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>
<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 --> <!-- Modal test modus -->
<div class="modal fade" id="modals-test_mode"> <div class="modal fade" id="modals-test_mode">
<div class="modal-dialog"> <div class="modal-dialog">
@ -328,6 +363,13 @@
$(this).find(".modal-body input[name='email']").val(button.data('email')); $(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='payment_shop']").val(button.data('payment_shop')); $(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) { $('#modals-payment_methods').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id')); $(this).find(".modal-content input[name='id']").val(button.data('id'));
@ -369,6 +411,7 @@
{ data: 'account', name: 'account' }, { data: 'account', name: 'account' },
{ data: 'my_payment_methods', name: 'my_payment_methods' }, { data: 'my_payment_methods', name: 'my_payment_methods' },
{ data: 'test_mode', name: 'test_mode' }, { data: 'test_mode', name: 'test_mode' },
{ data: 'action_login', orderable: false, searchable: false},
{ data: 'action_delete', orderable: false, searchable: false}, { data: 'action_delete', orderable: false, searchable: false},
], ],
"bLengthChange": false, "bLengthChange": false,