group(function () { //Login Route::middleware('LoginCheck')->controller(LoginController::class)->group(function () { Route::get('login', 'index')->name('login'); Route::post('login', 'store')->name('login.store'); }); //Administrator Route::middleware(['auth', 'Staff'])->group(function () { Route::any('/ckfinder/connector', '\CKSource\CKFinderBridge\Controller\CKFinderController@requestAction') ->name('ckfinder_connector'); Route::any('/ckfinder/browser', '\CKSource\CKFinderBridge\Controller\CKFinderController@browserAction') ->name('ckfinder_browser'); //Main Route::get('/', [AdminMain::class, 'index'])->name('dashboard'); Route::get('system-activity-log', [AdminMain::class, 'SystemLog'])->name('system.log'); Route::get('clear-cache', [AdminMain::class, 'ClearCache'])->name('clear.cache'); //Logout Route::get('logout', function () { Cookie::queue(Cookie::forget('accessToken')); auth()->guard('admins')->user()->tokens()->delete(); auth()->guard('admins')->logout(); return redirect()->route('login'); })->name('logout'); //My Info Route::get('my-account', function () { $user = auth('admins')->user(); $title = 'Thông tin cá nhân'; return view('administrator.pages.account', compact('user', 'title')); })->name('account'); Route::group([ 'as' => 'setting.', 'controller' => SettingController::class ], function () { Route::get('general-setting', 'index')->name('general'); Route::get('smtp-setting', 'smtp')->name('smtp'); Route::put('setting-store', 'store')->name('store'); }); //View all administrator Route::controller(UserController::class)->group(function () { Route::get('list-all', 'index')->name('administrator.pages.user.index'); Route::get('add-new-account', 'create')->name('administrator.pages.user.create'); Route::post('add-new-account', 'store')->name('administrator.pages.user.store'); Route::get('edit-admin-account', 'edit')->name('administrator.pages.user.edit'); Route::put('edit-admin-account', 'update')->name('administrator.pages.user.update'); Route::delete('remove-admin-account', 'destroy')->name('administrator.pages.user.destroy'); }); //role Route::controller(RolesController::class)->group(function () { Route::get('list-role', 'index')->name('role.index'); Route::get('add-role', 'create')->name('role.create'); Route::post('add-role', 'store')->name('role.store'); Route::get('edit-role/{id}', 'edit')->name('role.edit'); Route::put('edit-role/{id}', 'update')->name('role.update'); Route::delete('remove-role/{id}', 'destroy')->name('role.destroy'); }); //View All Client Route::controller(CustomerController::class)->group(function () { Route::get('list-customer', 'index')->name('customer.index'); Route::get('view-customer', 'getCustomerInfo')->name('customer.info'); Route::get('view-profile', 'getCustomerProfile')->name('customer.profile'); Route::post('view-profile', 'storeCustomerProfile')->name('customer.profile.store'); Route::get('view-product', 'getCustomerProduct')->name('customer.product'); Route::put('view-product', 'storeCustomerProduct')->name('customer.product.update'); Route::get('view-domain', 'getCustomerDomain')->name('customer.domain'); Route::get('view-invoice', 'getCustomerInvoice')->name('customer.invoice'); Route::get('view-transactions', 'getCustomerTransactions')->name('customer.trans'); Route::get('view-email', 'getCustomerEmail')->name('customer.email'); Route::get('view-log', 'getCustomerLog')->name('customer.log'); Route::get('add-client', 'create')->name('customer.create'); Route::post('add-client', 'store')->name('customer.store'); Route::get('add-pay', 'addPay')->name('customer.addpay'); Route::put('add-pay', 'addPayStore')->name('customer.addPayStore'); Route::get('reset-password-client', 'PasswordReset')->name('customer.PasswordReset'); Route::get('login-with-customer', 'LoginWithCustomer')->name('customer.Login'); Route::get('logout-with-customer', 'LogoutWithCustomer')->name('customer.Logout'); }); //View All Product Route::controller(ProductController::class)->prefix('products')->as('products.')->group(function () { Route::get('all-product', 'index')->name('index'); Route::get('add-new-product', 'create')->name('create'); Route::post('add-new-product', 'store')->name('store'); Route::get('view-product-item/{id}', 'edit')->name('edit'); Route::put('view-product-item/{id}', 'update')->name('update'); Route::delete('remove-product-item/{id}', 'destroy')->name('destroy'); Route::post('duplicate-product/{id}', 'duplicate')->name('duplicate'); Route::get('datatable', 'datatable')->name('datatable'); Route::controller(ProductCategoryController::class)->prefix('group')->as('group.')->group(function () { Route::get('all-group', 'index')->name('index'); Route::get('add-new-group', 'create')->name('create'); Route::post('add-new-group', 'store')->name('store'); Route::get('view-group-item/{id}', 'edit')->name('edit'); Route::put('view-group-item/{id}', 'update')->name('update'); Route::delete('remove-group-item/{id}', 'destroy')->name('destroy'); Route::delete('bulk-delete', 'bulkDelete')->name('bulkDelete'); Route::get('datatable', 'datatable')->name('datatable'); Route::get('trash', 'trash')->name('trash'); Route::get('restore/{id}', 'restore')->name('restore'); Route::delete('force-delete/{id}', 'forceDelete')->name('forceDelete'); }); }); //Group Controller Route::controller(GroupController::class)->prefix('group')->as('group.')->group(function () { Route::get('add-group', 'addGroupInformation')->name('create'); Route::post('add-group', 'storeGroupInformation')->name('information.store'); Route::get('view-group', 'getGroupInformation')->name('information'); Route::put('view-group', 'updateGroupInformation')->name('information.update'); Route::delete('remove-group', 'removeGroup')->name('remove'); }); //Addon Controller Route::controller(AddonController::class)->prefix('addon')->as('addon.')->group(function () { Route::get('list-addon', 'index')->name('index'); Route::get('add-addon', 'create')->name('create'); Route::post('add-addon', 'store')->name('store'); Route::get('edit-addon/{id}', 'edit')->name('edit'); Route::put('edit-addon/{id}', 'update')->name('update'); Route::delete('remove-addon/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); //Domain Price Route::controller(DomainController::class)->group(function () { Route::get('list-domain', 'index')->name('domain.index'); Route::post('import-csv', 'import')->name('domain.import'); }); //Module Hosting Server Route::controller(ModuleHostingController::class)->prefix('server-hosting')->group(function () { Route::get('list-all-server-hosting', 'index')->name('module.hosting.index'); Route::get('datatable', 'datatable')->name('module.hosting.datatable'); Route::post('import-hosting-from-csv', 'import')->name('module.hosting.import'); Route::get('add-new-server-hosting', 'create')->name('module.hosting.create'); Route::post('add-new-server-hosting', 'store')->name('module.hosting.store'); Route::get('view-server-hosting/{id}', 'edit')->name('module.hosting.edit'); Route::put('view-server-hosting{id}', 'update')->name('module.hosting.update'); Route::delete('remove-server-hosting/{id}', 'destroy')->name('module.hosting.destroy'); }); //Module DNS Server Route::controller(ModuleDNSController::class)->group(function () { Route::get('list-all-server-dns', 'index')->name('module.dns.index'); Route::post('import-dns-from-csv', 'import')->name('module.dns.import'); Route::get('add-new-server-dns', 'create')->name('module.dns.create'); Route::post('add-new-server-dns', 'store')->name('module.dns.store'); Route::get('view-server-dns/{id}', 'edit')->name('module.dns.edit'); Route::put('view-server-dns/{id}', 'update')->name('module.dns.update'); Route::delete('remove-server-dns/{id}', 'destroy')->name('module.dns.destroy'); Route::get('server-dns/datatable', 'datatable')->name('module.dns.datatable'); }); Route::controller(ModuleIPPoolController::class)->group(function () { Route::get('list-all-server-ip-pool', 'index')->name('module.ippool.index'); Route::post('import-ip-pool-from-csv', 'import')->name('module.ippool.import'); Route::get('add-new-server-ip-pool', 'create')->name('module.ippool.create'); Route::post('add-new-server-ip-pool', 'store')->name('module.ippool.store'); Route::get('view-server-ip-pool/{id}', 'edit')->name('module.ippool.edit'); Route::put('view-server-ip-pool/{id}', 'update')->name('module.ippool.update'); Route::delete('remove-server-ip-pool/{id}', 'destroy')->name('module.ippool.destroy'); }); //Module vCenter Server Route::controller(ModulevCenterController::class)->prefix('vcenter')->group(function () { Route::get('list-all-vcenter', 'index')->name('module.vcenter.index'); Route::post('import-vcenter-from-csv', 'import')->name('module.vcenter.import'); Route::get('add-new-vcenter', 'create')->name('module.vcenter.create'); Route::post('add-new-vcenter', 'store')->name('module.vcenter.store'); Route::get('view-vcenter/{id}', 'edit')->name('module.vcenter.edit'); Route::put('view-vcenter/{id}', 'update')->name('module.vcenter.update'); Route::delete('remove-vcenter/{id}', 'destroy')->name('module.vcenter.destroy'); Route::get('datatable', 'datatable')->name('module.vcenter.datatable'); }); //Package Route Route::prefix('package')->group(function () { //Datacenter Route::group([ 'prefix' => 'datacenter', 'as' => 'package.datacenter.', 'controller' => Datacenter::class ], function () { Route::get('list-all-datacenter', 'index')->name('index'); Route::get('sync-datacenter', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); //Datastore Route::group([ 'prefix' => 'datastore', 'as' => 'package.datastore.', 'controller' => Datastore::class ], function () { Route::get('list-all-datastore', 'index')->name('index'); Route::get('sync-datastore', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); //Host Route::group([ 'prefix' => 'host', 'as' => 'package.host.', 'controller' => Host::class ], function () { Route::get('list-all-host', 'index')->name('index'); Route::get('sync-host', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); // Network Route::group([ 'prefix' => 'network', 'as' => 'package.network.', 'controller' => Network::class ], function () { Route::get('list-all-network', 'index')->name('index'); Route::get('sync-network', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); Route::group([ 'prefix' => 'folder', 'as' => 'package.folder.', 'controller' => Folder::class ], function () { Route::get('list-all-folder', 'index')->name('index'); Route::get('sync-folder', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); Route::group([ 'prefix' => 'group', 'as' => 'package.group.', 'controller' => Group::class ], function () { Route::get('list-all-group', 'index')->name('index'); Route::post('import-group-by-csv', 'import')->name('import'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit-group/{id}', 'update')->name('update'); Route::delete('remove-group/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); Route::group([ 'prefix' => 'version', 'as' => 'package.version.', 'controller' => OsVersion::class ], function () { Route::get('list-all-os-version', 'index')->name('index'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove-os-version/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); Route::group([ 'prefix' => 'ipaddress', 'as' => 'package.ipaddress.', 'controller' => IPMapping::class ], function () { Route::get('list-all-ip-address', 'index')->name('index'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove-ip-address/{id}', 'destroy')->name('destroy'); Route::get('datatable', 'datatable')->name('datatable'); }); Route::group([ 'prefix' => 'vm', 'as' => 'package.vm.', 'controller' => VirtualMachineController::class ], function () { Route::get('list-all-vm', 'index')->name('index'); Route::get('datatable', 'datatable')->name('datatable'); Route::get('sync', 'sync')->name('sync'); Route::get('create', 'create')->name('create'); Route::post('create', 'store')->name('store'); Route::get('edit/{id}', 'edit')->name('edit'); Route::put('edit/{id}', 'update')->name('update'); Route::delete('remove-vm/{id}', 'destroy')->name('destroy'); }); Route::get('sync-all-package', [SyncController::class, 'index'])->name('package.sync.all'); }); //Oder Route::controller(OrderController::class)->group(function () { Route::get('list-all-order', 'index')->name('administrator.pages.order.index'); Route::get('add-new-order', 'create')->name('administrator.pages.order.create'); Route::post('add-new-order', 'store')->name('administrator.pages.order.store'); Route::get('view-order/{id}', 'edit')->name('administrator.pages.order.edit'); Route::put('view-order/{id}', 'update')->name('administrator.pages.order.update'); Route::delete('remove-order', 'destroy')->name('administrator.pages.order.destroy'); }); //Task Route::controller(TaskController::class)->group(function () { Route::post('task-manager', 'Task')->name('task.manager'); Route::get('view-console-ticket', 'Console')->name('task.console'); Route::post('task-action', 'Action')->name('task.action'); Route::post('task-reinstall', 'Reinstall')->name('task.reinstall'); }); //Invoice Route::controller(InvoiceController::class)->group(function () { Route::get('list-all-invoice', 'index')->name('administrator.pages.invoice.index'); Route::get('view-invoice-item/{id}', 'edit')->name('administrator.pages.invoice.edit'); Route::put('view-invoice-item/{id}', 'update')->name('administrator.pages.invoice.update'); Route::delete('remove-invoice/{id}', 'destroy')->name('administrator.pages.invoice.destroy'); }); //Email Template Route::controller(TemplateController::class)->group(function () { Route::get('list-email-template', 'index')->name('template.index'); Route::get('add-new-template', 'create')->name('template.create'); Route::post('add-new-template', 'store')->name('template.store'); Route::get('view-template', 'edit')->name('template.edit'); Route::put('view-template', 'update')->name('template.update'); Route::delete('remove-template', 'destroy')->name('template.destroy'); }); //Coupon Route::controller(CouponController::class)->group(function () { Route::get('list-coupon', 'index')->name('coupon.index'); Route::get('create-coupon', 'create')->name('coupon.create'); Route::post('create-coupon', 'store')->name('coupon.store'); Route::get('edit-coupon/{id}', 'edit')->name('coupon.edit'); Route::put('edit-coupon/{id}', 'update')->name('coupon.update'); Route::delete('remove-coupon/{id}', 'destroy')->name('coupon.destroy'); }); //Support Route::controller(SupportController::class)->group(function () { Route::get('list-all-support', 'index')->name('support.index'); Route::get('view-ticket/{ticket_num}', 'edit')->name('support.edit'); Route::post('reply-ticket/{id}', 'reply')->name('support.reply'); Route::get('close-ticket/{ticket_num}', 'close')->name('support.close'); }); //Media Route::controller(MediaController::class)->group(function () { Route::post('upload-image', 'uploadImage')->name('media.upload'); Route::post('upload-media', 'uploadCKEditor')->name('media.ckeditor'); }); //Post Route::controller(PostController::class)->group(function () { Route::get('list-post', 'index')->name('post.index'); Route::get('add-post', 'create')->name('post.create'); Route::post('add-post', 'store')->name('post.store'); Route::get('edit-post/{id}', 'edit')->name('post.edit'); Route::put('edit-post/{id}', 'update')->name('post.update'); Route::delete('remove-post/{id}', 'destroy')->name('post.destroy'); }); Route::controller(PaymentController::class)->group(function () { Route::get('list-payment', 'index')->name('payment.index'); Route::get('add-payment', 'create')->name('payment.create'); Route::post('add-payment', 'store')->name('payment.store'); Route::get('edit-payment/{id}', 'edit')->name('payment.edit'); Route::put('edit-payment/{id}', 'update')->name('payment.update'); Route::delete('remove-payment/{id}', 'destroy')->name('payment.destroy'); }); Route::controller(MenuController::class)->group(function () { Route::get('list-menu', 'index')->name('menu.index'); Route::get('add-new-menu', 'create')->name('menu.create'); Route::post('add-new-menu', 'store')->name('menu.store'); Route::get('edit-menu/{id}', 'edit')->name('menu.edit'); 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'); }); }); });