@@ -96,6 +96,40 @@ 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.
102+ /// The return is something like this <b>%DeepSee.Time.DayMonthYear</b>
103+ ClassMethod GetCubeMeasuresDataType (Widget , Number , CubeName , Output DataType As %String ) As %Status
104+ {
105+
106+ set st = $$$OK
107+ set dataSource = $piece (Widget .dataSource , " ." , *) // get dataSource type
108+
109+ if (dataSource '= " kpi" ){
110+ if ($FIND (Widget .controls .GetAt (Number ).targetProperty , " [" )){
111+ set tMeasure = $TRANSLATE (Widget .controls .GetAt (Number ).targetProperty , " []" , " " )
112+
113+ set st = ##class (%DeepSee.Utils ).%GetDimensionInfo (CubeName ,tMeasure ,.pDimNo ,.pHierNo ,.pLevelNo ) // get positional info about dimension
114+
115+ Set tMbrInfo = $G ($$$DeepSeeMetaGLVN(" cubes" ,$$$UPPER(CubeName )," mbr#" ,pDimNo ,pHierNo ,pLevelNo ))
116+ set DataType = $LG (tMbrInfo ,6 ) // get data type
117+ 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
120+ }
121+ }else {
122+
123+ set DataType = " "
124+ }
125+ }else {
126+
127+ set DataType = " "
128+ }
129+
130+ return st
131+ }
132+
99133/// Converts relevant parts of %DeepSee.Dashboard.Widget object into %ZEN.proxyObject.
100134ClassMethod WidgetToProxyObject (Widget As %DeepSee .Dashboard .Widget , CubeName As %String ) As %ZEN .proxyObject [ Internal ]
101135{
@@ -253,6 +287,9 @@ ClassMethod WidgetControlToProxyObject(Widget As %DeepSee.Dashboard.Widget, Numb
253287 set obj .label = ##class (%DeepSee.UserPortal.Utils ).%ResolveText (obj .label )
254288 set obj .source = Widget .name
255289
290+ set filterDataType = ..GetCubeMeasuresDataType (Widget ,Number ,CubeName ,.fDataType )
291+ set obj .targetPropertyDataType = fDataType
292+
256293 set :(obj .target =" " ) obj .target = Widget .name
257294
258295 if ($e (obj .value )=" @" ) {
0 commit comments