2 ================================================================================
4 ================================================================================
5 Copyright (C) 2017 AT&T Intellectual Property
6 ================================================================================
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 ================================================================================
20 <%@ page import="java.util.*" %>
22 <%@ page import="org.openecomp.portalsdk.analytics.xmlobj.*" %>
23 <%@ page import="org.openecomp.portalsdk.analytics.model.*" %>
24 <%@ page import="org.openecomp.portalsdk.analytics.model.definition.*" %>
25 <%@ page import="org.openecomp.portalsdk.analytics.model.runtime.*" %>
26 <%@ page import="org.openecomp.portalsdk.analytics.system.*" %>
27 <%@ page import="org.openecomp.portalsdk.analytics.util.*" %>
29 <% ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
30 List reportCols = rdef.getAllColumns();
31 List rFormFields = null;
32 if(rdef.getFormFieldList()!=null&&rdef.getFormFieldList().getFormField().size()>0)
33 rFormFields = rdef.getFormFieldList().getFormField();
35 ReportFormFields ddReportFormFields = (ReportFormFields) request.getAttribute(AppConstants.RI_FORM_FIELDS);
37 String drillDownSuppress = AppUtils.getRequestNvlValue(request, "drillDownSuppress");
38 String drillDownParams = AppUtils.getRequestNvlValue(request, "drillDownParams");
39 String drillDownRequest = AppUtils.getRequestNvlValue(request, "drillDownRequest");
41 Hashtable paramDefinitions = new Hashtable();
42 StringTokenizer st = new StringTokenizer(drillDownParams, "&");
43 //Added for passing request parameters in Drill Down
44 String[] reqParameters = Globals.getRequestParams().split(",");
47 while(st.hasMoreTokens()) {
48 String param = st.nextToken();
49 DrillDownParamDef paramDef = new DrillDownParamDef(param);
50 if(paramDef.getFieldName().length()>0)
51 paramDefinitions.put(paramDef.getFieldName(), paramDef);
57 <title>Drill-down Parameters Configuration</title>
58 <link rel="stylesheet" type="text/css" href="<%= AppUtils.getBaseFolderURL() %>css/raptor.css">
60 <script language="JavaScript">
62 var bCloseWindow = false;
64 function setParams(newParams) {
65 var suppressValue = document.dataform.v_suppress.value;
67 if(document.dataform.showInPopup.checked)
69 window.opener.document.forma.drillDownPopUp.value = showInPopup;
70 window.opener.setDrillDownValuesSuppress(newParams, suppressValue);
74 function resetDrillDown() {
75 window.opener.document.forma.drillDownCtl.selectedIndex = 0;
76 window.opener.document.forma.drillDownURL.value = "";
77 window.opener.document.forma.drillDownParams.value = "";
78 window.opener.document.forma.drillDownSuppress.value = "";
79 window.opener.document.forma.drillDownPopUp.value = "";
87 <body onLoad="if(bCloseWindow) setParams('');">
89 <form name="dataform" onSubmit="return false;">
90 <table class="mTAB" width="94%" border="0" cellspacing="1" cellpadding="3" align=center>
92 <td class=rbg1 colspan="2">
93 <b class=rtableheader>DRILL-DOWN PARAMETERS CONFIGURATION</b>
97 <% if(ddReportFormFields!=null)
98 for(ddReportFormFields.resetNext(); ddReportFormFields.hasNext(); ) {
99 FormField ff = ddReportFormFields.getNext();
100 if(!ff.getFieldType().equals(FormField.FFT_BLANK)) {
102 DrillDownParamDef paramDef = (DrillDownParamDef) paramDefinitions.get(ff.getFieldName());
104 paramDef = new DrillDownParamDef(""); %>
106 <% if (ff!=null && (ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) ) {
109 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
110 <%= ff.getFieldDisplayName() %>
111 <input type="hidden" name="paramName" value="<%= ff.getFieldName() %>"></b></td>
114 <td class=rbg2 align="left" width="33%" height="30" nowrap>
115 <font class=rtabletext>
116 <input type="radio" name="r_<%= ff.getFieldName() %>" value="None"<%= paramDef.getValType().equals("0")?" checked":"" %>>No value </font>
118 <td class=rbg3 align="left" width="67%" nowrap>
119 <font class=rtabletext>Accept default</font>
123 <td class=rbg2 align="left" height="30" nowrap>
124 <font class=rtabletext>
125 <input type="radio" name="r_<%= ff.getFieldName() %>" value="Fixed"<%= paramDef.getValType().equals("1")?" checked":"" %>>Fixed value </font>
127 <td class=rbg3 align="left" nowrap><font class=rtabletext>
128 <input type="text" size="30" maxlength="100" name="v_<%= ff.getFieldName() %>" value="<%= java.net.URLDecoder.decode(paramDef.getValValue(),"UTF8") %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[1].click();"></font>
132 <td class=rbg2 align="left" height="30" nowrap>
133 <font class=rtabletext>
134 <input type="radio" name="r_<%= ff.getFieldName() %>" value="Column"<%= paramDef.getValType().equals("2")?" checked":"" %>>Value of column </font>
136 <td class=rbg3 align="left" nowrap><font class=rtabletext>
137 <select name="c_<%= ff.getFieldName() %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[2].click();">
138 <option value="this">--- Current drill-down column ---
139 <% for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) {
140 DataColumnType dct = (DataColumnType) iter.next();
141 //if(dct.isVisible()) {
143 <option value="<%= dct.getColId() %>"<%= paramDef.getValColId().equals(dct.getColId())?" selected":"" %>><%= dct.getDisplayName() %>
150 <% if(rFormFields!=null) { %>
152 <td class=rbg2 align="left" height="30" nowrap>
153 <font class=rtabletext>
154 <input type="radio" name="r_<%= ff.getFieldName() %>" value="FormField"<%= paramDef.getValType().equals("3")?" checked":"" %>>Value of form field </font>
156 <td class=rbg3 align="left" nowrap><font class=rtabletext>
157 <select name="f_<%= ff.getFieldName() %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[3].click();">
158 <% for(Iterator iter=rFormFields.iterator(); iter.hasNext(); ) {
159 FormFieldType fft = (FormFieldType) iter.next(); %>
160 <option value="<%= fft.getFieldId() %>"<%= paramDef.getValFieldId().equals(fft.getFieldId())?" selected":"" %>><%= fft.getFieldName() %>
166 <td class=rbg2 align="left" height="30" nowrap>
167 <font class=rtabletext>
168 <input type="radio" name="r_<%= ff.getFieldName() %>" value="ColFormSet"<%= paramDef.getValType().equals("4")?" checked":"" %>>Value set </font>
170 <td class=rbg3 align="left" nowrap><font class=rtabletext>
171 Pass the value of the selected column if not empty,<br>
172 otherwise pass the value of the selected form field</font>
180 paramDef = (DrillDownParamDef) paramDefinitions.get(ff.getFieldName()+"_Hr");
182 paramDef = new DrillDownParamDef("");
185 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
186 <%= ff.getFieldDisplayName() %> (Hour)
187 <input type="hidden" name="paramName" value="<%= ff.getFieldName() %>_Hr"></b></td>
190 <td class=rbg2 align="left" width="33%" height="30" nowrap>
191 <font class=rtabletext>
192 <input type="radio" name="r_<%= ff.getFieldName() %>_Hr" value="None"<%= paramDef.getValType().equals("0")?" checked":"" %>>No value </font>
194 <td class=rbg3 align="left" width="67%" nowrap>
195 <font class=rtabletext>Accept default</font>
199 <td class=rbg2 align="left" height="30" nowrap>
200 <font class=rtabletext>
201 <input type="radio" name="r_<%= ff.getFieldName() %>_Hr" value="Column" <%= paramDef.getValType().equals("2")?" checked":"" %> >Value of column </font>
203 <td class=rbg3 align="left" nowrap>
204 <font class=rtabletext>
205 <select name="c_<%= ff.getFieldName() %>_Hr" onChange="document.dataform.r_<%= ff.getFieldName() %>_Hr[1].click();">
206 <option value="this">--- Current drill-down column ---
207 <% for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) {
208 DataColumnType dct = (DataColumnType) iter.next();
209 //if(dct.isVisible()) {
211 <option value="<%= dct.getColId() %>"<%= paramDef.getValColId().equals(dct.getColId())?" selected":"" %>><%= dct.getDisplayName() %>
220 if (ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) {
223 paramDef = (DrillDownParamDef) paramDefinitions.get(ff.getFieldName()+"_Min");
225 paramDef = new DrillDownParamDef("");
228 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
229 <%= ff.getFieldDisplayName() %> (Minutes)
230 <input type="hidden" name="paramName" value="<%= ff.getFieldName() %>_Min"></b></td>
233 <td class=rbg2 align="left" width="33%" height="30" nowrap>
234 <font class=rtabletext>
235 <input type="radio" name="r_<%= ff.getFieldName() %>_Min" value="None"<%= paramDef.getValType().equals("0")?" checked":"" %>>No value </font>
237 <td class=rbg3 align="left" width="67%" nowrap>
238 <font class=rtabletext>Accept default</font>
242 <td class=rbg2 align="left" height="30" nowrap>
243 <font class=rtabletext>
244 <input type="radio" name="r_<%= ff.getFieldName() %>_Min" value="Column" <%= paramDef.getValType().equals("2")?" checked":"" %>>Value of column </font>
246 <td class=rbg3 align="left" nowrap>
247 <font class=rtabletext>
248 <select name="c_<%= ff.getFieldName() %>_Min" onChange="document.dataform.r_<%= ff.getFieldName() %>_Min[1].click();">
249 <option value="this">--- Current drill-down column ---
250 <% for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) {
251 DataColumnType dct = (DataColumnType) iter.next();
252 //if(dct.isVisible()) {
254 <option value="<%= dct.getColId() %>"<%= paramDef.getValColId().equals(dct.getColId())?" selected":"" %>><%= dct.getDisplayName() %>
264 if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) {
267 paramDef = (DrillDownParamDef) paramDefinitions.get(ff.getFieldName()+"_Sec");
269 paramDef = new DrillDownParamDef("");
272 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
273 <%= ff.getFieldDisplayName() %> (Seconds)
274 <input type="hidden" name="paramName" value="<%= ff.getFieldName() %>_Sec"></b></td>
277 <td class=rbg2 align="left" width="33%" height="30" nowrap>
278 <font class=rtabletext>
279 <input type="radio" name="r_<%= ff.getFieldName() %>_Sec" value="None"<%= paramDef.getValType().equals("0")?" checked":"" %>>No value </font>
281 <td class=rbg3 align="left" width="67%" nowrap>
282 <font class=rtabletext>Accept default</font>
286 <td class=rbg2 align="left" height="30" nowrap>
287 <font class=rtabletext>
288 <input type="radio" name="r_<%= ff.getFieldName() %>_Sec" value="Column" <%= paramDef.getValType().equals("2")?" checked":"" %>>Value of column </font>
290 <td class=rbg3 align="left" nowrap>
291 <font class=rtabletext>
292 <select name="c_<%= ff.getFieldName() %>_Sec" onChange="document.dataform.r_<%= ff.getFieldName() %>_Sec[1].click();">
293 <option value="this">--- Current drill-down column ---
294 <% for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) {
295 DataColumnType dct = (DataColumnType) iter.next();
296 //if(dct.isVisible()) {
298 <option value="<%= dct.getColId() %>"<%= paramDef.getValColId().equals(dct.getColId())?" selected":"" %>><%= dct.getDisplayName() %>
313 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
314 <%= ff.getFieldDisplayName() %>
315 <input type="hidden" name="paramName" value="<%= ff.getFieldName() %>"></b></td>
318 <td class=rbg2 align="left" width="33%" height="30" nowrap>
319 <font class=rtabletext>
320 <input type="radio" name="r_<%= ff.getFieldName() %>" value="None"<%= paramDef.getValType().equals("0")?" checked":"" %>>No value </font>
322 <td class=rbg3 align="left" width="67%" nowrap>
323 <font class=rtabletext>Accept default</font>
327 <td class=rbg2 align="left" height="30" nowrap>
328 <font class=rtabletext>
329 <input type="radio" name="r_<%= ff.getFieldName() %>" value="Fixed"<%= paramDef.getValType().equals("1")?" checked":"" %>>Fixed value </font>
331 <td class=rbg3 align="left" nowrap><font class=rtabletext>
332 <input type="text" size="30" maxlength="100" name="v_<%= ff.getFieldName() %>" value="<%= java.net.URLDecoder.decode(paramDef.getValValue(),"UTF8") %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[1].click();"></font>
336 <td class=rbg2 align="left" height="30" nowrap>
337 <font class=rtabletext>
338 <input type="radio" name="r_<%= ff.getFieldName() %>" value="Column"<%= paramDef.getValType().equals("2")?" checked":"" %>>Value of column </font>
340 <td class=rbg3 align="left" nowrap><font class=rtabletext>
341 <select name="c_<%= ff.getFieldName() %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[2].click();">
342 <option value="this">--- Current drill-down column ---
343 <% for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) {
344 DataColumnType dct = (DataColumnType) iter.next();
345 //if(dct.isVisible()) {
347 <option value="<%= dct.getColId() %>"<%= paramDef.getValColId().equals(dct.getColId())?" selected":"" %>><%= dct.getDisplayName() %>
354 <% if(rFormFields!=null) { %>
356 <td class=rbg2 align="left" height="30" nowrap>
357 <font class=rtabletext>
358 <input type="radio" name="r_<%= ff.getFieldName() %>" value="FormField"<%= paramDef.getValType().equals("3")?" checked":"" %>>Value of form field </font>
360 <td class=rbg3 align="left" nowrap><font class=rtabletext>
361 <select name="f_<%= ff.getFieldName() %>" onChange="document.dataform.r_<%= ff.getFieldName() %>[3].click();">
362 <% for(Iterator iter=rFormFields.iterator(); iter.hasNext(); ) {
363 FormFieldType fft = (FormFieldType) iter.next(); %>
364 <option value="<%= fft.getFieldId() %>"<%= paramDef.getValFieldId().equals(fft.getFieldId())?" selected":"" %>><%= fft.getFieldName() %>
370 <td class=rbg2 align="left" height="30" nowrap>
371 <font class=rtabletext>
372 <input type="radio" name="r_<%= ff.getFieldName() %>" value="ColFormSet"<%= paramDef.getValType().equals("4")?" checked":"" %>>Value set </font>
374 <td class=rbg3 align="left" nowrap><font class=rtabletext>
375 Pass the value of the selected column if not empty,<br>
376 otherwise pass the value of the selected form field</font>
385 <script language="JavaScript">
387 <% if(ddReportFormFields==null||ddReportFormFields.getFieldCount()==0) { %>
390 function replaceSC(strValue) {
393 for(var i=0; i<strValue.length; i++) {
394 var ch = strValue.charAt(i);
409 function collectValues() {
411 newParams += setCheckBoxValues();
412 <% if(ddReportFormFields!=null) {
413 for(ddReportFormFields.resetNext(); ddReportFormFields.hasNext(); ) {
414 FormField ff = ddReportFormFields.getNext();
415 if(!ff.getFieldType().equals(FormField.FFT_BLANK)) {
416 String fieldName = ff.getFieldName();
418 if (ff!=null && !(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) ) {
420 if(document.dataform.r_<%= fieldName %>[1].checked||document.dataform.r_<%= fieldName %>[2].checked<%= (rFormFields!=null)?"||document.dataform.r_"+fieldName+"[3].checked||document.dataform.r_"+fieldName+"[4].checked":"" %>) {
423 newParams += "<%= fieldName %>=";
424 if(document.dataform.r_<%= fieldName %>[1].checked) {
425 newParams += replaceSC(escape(document.dataform.v_<%= fieldName %>.value));
426 } else if(document.dataform.r_<%= fieldName %>[2].checked) {
427 newParams += "["+escape(document.dataform.c_<%= fieldName %>.options[document.dataform.c_<%= fieldName %>.selectedIndex].value)+"]";
428 <% if(rFormFields!=null) { %>
429 } else if(document.dataform.r_<%= fieldName %>[3].checked) {
430 newParams += "[!"+escape(document.dataform.f_<%= fieldName %>.options[document.dataform.f_<%= fieldName %>.selectedIndex].value)+"]";
431 } else if(document.dataform.r_<%= fieldName %>[4].checked) {
432 newParams += "["+escape(document.dataform.c_<%= fieldName %>.options[document.dataform.c_<%= fieldName %>.selectedIndex].value)+"!"+escape(document.dataform.f_<%= fieldName %>.options[document.dataform.f_<%= fieldName %>.selectedIndex].value)+"]";
438 if (ff!=null && (ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) ) {
440 if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) {
442 if(document.dataform.r_<%= fieldName %>[1].checked||document.dataform.r_<%= fieldName %>[2].checked<%= (rFormFields!=null)?"||document.dataform.r_"+fieldName+"[3].checked||document.dataform.r_"+fieldName+"[4].checked":"" %>) {
445 newParams += "<%= fieldName %>=";
446 if(document.dataform.r_<%= fieldName %>[1].checked) {
447 newParams += replaceSC(escape(document.dataform.v_<%= fieldName %>.value));
448 } else if(document.dataform.r_<%= fieldName %>[2].checked) {
449 newParams += "["+escape(document.dataform.c_<%= fieldName %>.options[document.dataform.c_<%= fieldName %>.selectedIndex].value)+"]";
450 <% if(rFormFields!=null) { %>
451 } else if(document.dataform.r_<%= fieldName %>[3].checked) {
452 newParams += "[!"+escape(document.dataform.f_<%= fieldName %>.options[document.dataform.f_<%= fieldName %>.selectedIndex].value)+"]";
453 } else if(document.dataform.r_<%= fieldName %>[4].checked) {
454 newParams += "["+escape(document.dataform.c_<%= fieldName %>.options[document.dataform.c_<%= fieldName %>.selectedIndex].value)+"!"+escape(document.dataform.f_<%= fieldName %>.options[document.dataform.f_<%= fieldName %>.selectedIndex].value)+"]";
459 if(document.dataform.r_<%= fieldName %>_Hr[1].checked) {
462 newParams += "<%= fieldName %>_Hr=";
463 if(document.dataform.r_<%= fieldName %>_Hr[1].checked) {
464 newParams += "["+escape(document.dataform.c_<%= fieldName %>_Hr.options[document.dataform.c_<%= fieldName %>_Hr.selectedIndex].value)+"]";
471 if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) {
473 if(document.dataform.r_<%= fieldName %>_Min[1].checked) {
476 newParams += "<%= fieldName %>_Min=";
477 if(document.dataform.r_<%= fieldName %>_Min[1].checked) {
478 newParams += "["+escape(document.dataform.c_<%= fieldName %>_Min.options[document.dataform.c_<%= fieldName %>_Min.selectedIndex].value)+"]";
483 if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) {
485 if(document.dataform.r_<%= fieldName %>_Sec[1].checked) {
488 newParams += "<%= fieldName %>_Sec=";
489 if(document.dataform.r_<%= fieldName %>_Sec[1].checked) {
490 newParams += "["+escape(document.dataform.c_<%= fieldName %>_Sec.options[document.dataform.c_<%= fieldName %>_Sec.selectedIndex].value)+"]";
501 setParams(newParams);
504 function setCheckBoxValues() {
508 if(reqParameters.length>0) {
510 if(document.dataform.requestParam) {
511 for (i=0;i<document.dataform.requestParam.length;i++) {
513 if(document.dataform.requestParam[i].checked) {
514 newValues += escape("<%=reqParameters[icnt-1]%>")+"="+"[#"+escape("<%=reqParameters[icnt-1]%>")+"]";
526 <td colspan="2"> </td>
529 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
530 Parameter values not to be passed to the drill-down report</b></td>
533 <td class=rbg2 align="left" height="30" nowrap>
534 <font class=rtabletext>
535 Suppress values </font>
537 <td class=rbg3 align="left" nowrap><font class=rtabletext>
538 <input type="text" size="30" maxlength="100" name="v_suppress" value="<%= drillDownSuppress %>">
539 <br>separate by | if multiple values</font>
543 <td colspan="2"> </td>
545 <% if(!Globals.getPassRequestParamInDrilldown() && (!(reqParameters.length==1 && reqParameters[0].length()<=0))) {
548 <td class=rbg1 colspan="2" height="30" align="left"><b class=rtableheader>
549 Request Parameter values to be passed to the drill-down report</b></td>
552 <td class=rbg2 align="left" height="30" nowrap>
553 <font class=rtabletext>
554 Request values </font>
561 for (int i = 0; i < reqParameters.length; i++) {
565 <tr<%= (icnt%2==0)?" class=rowalt1":" class=rowalt2" %>>
566 <!--<td align="center" height="30"><font class=rtabletext><%= icnt %></font></td>-->
567 <td><font class=rtabletext><%= reqParameters[i]%></font></td>
568 <td class=rbg3 align="left" nowrap><font class=rtabletext>
569 <input type="checkbox" name="requestParam" <%= ((drillDownRequest!=null)&&(drillDownRequest.indexOf(reqParameters[i])!=-1))?"checked":""%>>
575 <input type="hidden" name="requestParam">
580 <td class=rbg3 align="left" nowrap><font class=rtabletext>
581 Show Drilled Down Report In Popup Window: <input type="checkbox" name="showInPopup">
586 <td colspan="3" align="center"><input type="Button" class=button value="Complete" onClick="collectValues()"></td>
592 if(window.opener.document.forma.drillDownPopUp.value == 'true')
593 document.dataform.showInPopup.checked = true;
599 <%! private String nvl(String s) { return (s==null)?"":s; }
600 private String nvl(String s, String sDefault) { return nvl(s).equals("")?sDefault:s; } %>