From 9564f84030c600facbed7e4084abb6531430d7c2 Mon Sep 17 00:00:00 2001 From: Jakcpto <41373877+jakcpto@users.noreply.github.com> Date: Fri, 6 Jun 2025 09:13:52 +0400 Subject: [PATCH 1/3] add prefix to Addons --- MDX2JSON/REST.cls | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/MDX2JSON/REST.cls b/MDX2JSON/REST.cls index 170e603..cc22744 100644 --- a/MDX2JSON/REST.cls +++ b/MDX2JSON/REST.cls @@ -422,7 +422,9 @@ ClassMethod WriteAddons() As %Status { #dim sc As %Status = $$$OK - set app = "/dsw" + set defaultApp = $System.CSP.GetDefaultApp($Namespace) + set prefix = $piece(defaultApp, "/csp", 1) + set app = prefix _ "/dsw" set path = $system.CSP.GetFileName(app _ "/") set path = ##class(%File).NormalizeDirectory(path) set path = ##class(%File).SubDirectoryName(path, "addons", $$$YES) @@ -447,7 +449,9 @@ ClassMethod WriteThemes() As %Status { #dim sc As %Status = $$$OK - set app = "/dsw" + set defaultApp = $System.CSP.GetDefaultApp($Namespace) + set prefix = $piece(defaultApp, "/csp", 1) + set app = prefix _ "/dsw" set path = $system.CSP.GetFileName(app _ "/") set path = ##class(%File).NormalizeDirectory(path) set path = ##class(%File).SubDirectoryName(path, "themes", $$$YES) From 55523daec9f0d7b65197c8524818582449385101 Mon Sep 17 00:00:00 2001 From: Jakcpto Date: Fri, 6 Jun 2025 16:06:08 +0400 Subject: [PATCH 2/3] CurrentApp for Debugging print --- MDX2JSON/REST.cls | 5 ++--- docker-compose.yaml | 13 +++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 docker-compose.yaml diff --git a/MDX2JSON/REST.cls b/MDX2JSON/REST.cls index cc22744..881cc94 100644 --- a/MDX2JSON/REST.cls +++ b/MDX2JSON/REST.cls @@ -123,6 +123,7 @@ ClassMethod Test() As %Status set obj.Parent = ##class(MDX2JSON.Tests).#LastCommit set obj.ParentTS = ##class(MDX2JSON.Tests).#LastCommitTS set obj.DefaultApp = $System.CSP.GetDefaultApp($Namespace) + set obj.CurrentApp = $get(%request.Application) set obj.Mappings = ..GetMappings() if $$$Debug { set obj.Roles = $Roles @@ -154,7 +155,6 @@ ClassMethod saveWidget() As %Status return ##class(MDX2JSON.Utils).AddWidget(widgetData,dashboardData,key) } - /// Get all data sources including "pivot", "kpi", "worksheets","metrics" ClassMethod GetListDataSources(Source) As %Status { @@ -193,7 +193,6 @@ ClassMethod GetListDataSources(Source) As %Status quit tSC } - ClassMethod GetDataSource() As %Status { return ##class(MDX2JSON.Utils).GetDataSource($$$R("DataSource")) @@ -282,7 +281,7 @@ ClassMethod WriteFiltersForDataSource() As %Status return st } -///Execute requests from kpi +/// Execute requests from kpi ClassMethod KPIExecute() As %Status { try{ diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..b811c4f --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,13 @@ +version: '3.8' +services: + iris: + image: intersystemsdc/iris-community:latest + container_name: iris + ports: + - "52773:52773" # Management Portal + - "1972:1972" # SuperServer + volumes: + - ./:/irisdev/app # Примонтировать исходники в контейнер + # environment: + # - ISC_DATA_DIRECTORY=/irisdev/data + command: --check-caps false From 79254da3c444e94309514bd8876d78238499a8ff Mon Sep 17 00:00:00 2001 From: Jakcpto Date: Mon, 9 Jun 2025 21:53:36 +0400 Subject: [PATCH 3/3] Prefix Support for Addons and Themes --- MDX2JSON/REST.cls | 29 +++++++++++++++++++++-------- docker-compose.yaml | 13 ------------- 2 files changed, 21 insertions(+), 21 deletions(-) delete mode 100644 docker-compose.yaml diff --git a/MDX2JSON/REST.cls b/MDX2JSON/REST.cls index 881cc94..a39dae3 100644 --- a/MDX2JSON/REST.cls +++ b/MDX2JSON/REST.cls @@ -123,7 +123,6 @@ ClassMethod Test() As %Status set obj.Parent = ##class(MDX2JSON.Tests).#LastCommit set obj.ParentTS = ##class(MDX2JSON.Tests).#LastCommitTS set obj.DefaultApp = $System.CSP.GetDefaultApp($Namespace) - set obj.CurrentApp = $get(%request.Application) set obj.Mappings = ..GetMappings() if $$$Debug { set obj.Roles = $Roles @@ -155,6 +154,7 @@ ClassMethod saveWidget() As %Status return ##class(MDX2JSON.Utils).AddWidget(widgetData,dashboardData,key) } + /// Get all data sources including "pivot", "kpi", "worksheets","metrics" ClassMethod GetListDataSources(Source) As %Status { @@ -193,6 +193,7 @@ ClassMethod GetListDataSources(Source) As %Status quit tSC } + ClassMethod GetDataSource() As %Status { return ##class(MDX2JSON.Utils).GetDataSource($$$R("DataSource")) @@ -281,7 +282,7 @@ ClassMethod WriteFiltersForDataSource() As %Status return st } -/// Execute requests from kpi +///Execute requests from kpi ClassMethod KPIExecute() As %Status { try{ @@ -420,14 +421,20 @@ ClassMethod WritePivotVariablesForCube(Cube As %String) As %Status ClassMethod WriteAddons() As %Status { #dim sc As %Status = $$$OK - - set defaultApp = $System.CSP.GetDefaultApp($Namespace) - set prefix = $piece(defaultApp, "/csp", 1) + + set currentApp = $ZConvert($Get(%request.CgiEnvs("SCRIPT_NAME"), ""), "L") + set prefix = $piece(currentApp, "/mdx2json", 1) set app = prefix _ "/dsw" set path = $system.CSP.GetFileName(app _ "/") set path = ##class(%File).NormalizeDirectory(path) set path = ##class(%File).SubDirectoryName(path, "addons", $$$YES) set url = app _ "/addons/" + + // Check if path exists + if '##class(%File).Exists(path) { + set sc = $$$ERROR($$$GeneralError, "Addons directory does not exist: "_path_". Probably different prefixes for MDX2JSON and DSW applications.") + quit sc + } #dim rs As %SQL.ClassQueryResultSet = ##class(%File).FileSetFunc(path, "*.js") @@ -448,14 +455,20 @@ ClassMethod WriteThemes() As %Status { #dim sc As %Status = $$$OK - set defaultApp = $System.CSP.GetDefaultApp($Namespace) - set prefix = $piece(defaultApp, "/csp", 1) + set currentApp = $ZConvert($Get(%request.CgiEnvs("SCRIPT_NAME"), ""), "L") + set prefix = $piece(currentApp, "/mdx2json", 1) set app = prefix _ "/dsw" set path = $system.CSP.GetFileName(app _ "/") set path = ##class(%File).NormalizeDirectory(path) set path = ##class(%File).SubDirectoryName(path, "themes", $$$YES) set url = app _ "/themes/" + // Check if path exists + if '##class(%File).Exists(path) { + set sc = $$$ERROR($$$GeneralError, "Themes directory does not exist: "_path_". Probably different prefixes for MDX2JSON and DSW applications.") + quit sc + } + #dim rs As %SQL.ClassQueryResultSet = ##class(%File).FileSetFunc(path, "*.css") set list = $$$NewDynDTList @@ -477,4 +490,4 @@ ClassMethod WriteJSONfromKPI() As %Status [ CodeMode = objectgenerator ] do %code.Write(base) } -} +} \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index b811c4f..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3.8' -services: - iris: - image: intersystemsdc/iris-community:latest - container_name: iris - ports: - - "52773:52773" # Management Portal - - "1972:1972" # SuperServer - volumes: - - ./:/irisdev/app # Примонтировать исходники в контейнер - # environment: - # - ISC_DATA_DIRECTORY=/irisdev/data - command: --check-caps false