feat: Implement new admin API endpoints for product, customer, vCenter, and authentication, and add vCenter resource management UI.

This commit is contained in:
pbao9
2026-03-05 14:30:31 +07:00
parent 68540009c0
commit cca4e0b86f
47 changed files with 3538 additions and 1086 deletions
+17
View File
@@ -14,6 +14,7 @@ use App\Http\Controllers\admin\ModuleDNSController;
use App\Http\Controllers\admin\ModuleHostingController;
use App\Http\Controllers\admin\ModuleIPPoolController;
use App\Http\Controllers\admin\ModulevCenterController;
use App\Http\Controllers\admin\VCenterManagerController;
use App\Http\Controllers\admin\OrderController;
use App\Http\Controllers\admin\package\Datacenter;
use App\Http\Controllers\admin\package\Datastore;
@@ -227,6 +228,22 @@ Route::prefix('')->group(function () {
Route::delete('remove-server-ip-pool/{id}', 'destroy')->name('module.ippool.destroy');
});
// vCenter Manager — Unified tree view
Route::controller(VCenterManagerController::class)->prefix('vcenter-manager')->group(function () {
Route::get('/', 'index')->name('vcenter.manager');
Route::get('tree/children', 'treeChildren')->name('vcenter.manager.tree.children');
Route::get('tree/detail', 'nodeDetail')->name('vcenter.manager.tree.detail');
Route::get('vms/datatable', 'vmDatatable')->name('vcenter.manager.vm.datatable');
// Wizard API
Route::get('wizard/vcenters', 'wizardVcenters')->name('vcenter.manager.wizard.vcenters');
Route::post('wizard/vcenter', 'wizardStoreVcenter')->name('vcenter.manager.wizard.vcenter.store');
Route::get('wizard/datacenters', 'wizardDatacenters')->name('vcenter.manager.wizard.datacenters');
Route::get('wizard/hosts', 'wizardHosts')->name('vcenter.manager.wizard.hosts');
Route::get('wizard/datastore-network', 'wizardDatastoreNetwork')->name('vcenter.manager.wizard.datastore-network');
Route::post('wizard/save', 'wizardSave')->name('vcenter.manager.wizard.save');
});
//Module vCenter Server
Route::controller(ModulevCenterController::class)->prefix('vcenter')->group(function () {
Route::get('list-all-vcenter', 'index')->name('module.vcenter.index');