From 6cd3411795022f929ee7cd5a00eb61029181d39d Mon Sep 17 00:00:00 2001 From: anulax1225 Date: Wed, 19 Feb 2025 02:16:36 +0100 Subject: [PATCH] Dynamic et responsive comme je les aime --- app/Http/Controllers/ServerController.php | 12 +- public/icons/menu.svg | 7 + resources/js/Components/NavLink.vue | 7 +- resources/js/Components/ResponsiveNavLink.vue | 8 +- resources/js/Layouts/Layout.vue | 43 ++- resources/js/Pages/Home.vue | 6 +- resources/js/Pages/Server/Show.vue | 297 +++++++++--------- 7 files changed, 212 insertions(+), 168 deletions(-) create mode 100644 public/icons/menu.svg diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index 56f8d67..23d480e 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -164,11 +164,13 @@ public function makePublic(Request $request) public function destroy(Request $request) { $server = Server::where("uuid", $request->id)->first(); - try { - $container = new Container($server->container); - $data = $container->inspect()->State; - if($data->Running || $data->Paused || $data->Restarting) $container->kill(); - } catch(Exception) { return redirect()->back()->withErrors(["error" => "Problème pour éteindre le serveur. Réessayer!"]); } + if($server->container) { + try { + $container = new Container($server->container); + $data = $container->inspect()->State; + if($data->Running || $data->Paused || $data->Restarting) $container->kill(); + } catch(Exception) { return redirect()->back()->withErrors(["error" => "Problème pour éteindre le serveur. Réessayer!"]); } + } $server->exposedPorts()->update([ "usable" => true ]); $server->exposedPorts()->detach(); $server->delete(); diff --git a/public/icons/menu.svg b/public/icons/menu.svg new file mode 100644 index 0000000..1ecc091 --- /dev/null +++ b/public/icons/menu.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/js/Components/NavLink.vue b/resources/js/Components/NavLink.vue index 2b938b0..257c640 100644 --- a/resources/js/Components/NavLink.vue +++ b/resources/js/Components/NavLink.vue @@ -14,8 +14,11 @@ const props = defineProps({ const classes = computed(() => props.active - ? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-textColor-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out' - : 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-textColor-500 hover:text-textColor-700 hover:border-gray-300 focus:outline-none focus:text-textColor-700 focus:border-gray-300 transition duration-150 ease-in-out', + ? 'flex items-center px-1 pt-1 border-b-2 border-blue-400 text-md font-bold leading-5' + + ' text-textColor-50 focus:outline-none focus:border-blue-700 transition duration-150 ease-in-out' + : 'flex items-center px-1 pt-1 border-b-2 border-transparent text-md font-medium ' + + 'leading-5 text-textColor-200 hover:text-textColor-100 hover:border-blue-500 focus:outline-none ' + + 'focus:text-textColor-700 focus:border-gray-300 transition duration-150 ease-in-out', ); diff --git a/resources/js/Components/ResponsiveNavLink.vue b/resources/js/Components/ResponsiveNavLink.vue index 43f3020..f135228 100644 --- a/resources/js/Components/ResponsiveNavLink.vue +++ b/resources/js/Components/ResponsiveNavLink.vue @@ -14,8 +14,12 @@ const props = defineProps({ const classes = computed(() => props.active - ? 'block w-full ps-3 pe-4 py-2 border-l-4 border-indigo-400 text-start text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out' - : 'block w-full ps-3 pe-4 py-2 border-l-4 border-transparent text-start text-base font-medium text-textColor-600 hover:text-textColor-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-textColor-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out', + ? 'block w-full ps-3 pe-4 py-2 border-l-4 border-blue-400 text-start '+ + 'text-base font-medium text-blue-700 bg-blue-50 focus:outline-none focus:text-blue-800 '+ + 'focus:bg-blue-100 focus:border-blue-700 transition duration-150 ease-in-out' + : 'block w-full ps-3 pe-4 py-2 border-l-4 border-transparent text-start text-base font-medium text-textColor-600 '+ + 'hover:text-textColor-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-textColor-800 focus:bg-gray-50'+ + ' focus:border-gray-300 transition duration-150 ease-in-out', ); diff --git a/resources/js/Layouts/Layout.vue b/resources/js/Layouts/Layout.vue index 0e5b4b2..a753a8a 100644 --- a/resources/js/Layouts/Layout.vue +++ b/resources/js/Layouts/Layout.vue @@ -1,12 +1,16 @@