Compare commits

...

2 Commits

Author SHA1 Message Date
8139f495ce style: lint
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 4m4s
Build / Build-and-test-development (pull_request) Successful in 8m33s
2025-06-06 12:06:10 +02:00
89ab296151 fix: viya streamed app deploy page flow fix 2025-06-06 12:05:52 +02:00
2 changed files with 31 additions and 7 deletions

View File

@ -8,6 +8,7 @@ import {
} from '@angular/core' } from '@angular/core'
import SASjs, { SASjsConfig } from '@sasjs/adapter' import SASjs, { SASjsConfig } from '@sasjs/adapter'
import { DcAdapterSettings } from 'src/app/models/DcAdapterSettings' import { DcAdapterSettings } from 'src/app/models/DcAdapterSettings'
import { HelperService } from 'src/app/services'
import { DeployService } from 'src/app/services/deploy.service' import { DeployService } from 'src/app/services/deploy.service'
import { EventService } from 'src/app/services/event.service' import { EventService } from 'src/app/services/event.service'
import { LoggerService } from 'src/app/services/logger.service' import { LoggerService } from 'src/app/services/logger.service'
@ -82,7 +83,8 @@ export class AutomaticComponent implements OnInit {
private deployService: DeployService, private deployService: DeployService,
private sasService: SasService, private sasService: SasService,
private sasViyaService: SasViyaService, private sasViyaService: SasViyaService,
private loggerService: LoggerService private loggerService: LoggerService,
private helperService: HelperService
) {} ) {}
ngOnInit(): void { ngOnInit(): void {
@ -325,7 +327,8 @@ export class AutomaticComponent implements OnInit {
}) })
} }
this.updateIndexHtmlComputeContext() if (this.helperService.isStreamingViya())
this.updateIndexHtmlComputeContext()
}) })
.catch((err: any) => { .catch((err: any) => {
this.eventService.showAbortModal('makedata', JSON.stringify(err)) this.eventService.showAbortModal('makedata', JSON.stringify(err))
@ -341,14 +344,20 @@ export class AutomaticComponent implements OnInit {
} }
/** /**
* Only when on Viya, this method will update the `contextname` in the `DataController.html` on the SAS drive * Only when on Viya streamed app, this method will update the `contextname` in the `index.html` on the SAS drive
* This is needed to ensure that the DC will use the same compute context `makedata` service used to run against. * This is needed to ensure that the DC will use the same compute context `makedata` service used to run against.
*/ */
public async updateIndexHtmlComputeContext() { public async updateIndexHtmlComputeContext() {
const filenamePath = location.search.split('/').pop() const filenamePath = location.search.split('/').pop()
const filename = filenamePath?.includes('.') const filename = filenamePath?.includes('.') ? filenamePath : undefined
? filenamePath
: 'DataController.html' if (!filename) {
this.eventService.showAbortModal(
null,
'We could not figure out the file name of `index.html` based on the url.'
)
return
}
const indexHtmlContent = await this.sasService.getFileContent( const indexHtmlContent = await this.sasService.getFileContent(
`${this.appLoc}/services`, `${this.appLoc}/services`,

View File

@ -1,6 +1,7 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import cloneDeep from 'lodash-es/cloneDeep' import cloneDeep from 'lodash-es/cloneDeep'
import * as CryptoMD5 from 'crypto-js/md5' import * as CryptoMD5 from 'crypto-js/md5'
import { SasService } from './sas.service'
const librariesToShow = 50 const librariesToShow = 50
@ -12,7 +13,7 @@ export class HelperService {
public loadMoreCount: number = librariesToShow public loadMoreCount: number = librariesToShow
public isMicrosoft: boolean = false public isMicrosoft: boolean = false
constructor() { constructor(private sasService: SasService) {
this.isMicrosoft = this.isIEorEDGE() this.isMicrosoft = this.isIEorEDGE()
console.log('Is IE or Edge?', this.isMicrosoft) console.log('Is IE or Edge?', this.isMicrosoft)
} }
@ -314,6 +315,20 @@ export class HelperService {
} }
} }
public isStreamingViya(): boolean {
const serverType = this.sasService.getServerType()
if (serverType !== 'SASVIYA') return false
if (
location.search.includes('?_file=') &&
location.pathname.includes('/SASJobExecution')
)
return true
return false
}
// Required type is NodeJS.Timeout // Required type is NodeJS.Timeout
// But NodeJS is not available in browser so we have to go with any // But NodeJS is not available in browser so we have to go with any
private debounceTimeout: any private debounceTimeout: any