Файловый менеджер - Редактировать - /home/clickysoft/public_html/app/Http/Controllers/Admin/AssetsController.php
Назад
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroyAssetRequest; use App\Http\Requests\StoreAssetRequest; use App\Http\Requests\UpdateAssetRequest; use App\Models\Asset; use App\Models\Branch; use App\Models\Category; use App\Models\Company; use App\Models\Currency; use App\Models\Manufacturer; use App\Models\Organization; use App\Models\Status; use App\Models\Supplier; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class AssetsController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('asset_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Asset::with(['organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'])->select(sprintf('%s.*', (new Asset)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'asset_show'; $editGate = 'asset_edit'; $deleteGate = 'asset_delete'; $crudRoutePart = 'assets'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('asset_name', function ($row) { return $row->asset_name ? $row->asset_name : ''; }); $table->addColumn('asset_status_name', function ($row) { return $row->asset_status ? $row->asset_status->name : ''; }); $table->addColumn('category_name', function ($row) { return $row->category ? $row->category->name : ''; }); $table->addColumn('manufacturer_name', function ($row) { return $row->manufacturer ? $row->manufacturer->name : ''; }); $table->addColumn('supplier_contact_name', function ($row) { return $row->supplier ? $row->supplier->contact_name : ''; }); $table->addColumn('company_name', function ($row) { return $row->company ? $row->company->name : ''; }); $table->addColumn('branch_name', function ($row) { return $row->branch ? $row->branch->name : ''; }); $table->editColumn('qty', function ($row) { return $row->qty ? $row->qty : ''; }); $table->editColumn('notes', function ($row) { return $row->notes ? $row->notes : ''; }); $table->editColumn('asset_image', function ($row) { if ($photo = $row->asset_image) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('purchase_cost', function ($row) { return $row->purchase_cost ? $row->purchase_cost : ''; }); $table->addColumn('currency_name', function ($row) { return $row->currency ? $row->currency->name : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'asset_image', 'currency']); return $table->make(true); } $organizations = Organization::get(); $statuses = Status::get(); $categories = Category::get(); $manufacturers = Manufacturer::get(); $suppliers = Supplier::get(); $companies = Company::get(); $branches = Branch::get(); $currencies = Currency::get(); return view('admin.assets.index', compact('organizations', 'statuses', 'categories', 'manufacturers', 'suppliers', 'companies', 'branches', 'currencies')); } public function create() { abort_if(Gate::denies('asset_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset_statuses = Status::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $categories = Category::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $manufacturers = Manufacturer::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $suppliers = Supplier::pluck('contact_name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $branches = Branch::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $currencies = Currency::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.assets.create', compact('asset_statuses', 'branches', 'categories', 'companies', 'currencies', 'manufacturers', 'organizations', 'suppliers')); } public function store(StoreAssetRequest $request) { $asset = Asset::create($request->all()); if ($request->input('asset_image', false)) { $asset->addMedia(storage_path('tmp/uploads/' . basename($request->input('asset_image'))))->toMediaCollection('asset_image'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $asset->id]); } return redirect()->route('admin.assets.index'); } public function edit(Asset $asset) { abort_if(Gate::denies('asset_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset_statuses = Status::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $categories = Category::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $manufacturers = Manufacturer::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $suppliers = Supplier::pluck('contact_name', 'id')->prepend(trans('global.pleaseSelect'), ''); $companies = Company::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $branches = Branch::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $currencies = Currency::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $asset->load('organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'); return view('admin.assets.edit', compact('asset', 'asset_statuses', 'branches', 'categories', 'companies', 'currencies', 'manufacturers', 'organizations', 'suppliers')); } public function update(UpdateAssetRequest $request, Asset $asset) { $asset->update($request->all()); if ($request->input('asset_image', false)) { if (! $asset->asset_image || $request->input('asset_image') !== $asset->asset_image->file_name) { if ($asset->asset_image) { $asset->asset_image->delete(); } $asset->addMedia(storage_path('tmp/uploads/' . basename($request->input('asset_image'))))->toMediaCollection('asset_image'); } } elseif ($asset->asset_image) { $asset->asset_image->delete(); } return redirect()->route('admin.assets.index'); } public function show(Asset $asset) { abort_if(Gate::denies('asset_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $asset->load('organization', 'asset_status', 'category', 'manufacturer', 'supplier', 'company', 'branch', 'currency'); return view('admin.assets.show', compact('asset')); } public function destroy(Asset $asset) { abort_if(Gate::denies('asset_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $asset->delete(); return back(); } public function massDestroy(MassDestroyAssetRequest $request) { $assets = Asset::find(request('ids')); foreach ($assets as $asset) { $asset->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('asset_create') && Gate::denies('asset_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Asset(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка