diff --git a/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java b/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java index e79b53b..f1fd746 100644 --- a/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java +++ b/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java @@ -87,7 +87,7 @@ public class SnapAdmin { private boolean authenticated; - private static final String VERSION = "0.1.9"; + private static final String VERSION = "0.2.0"; /** * Builds the SnapAdmin instance by scanning the `@Entity` beans and loading diff --git a/src/main/java/tech/ailef/snapadmin/external/controller/SnapAdminController.java b/src/main/java/tech/ailef/snapadmin/external/controller/SnapAdminController.java index d3ba6c5..02d126e 100644 --- a/src/main/java/tech/ailef/snapadmin/external/controller/SnapAdminController.java +++ b/src/main/java/tech/ailef/snapadmin/external/controller/SnapAdminController.java @@ -75,7 +75,6 @@ import tech.ailef.snapadmin.external.misc.Utils; import tech.ailef.snapadmin.internal.model.ConsoleQuery; import tech.ailef.snapadmin.internal.model.UserAction; import tech.ailef.snapadmin.internal.model.UserSetting; -import tech.ailef.snapadmin.internal.repository.ConsoleQueryRepository; import tech.ailef.snapadmin.internal.service.ConsoleQueryService; import tech.ailef.snapadmin.internal.service.UserActionService; import tech.ailef.snapadmin.internal.service.UserSettingsService; @@ -100,9 +99,6 @@ public class SnapAdminController { @Autowired private UserActionService userActionService; - @Autowired - private ConsoleQueryRepository consoleQueryRepository; - @Autowired private ConsoleQueryService consoleService; @@ -581,7 +577,7 @@ public class SnapAdminController { throw new SnapAdminException("SQL console not enabled"); } - List tabs = consoleQueryRepository.findAll(); + List tabs = consoleService.findAll(); if (tabs.isEmpty()) { ConsoleQuery q = new ConsoleQuery(); @@ -597,8 +593,7 @@ public class SnapAdminController { if (!properties.isSqlConsoleEnabled()) { throw new SnapAdminException("SQL console not enabled"); } - - consoleQueryRepository.deleteById(queryId); + consoleService.delete(queryId); return "redirect:/" + properties.getBaseUrl() + "/console"; } @@ -617,7 +612,7 @@ public class SnapAdminController { throw new SnapAdminException("SQL console not enabled"); } - ConsoleQuery activeQuery = consoleQueryRepository.findById(queryId).orElseThrow(() -> { + ConsoleQuery activeQuery = consoleService.findById(queryId).orElseThrow(() -> { return new SnapAdminNotFoundException("Query with ID " + queryId + " not found."); }); @@ -634,7 +629,7 @@ public class SnapAdminController { model.addAttribute("activePage", "console"); model.addAttribute("activeQuery", activeQuery); - List tabs = consoleQueryRepository.findAll(); + List tabs = consoleService.findAll(); model.addAttribute("tabs", tabs); DbQueryResult results = repository.executeQuery(activeQuery.getSql()); diff --git a/src/main/java/tech/ailef/snapadmin/internal/service/ConsoleQueryService.java b/src/main/java/tech/ailef/snapadmin/internal/service/ConsoleQueryService.java index 48aca40..ec4f41f 100644 --- a/src/main/java/tech/ailef/snapadmin/internal/service/ConsoleQueryService.java +++ b/src/main/java/tech/ailef/snapadmin/internal/service/ConsoleQueryService.java @@ -18,6 +18,9 @@ package tech.ailef.snapadmin.internal.service; +import java.util.List; +import java.util.Optional; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.support.TransactionTemplate; @@ -37,6 +40,19 @@ public class ConsoleQueryService { return internalTransactionTemplate.execute((status) -> { return repo.save(q); }); + } + public void delete(String id) { + internalTransactionTemplate.executeWithoutResult((status) -> { + repo.deleteById(id); + }); + } + + public List findAll() { + return repo.findAll(); + } + + public Optional findById(String id) { + return repo.findById(id); } } diff --git a/src/main/resources/static/snapadmin/js/console.js b/src/main/resources/static/snapadmin/js/console.js index 6e4f787..1a66d16 100644 --- a/src/main/resources/static/snapadmin/js/console.js +++ b/src/main/resources/static/snapadmin/js/console.js @@ -5,4 +5,14 @@ document.addEventListener("DOMContentLoaded", () => { } }); + if (document.querySelector("nav select.page-size") != null) { + document.querySelector("nav select.page-size").addEventListener('change', function(e) { + console.log(e.target.parentElement); + e.target.parentElement.submit(); +// this.parentElement.querySelector("input[name=\"pageSize\"]").value = e.target.value; +// this.parentElement.submit(); + }); + } + + }); \ No newline at end of file diff --git a/src/main/resources/templates/console.html b/src/main/resources/templates/console.html index 3e5b1d7..e348a77 100644 --- a/src/main/resources/templates/console.html +++ b/src/main/resources/templates/console.html @@ -106,7 +106,7 @@