@@ -96,6 +96,39 @@ 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 obj = $$$NewDynObj
108+ set st = Widget .controls .GetAt (Number ).%CopyTo (obj ) // copy widget control properties to proxyObj
109+ set dataSource = $piece (Widget .dataSource , " ." , *) // get dataSource type
110+
111+
112+ if (dataSource '= " kpi" ){
113+ if ($FIND (obj .targetProperty , " [" )){
114+ set tMeasure = $TRANSLATE (obj .targetProperty , " []" , " " )
115+
116+ set st = ##class (%DeepSee.Utils ).%GetDimensionInfo (CubeName ,tMeasure ,.pDimNo ,.pHierNo ,.pLevelNo ) // get positional info about dimension
117+
118+ Set tMbrInfo = $G ($$$DeepSeeMetaGLVN(" cubes" ,$$$UPPER(CubeName )," mbr#" ,pDimNo ,pHierNo ,pLevelNo ))
119+ set DataType = $LG (tMbrInfo ,6 ) // get data type
120+ }else {
121+
122+ set DataType = " "
123+ }
124+ }else {
125+
126+ set DataType = " "
127+ }
128+
129+ return st
130+ }
131+
99132/// Converts relevant parts of %DeepSee.Dashboard.Widget object into %ZEN.proxyObject.
100133ClassMethod WidgetToProxyObject (Widget As %DeepSee .Dashboard .Widget , CubeName As %String ) As %ZEN .proxyObject [ Internal ]
101134{
@@ -253,6 +286,9 @@ ClassMethod WidgetControlToProxyObject(Widget As %DeepSee.Dashboard.Widget, Numb
253286 set obj .label = ##class (%DeepSee.UserPortal.Utils ).%ResolveText (obj .label )
254287 set obj .source = Widget .name
255288
289+ set filterDataType = ..GetCubeMeasuresDataType (Widget ,Number ,CubeName ,.fDataType )
290+ set obj .targetPropertyDataType = fDataType
291+
256292 set :(obj .target =" " ) obj .target = Widget .name
257293
258294 if ($e (obj .value )=" @" ) {
0 commit comments