Web UI: Strict html index fallback. Fix scadaSymbolResolver -> api handle error and navigate to scada symbols.
This commit is contained in:
parent
5f0af1de15
commit
4f0801ecb0
@ -23,6 +23,7 @@ import httpProxy from 'http-proxy';
|
|||||||
import compression from 'compression';
|
import compression from 'compression';
|
||||||
import historyApiFallback from 'connect-history-api-fallback';
|
import historyApiFallback from 'connect-history-api-fallback';
|
||||||
import { Socket } from 'net';
|
import { Socket } from 'net';
|
||||||
|
import { RequestHandler } from 'serve-static';
|
||||||
|
|
||||||
const logger = _logger('main');
|
const logger = _logger('main');
|
||||||
|
|
||||||
@ -101,10 +102,17 @@ let connections: Socket[] = [];
|
|||||||
|
|
||||||
const staticServe = express.static(root);
|
const staticServe = express.static(root);
|
||||||
|
|
||||||
|
const indexHtmlFallback: RequestHandler<any> = (req, res, next) => {
|
||||||
|
res.sendFile(path.join(root, 'index.html'));
|
||||||
|
};
|
||||||
|
|
||||||
app.use(staticServe);
|
app.use(staticServe);
|
||||||
app.use((req, res, next) => {
|
|
||||||
res.sendFile(path.join(root, 'index.html'));
|
const indexHtmlFallbackPaths = [
|
||||||
});
|
/^\/resources\/scada-symbols\/(?:system|tenant)\/[^/]+$/
|
||||||
|
];
|
||||||
|
|
||||||
|
app.use(indexHtmlFallbackPaths, indexHtmlFallback);
|
||||||
|
|
||||||
server.listen(bindPort, bindAddress, () => {
|
server.listen(bindPort, bindAddress, () => {
|
||||||
logger.info('==> 🌎 Listening on port %s.', bindPort);
|
logger.info('==> 🌎 Listening on port %s.', bindPort);
|
||||||
|
|||||||
@ -15,14 +15,22 @@
|
|||||||
///
|
///
|
||||||
|
|
||||||
import { inject, NgModule } from '@angular/core';
|
import { inject, NgModule } from '@angular/core';
|
||||||
import { ActivatedRouteSnapshot, Resolve, ResolveFn, RouterModule, RouterStateSnapshot, Routes } from '@angular/router';
|
import {
|
||||||
|
ActivatedRouteSnapshot,
|
||||||
|
Resolve,
|
||||||
|
ResolveFn,
|
||||||
|
Router,
|
||||||
|
RouterModule,
|
||||||
|
RouterStateSnapshot,
|
||||||
|
Routes
|
||||||
|
} from '@angular/router';
|
||||||
|
|
||||||
import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component';
|
import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component';
|
||||||
import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard';
|
import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard';
|
||||||
import { Authority } from '@shared/models/authority.enum';
|
import { Authority } from '@shared/models/authority.enum';
|
||||||
import { GeneralSettingsComponent } from '@modules/home/pages/admin/general-settings.component';
|
import { GeneralSettingsComponent } from '@modules/home/pages/admin/general-settings.component';
|
||||||
import { SecuritySettingsComponent } from '@modules/home/pages/admin/security-settings.component';
|
import { SecuritySettingsComponent } from '@modules/home/pages/admin/security-settings.component';
|
||||||
import { forkJoin } from 'rxjs';
|
import { forkJoin, of } from 'rxjs';
|
||||||
import { SmsProviderComponent } from '@home/pages/admin/sms-provider.component';
|
import { SmsProviderComponent } from '@home/pages/admin/sms-provider.component';
|
||||||
import { HomeSettingsComponent } from '@home/pages/admin/home-settings.component';
|
import { HomeSettingsComponent } from '@home/pages/admin/home-settings.component';
|
||||||
import { EntitiesTableComponent } from '@home/components/entity/entities-table.component';
|
import { EntitiesTableComponent } from '@home/components/entity/entities-table.component';
|
||||||
@ -45,17 +53,24 @@ import { ScadaSymbolComponent } from '@home/pages/scada-symbol/scada-symbol.comp
|
|||||||
import { ImageService } from '@core/http/image.service';
|
import { ImageService } from '@core/http/image.service';
|
||||||
import { ScadaSymbolData } from '@home/pages/scada-symbol/scada-symbol-editor.models';
|
import { ScadaSymbolData } from '@home/pages/scada-symbol/scada-symbol-editor.models';
|
||||||
import { MenuId } from '@core/services/menu.models';
|
import { MenuId } from '@core/services/menu.models';
|
||||||
|
import { catchError } from 'rxjs/operators';
|
||||||
|
|
||||||
export const scadaSymbolResolver: ResolveFn<ScadaSymbolData> =
|
export const scadaSymbolResolver: ResolveFn<ScadaSymbolData> =
|
||||||
(route: ActivatedRouteSnapshot,
|
(route: ActivatedRouteSnapshot,
|
||||||
state: RouterStateSnapshot,
|
state: RouterStateSnapshot,
|
||||||
|
router = inject(Router),
|
||||||
imageService = inject(ImageService)) => {
|
imageService = inject(ImageService)) => {
|
||||||
const type: ImageResourceType = route.params.type;
|
const type: ImageResourceType = route.params.type;
|
||||||
const key = decodeURIComponent(route.params.key);
|
const key = decodeURIComponent(route.params.key);
|
||||||
return forkJoin({
|
return forkJoin({
|
||||||
imageResource: imageService.getImageInfo(type, key),
|
imageResource: imageService.getImageInfo(type, key),
|
||||||
scadaSymbolContent: imageService.getImageString(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`)
|
scadaSymbolContent: imageService.getImageString(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`)
|
||||||
});
|
}).pipe(
|
||||||
|
catchError(() => {
|
||||||
|
router.navigate(['/resources/scada-symbols']);
|
||||||
|
return of(null);
|
||||||
|
})
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const scadaSymbolBreadcumbLabelFunction: BreadCrumbLabelFunction<ScadaSymbolComponent>
|
export const scadaSymbolBreadcumbLabelFunction: BreadCrumbLabelFunction<ScadaSymbolComponent>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user