From d2e949e9eb4a950dee82b0a9fd214650aa41fdf5 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Tue, 7 Jan 2025 11:39:28 +0200 Subject: [PATCH] UI: Added correct page refresh in dev mode for scada editor page --- ui-ngx/angular.json | 3 +- ui-ngx/esbuild/tb-html-fallback-middleware.ts | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 ui-ngx/esbuild/tb-html-fallback-middleware.ts diff --git a/ui-ngx/angular.json b/ui-ngx/angular.json index f605bfee8a..8f98a6cf07 100644 --- a/ui-ngx/angular.json +++ b/ui-ngx/angular.json @@ -179,7 +179,8 @@ "builder": "@angular-builders/custom-esbuild:dev-server", "options": { "buildTarget": "thingsboard:build", - "proxyConfig": "proxy.conf.js" + "proxyConfig": "proxy.conf.js", + "middlewares": ["./esbuild/tb-html-fallback-middleware.ts"] }, "configurations": { "production": { diff --git a/ui-ngx/esbuild/tb-html-fallback-middleware.ts b/ui-ngx/esbuild/tb-html-fallback-middleware.ts new file mode 100644 index 0000000000..bcb86823d3 --- /dev/null +++ b/ui-ngx/esbuild/tb-html-fallback-middleware.ts @@ -0,0 +1,32 @@ +/// +/// Copyright © 2016-2024 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import type { ServerResponse } from 'node:http'; +import type { Connect } from 'vite'; +import type { NextHandleFunction } from 'connect'; + +const tbHtmlFallbackMiddleware: NextHandleFunction = ( + req: Connect.IncomingMessage, + _res: ServerResponse, + next: Connect.NextFunction +) => { + if (/^\/resources\/scada-symbols\/(?:system|tenant)\/[^/]+\.svg$/.test(req.url)) { + req.url = '/'; + } + next(); +} + +export default tbHtmlFallbackMiddleware;