diff --git a/core/src/main/java/ru/kirillius/pf/sdn/core/AppUpdateService.java b/core/src/main/java/ru/kirillius/pf/sdn/core/AppUpdateService.java index 27910a6..3a01404 100644 --- a/core/src/main/java/ru/kirillius/pf/sdn/core/AppUpdateService.java +++ b/core/src/main/java/ru/kirillius/pf/sdn/core/AppUpdateService.java @@ -50,7 +50,7 @@ public class AppUpdateService extends AppService { this.appLibraryPath = context.getLauncherConfig().getAppLibrary().toPath(); this.anchorClass = context.getClass(); this.httpClient = HttpClient.newBuilder() - .followRedirects(HttpClient.Redirect.NORMAL) + .followRedirects(HttpClient.Redirect.ALWAYS) .connectTimeout(Duration.ofSeconds(10)) .build(); } diff --git a/webui/src/modules/router.js b/webui/src/modules/router.js index 4c4443f..0b6ad9f 100644 --- a/webui/src/modules/router.js +++ b/webui/src/modules/router.js @@ -17,6 +17,7 @@ import { LogsPage } from '../pages/Logs.js'; import { NetworkResourcesPage } from '../pages/NetworkResources.js'; import { UnlockSitePage } from '../pages/UnlockSite.js'; import { LocalStoragesPage } from '../pages/LocalStorages.js'; +import { RestartPage } from '../pages/Restart.js'; // Переменная для отслеживания текущего активного хеша (для корректного unmount) @@ -118,6 +119,11 @@ const routes = { render: LocalStoragesPage.render, mount: LocalStoragesPage.mount, unmount: LocalStoragesPage.unmount + }, + '#restart': { + render: RestartPage.render, + mount: RestartPage.mount, + unmount: RestartPage.unmount } }; diff --git a/webui/src/pages/Restart.js b/webui/src/pages/Restart.js new file mode 100644 index 0000000..73e6a97 --- /dev/null +++ b/webui/src/pages/Restart.js @@ -0,0 +1,28 @@ +import $ from 'jquery'; +import { JSONRPC } from '@/json-rpc.js'; + +const REDIRECT_DELAY = 10000; + +function mountRestartPage() { + $('#sidebar').hide(); + + JSONRPC.System.restart().finally(() => { + setTimeout(() => { + window.location.href = '/'; + }, REDIRECT_DELAY); + }); +} + +export const RestartPage = { + render: () => ` +