From a91fa10f703fbcf9b758ced4e1c492ed1ab3815f Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Tue, 22 Dec 2020 11:33:02 +0100 Subject: [PATCH] #562 - button to test remote connection now shows toast on success or error --- .../settings/SettingsController.java | 24 +++++++++++++++---- .../resources/languages/base_de.properties | 2 ++ .../resources/languages/base_en.properties | 2 ++ src/main/resources/static/js/settings.js | 11 +++++---- .../resources/templates/helpers/sendData.ftl | 1 + 5 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/templates/helpers/sendData.ftl diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index da04c1e39..24243f30b 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -1,10 +1,14 @@ package de.deadlocker8.budgetmaster.settings; +import com.google.gson.JsonObject; import de.deadlocker8.budgetmaster.Build; import de.deadlocker8.budgetmaster.accounts.AccountService; import de.deadlocker8.budgetmaster.authentication.User; import de.deadlocker8.budgetmaster.authentication.UserRepository; -import de.deadlocker8.budgetmaster.backup.*; +import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy; +import de.deadlocker8.budgetmaster.backup.AutoBackupTime; +import de.deadlocker8.budgetmaster.backup.BackupService; +import de.deadlocker8.budgetmaster.backup.GitHelper; import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.controller.BaseController; @@ -12,7 +16,6 @@ import de.deadlocker8.budgetmaster.database.Database; import de.deadlocker8.budgetmaster.database.DatabaseParser; import de.deadlocker8.budgetmaster.database.DatabaseService; import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList; -import de.deadlocker8.budgetmaster.backup.BackupService; import de.deadlocker8.budgetmaster.services.ImportService; import de.deadlocker8.budgetmaster.update.BudgetMasterUpdateService; import de.deadlocker8.budgetmaster.utils.LanguageType; @@ -361,14 +364,25 @@ public class SettingsController extends BaseController } @PostMapping("/git/test") - public String testGit(@RequestParam(value = "autoBackupGitUrl") String autoBackupGitUrl, + public String testGit(Model model, + @RequestParam(value = "autoBackupGitUrl") String autoBackupGitUrl, @RequestParam(value = "autoBackupGitUserName") String autoBackupGitUserName, @RequestParam(value = "autoBackupGitPassword") String autoBackupGitPassword) { final CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(autoBackupGitUserName, autoBackupGitPassword); final boolean isValidConnection = GitHelper.checkConnection(autoBackupGitUrl, credentialsProvider); - // TODO: return isValidConnection or json - return "1234"; + String localizedMessage = Localization.getString("settings.backup.auto.git.test.fail"); + if(isValidConnection) + { + localizedMessage = Localization.getString("settings.backup.auto.git.test.success"); + } + + final JsonObject data = new JsonObject(); + data.addProperty("isValidConnection", isValidConnection); + data.addProperty("localizedMessage", localizedMessage); + + model.addAttribute("data", data.toString()); + return "helpers/sendData"; } } \ No newline at end of file diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index 53365a79e..a9cb8a5c4 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -212,6 +212,8 @@ settings.backup.auto.git.url=Adresse des Git-Servers settings.backup.auto.git.user.name=Git Nutzername settings.backup.auto.git.password=Git Passwort settings.backup.auto.git.test=Verbindung testen +settings.backup.auto.git.test.success=Verbindung erfolgreich! +settings.backup.auto.git.test.fail=Verbindung fehlgeschlagen! settings.database.import=Importieren settings.database.export=Exportieren diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index b7055ddc0..84dbe5cb7 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -212,6 +212,8 @@ settings.backup.auto.git.url=Git server address settings.backup.auto.git.user.name=Git user name settings.backup.auto.git.password=Git password settings.backup.auto.git.test=Test connection +settings.backup.auto.git.test.success=Connection successful! +settings.backup.auto.git.test.fail=Connection failed! settings.database.import=Import settings.database.export=Export diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js index 62be0a988..525315df5 100644 --- a/src/main/resources/static/js/settings.js +++ b/src/main/resources/static/js/settings.js @@ -35,11 +35,12 @@ $(document).ready(function() }, success: function(data) { - M.toast({html: data}); - }, - error: function(data) - { - console.log(data); + let parsedData = JSON.parse(data); + let isValidConnection = parsedData['isValidConnection'] + M.toast({ + html: parsedData['localizedMessage'], + classes: isValidConnection ? 'green': 'red' + }); } }); }); diff --git a/src/main/resources/templates/helpers/sendData.ftl b/src/main/resources/templates/helpers/sendData.ftl new file mode 100644 index 000000000..db9fd7bdd --- /dev/null +++ b/src/main/resources/templates/helpers/sendData.ftl @@ -0,0 +1 @@ +${data} -- GitLab