From 7f1fd284389eab04b6fb1f21abb722b702b8e8db Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 20 Apr 2020 14:25:59 +0200 Subject: [PATCH] openvidu-server: generic frontend resource handler (usable for CE and PRO) --- openvidu-server/src/dashboard/package.json | 2 +- .../server/config/OpenviduConfig.java | 2 +- .../service/ComposedRecordingService.java | 2 +- ...dler.java => FrontendResourceHandler.java} | 20 +++++++++++++++---- 4 files changed, 19 insertions(+), 7 deletions(-) rename openvidu-server/src/main/java/io/openvidu/server/resources/{DashboardResourceHandler.java => FrontendResourceHandler.java} (59%) diff --git a/openvidu-server/src/dashboard/package.json b/openvidu-server/src/dashboard/package.json index d9f933d3..8a2ef20f 100644 --- a/openvidu-server/src/dashboard/package.json +++ b/openvidu-server/src/dashboard/package.json @@ -43,7 +43,7 @@ "private": true, "scripts": { "build": "./node_modules/@angular/cli/bin/ng build --base-href /dashboard/ --output-path ../main/resources/static/dashboard", - "build-prod": "./node_modules/@angular/cli/bin/ng build --base-href /dashboard/ --prod --output-path ../main/resources/static/dashboard", + "build-prod": "./node_modules/@angular/cli/bin/ng build --prod --base-href /dashboard/ --output-path ../main/resources/static/dashboard", "e2e": "ng e2e", "lint": "ng lint", "ng": "ng", diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java index 6ea4fa61..ee90d7bf 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java @@ -352,7 +352,7 @@ public class OpenviduConfig { return !"/opt/openvidu/custom-layout".equals(path); } - public String getOpenViduRecordingDefaultLayoutsPath() { + public String getOpenViduFrontendDefaultPath() { return "dashboard"; } diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java index 2c2b10b4..a55cc1f4 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java @@ -539,7 +539,7 @@ public class ComposedRecordingService extends RecordingService { log.error(e.getMessage()); } String defaultPathForDefaultLayout = recordingComposedUrlDefined ? "" - : ("/" + openviduConfig.getOpenViduRecordingDefaultLayoutsPath()); + : ("/" + openviduConfig.getOpenViduFrontendDefaultPath()); finalUrl = (startsWithHttp ? "http" : "https") + "://OPENVIDUAPP:" + secret + "@" + recordingUrl + defaultPathForDefaultLayout + "/#/layout-" + layout + "/" + recording.getSessionId() + "/" + secret + "/" + port + "/" + !recording.hasAudio(); diff --git a/openvidu-server/src/main/java/io/openvidu/server/resources/DashboardResourceHandler.java b/openvidu-server/src/main/java/io/openvidu/server/resources/FrontendResourceHandler.java similarity index 59% rename from openvidu-server/src/main/java/io/openvidu/server/resources/DashboardResourceHandler.java rename to openvidu-server/src/main/java/io/openvidu/server/resources/FrontendResourceHandler.java index 73bf16b5..076b4c86 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/resources/DashboardResourceHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/resources/FrontendResourceHandler.java @@ -17,23 +17,35 @@ package io.openvidu.server.resources; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import io.openvidu.server.config.OpenviduConfig; + /** * This class changes the path where static files are served from / to - * /dashboard. Entrypoint file index.html must have tag + * /NEW_FRONTEND_PATH. Entrypoint file index.html must have tag + * + * + * By default in OpenVidu CE this path is /dashbaord and in OpenVidu PRO is + * /inspector * * @author Pablo Fuente (pablofuenteperez@gmail.com) */ @Configuration -public class DashboardResourceHandler extends WebMvcConfigurerAdapter { +public class FrontendResourceHandler extends WebMvcConfigurerAdapter { + + @Autowired + OpenviduConfig openviduConfig; @Override public void addViewControllers(ViewControllerRegistry registry) { - registry.addViewController("/dashboard").setViewName("redirect:/dashboard/"); - registry.addViewController("/dashboard/").setViewName("forward:/dashboard/index.html"); + registry.addViewController("/" + openviduConfig.getOpenViduFrontendDefaultPath()) + .setViewName("redirect:/" + openviduConfig.getOpenViduFrontendDefaultPath() + "/"); + registry.addViewController("/" + openviduConfig.getOpenViduFrontendDefaultPath() + "/") + .setViewName("forward:/" + openviduConfig.getOpenViduFrontendDefaultPath() + "/index.html"); super.addViewControllers(registry); }