191 lines
No EOL
8.5 KiB
PHP
191 lines
No EOL
8.5 KiB
PHP
@extends('layouts.layout-2')
|
|
|
|
@section('content')
|
|
<div class="card">
|
|
<h5 class="card-header">
|
|
{{__('team.business')}} {{__('team.structure')}}
|
|
<span class="badge badge-default ml-2">v2</span>
|
|
</h5>
|
|
|
|
<div class="card-body">
|
|
{!! Form::open(['action' => route('admin_business_optimized_structure'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
|
|
|
|
<div class="form-row align-items-center px-0 pb-2 pt-0">
|
|
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">
|
|
<select class="custom-select on_change_select_filter" name="business_user_filter_month">
|
|
@foreach($filter_months as $key=>$value)
|
|
<option value="{{$key}}" @if(session('business_user_filter_month') == $key) selected @endif>{{$value}}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">
|
|
<select class="custom-select on_change_select_filter" name="business_user_filter_year">
|
|
@foreach($filter_years as $key=>$value)
|
|
<option value="{{$value}}" @if(session('business_user_filter_year') == $value) selected @endif>{{$value}}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
</div>
|
|
{!! Form::close() !!}
|
|
|
|
<!-- Performance Metrics Display -->
|
|
@if(config('app.debug') && isset($performance))
|
|
<div class="alert alert-success">
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<i class="fa fa-clock mr-1"></i>
|
|
<strong>Ladezeit:</strong> {{ $performance['execution_time'] }}ms
|
|
</div>
|
|
<div class="col-md-3">
|
|
<i class="fa fa-memory mr-1"></i>
|
|
<strong>Memory:</strong> {{ $performance['memory_used'] }}
|
|
</div>
|
|
<div class="col-md-3">
|
|
<i class="fa fa-users mr-1"></i>
|
|
<strong>Users:</strong> {{ $performance['user_count'] }}
|
|
</div>
|
|
<div class="col-md-3">
|
|
<i class="fa fa-user-times mr-1"></i>
|
|
<strong>Ohne Sponsor:</strong> {{ $performance['parentless_count'] }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<hr class="container-m-nx border-light mt-0">
|
|
<div>
|
|
<div id="nestable-menu" class="mb-4">
|
|
<button type="button" class="btn btn-default btn-sm" data-action="expand-all">{{ __('team.expand_all') }}</button>
|
|
<button type="button" class="btn btn-default btn-sm" data-action="collapse-all">{{ __('team.collapse_all') }}</button>
|
|
|
|
<!-- Zusätzliche Optimierungs-Controls -->
|
|
@if(config('app.debug'))
|
|
<div class="btn-group ml-3" role="group">
|
|
<button type="button" class="btn btn-info btn-sm" onclick="showPerformanceDetails()">
|
|
<i class="fa fa-chart-line"></i> Performance Details
|
|
</button>
|
|
<a href="{{ route('admin_business_structure') }}" class="btn btn-outline-secondary btn-sm">
|
|
<i class="fa fa-arrow-left"></i> Original Version
|
|
</a>
|
|
@if(isset($forceLiveCalculation) && $forceLiveCalculation === true)
|
|
<a href="{{ route('admin_business_optimized_structure') }}" class="btn btn-outline-warning btn-sm" title="Live-Berechnung aus">
|
|
<i class="fa fa-refresh"></i> Live berechnen aus
|
|
</a>
|
|
@else
|
|
<a href="{{ route('admin_business_optimized_structure') }}?force_live_calculation=1" class="btn btn-outline-success btn-sm" title="Live-Berechnung erzwingen">
|
|
<i class="fa fa-refresh"></i> Live berechnen
|
|
</a>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="dd" id="nestable2">
|
|
{!! $TreeCalcBot->makeHtmlTree() !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@if($TreeCalcBot->isParentless())
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<hr>
|
|
<h6 class="">
|
|
Berater mit abgelaufenem Account
|
|
<span class="badge badge-warning">{{ count($TreeCalcBot->__get('parentless')) }}</span>
|
|
</h6>
|
|
<div class="dd" id="">
|
|
{!! $TreeCalcBot->makeParentlessHtml() !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Performance Details Modal -->
|
|
<div class="modal fade" id="performanceModal" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Performance Metrics</h5>
|
|
<button type="button" class="close" data-dismiss="modal">
|
|
<span>×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
@if(isset($performance))
|
|
<table class="table table-sm">
|
|
<tr>
|
|
<td><strong>Ausführungszeit:</strong></td>
|
|
<td>{{ $performance['execution_time'] }}ms</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Memory-Verbrauch:</strong></td>
|
|
<td>{{ $performance['memory_used'] }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Anzahl Users:</strong></td>
|
|
<td>{{ $performance['user_count'] }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Parentlose Users:</strong></td>
|
|
<td>{{ $performance['parentless_count'] }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Optimierungen:</strong></td>
|
|
<td>
|
|
<span class="badge badge-success">Repository Pattern</span>
|
|
<span class="badge badge-success">Eager Loading</span>
|
|
<span class="badge badge-success">Memory Monitoring</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
@endif
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<link rel="stylesheet" href="/vendor/libs/nestable/nestable.css">
|
|
<script src="/vendor/libs/nestable/jquery-nestable.js?v=1"></script>
|
|
<script>
|
|
$( document ).ready(function() {
|
|
function updateOutput(e) {
|
|
//var list = e.length ? e : $(e.target);
|
|
//var output = list.data('output');
|
|
};
|
|
|
|
$('#nestable2').nestable().on('change', updateOutput);
|
|
// output initial serialised data
|
|
//updateOutput($('#nestable2').data('output', $('#nestable2-output')));
|
|
|
|
$('#nestable-menu').on('click', function(e) {
|
|
var target = $(e.target);
|
|
var action = target.data('action');
|
|
|
|
if (action === 'expand-all') {
|
|
$('.dd').nestable('expandAll');
|
|
}
|
|
if (action === 'collapse-all') {
|
|
$('.dd').nestable('collapseAll');
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
$('.on_change_select_filter').on('change', function(){
|
|
$('#form_filter_business_user').submit();
|
|
});
|
|
|
|
function showPerformanceDetails() {
|
|
$('#performanceModal').modal('show');
|
|
}
|
|
</script>
|
|
@endsection |