refactor: remove unused Type components and relocate module-related API routes to admin routes.

This commit is contained in:
pbao9
2026-02-13 12:03:11 +07:00
parent 245f5ade37
commit 3a10c3e2d7
12 changed files with 27 additions and 1552 deletions
@@ -16,14 +16,12 @@ use App\Repositories\Addon\AddonRepositoryInterface;
use App\Repositories\Domain\DomainRepositoryInterface;
use App\Repositories\Group\GroupRepositoryInterface;
use App\Repositories\Hosting\HostingRepositoryInterface;
use App\Repositories\Type\TypeRepositoryInterface;
use App\Repositories\VPS\VPSRepositoryInterface;
use Illuminate\Http\Request;
class ShopController extends Controller
{
public function __construct(
public TypeRepositoryInterface $typeRepository,
public GroupRepositoryInterface $groupRepository,
public VPSRepositoryInterface $vpsRepository,
public HostingRepositoryInterface $hostingRepository,
-2
View File
@@ -88,8 +88,6 @@ use App\Repositories\Module\Snapshot\SnapshotLimitRepositoryInterface;
use App\Repositories\Module\Snapshot\SnapshotRepositoryInterface;
use App\Repositories\Module\Vmware\VmwareCachedRepository;
use App\Repositories\Module\Vmware\VmwareRepositoryInterface;
use App\Repositories\Type\TypeCachedRepository;
use App\Repositories\Type\TypeRepositoryInterface;
use App\Repositories\Admin\Product\ProductRepository;
use App\Repositories\Admin\Product\ProductRepositoryInterface;
use App\Repositories\User\UserCachedRepository;
+2 -3
View File
@@ -2,7 +2,6 @@
namespace App\View\Components\Order;
use App\Repositories\Type\TypeRepositoryInterface;
use Closure;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
@@ -13,7 +12,7 @@ class Type extends Component
* Create a new component instance.
*/
public function __construct(
public TypeRepositoryInterface $typeRepository
// public TypeRepositoryInterface $typeRepository
)
{
//
@@ -24,7 +23,7 @@ class Type extends Component
*/
public function render(): View|Closure|string
{
$types= $this->typeRepository->getAll();
$types = null;
return view('components.order.type',compact('types'));
}
}
-31
View File
@@ -1,31 +0,0 @@
<?php
namespace App\View\Components;
use App\Repositories\Type\TypeRepositoryInterface;
use Closure;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class Type extends Component
{
/**
* Create a new component instance.
*/
public function __construct(
public $model = null,
public TypeRepositoryInterface $typeRepository
)
{
//
}
/**
* Get the view / contents that represent the component.
*/
public function render(): View|Closure|string
{
$types = $this->typeRepository->getAll();
return view('components.type',compact('types'));
}
}
@@ -43,7 +43,7 @@
{{-- Thumbnail using component --}}
<x-image-picker name="thumbnail" label="Thumbnail" :value="$group->thumbnail" />
<x-module.v-center :model="$group->host->datacenter" />
<x-module.v-center :model="$group->host?->datacenter" />
<x-module.datacenter :model="$group->host" />
<x-module.host :model="$group" />
{{-- Status --}}
@@ -77,7 +77,6 @@
value="{{ old('slug') }}" class="form-control">
</div>
</div>
<x-type :model="null"/>
{{--Status--}}
<div class="form-group row">
<label class="col-md-4" for="company">Status</label>
@@ -64,7 +64,7 @@ if (!$selectedDatacenterId && $model) {
$datacenter.html('<option value="">Đang tải Datacenter...</option>').prop('disabled', true);
$.ajax({
url: '{{ route('api.getDatacenter') }}',
url: '{{ route('module-vcenter.getDatacenter') }}',
type: 'GET',
data: {
vcenter: vcenterId
@@ -29,10 +29,10 @@ $selectedHostId = old('module_host_id') ?? ($model?->module_host_id ?? ($model?-
const $datacenter = $('.datacenter_id');
const $host = $('.host_id');
// Debounce function to prevent spam API calls
let loadHostsTimeout;
function debounceLoadHosts(datacenterId, preselect = null) {
clearTimeout(loadHostsTimeout);
loadHostsTimeout = setTimeout(() => {
@@ -45,7 +45,7 @@ $selectedHostId = old('module_host_id') ?? ($model?->module_host_id ?? ($model?-
if ($host.prop('disabled') && $host.find('option:first').text().includes('Đang tải')) {
return;
}
if (!datacenterId) {
$host.html('<option value="">--- Chọn Host ---</option>').prop('disabled', true);
return;
@@ -54,7 +54,7 @@ $selectedHostId = old('module_host_id') ?? ($model?->module_host_id ?? ($model?-
$host.html('<option value="">Đang tải Host...</option>').prop('disabled', true);
$.ajax({
url: '{{ route('api.getHost') }}',
url: '{{ route('module-vcenter.getHost') }}',
type: 'GET',
data: {
datacenter: datacenterId
@@ -1,16 +0,0 @@
<div class="row form-group">
<label for="order_product_type" class="col-md-4">Product Type
(*)</label>
<div class="col-md-8">
<select class="form-control order_product_type"
data-append="product[0][product_id]"
name="product[0][type]">
<option value="0">-----------</option>
@if(count($types) > 0)
@foreach($types as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
@endif
</select>
</div>
</div>
-13
View File
@@ -1,13 +0,0 @@
{{--Last name--}}
<div class="form-group row">
<label class="col-md-4" for="lastname">Product Type</label>
<div class="col-md-8">
<select class="custom-select" name="type_id">
@if(count($types) > 0)
@foreach($types->all() as $item)
<option value="{{ $item->id }}" @selected(old('type_id') === $item->id) >{{ $item->name }}</option>
@endforeach
@endif
</select>
</div>
</div>
+18
View File
@@ -35,6 +35,8 @@ use App\Http\Controllers\admin\TaskController;
use App\Http\Controllers\admin\TemplateController;
use App\Http\Controllers\admin\UserController;
use App\Http\Controllers\admin\vm\VirtualMachineController;
use App\Http\Controllers\Api\VpsActionController;
use App\Http\Controllers\rest\ModuleController;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Route;
@@ -448,5 +450,21 @@ Route::prefix('')->group(function () {
Route::put('edit-menu/{id}', 'update')->name('menu.update');
Route::delete('remove-menu/{id}', 'destroy')->name('menu.destroy');
});
Route::controller(ModuleController::class)->as('module-vcenter.')->group(function () {
Route::get('get-list-vcenter', 'getVCenter')->name('getVCenter');
Route::get('get-list-datacenter', 'getDatacenter')->name('getDatacenter');
Route::get('get-list-host', 'getHost')->name('getHost');
Route::get('get-list-datastore', 'getDatastore')->name('getDatastore');
Route::get('get-list-network', 'getNetwork')->name('getNetwork');
Route::get('get-list-ipaddress', 'getIpAddress')->name('getIPAddress');
Route::get('get-list-version-os', 'getOsServerVersion')->name('getVersion');
Route::get('get-list-os-group', 'getOsGroup')->name('getOsGroup');
});
Route::controller(VpsActionController::class)->group(function () {
Route::post('rebuild-vps', 'rebuildVps')->name('rebuildVps');
});
});
});
+1 -1478
View File
File diff suppressed because it is too large Load Diff