diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index da04c1e392730bd1b3ecf4e3d5bd344dbc604ddb..24243f30bd9fa111a8f555bd39807c194133b30c 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 53365a79efb87662774cd4f270677c46713ccc6b..a9cb8a5c45d0e1574dfaf6bbf2624ae252fcdd71 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 b7055ddc0d241746352ace2d11c9565e4e09f599..84dbe5cb7e4837f9798b73435717c787cc4f03af 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 62be0a988ccd9f33df73bdb9e4b8dcb4ad81ab3b..525315df5612496c67771579fdab1202ad88eb1f 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 0000000000000000000000000000000000000000..db9fd7bdd6add6f1d531ff441ef0a1a8ade18500 --- /dev/null +++ b/src/main/resources/templates/helpers/sendData.ftl @@ -0,0 +1 @@ +${data}