]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6477 @1:30
authorsoufiane <soufiane@cubedesigners.com>
Wed, 22 Nov 2023 10:27:43 +0000 (11:27 +0100)
committersoufiane <soufiane@cubedesigners.com>
Wed, 22 Nov 2023 10:27:43 +0000 (11:27 +0100)
app/Http/Controllers/Admin/Operations/ServerOperation.php
app/Models/FluidbookExternalInstallServer.php
resources/views/vendor/backpack/crud/edit-external-server.blade.php

index bec1a17831b070688fecd29a23add54a19dc51b7..34bc6ece665d3cce333b4690f40394e1a9262490 100644 (file)
@@ -15,6 +15,7 @@ trait ServerOperation
     {
         Route::post($segment . '/{id}/verifyconnection', $controller . '@run');
     }
+
     public function setup() {
         parent::setup();
         $this->crud->setEditView('vendor.backpack.crud.edit-external-server');
@@ -25,9 +26,16 @@ trait ServerOperation
             'password' => 'required|string|min:8',
             'protocol' => 'required|string|max:255',
             'username' => 'required|string|max:255',
+            'host' => 'required|string|max:255',
             'port' => 'nullable|numeric',
         ];
-        $validator = Validator::make($request->all(), $validation);
+        $validator = Validator::make([
+            'password' => $request->password,
+            'protocol' => $request->protocol,
+            'username' => $request->username,
+            'host' => $request->host,
+            'port' => $request->port], $validation);
+
 
         if ($validator->fails()) {
             throw new ValidationException($validator);
@@ -35,13 +43,15 @@ trait ServerOperation
 
         $validator->validate();
 
-        $result = FluidbookExternalInstallServer::verifyServerConnexion($id, $validator);
+        $result = FluidbookExternalInstallServer::verifyServerConnexion($id, $request->all());
         if($result) {
-            Alert::add('success', __('La connexion a été établie avec succès'))->flash();
+            //Alert::add('success', __('La connexion a été établie avec succès'))->flash();
+            $data = ['success' => true, 'message' => __('La connexion a été établie avec succès')];
         } else {
-            Alert::add('error', __('La connexion a échouée'))->flash();
+            //Alert::add('error', __('La connexion a échouée'))->flash();
+            $data = ['error' => true, 'message' => __('La connexion a échouée')];
         }
 
-        die();
+        return response()->json($data);
     }
 }
index 95d457d217606dcdc24742b11df2421bf83eeba9..f395fc606da237c43a77281b5a2cb7e22ae762ce 100644 (file)
@@ -92,16 +92,20 @@ class FluidbookExternalInstallServer extends ExternalServer
     public static function verifyServerConnexion($id, $data = [])
     {
         $server = self::find($id);
-        $protocol = $data->protocol ?? $server->protocol;
-        $usr = $data->username ?? $server->username;
-        $pwd = $data->password ?? $server->password;
-        $host = $data->host ?? $server->host;
+        $protocol = $data['protocol'] ?? $server->protocol;
+        $usr = $data['username'] ?? $server->username;
+        $pwd = $data['password'] ?? $server->password;
+        $host = $data['host'] ?? $server->host;
 
         if($protocol !== "hosting") {
             if(!$host) {
                 throw new \Exception('Host missing');
             } else {
-                $connection = ssh2_connect($host, 22);
+                try {
+                    $connection = ssh2_connect($host, 22);
+                } catch (\Exception $e) {
+
+                }
                 try {
                     self::$isValidConnexion = ssh2_auth_password($connection, $usr, $pwd);
                 } catch (\Exception $e) {
index 902c9e7e441b1be631d0b23dcbdf32c169b06a16..b62239e7a18fb07476ffdeb38784bef8a569dcc1 100644 (file)
             //$("#saveActions").prepend("<button id='verifyconnection' class='btn btn-primary mr-3'>Tester la connexion</button>")
             $("#saveActions").prepend("<a id='verifyconnection' class='btn btn-primary mr-3' href='verifyconnection'>Tester la connexion</a>")
 
+            function removeBtn() {
+                setTimeout(() => {
+                    $("#message").remove()
+                }, "3000");
+            }
+
             $(document).on("click", "#verifyconnection", function(e) {
                 e.preventDefault();
                 const data = {
                     url: '{{url('fluidbook-external-install-server/'.$entry->id)}}/verifyconnection',
                     method: 'post',
                     data: data,
-                    success: function (response) {
-                        console.log(response, 'ok')
+                    success: function (data) {
+                        let type = 'success'
+                        if(data.error) {
+                            type = 'error'
+                        }
+                        $('#saveActions').prepend('<div id="message" class="mb-3 noty_type__'+type+' noty_theme__backstrap"><div class="p-3">'+data.message+'</div></div>')
+                        removeBtn()
                     },
+                    error: function(data) {
+                        $('#saveActions').prepend('<div id="message" class="mb-3 noty_type__error noty_theme__backstrap"><div class="p-3">{{ __('Une erreur est survenue') }}</div></div>')
+                        removeBtn()
+                    }
                 });
             })
         });
     </script>
+    <style>
+        #message { border-radius: 5px; }
+    </style>
 @endpush
 
 @include('cubist_back::when')