Skip to content

Commit 39aa456

Browse files
committed
Added workaround for amount of requested filters
1 parent 546c31f commit 39aa456

File tree

3 files changed

+301
-32
lines changed

3 files changed

+301
-32
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
sc-list.txt
22
.vscode/settings.json
3+
.iris_init
4+
docker-compose.yml
5+
Dockerfile
6+
iris.script
7+
merge.cpf

MDX2JSON/Dashboard.cls

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Class MDX2JSON.Dashboard
77
/// Folder, from which we get Dashboards.
88
Parameter folderName As %String = "Mobile";
99

10-
/// Get SQL for folder, from which we get Dashboards.
10+
/// Get SQL for folder, from which we get Dashboards.
1111
ClassMethod GetDashboardListSQL(folderName As %String = {..#folderName}) As %String
1212
{
1313
set basesql = "SELECT MDX2JSON.ResolveText(title) AS title, fullName AS path, MDX2JSON.GetDashCover(bookCover) AS Cover FROM %DeepSee_Dashboard.Definition "
@@ -53,19 +53,19 @@ ClassMethod ResolveText(Text As %String) As %String [ SqlName = ResolveText, Sql
5353
ClassMethod OpenDashboardByName(DashName As %Integer, Output Dashboard As %DeepSee.Dashboard.Definition) As %Status
5454
{
5555
kill Dashboard
56-
56+
5757
set id = ""
5858
set global = ##class(MDX2JSON.DashboardRS).#global
5959
set dashclass = ##class(MDX2JSON.DashboardRS).#dashclass
6060
for {
6161
set id = $order(@global@(id))
6262
quit:id=""
63-
63+
6464
/// first we check that it's a dashboard (not a pivot, etc.)
6565
set oid = ##class(%DeepSee.UserLibrary.FolderItem).%ComposeOid(id)
6666
do ##class(%DeepSee.UserLibrary.FolderItem).%OnDetermineClass(oid, .class)
6767
CONTINUE:class'=dashclass
68-
68+
6969
/// second we check that it's the one we need
7070
quit:$ZCVT(##class(MDX2JSON.DashboardRS).GetDashFullName(id),"L")=$ZCVT(DashName,"L")
7171
}
@@ -78,7 +78,7 @@ ClassMethod OpenDashboardByName(DashName As %Integer, Output Dashboard As %DeepS
7878
ClassMethod WidgetsToProxyObject(Dashboard As %DeepSee.Dashboard.Definition, Output Widgetlist As %ZEN.proxyObject) As %Status
7979
{
8080
#Dim widget As %DeepSee.Dashboard.Widget
81-
81+
8282
set Widgetlist = $$$NewDynObj
8383
set Widgetlist.children = $$$NewDynObjList
8484
set Widgetlist.displayInfo = ..GetDashboardDisplayInfo(Dashboard)
@@ -96,9 +96,8 @@ ClassMethod WidgetsToProxyObject(Dashboard As %DeepSee.Dashboard.Definition, Out
9696
return st
9797
}
9898

99-
100-
/// A very specific method of displaying the data type for cube measures.
101-
/// Serves for the convenience of front-end development of the filter widget.
99+
/// A very specific method of displaying the data type for cube measures.
100+
/// Serves for the convenience of front-end development of the filter widget.
102101
/// The return is something like this <b>%DeepSee.Time.DayMonthYear</b>
103102
ClassMethod GetCubeMeasuresDataType(Widget, Number, CubeName, Output DataType As %String) As %Status
104103
{
@@ -115,8 +114,8 @@ ClassMethod GetCubeMeasuresDataType(Widget, Number, CubeName, Output DataType As
115114
Set tMbrInfo = $G($$$DeepSeeMetaGLVN("cubes",$$$UPPER(CubeName),"mbr#",pDimNo,pHierNo,pLevelNo))
116115
set DataType = $LG(tMbrInfo,6) // get data type
117116
if '($FIND(DataType, "%")){ // if DataType return cube fact search for dataType in "star"
118-
Set tMbrInfo = $G($$$DeepSeeMetaGLVN("cubes", $$$UPPER(CubeName), "star", DataType, "prop", $LG(tMbrInfo,7), "type"))
119-
set DataType = tMbrInfo
117+
Set tMbrInfo = $G($$$DeepSeeMetaGLVN("cubes", $$$UPPER(CubeName), "star", DataType, "prop", $LG(tMbrInfo,7), "type"))
118+
set DataType = tMbrInfo
120119
}
121120
}else{
122121

@@ -146,22 +145,22 @@ ClassMethod WidgetToProxyObject(Widget As %DeepSee.Dashboard.Widget, CubeName As
146145
set basemdx = ""
147146
set obj.dataLink = Widget.dataLink
148147
}
149-
148+
150149
// datasource is a kpi
151150
if $piece(Widget.dataSource, ".", *) = "kpi" {
152151
set kpiClass = ##class(%DeepSee.Utils).%GetKPIClass(Widget.dataSource)
153152
set obj.kpitype = $classmethod(kpiClass, "%GetSourceType")
154153
set obj.kpiclass = kpiClass // showing kpi class for implementing context menu button for kpi
155-
154+
156155
}
157-
156+
158157
// Widget is a portlet
159158
if Widget.type = "portlet" {
160159
set portletClass = Widget.subtypeClass
161160
set:portletClass="" portletClass = Widget.subtype
162161
set obj.settings = ..PortletSettingsToArray(portletClass)
163162
}
164-
163+
165164
set obj.mdx = $g(mdx)
166165
set obj.name = Widget.name
167166
set obj.basemdx = $g(basemdx)
@@ -181,7 +180,7 @@ ClassMethod WidgetToProxyObject(Widget As %DeepSee.Dashboard.Widget, CubeName As
181180
$$$Insert(obj.controls,control)
182181
}
183182
}
184-
183+
185184
for i=1:1:Widget.dataProperties.Count()
186185
{
187186
set widgetData = Widget.dataProperties.GetAt(i)
@@ -205,7 +204,7 @@ ClassMethod WidgetToProxyObject(Widget As %DeepSee.Dashboard.Widget, CubeName As
205204
do:(key'="") obj.properties.%DispatchSetProperty(key,property)
206205
} while key'=""
207206
}
208-
207+
209208
if Widget.overrides.Count()>0 {
210209
set obj.overrides = $$$NewDynObjList
211210
do {
@@ -269,11 +268,11 @@ ClassMethod ProcesstextMeter(Widget As %DeepSee.Dashboard.Widget, Obj As %ZEN.pr
269268
{
270269
set dataProperty = $$$NewDynObj
271270
if (Widget.dataProperties.GetAt(i)) // check if widget have dataProperties
272-
{
271+
{
273272
set widgetData = Widget.dataProperties.GetAt(i)
274273
set dataProperty = ..WidgetDataPropertyToProxyObject(widgetData)
275-
if $IsObject(dataProperty)
276-
{
274+
if $IsObject(dataProperty)
275+
{
277276
$$$Insert(Obj.dataProperties,dataProperty)
278277
}
279278

@@ -296,7 +295,7 @@ ClassMethod WidgetControlToProxyObject(Widget As %DeepSee.Dashboard.Widget, Numb
296295
{
297296
set obj.targetPropertyDataType = fDataType
298297
}
299-
298+
300299
set:(obj.target="") obj.target = Widget.name
301300

302301
if ($e(obj.value)="@") {
@@ -355,7 +354,7 @@ ClassMethod GetMdx(pPivotName As %String, Output MDX, Output BaseMDX) As %Status
355354
/// Returns list of %ZEN.proxyObject:<br/>
356355
ClassMethod GetMembersForFilter(DataSource As %String, Filter As %String) As %ListOfObjects
357356
{
358-
set st = ##class(%DeepSee.Dashboard.Utils).%GetMembersForFilter(DataSource,Filter,.tMembers,.tDefaultFilterValue,,.tRelatedFilters,0,,.tValueList)
357+
set st = ##class(MDX2JSON.DashboardUtils).%GetMembersForFilter(DataSource,Filter,.tMembers,.tDefaultFilterValue,,.tRelatedFilters,0,,.tValueList)
359358
set members = $$$NewDynObjList
360359

361360
set key = $order(tMembers(""))
@@ -411,7 +410,7 @@ ClassMethod GetDashboardInfo(Dashboard As %DeepSee.Dashboard.Definition) As %ZEN
411410
ClassMethod GetWidgetCube(Dashboard As %DeepSee.Dashboard.Definition, WidgetNumber As %Integer) As %String
412411
{
413412
set datasource = ..DetermineWidgetDataSource(Dashboard, WidgetNumber)
414-
413+
415414
if ##class(%DeepSee.UserLibrary.Utils).%FolderItemExists(datasource,.id) {
416415
set cube = ##class(%DeepSee.Dashboard.Pivot).cubeNameGetStored(id)
417416
} else {
@@ -431,14 +430,14 @@ ClassMethod DetermineWidgetDataSource(Dashboard As %DeepSee.Dashboard.Definition
431430
{
432431
set datasource = Dashboard.widgets.GetAt(WidgetNumber).dataSource
433432
return:datasource'="" datasource
434-
433+
435434
set datalink = Dashboard.widgets.GetAt(WidgetNumber).dataLink
436435
return:datalink="" ""
437436
set WidgetNumber = ..GetWidgetNumberByName(Dashboard, datalink)
438437
return ..DetermineWidgetDataSource(Dashboard, WidgetNumber)
439438
}
440439

441-
/// Determines position of a widget in dashboard's widget list.
440+
/// Determines position of a widget in dashboard's widget list.
442441
ClassMethod GetWidgetNumberByName(Dashboard As %DeepSee.Dashboard.Definition, WidgetName As %String) As %Integer
443442
{
444443
for i=1:1:Dashboard.widgets.Count() {
@@ -456,29 +455,29 @@ ClassMethod GetWidgetNumberByName(Dashboard As %DeepSee.Dashboard.Definition, Wi
456455
/// The type can be: "%Integer", "%Boolean", or "ENUM^caption1:value1,caption2:value2".<br/>
457456
/// <var>caption</var> is the localized caption of the setting.<br/>
458457
/// <var>title</var> is an optional tooltip displayed for the setting.<br/>
459-
/// Custom portlet settings can be controlled using the SETTINGS=PORTLET parameter in the
460-
/// dashboard URL
458+
/// Custom portlet settings can be controlled using the SETTINGS=PORTLET parameter in the
459+
/// dashboard URL
461460
/// set list = ##class(MDX2JSON.Dashboard).KPISettongsToArray("DeepSee.Model.PortletDemo.ClockPortlet")
462461
ClassMethod PortletSettingsToArray(Class As %Dictionary.CacheClassname) As %ListOfObjects
463462
{
464463
do $classmethod(Class, "%OnGetPortletSettings", .info)
465464
set list = $$$NewDynObjList
466-
465+
467466
set key = $o(info(""))
468467
while key'="" {
469468
set settingInfo = info(key)
470-
469+
471470
set setting = $$$NewDynObj
472471
set setting.name = $lg(settingInfo, 1)
473472
set setting.value = $lg(settingInfo, 2)
474473
set setting.type = $lg(settingInfo, 3)
475474
set setting.caption = $lg(settingInfo, 4)
476475
set setting.title = $lg(settingInfo, 5)
477-
478-
$$$Insert(list, setting)
479-
set key = $o(info(key))
476+
477+
$$$Insert(list, setting)
478+
set key = $o(info(key))
480479
}
481-
480+
482481
return list
483482
}
484483

0 commit comments

Comments
 (0)