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 historyApiFallback from 'connect-history-api-fallback';
 | 
			
		||||
import { Socket } from 'net';
 | 
			
		||||
import { RequestHandler } from 'serve-static';
 | 
			
		||||
 | 
			
		||||
const logger = _logger('main');
 | 
			
		||||
 | 
			
		||||
@ -101,10 +102,17 @@ let connections: Socket[] = [];
 | 
			
		||||
 | 
			
		||||
        const staticServe = express.static(root);
 | 
			
		||||
 | 
			
		||||
        const indexHtmlFallback: RequestHandler<any> = (req, res, next) => {
 | 
			
		||||
          res.sendFile(path.join(root, 'index.html'));
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        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, () => {
 | 
			
		||||
            logger.info('==> 🌎  Listening on port %s.', bindPort);
 | 
			
		||||
 | 
			
		||||
@ -15,14 +15,22 @@
 | 
			
		||||
///
 | 
			
		||||
 | 
			
		||||
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 { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard';
 | 
			
		||||
import { Authority } from '@shared/models/authority.enum';
 | 
			
		||||
import { GeneralSettingsComponent } from '@modules/home/pages/admin/general-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 { HomeSettingsComponent } from '@home/pages/admin/home-settings.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 { ScadaSymbolData } from '@home/pages/scada-symbol/scada-symbol-editor.models';
 | 
			
		||||
import { MenuId } from '@core/services/menu.models';
 | 
			
		||||
import { catchError } from 'rxjs/operators';
 | 
			
		||||
 | 
			
		||||
export const scadaSymbolResolver: ResolveFn<ScadaSymbolData> =
 | 
			
		||||
  (route: ActivatedRouteSnapshot,
 | 
			
		||||
   state: RouterStateSnapshot,
 | 
			
		||||
   router = inject(Router),
 | 
			
		||||
   imageService = inject(ImageService)) => {
 | 
			
		||||
    const type: ImageResourceType = route.params.type;
 | 
			
		||||
    const key = decodeURIComponent(route.params.key);
 | 
			
		||||
    return forkJoin({
 | 
			
		||||
      imageResource: imageService.getImageInfo(type, 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>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user