template structuring

This commit is contained in:
akemidx 2023-08-28 19:26:31 -04:00
parent 78d589fe78
commit 734af87f2f
5 changed files with 76 additions and 32 deletions

View file

@ -11,6 +11,7 @@ use App\Models\CheckoutAcceptance;
use App\Models\CustomField;
use App\Models\Depreciation;
use App\Models\License;
use App\Models\SavedReport;
use App\Models\Setting;
use App\Notifications\CheckoutAssetNotification;
use Carbon\Carbon;
@ -391,8 +392,9 @@ class ReportsController extends Controller
{
$this->authorize('reports.view');
$customfields = CustomField::get();
$saved_reports = SavedReport::get();
return view('reports/custom')->with('customfields', $customfields);
return view('reports/custom')->with('customfields', $customfields)->with('saved_reports', $saved_reports);
}
/**

View file

@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SavedReportsController extends Controller
{
//a method to the madness
public function store(Request $request)
{
dd($request->all());
}
}

View file

@ -9,9 +9,6 @@ class SavedReport extends Model
{
use HasFactory;
here be really sexy dragons
/**
* The attributes that should be cast.
*
@ -20,4 +17,10 @@ class SavedReport extends Model
protected $casts = [
'options' => 'array',
];
protected $fillable = [
'user_id',
'name',
'options',
];
}

View file

@ -7,33 +7,6 @@
@stop
@section('header_right')
<div>
<a href="#" class="dropdown-toggle" data-toggle="dropdown" tabindex="-1">
{{ trans('general.create') }}
<strong class="caret"></strong>
</a>
<ul class="dropdown-menu" style="position:relative;">
@can('create', \App\Models\Asset::class)
<li {!! (Request::is('hardware/create') ? 'class="active>"' : '') !!}>
<a href="{{ route('hardware.create') }}" tabindex="-1">
<i class="fas fa-barcode fa-fw" aria-hidden="true"></i>
{{ trans('general.asset') }}
</a>
</li>
@endcan
@can('create', \App\Models\Asset::class)
<li {!! (Request::is('hardware/create') ? 'class="active>"' : '') !!}>
<a href="{{ route('hardware.create') }}" tabindex="-1">
<i class="fas fa-barcode fa-fw" aria-hidden="true"></i>
{{ trans('general.asset') }}
</a>
</li>
@endcan
</ul>
<a href="#" class="btn btn-primary">
{{ trans('admin/reports/general.apply_template') }}</a>
<a href="#" class="btn btn-primary">
{{ trans('admin/reports/general.save_template') }}</a></div>
@stop
@ -43,7 +16,7 @@
<div class="row">
<div class="col-md-8 col-md-offset-2">
{{ Form::open(['method' => 'post', 'class' => 'form-horizontal']) }}
{{ Form::open(['method' => 'post', 'class' => 'form-horizontal', 'id' => 'custom-report-form']) }}
{{csrf_field()}}
<!-- Horizontal Form -->
@ -386,6 +359,44 @@
</div> <!--/.box.box-default-->
{{ Form::close() }}
</div>
<div class="col-md-2">
<a href="#" class="btn btn-primary">
{{ trans('admin/reports/general.apply_and_generate') }}</a><br>
<form method="post" id="savetemplateform" action="{{ route("savedreports/store") }}">
@csrf
<input type="hidden" id="savetemplateoptions">
<button class = "btn btn-primary">
{{ trans('admin/reports/general.save_template') }}
</button>
</form>
<br>
<a href="#" class="dropdown-toggle" data-toggle="dropdown" tabindex="-1">
{{ trans('admin/reports/general.select_template') }}
<strong class="caret"></strong>
</a>
<ul class="dropdown-menu">
@foreach($saved_reports as $report)
<li>
{{ $report->name }}
</li>
@endforeach
</ul>
{{ $fieldname = $report->name }}
<select class="js-data-ajax" data-endpoint="locations" data-placeholder="{{ trans('admin/reports/general.select_template') }}" name="{{ $fieldname }}" style="width: 100%" id="{{ $fieldname }}_location_select" aria-label="{{ $fieldname }}" {!! ((isset($item)) && (Helper::checkIfRequired($item, $fieldname))) ? ' data-validation="required" required' : '' !!}{{ (isset($multiple) && ($multiple=='true')) ? " multiple='multiple'" : '' }}>
@if ($report->name!='')
<option value="{{ $fieldname }}" selected="selected" role="option" aria-selected="true" role="option">
@foreach($saved_reports as $report)
<li>
{{ $report->name }}
</li>
@endforeach
</option>
@else
<option value="" role="option">{{ trans('admin/reports/general.select_template') }}</option>
@endif
</select>
</div>
</div>
@stop
@ -429,5 +440,15 @@
$("input:checkbox").prop('checked', $(this).prop("checked"));
});
$("#savetemplateform").submit(function(e) {
e.preventDefault(e);
let elements = Array.from(document.getElementById("custom-report-form").elements).map(item=>item.name);
console.log(elements);
$("#savetemplateoptions").val(elements)
// set hidden input to variable
// submit the form
});
</script>
@stop

View file

@ -16,6 +16,7 @@ use App\Http\Controllers\ManufacturersController;
use App\Http\Controllers\ModalController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ReportsController;
use App\Http\Controllers\SavedReportsController;
use App\Http\Controllers\SettingsController;
use App\Http\Controllers\StatuslabelsController;
use App\Http\Controllers\SuppliersController;
@ -356,6 +357,7 @@ Route::group(['middleware' => ['auth']], function () {
)->name('reports/export/accessories');
Route::get('reports/custom', [ReportsController::class, 'getCustomReport'])->name('reports/custom');
Route::post('reports/custom', [ReportsController::class, 'postCustom']);
Route::post('reports/savedtemplate', [SavedReportsController::class, 'store'])->name('savedreports/store');
Route::get(
'reports/activity',