rr.logReportExecutionTime(userId, String.valueOf(totalTime),
AppConstants.RLA_EXECUTION_TIME, formFields);
- if(rd!=null && !action.equals("report.run.container"))
- rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_EXECUTION_TIME, formFields);
}
}
} else {
- rr.logReportExecutionTimeFromLogList(userId, String.valueOf(totalTime),formFields);
+ rr.logReportExecutionTimeFromLogList(userId, String.valueOf(totalTime), "");
}
-
if(rr.isDrillDownURLInPopupPresent()) {
request.getSession().setAttribute(PARENT+rr.getReportID()+"_rr", rr);
request.getSession().setAttribute(PARENT+rr.getReportID()+"_rd", rd);
}
if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) {
- return "raptor/report_crosstab_run_container.jsp";
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
} else if (rr.getReportType().equals(AppConstants.RT_HIVE) && !isEmailAttachment) {
return "raptor/report_hive_run_container.jsp";
}
request.getSession().setAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP, embeddedReportsDataMap);
}
-
- ReportJSONRuntime reportJSONRuntime = rr.createReportJSONRuntime(request, rd);
+ ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime();
+
+ if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) {
+ reportJSONRuntime = rr.createCrossTabReportJSONRuntime(request, rd);
+ } else {
+ reportJSONRuntime = rr.createReportJSONRuntime(request, rd);
+ }
Set<String> keys = rr.getReportParamValues().keySet();
String ffValue = "";
for (String key : keys) {
} // reportSearchFavorites
public String reportSearchExecute(HttpServletRequest request, String nextPage) {
+ String str = request.getParameter("fromEdit");
+ if(str != null && !str.equalsIgnoreCase("null")) {
+ if(!str.equalsIgnoreCase("true")) {
+ removeVariablesFromSession(request);
+ }
+ }else {
removeVariablesFromSession(request);
+ }
+
try {
SearchHandler sh = new SearchHandler();
ReportSearchResultJSON sr = sh.loadReportSearchResult(request);
String chartGroup = chartGroupName.substring(0, chartGroupName.lastIndexOf("|"));
int flag = 0;
for (Iterator iter = reportCols.iterator(); iter.hasNext();) {
+ flag = 0;
DataColumnType dc = (DataColumnType) iter.next();
flag = getDependsOnFormFieldFlag(dc, formValues);
String rSQL = Globals.getGenerateSubsetSql();
rSQL = rSQL.replace("[colNames.toString()]", colNames.toString());
rSQL = rSQL.replace("[reportSQL]", reportSQL);
+ rSQL = rSQL.replace("[rownum]", String.valueOf(endRow));
reportSQL = rSQL;
partSql += " " + orderbyclause + " ";
}
- CachingUtils.putPageSql(request.getSession().getId()+getWholeSQL(), partSql);
- CachingUtils.putReportSql(request.getSession().getId()+getWholeSQL(), reportSQL);
+
if (!AppUtils.isNotEmpty(getDBType())) {
setDBType(Globals.getDBType());
}
if (getDBType().equals(AppConstants.MYSQL)) {
partSql = partSql + " LIMIT " + String.valueOf(startRow) + " , " + String.valueOf(endRow);
} else if (getDBType().equals(AppConstants.ORACLE)) {
- partSql = "where rnum >= " + String.valueOf(startRow) + " and rnum <= "
- + ( Integer.parseInt(String.valueOf(endRow)));
+ partSql = " where rnum >= " + String.valueOf(startRow) + " ORDER BY rnum";
} else if (getDBType().equals(AppConstants.POSTGRESQL)) {
partSql = partSql + " LIMIT " + String.valueOf(endRow) + " , " + String.valueOf(startRow);
}
return ncft;
}
+ public String getCrossTabDisplayValue(String crossTabValue) {
+ return nvl(crossTabValue).equals(AppConstants.CV_ROW) ? "Row headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_COLUMN) ? "Column headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_VALUE) ? "Report values" : "Invisible/Filter"));
+ } // getCrossTabDisplayValue
+
public DataColumnType cloneDataColumnType(ObjectFactory objFactory, DataColumnType dct)
throws JAXBException {
DataColumnType ndct = objFactory.createDataColumnType();
return valFieldId;
}
+ private void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ private void setValType(String valType) {
+ this.valType = valType;
+ }
+
+ private void setValValue(String valValue) {
+ this.valValue = valValue;
+ }
+
+ private void setValColId(String valColId) {
+ this.valColId = valColId;
+ }
+
+ private void setValFieldId(String valFieldId) {
+ this.valFieldId = valFieldId;
+ }
+
} // DrillDownParamDef
import java.io.Serializable;
import java.sql.Connection;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Iterator;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.xml.bind.JAXBException;
boolean valColExist = false;
if (!getDataSourceList().getDataSource().isEmpty()) {
+ if (getAllColumns().stream().anyMatch(dto -> dto.getCrossTabValue() != null)) {
for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) {
DataColumnType dct = (DataColumnType) iter.next();
if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE))
valColExist = true;
} // for
+ } else {
+ return true;
+ }
} // if
return rowColExist && colColExist && valColExist;
} // canPersistCrossTabReport
private boolean canPersistReport() {
- String reportType = getReportType();
return getReportType().equals(AppConstants.RT_CROSSTAB) ? canPersistCrossTabReport()
: (getReportType().equals(AppConstants.RT_LINEAR)? canPersistLinearReport()
:(getReportType().equals(AppConstants.RT_HIVE)? canPersistLinearReport()
fft.setValidationType(validationType);
fft.setMandatory(nvl(mandatory, "N"));
fft.setDefaultValue(nvl(defaultValue));
- fft.setOrderBySeq((getFormFieldList() == null) ? 1 : getFormFieldList().getFormField()
- .size() + 1);
+ List<Integer> orderSeq = new ArrayList<>();
+ if(getFormFieldList() != null)
+ orderSeq = getFormFieldList().getFormField().stream().map(FormFieldType::getOrderBySeq).collect(Collectors.toList());
+ Integer max=0;
+ if(orderSeq.size()>0) {
+ max = Collections.max(orderSeq);
+ }
+ fft.setOrderBySeq((getFormFieldList() == null) ? 1 : max+1);
fft.setFieldSQL(fieldSQL);
try {
fft.setRangeStartDate(DatatypeFactory.newInstance()
private String displayTotal;
private SemaphoreList semaphoreList;
private String semaphoreId;
+ private String crossTabValue;
-
+ public String getCrossTabValue() {
+ return crossTabValue;
+ }
+ public void setCrossTabValue(String crossTabValue) {
+ this.crossTabValue = crossTabValue;
+ }
public SemaphoreList getSemaphoreList() {
return semaphoreList;
}
private String id;
private String name;
+ private String crossTabValue;
+ private String repType;
+
public String getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
+ public String getCrossTabValue() {
+ return crossTabValue;
+ }
+ public void setCrossTabValue(String crossTabValue) {
+ this.crossTabValue = crossTabValue;
+ }
+ public String getRepType() {
+ return repType;
+ }
+ public void setRepType(String repType) {
+ this.repType = repType;
+ }
private String dashboardLayoutJSON;
private DashboardReports dashboardReports;
private String chartType;
+ private String reportHeader;
+ private String reportFooter;
+
+
+
+ public String getReportHeader() {
+ return reportHeader;
+ }
+
+ public void setReportHeader(String reportHeader) {
+ this.reportHeader = reportHeader;
+ }
+
+ public String getReportFooter() {
+ return reportFooter;
+ }
+
+ public void setReportFooter(String reportFooter) {
+ this.reportFooter = reportFooter;
+ }
@Override
public String getTabName() {
*/
package org.onap.portalsdk.analytics.model.definition.wizard;
+import java.util.Calendar;
import java.util.List;
+import javax.xml.datatype.XMLGregorianCalendar;
+
public class FormEditJSON implements WizardJSON {
private String tabId;
private String errorMessage;
private String errorStackTrace;
private Integer orderSeq;
+ private String rangeStartDateSQL = null;
+ private String rangeEndDateSQL = null;
+ private String rangeStartDate = null;
+ private String rangeEndDate = null;
+ public String getRangeStartDate() {
+ return rangeStartDate;
+ }
+ public void setRangeStartDate(String rangeStartDate) {
+ this.rangeStartDate = rangeStartDate;
+ }
+ public String getRangeEndDate() {
+ return rangeEndDate;
+ }
+ public void setRangeEndDate(String rangeEndDate) {
+ this.rangeEndDate = rangeEndDate;
+ }
+ public String getRangeStartDateSQL() {
+ return rangeStartDateSQL;
+ }
+ public void setRangeStartDateSQL(String rangeStartDateSQL) {
+ this.rangeStartDateSQL = rangeStartDateSQL;
+ }
+ public String getRangeEndDateSQL() {
+ return rangeEndDateSQL;
+ }
+ public void setRangeEndDateSQL(String rangeEndDateSQL) {
+ this.rangeEndDateSQL = rangeEndDateSQL;
+ }
public String getMessage() {
return message;
}
this.orderSeq = orderSeq;
}
-
public String getLastUpdatedFieldId() {
return lastUpdatedFieldId;
}
private String id;
private String name;
private Integer orderSeq;
+ private String validationType;
+
public String getId() {
return id;
}
public void setOrderSeq(Integer orderSeq) {
this.orderSeq = orderSeq;
}
+ public String getValidationType() {
+ return validationType;
+ }
+ public void setValidationType(String validationType) {
+ this.validationType = validationType;
+ }
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.analytics.system.ConnectionUtils;
+import org.onap.portalsdk.analytics.system.ExecuteQuery;
import org.onap.portalsdk.analytics.system.Globals;
import org.onap.portalsdk.analytics.util.DataSet;
import org.onap.portalsdk.analytics.util.Utils;
private boolean triggerThisFormfield = false;
+ private Integer orderBySeq;
+
+ public Integer getOrderBySeq() {
+ return orderBySeq;
+ }
+
+ public void setOrderBySeq(Integer orderBySeq) {
+ this.orderBySeq = orderBySeq;
+ }
+
// Form field types
public static final String FFT_TEXT_W_POPUP = "TEXT_WITH_POPUP";
private FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, boolean visible, String dependsOn,
Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL,
- String multiSelectListSize) {
+ String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dependsOn,
- rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize, orderBySeq);
setVisible(visible);
} // FormField
private FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dependsOn, Calendar rangeStartDate,
- Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
super();
setFieldName(fieldName);
setFieldDisplayName(fieldDisplayName);
setRangeStartDateSQL(rangeStartDateSQL);
setRangeEndDateSQL(rangeEndDateSQL);
setMultiSelectListSize(multiSelectListSize);
+ setOrderBySeq(orderBySeq);
}
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, List predefinedValues, boolean visible,
String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL,
- String rangeEndDateSQL, String multiSelectListSize) {
+ String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, visible,
- dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq);
if (predefinedValues != null)
setPredefinedListLookup(predefinedValues);
} // FormField
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String lookupSql, boolean visible, String dependsOn,
Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL,
- String multiSelectListSize) {
+ String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, visible,
- dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq);
if (defaultValue != null && defaultValue.length() > 10
&& defaultValue.substring(0, 10).trim().toLowerCase().startsWith("select")) {
setFieldDefaultSQL(defaultValue);
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dbTableName, String dbIdField,
String dbNameField, String dbSortByField, boolean visible, String dependsOn, Calendar rangeStartDate,
- Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dbTableName,
dbIdField, dbNameField, dbSortByField, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL,
- rangeEndDateSQL, multiSelectListSize);
+ rangeEndDateSQL, multiSelectListSize, orderBySeq);
setVisible(visible);
}
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dbTableName, String dbIdField,
String dbNameField, String dbSortByField, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate,
- String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dependsOn,
- rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize, orderBySeq);
+ // if(dependsOn !=null){ this.dependsOn = dependsOn; }else { this.dependsOn = ""
if (defaultValue != null && defaultValue.length() > 10
&& defaultValue.substring(0, 10).trim().toLowerCase().startsWith("select")) {
setFieldDefaultSQL(defaultValue);
String defaultValue = fft.getDefaultValue();
String fieldSQL = fft.getFieldSQL();
String fieldDefaultSQL = fft.getFieldDefaultSQL();
+ Integer orderBySeq = fft.getOrderBySeq();
String[] reqParameters = Globals.getRequestParams().split(",");
String[] sessionParameters = Globals.getSessionParams().split(",");
String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(",");
else if (nvl(defaultValue).equals(AppConstants.FILTER_MIN_VALUE))
defaultValue = (String) Collections.min(predefinedValues);
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
- mandatory.equals("Y"), defaultValue, helpText, predefinedValues,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ mandatory.equals("Y"), defaultValue, helpText, predefinedValues,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else if (nvl(fieldSQL).length() > 0) {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
- mandatory.equals("Y"), fieldDefaultSQL, helpText, fieldSQL,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ mandatory.equals("Y"), fieldDefaultSQL, helpText, fieldSQL,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else {
String lTableName = null;
String lColumnName = null;
if (fieldDefaultSQL!=null && fieldDefaultSQL.length()>0 && (fieldDefaultSQL.trim().length()>10) && fieldDefaultSQL.substring(0,10).toLowerCase().startsWith("select")) {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
mandatory.equals("Y"), fieldDefaultSQL, helpText, lookupTable,
- lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"),dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"),dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
mandatory.equals("Y"), defaultValue, helpText, lookupTable,
- lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
}
} // else
} // for
} // if
add(new FormField(fieldName, fieldDisplayName,
FormField.FFT_TEXT_W_POPUP, null, false, null, null,
- lookupTable, lookupIdField, lookupNameField, lookupSortByField,null, lookupRangeStartDate, lookupRangeEndDate, lookupRangeStartDateSQL, lookupRangeEndDateSQL, "0"));
+ lookupTable, lookupIdField, lookupNameField, lookupSortByField,null, lookupRangeStartDate, lookupRangeEndDate, lookupRangeStartDateSQL, lookupRangeEndDateSQL, "0",1));
} // if
} // for
} // if
package org.onap.portalsdk.analytics.model.runtime;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Map;
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.view.ColumnHeader;
-/*class MetaColumn {
- private String tableId;
- private String dbColName;
- private String crossTabValue;
- private String colName;
- private String displayName;
- private Integer displayWidth;
- private String displayWidthInPxls;
- private String pdfDisplayWidthInPxls;
- private String displayAlignment;
- private String displayHeaderAlignment;
- private int orderSeq;
- private boolean visible;
- private boolean calculated;
- private String colType;
- private String hyperlinkURL;
- private String hyperlinkType;
- private String actionImg;
- private Integer groupByPos;
- private String subTotalCustomText;
- private Boolean hideRepeatedKey;
- private String colFormat;
- private boolean groupBreak;
- private Integer orderBySeq;
- private String orderByAscDesc;
- private String displayTotal;
- private String colOnChart;
- private Integer chartSeq;
- private String chartColor;
- private String chartLineType;
- private Boolean chartSeries;
- private Boolean isRangeAxisFilled;
- private Boolean createInNewChart;
- private String drillDownType;
- private Boolean drillinPoPUp;
- private String drillDownURL;
- private String drillDownParams;
- private String comment;
- private ColFilterList colFilterList;
- private String semaphoreId;
- private String dbColType;
- private String chartGroup;
- private String yAxis;
- private String dependsOnFormField;
- private String nowrap;
- private Integer indentation;
- private Boolean enhancedPagination;
- private Integer level;
- private Integer start;
- private Integer colspan;
- private String dataMiningCol;
- private String colId;
-
- public String getTableId() {
- return tableId;
- }
- public void setTableId(String tableId) {
- this.tableId = tableId;
- }
- public String getDbColName() {
- return dbColName;
- }
- public void setDbColName(String dbColName) {
- this.dbColName = dbColName;
- }
- public String getCrossTabValue() {
- return crossTabValue;
- }
- public void setCrossTabValue(String crossTabValue) {
- this.crossTabValue = crossTabValue;
- }
- public String getColName() {
- return colName;
- }
- public void setColName(String colName) {
- this.colName = colName;
- }
- public String getDisplayName() {
- return displayName;
- }
- public void setDisplayName(String displayName) {
- this.displayName = displayName;
- }
- public Integer getDisplayWidth() {
- return displayWidth;
- }
- public void setDisplayWidth(Integer displayWidth) {
- this.displayWidth = displayWidth;
- }
- public String getDisplayWidthInPxls() {
- return displayWidthInPxls;
- }
- public void setDisplayWidthInPxls(String displayWidthInPxls) {
- this.displayWidthInPxls = displayWidthInPxls;
- }
- public String getPdfDisplayWidthInPxls() {
- return pdfDisplayWidthInPxls;
- }
- public void setPdfDisplayWidthInPxls(String pdfDisplayWidthInPxls) {
- this.pdfDisplayWidthInPxls = pdfDisplayWidthInPxls;
- }
- public String getDisplayAlignment() {
- return displayAlignment;
- }
- public void setDisplayAlignment(String displayAlignment) {
- this.displayAlignment = displayAlignment;
- }
- public String getDisplayHeaderAlignment() {
- return displayHeaderAlignment;
- }
- public void setDisplayHeaderAlignment(String displayHeaderAlignment) {
- this.displayHeaderAlignment = displayHeaderAlignment;
- }
- public int getOrderSeq() {
- return orderSeq;
- }
- public void setOrderSeq(int orderSeq) {
- this.orderSeq = orderSeq;
- }
- public boolean isVisible() {
- return visible;
- }
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
- public boolean isCalculated() {
- return calculated;
- }
- public void setCalculated(boolean calculated) {
- this.calculated = calculated;
- }
- public String getColType() {
- return colType;
- }
- public void setColType(String colType) {
- this.colType = colType;
- }
- public String getHyperlinkURL() {
- return hyperlinkURL;
- }
- public void setHyperlinkURL(String hyperlinkURL) {
- this.hyperlinkURL = hyperlinkURL;
- }
- public String getHyperlinkType() {
- return hyperlinkType;
- }
- public void setHyperlinkType(String hyperlinkType) {
- this.hyperlinkType = hyperlinkType;
- }
- public String getActionImg() {
- return actionImg;
- }
- public void setActionImg(String actionImg) {
- this.actionImg = actionImg;
- }
- public Integer getGroupByPos() {
- return groupByPos;
- }
- public void setGroupByPos(Integer groupByPos) {
- this.groupByPos = groupByPos;
- }
- public String getSubTotalCustomText() {
- return subTotalCustomText;
- }
- public void setSubTotalCustomText(String subTotalCustomText) {
- this.subTotalCustomText = subTotalCustomText;
- }
- public Boolean getHideRepeatedKey() {
- return hideRepeatedKey;
- }
- public void setHideRepeatedKey(Boolean hideRepeatedKey) {
- this.hideRepeatedKey = hideRepeatedKey;
- }
- public String getColFormat() {
- return colFormat;
- }
- public void setColFormat(String colFormat) {
- this.colFormat = colFormat;
- }
- public boolean isGroupBreak() {
- return groupBreak;
- }
- public void setGroupBreak(boolean groupBreak) {
- this.groupBreak = groupBreak;
- }
- public Integer getOrderBySeq() {
- return orderBySeq;
- }
- public void setOrderBySeq(Integer orderBySeq) {
- this.orderBySeq = orderBySeq;
- }
- public String getOrderByAscDesc() {
- return orderByAscDesc;
- }
- public void setOrderByAscDesc(String orderByAscDesc) {
- this.orderByAscDesc = orderByAscDesc;
- }
- public String getDisplayTotal() {
- return displayTotal;
- }
- public void setDisplayTotal(String displayTotal) {
- this.displayTotal = displayTotal;
- }
- public String getColOnChart() {
- return colOnChart;
- }
- public void setColOnChart(String colOnChart) {
- this.colOnChart = colOnChart;
- }
- public Integer getChartSeq() {
- return chartSeq;
- }
- public void setChartSeq(Integer chartSeq) {
- this.chartSeq = chartSeq;
- }
- public String getChartColor() {
- return chartColor;
- }
- public void setChartColor(String chartColor) {
- this.chartColor = chartColor;
- }
- public String getChartLineType() {
- return chartLineType;
- }
- public void setChartLineType(String chartLineType) {
- this.chartLineType = chartLineType;
- }
- public Boolean getChartSeries() {
- return chartSeries;
- }
- public void setChartSeries(Boolean chartSeries) {
- this.chartSeries = chartSeries;
- }
- public Boolean getIsRangeAxisFilled() {
- return isRangeAxisFilled;
- }
- public void setIsRangeAxisFilled(Boolean isRangeAxisFilled) {
- this.isRangeAxisFilled = isRangeAxisFilled;
- }
- public Boolean getCreateInNewChart() {
- return createInNewChart;
- }
- public void setCreateInNewChart(Boolean createInNewChart) {
- this.createInNewChart = createInNewChart;
- }
- public String getDrillDownType() {
- return drillDownType;
- }
- public void setDrillDownType(String drillDownType) {
- this.drillDownType = drillDownType;
- }
- public Boolean getDrillinPoPUp() {
- return drillinPoPUp;
- }
- public void setDrillinPoPUp(Boolean drillinPoPUp) {
- this.drillinPoPUp = drillinPoPUp;
- }
- public String getDrillDownURL() {
- return drillDownURL;
- }
- public void setDrillDownURL(String drillDownURL) {
- this.drillDownURL = drillDownURL;
- }
- public String getDrillDownParams() {
- return drillDownParams;
- }
- public void setDrillDownParams(String drillDownParams) {
- this.drillDownParams = drillDownParams;
- }
- public String getComment() {
- return comment;
- }
- public void setComment(String comment) {
- this.comment = comment;
- }
- public ColFilterList getColFilterList() {
- return colFilterList;
- }
- public void setColFilterList(ColFilterList colFilterList) {
- this.colFilterList = colFilterList;
- }
- public String getSemaphoreId() {
- return semaphoreId;
- }
- public void setSemaphoreId(String semaphoreId) {
- this.semaphoreId = semaphoreId;
- }
- public String getDbColType() {
- return dbColType;
- }
- public void setDbColType(String dbColType) {
- this.dbColType = dbColType;
- }
- public String getChartGroup() {
- return chartGroup;
- }
- public void setChartGroup(String chartGroup) {
- this.chartGroup = chartGroup;
- }
- public String getyAxis() {
- return yAxis;
- }
- public void setyAxis(String yAxis) {
- this.yAxis = yAxis;
- }
- public String getDependsOnFormField() {
- return dependsOnFormField;
- }
- public void setDependsOnFormField(String dependsOnFormField) {
- this.dependsOnFormField = dependsOnFormField;
- }
- public String getNowrap() {
- return nowrap;
- }
- public void setNowrap(String nowrap) {
- this.nowrap = nowrap;
- }
- public Integer getIndentation() {
- return indentation;
- }
- public void setIndentation(Integer indentation) {
- this.indentation = indentation;
- }
- public Boolean getEnhancedPagination() {
- return enhancedPagination;
- }
- public void setEnhancedPagination(Boolean enhancedPagination) {
- this.enhancedPagination = enhancedPagination;
- }
- public Integer getLevel() {
- return level;
- }
- public void setLevel(Integer level) {
- this.level = level;
- }
- public Integer getStart() {
- return start;
- }
- public void setStart(Integer start) {
- this.start = start;
- }
- public Integer getColspan() {
- return colspan;
- }
- public void setColspan(Integer colspan) {
- this.colspan = colspan;
- }
- public String getDataMiningCol() {
- return dataMiningCol;
- }
- public void setDataMiningCol(String dataMiningCol) {
- this.dataMiningCol = dataMiningCol;
- }
- public String getColId() {
- return colId;
- }
- public void setColId(String colId) {
- this.colId = colId;
- }
-
-}*/
-
class FormFieldJSON {
private String fieldId;
private String fieldDisplayName;
private String fieldType;
private String validationType;
private boolean required;
- private Calendar rangeStartDate;
- private Calendar rangeEndDate;
+ private String rangeStartDate;
+ private String rangeEndDate;
+ private String rangeStartDateSQL = null;
+ private String rangeEndDateSQL = null;
private String multiSelectListSize;
private String helpText;
private boolean visible;
private boolean triggerOtherFormFields;
private ArrayList<IdNameValue> formFieldValues;
+ private Integer setOrderBySeq;
+
+ public String getRangeStartDateSQL() {
+ return rangeStartDateSQL;
+ }
+ public void setRangeStartDateSQL(String rangeStartDateSQL) {
+ this.rangeStartDateSQL = rangeStartDateSQL;
+ }
+ public String getRangeEndDateSQL() {
+ return rangeEndDateSQL;
+ }
+ public void setRangeEndDateSQL(String rangeEndDateSQL) {
+ this.rangeEndDateSQL = rangeEndDateSQL;
+ }
+ public Integer getSetOrderBySeq() {
+ return setOrderBySeq;
+ }
+ public void setSetOrderBySeq(Integer setOrderBySeq) {
+ this.setOrderBySeq = setOrderBySeq;
+ }
public String getFieldId() {
return fieldId;
}
public void setRequired(boolean required) {
this.required = required;
}
- public Calendar getRangeStartDate() {
+
+ public String getRangeStartDate() {
return rangeStartDate;
}
- public void setRangeStartDate(Calendar rangeStartDate) {
+ public void setRangeStartDate(String rangeStartDate) {
this.rangeStartDate = rangeStartDate;
}
- public Calendar getRangeEndDate() {
+ public String getRangeEndDate() {
return rangeEndDate;
}
- public void setRangeEndDate(Calendar rangeEndDate) {
+ public void setRangeEndDate(String rangeEndDate) {
this.rangeEndDate = rangeEndDate;
}
public String getMultiSelectListSize() {
private String message;
private boolean hideFormFieldsAfterRun;
private Long totalRunTime;
+ private String reportHeader;
+ private String reportFooter;
public Long getTotalRunTime() {
public void setReportTotalDataRows(ArrayList<Map<String, Object>> reportTotalDataRows) {
this.reportTotalDataRows = reportTotalDataRows;
}
+ public String getReportHeader() {
+ return reportHeader;
+ }
+ public void setReportHeader(String reportHeader) {
+ this.reportHeader = reportHeader;
+ }
+ public String getReportFooter() {
+ return reportFooter;
+ }
+ public void setReportFooter(String reportFooter) {
+ this.reportFooter = reportFooter;
+ }
}
*/
package org.onap.portalsdk.analytics.model.runtime;
+import java.io.IOException;
import java.io.Serializable;
import java.sql.Connection;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.Enumeration;
+import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.datatype.XMLGregorianCalendar;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.jcs.engine.CacheUtils;
+import org.json.JSONObject;
import org.onap.portalsdk.analytics.error.RaptorException;
+import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.model.DataCache;
import org.onap.portalsdk.analytics.model.ReportHandler;
import org.onap.portalsdk.analytics.model.ReportLoader;
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.model.base.ReportWrapper;
import org.onap.portalsdk.analytics.model.definition.Marker;
+import org.onap.portalsdk.analytics.model.definition.ReportDefinition;
+import org.onap.portalsdk.analytics.model.definition.wizard.QueryResultJSON;
+import org.onap.portalsdk.analytics.model.definition.wizard.RaptorResponse;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.analytics.system.ConnectionUtils;
import org.onap.portalsdk.analytics.system.DbUtils;
import org.onap.portalsdk.analytics.util.AppConstants;
import org.onap.portalsdk.analytics.util.CachingUtils;
import org.onap.portalsdk.analytics.util.DataSet;
+import org.onap.portalsdk.analytics.util.RemDbInfo;
import org.onap.portalsdk.analytics.util.Utils;
+import org.onap.portalsdk.analytics.util.XSSFilter;
import org.onap.portalsdk.analytics.view.ColumnHeader;
import org.onap.portalsdk.analytics.view.ColumnHeaderRow;
+import org.onap.portalsdk.analytics.view.ColumnVisual;
import org.onap.portalsdk.analytics.view.CrossTabOrderManager;
import org.onap.portalsdk.analytics.view.CrossTabTotalValue;
import org.onap.portalsdk.analytics.view.DataRow;
import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
import org.onap.portalsdk.analytics.xmlobj.ObjectFactory;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.objectcache.jcs.JCSCacheManager;
import org.onap.portalsdk.core.util.SecurityCodecUtil;
import org.owasp.esapi.ESAPI;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
/**<HR/>
setWholeSQL(reportSQL);
cachedSQL = reportSQL;
wholeSQL = reportSQL;
+ String pagedSQL = "";
+ pagedSQL = generatePagedSQL(pageNo, userId, request, false, null);
List reportCols = getAllColumns();
DataColumnType dataColumnRequest = getCrossTabValueColumn();
reportSQL = parseReportSQLForDrillDownParams(reportSQL, dataColumnRequest, request);
DataColumnType dct = (DataColumnType) iter.next();
if (nvl(dct.getDrillDownURL()).length() > 0) {
- childReportFormFields = getChildReportFormFields(request,dct.getDrillDownURL());
+ childReportFormFields = getChildReportFormFields(request,AppUtils.getDrillActionURL()+""+dct.getDrillDownURL());
}
if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) {
v1 = drInFor1.getRowValues();
if(i<dataList.size()-1) {
v2 = ((DataRow)dataList.get(i+1)).getRowValues();
+ } else {
+ v2 = null;
}
for (int j = 0; j < v1.size(); j++) {
if(j==0) {
}
return allowEdit;
}
+
+ public String convertToDate(XMLGregorianCalendar xc) {
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ GregorianCalendar gCalendar = xc.toGregorianCalendar();
+ //Converted to date object
+ Date date = gCalendar.getTime();
+ //Formatted to String value
+ String dateString = df.format(date);
+ return dateString;
+ }
+
+ public String convertCalendarToDate(Date xc) {
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ String dateString = df.format(xc);
+ return dateString;
+ }
+
+
+
+ public RaptorResponse retrieveDataForGivenQuery( String reQsql, HttpServletRequest request, FormField ff)
+ throws RaptorException {
+ RaptorResponse raptorResponse = new RaptorResponse();
+ String sql = reQsql;
+ String jsonInString = "";
+
+ ServletContext servletContext = request.getSession().getServletContext();
+ if (!Globals.isSystemInitialized()) {
+ Globals.initializeSystem(servletContext);
+ }
+
+
+ if (!sql.trim().toUpperCase().startsWith("SELECT")) {
+ ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime();
+ errorJSONRuntime.setErrormessage("Invalid statement - the SQL must start with the keyword SELECT");
+ errorJSONRuntime.setStacktrace("SQL Error");
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex);
+ }
+ } else {
+ DataSet ds = null;
+
+ String userId = AppUtils.getUserID(request);
+
+ sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId);
+ sql = Utils.replaceInString(sql, "[USERID]", userId);
+ String[] reqParameters = Globals.getRequestParams().split(",");
+ String[] sessionParameters = Globals.getSessionParams().split(",");
+ javax.servlet.http.HttpSession session = request.getSession();
+ logger.debug(EELFLoggerDelegate.debugLogger, ("B4 testRunSQL " + sql));
+ if (request != null) {
+ for (int i = 0; i < reqParameters.length; i++) {
+ if (!reqParameters[i].startsWith("ff"))
+ sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]",
+ ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i].toUpperCase())));
+ else
+ sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]",
+ ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i])));
+ }
+ }
+ if (session != null) {
+ for (int i = 0; i < sessionParameters.length; i++) {
+ logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] "
+ + sessionParameters[i] + " " + (String) session.getAttribute(sessionParameters[i])));
+ sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase() + "]",
+ (String) session.getAttribute(sessionParameters[i]));
+ }
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger, ("After testRunSQL " + sql));
+ try {
+
+ ds = ConnectionUtils.getDataSet(sql, ff.getDbInfo(), true);
+
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ queryResultJSON.setTotalRows(ds.getRowCount());
+
+ Map<String, String> dvJSON;
+ ArrayList<String> colList = new ArrayList<>();
+ ArrayList<Map<String, String>> reportDataRows = new ArrayList<>();
+ if (!ds.isEmpty()) {
+
+ for (int i = 0; i < ds.getColumnCount(); i++) {
+ colList.add(ds.getColumnName(i));
+ }
+ queryResultJSON.setReportDataColumns(colList);
+ if (queryResultJSON.getTotalRows() > 0) {
+ for (int r = 0; r < Math.min(ds.getRowCount(), 100); r++) {
+ dvJSON = new HashMap<>();
+ for (int c = 0; c < ds.getColumnCount(); c++) {
+ try {
+ dvJSON.put(ds.getColumnName(c), ds.getString(r, c));
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].",
+ ex);
+ }
+ }
+ reportDataRows.add(dvJSON);
+
+ }
+ }
+
+ }
+ queryResultJSON.setReportDataRows(reportDataRows);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(queryResultJSON);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery]. RaptorException: ",
+ ex);
+ }
+ } catch (ReportSQLException ex) {
+ ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime();
+ if (sql.contains("[")) {
+ errorJSONRuntime.setErrormessage(
+ "Formfield information is present in the query, hence couldn't execute");
+ errorJSONRuntime
+ .setStacktrace("Formfield information is present in the query, hence couldn't execute");
+
+
+ } else {
+ errorJSONRuntime.setErrormessage(ex.getMessage());
+ }
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex1) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex1);
+ }
+ }
+
+ }
+
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+ }
+
public ReportJSONRuntime createReportJSONRuntime(HttpServletRequest request, ReportData rd) {
String userId = AppUtils.getUserID(request);
ObjectMapper mapper = new ObjectMapper();
reportJSONRuntime.setAllowEdit(isAllowEdit(request));
reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId());
reportJSONRuntime.setNumFormCols(getNumFormColsAsInt());
+ reportJSONRuntime.setReportHeader(getReportHeader());
+ reportJSONRuntime.setReportFooter(getReportFooter());
reportJSONRuntime.setBackBtnURL("");
String chartType = getChartType();
boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart();
ffJSON.setHelpText(ff.getHelpText());
ffJSON.setValidationType(ff.getValidationType());
ffJSON.setVisible(ff.isVisible());
+ ffJSON.setSetOrderBySeq(ff.getOrderBySeq());
+ if (ff.getRangeStartDate() != null)
+ ffJSON.setRangeStartDate(convertCalendarToDate(ff.getRangeStartDate().getTime()));
+ if (ff.getRangeEndDate() != null)
+ ffJSON.setRangeEndDate(convertCalendarToDate(ff.getRangeEndDate().getTime()));
+ if (ff.getRangeStartDateSQL() != null) {
+ try {
+ RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeStartDateSQL(), request, ff);
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ String resultDate = "";
+ try {
+ JSONObject jsonObj = new JSONObject(re.getData());
+ queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class);
+ resultDate = queryResultJSON.getReportDataRows().get(0).get("ID");
+
+ } catch (Exception e) {
+ resultDate = "";
+ e.printStackTrace();
+ }
+ ffJSON.setRangeStartDateSQL(resultDate);
+ } catch (RaptorException e) {
+ e.printStackTrace();
+ }
+ }
+
+ if (ff.getRangeEndDateSQL() != null) {
+ try {
+ RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeEndDateSQL(), request, ff);
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ String resultDate = "";
+ try {
+ JSONObject jsonObj = new JSONObject(re.getData());
+ queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class);
+ resultDate = queryResultJSON.getReportDataRows().get(0).get("ID");
+
+ } catch (Exception e) {
+ resultDate = "";
+ e.printStackTrace();
+ }
+ ffJSON.setRangeEndDateSQL(resultDate);
+ } catch (RaptorException e) {
+ e.printStackTrace();
+ }
+ }
IdNameList lookup = null;
lookup = ff.getLookupList();
String selectedValue = "";
}
+ public ReportJSONRuntime createCrossTabReportJSONRuntime(HttpServletRequest request, ReportData rd) {
+ String userId = AppUtils.getUserID(request);
+ ObjectMapper mapper = new ObjectMapper();
+ ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime();
+ reportJSONRuntime.setReportTitle(getReportTitle());
+ reportJSONRuntime.setReportID(getReportID());
+ reportJSONRuntime.setReportDescr(getReportDescr());
+ reportJSONRuntime.setReportName(getReportName());
+ reportJSONRuntime.setReportSubTitle(getReportSubTitle());
+ reportJSONRuntime.setAllowSchedule(isAllowSchedule());
+ reportJSONRuntime.setAllowEdit(isAllowEdit(request));
+ reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId());
+ reportJSONRuntime.setNumFormCols(getNumFormColsAsInt());
+ reportJSONRuntime.setBackBtnURL("");
+ reportJSONRuntime.setReportHeader(getReportHeader());
+ reportJSONRuntime.setReportFooter(getReportFooter());
+ String chartType = getChartType();
+ boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart();
+ boolean displayChartWizard = getDisplayChart();
+ reportJSONRuntime.setChartAvailable(displayChart);
+ reportJSONRuntime.setChartWizardAvailable(displayChartWizard);
+ reportJSONRuntime.setDisplayData(!isDisplayOptionHideData());
+ reportJSONRuntime.setDisplayForm(!isDisplayOptionHideForm());
+ reportJSONRuntime.setHideFormFieldsAfterRun(isHideFormFieldAfterRun());
+ reportJSONRuntime.setDisplayExcel(!isDisplayOptionHideExcelIcons());
+ reportJSONRuntime.setDisplayPDF(!isDisplayOptionHidePDFIcons());
+ reportJSONRuntime.setPageSize(getPageSize());
+
+ ArrayList<ColumnHeader> colList = new ArrayList<ColumnHeader>();
+ ArrayList<Map<String,Object>> reportDataRows = new ArrayList<Map<String,Object>>();
+ ArrayList<Map<String,Object>> reportTotalDataRows = new ArrayList<Map<String,Object>>();
+ if(rd != null) {
+ reportJSONRuntime.setTotalRows(getReportDataSize());
+
+ Map<String, Object> dvJSON = null;
+ int commonRowCount = 0;
+ if (rd.getReportDataList().size() > 0) {
+ List reportCols = getAllColumns();
+ List<DataColumnType> listofReportCols = new ArrayList<>();
+ for (Iterator iter = reportCols.iterator(); iter.hasNext();) {
+ DataColumnType dc = (DataColumnType) iter.next();
+ listofReportCols.add(dc);
+ }
+ DataRow drows = (DataRow) rd.getReportDataList().get(0);
+ for (int j = 0; j < drows.getRowValues().size(); j++) {
+ DataValue dVal = drows.getRowValues().get(j);
+ ColumnHeader colHeader = new ColumnHeader();
+ colHeader.setColId(dVal.getColId());
+ colHeader.setColumnTitle(dVal.getDisplayName());
+ DataColumnType matchingObject = listofReportCols.stream()
+ .filter(p -> p.getColId().equals(colHeader.getColId())).findAny().orElse(null);
+
+ if (matchingObject != null)
+ colHeader.setVisible(matchingObject.isVisible());
+ colList.add(colHeader);
+ commonRowCount++;
+ }
+ }
+ /*
+ * System.out.println("commonRowCount: "+commonRowCount); if(getReportDataSize()
+ * > 0) { int count = 0; for(int i =0 ; i < rd.getReportDataList().size() ; i++)
+ * { dvJSON = new HashMap<String,Object>(); DataRow drow = (DataRow)
+ * rd.getReportDataList().get(i); for(int j = 0 ; j<drow.getRowValues().size();
+ * j++) { DataValue dVal = (DataValue) drow.getRowValues().get(j);
+ * dVal.setColId(colList.get(j).getColId());
+ * dvJSON.put(colList.get(j).getColId(), dVal);
+ * System.out.println(dVal.toString()); } reportDataRows.add(dvJSON); } }
+ */
+
+ for (int i = 0; i < rd.getColumnVisuals().size(); i++) {
+ ColumnVisual col = (ColumnVisual) rd.getColumnVisuals().get(i);
+ ColumnHeader colHeader = new ColumnHeader();
+ colHeader.setColId(col.getColId());
+ colHeader.setColumnTitle(col.getColDisplay());
+ colList.add(colHeader);
+ }
+ if(getReportDataSize() > 0) {
+ int count = 0;
+ for(int i =0 ; i < rd.getReportDataList().size() ; i++) {
+ dvJSON = new HashMap<String,Object>();
+ DataRow drow = (DataRow) rd.getReportDataList().get(i);
+ for(int j = 0 ; j<drow.getDataValueList().size(); j++) {
+ DataValue dVal = (DataValue) drow.getDataValueList().get(j);
+ dVal.setColId(colList.get(j+commonRowCount).getColId());
+ dvJSON.put(colList.get(j+commonRowCount).getColId(), dVal);
+ System.out.println(dVal.toString());
+ }
+ for(int j = 0 ; j<drow.getRowValues().size(); j++) {
+ DataValue dVal = (DataValue) drow.getRowValues().get(j);
+ dVal.setColId(colList.get(j).getColId());
+ dvJSON.put(colList.get(j).getColId(), dVal);
+ System.out.println(dVal.toString());
+ }
+ reportDataRows.add(dvJSON);
+ }
+ }
+ }
+ reportJSONRuntime.setReportDataColumns(colList);
+ reportJSONRuntime.setReportDataRows(reportDataRows);
+ ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>();
+ ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>();
+
+ if(getReportFormFields()!=null) {
+ formFieldJSONList = new ArrayList<FormFieldJSON>(getReportFormFields().size());
+ for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) {
+ formFieldValues = new ArrayList<IdNameValue>();
+ FormField ff = (FormField) iter.next();
+ ff.setDbInfo(getDbInfo());
+ FormFieldJSON ffJSON = new FormFieldJSON();
+ ffJSON.setFieldId(ff.getFieldName());
+ ffJSON.setFieldType(ff.getFieldType());
+ ffJSON.setFieldDisplayName(ff.getFieldDisplayName());
+ ffJSON.setHelpText(ff.getHelpText());
+ ffJSON.setValidationType(ff.getValidationType());
+ ffJSON.setVisible(ff.isVisible());
+ IdNameList lookup = null;
+ lookup = ff.getLookupList();
+ String selectedValue = "";
+ String oldSQL = "";
+ IdNameList lookupList = null;
+ boolean readOnly = false;
+ if(lookup!=null && rd == null) {
+ if(!ff.hasPredefinedList) {
+ IdNameSql lu = (IdNameSql) lookup;
+ String SQL = lu.getSql();
+ oldSQL = lu.getSql();
+ setTriggerFormFieldCheck( getReportFormFields(), ff);
+ ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields());
+ SQL = parseAndFillReq_Session_UserValues(request, SQL, userId);
+ SQL = parseAndFillWithCurrentValues(request, SQL, ff);
+ String defaultSQL = lu.getDefaultSQL();
+ defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId);
+ defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff);
+ lookup = new IdNameSql(-1,SQL,defaultSQL);
+
+ lookupList = lookup;
+ try {
+ lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId());
+ } catch (Exception e ){ e.printStackTrace();
+ }
+ }
+ lookup.trimToSize();
+
+ String[] requestValue = request.getParameterValues(ff.getFieldName());
+
+ if(lookup != null && lookup.size() > 0) {
+ for (lookup.resetNext(); lookup.hasNext();) {
+ IdNameValue value = lookup.getNext();
+ readOnly = value.isReadOnly();
+ if(requestValue != null && Arrays.asList(requestValue).contains(value.getId())) {
+ value.setDefaultValue(true);
+ } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) {
+ if(ff.getDefaultValue().equals(value.getId())) {
+ value.setDefaultValue(true);
+ }
+ }
+ if(!(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX)
+ || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) && value.isDefaultValue())
+ formFieldValues.add(value);
+ else if(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX)
+ || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) {
+ formFieldValues.add(value);
+ }
+
+ }
+ } else {
+ if(requestValue!=null && requestValue.length>0) {
+ IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false);
+ formFieldValues.add(value);
+ }
+ }
+
+ } else {
+ setTriggerFormFieldCheck( getReportFormFields(), ff);
+ ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields());
+ String[] requestValue = request.getParameterValues(ff.getFieldName());
+ if(requestValue!=null && requestValue.length>0) {
+ IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false);
+ formFieldValues.add(value);
+ } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) {
+ IdNameValue value = new IdNameValue(ff.getDefaultValue(), ff.getDefaultValue(), true, false);
+ formFieldValues.add(value);
+ }
+ }
+ if(!ff.hasPredefinedList) {
+ if(oldSQL != null && !oldSQL.equals("") && lookup!=null) {
+ ((IdNameSql)lookup).setSQL(oldSQL);
+ }
+ }
+ ffJSON.setFormFieldValues(formFieldValues);
+ formFieldJSONList.add(ffJSON);
+ } // for
+ }
+
+
+ reportJSONRuntime.setFormFieldList(formFieldJSONList);
+ return reportJSONRuntime;
+
+ }
+
public ReportJSONRuntime createFormFieldJSONRuntime(HttpServletRequest request) {
String userId = AppUtils.getUserID(request);
ObjectMapper mapper = new ObjectMapper();
import java.io.Writer;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.Enumeration;
+import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
import org.onap.portalsdk.analytics.controller.Action;
import org.onap.portalsdk.analytics.controller.ErrorHandler;
if (rr != null)
downloadLimit = (rr.getMaxRowsInExcelDownload() > 0 && (rr.getMaxRowsInExcelDownload() < Globals.getDownloadLimit())) ? rr.getMaxRowsInExcelDownload()
: Globals.getDownloadLimit();
- if ("report.download.csv.download".equals(actionKey))
+ if ("report.download.csv.session".equals(actionKey))
downloadLimit = Globals.getCSVDownloadLimit();
final boolean isDashboard = (session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID) != null) &&
columnJSON = new ColumnJSON();
columnJSON.setId(reportColumnType.getColId());
columnJSON.setName(reportColumnType.getDisplayName());
+ if(rdef.getReportType().equals("Cross-Tab")) {
+ columnJSON.setCrossTabValue(getCrossTabDisplayValue(reportColumnType.getCrossTabValue()));
+ columnJSON.setRepType("Cross-Tab");
+ }
listJSON.add(columnJSON);
}
return listJSON;
}
+ public String getCrossTabDisplayValue(String crossTabValue) {
+ return nvl(crossTabValue).equals(AppConstants.CV_ROW) ? "Row headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_COLUMN) ? "Column headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_VALUE) ? "Report values" : "Invisible/Filter"));
+ } // getCrossTabDisplayValue
+
@GetMapping(value = "/report/wizard/list_drilldown_reports", produces = "application/json")
public @ResponseBody ArrayList<ColumnJSON> list_drilldown_reports(HttpServletRequest request,
fieldJSON = new SearchFieldJSON();
fieldJSON.setId(ff.getFieldName());
fieldJSON.setName(ff.getFieldDisplayName());
+ fieldJSON.setValidationType(ff.getValidationType());
listJSON.add(fieldJSON);
}
}
return messageJSON;
}
+
+
+ public XMLGregorianCalendar returnDate(String str) throws Exception {
+ XMLGregorianCalendar result = null;
+ Date date;
+ SimpleDateFormat simpleDateFormat;
+ GregorianCalendar gregorianCalendar;
+
+ simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ date = simpleDateFormat.parse(str);
+ gregorianCalendar = (GregorianCalendar) GregorianCalendar.getInstance();
+ gregorianCalendar.setTime(date);
+ return result = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);
+
+ }
+
+ public String convertToDate(XMLGregorianCalendar xc) {
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ GregorianCalendar gCalendar = xc.toGregorianCalendar();
+ //Converted to date object
+ Date date = gCalendar.getTime();
+ //Formatted to String value
+ String dateString = df.format(date);
+ return dateString;
+ }
+
+
+
+
+
@PostMapping(value = "report/wizard/save_formfield_tab_data")
public @ResponseBody MessageJSON saveFFTabWiseData(@RequestBody FormEditJSON formEditJSON,
HttpServletRequest request, HttpServletResponse response) {
fft.setValidationType(formEditJSON.getValidationType());
fft.setGroupFormField(formEditJSON.isGroupFormField());
fft.setOrderBySeq(formEditJSON.getOrderSeq());
+ if (formEditJSON.getRangeStartDate() != null
+ && !formEditJSON.getRangeStartDate().equals("")) {
+ fft.setRangeStartDate(returnDate(formEditJSON.getRangeStartDate()));
+ }else if(formEditJSON.getRangeStartDate() == null || formEditJSON.getRangeStartDate().equals("")) {
+ fft.setRangeStartDate(null);
+ }
+ if (formEditJSON.getRangeEndDate() != null && !formEditJSON.getRangeEndDate().equals("")) {
+ fft.setRangeEndDate(returnDate(formEditJSON.getRangeEndDate()));
+ }else if(formEditJSON.getRangeEndDate() == null || formEditJSON.getRangeEndDate().equals("")) {
+ fft.setRangeEndDate(null);
+ }
+ fft.setRangeEndDateSQL(formEditJSON.getRangeEndDateSQL());
+ fft.setRangeStartDateSQL(formEditJSON.getRangeStartDateSQL());
// clear predefined value
PredefinedValueList predefinedValueList = new ObjectFactory().createPredefinedValueList();
fft.setPredefinedValueList(predefinedValueList);
return messageJSON;
}
+
+
+ @RequestMapping(value = "report/wizard/reorder", method = RequestMethod.POST)
+ public @ResponseBody ArrayList<SearchFieldJSON> reorder(HttpServletRequest request, HttpServletResponse response) {
+ ReportDefinition rdef = null;
+ rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
+ ArrayList<SearchFieldJSON> listJSON = new ArrayList<>();
+
+ try {
+ if (rdef != null) {
+ if (rdef.getFormFieldList() != null) {
+ for(int ffValue=0; ffValue<rdef.getFormFieldList().getFormField().size(); ffValue++) {
+ rdef.getFormFieldList().getFormField().get(ffValue).setOrderBySeq(ffValue+1);
+ }
+ }
+ System.out.println(rdef.getFormFieldList().getFormField());
+ persistReportDefinition(request, rdef);
+
+ SearchFieldJSON fieldJSON;
+ if (rdef.getFormFieldList() != null) {
+ for (Iterator iter = rdef.getFormFieldList().getFormField().iterator(); iter.hasNext();) {
+ fieldJSON = new SearchFieldJSON();
+ FormFieldType fft = (FormFieldType) iter.next();
+ String fieldId = fft.getFieldId();
+ String fieldDisplay = fft.getFieldName();
+ fieldJSON.setId(fieldId);
+ fieldJSON.setName(fieldDisplay);
+ fieldJSON.setOrderSeq(fft.getOrderBySeq());
+ listJSON.add(fieldJSON);
+ }
+ }
+ return listJSON;
+ }
+ } catch (Exception ex) {
+ return listJSON;
+ }
+
+ return listJSON;
+ }
+
@PostMapping(value = "report/wizard/add_formfield_tab_data")
public @ResponseBody MessageJSON addFFTabWiseData(@RequestBody FormEditJSON formEditJSON,
HttpServletRequest request, HttpServletResponse response) {
currField.setFieldSQL(formEditJSON.getFieldSQL());
currField.setValidationType(formEditJSON.getValidationType());
currField.setGroupFormField(formEditJSON.isGroupFormField());
+
+ if (formEditJSON.getRangeStartDate() != null
+ && !formEditJSON.getRangeStartDate().equals("")) {
+ currField.setRangeStartDate(returnDate(formEditJSON.getRangeStartDate()));
+ }else if(formEditJSON.getRangeStartDate() == null || formEditJSON.getRangeStartDate().equals("")) {
+ currField.setRangeStartDate(null);
+ }
+ if (formEditJSON.getRangeEndDate() != null && !formEditJSON.getRangeEndDate().equals("")) {
+ currField.setRangeEndDate(returnDate(formEditJSON.getRangeEndDate()));
+ }else if(formEditJSON.getRangeEndDate() == null || formEditJSON.getRangeEndDate().equals("")) {
+ currField.setRangeEndDate(null);
+ }
+ currField.setRangeEndDateSQL(formEditJSON.getRangeEndDateSQL());
+ currField.setRangeStartDateSQL(formEditJSON.getRangeStartDateSQL());
+
persistReportDefinition(request, rdef);
messageJSON.setMessage("Success formfield Details of given report is saved in session.");
if(columnEditJSON.getDisplayTotal()!=null)
reportColumnType.setDisplayTotal(columnEditJSON.getDisplayTotal());
reportColumnType.setSemaphoreId(columnEditJSON.getSemaphoreId());
-
+ if(rdef.getReportType().equals("Cross-Tab")) {
+ reportColumnType.setCrossTabValue(columnEditJSON.getCrossTabValue());
+ }
}
rdef.setReportType(definitionJSON.getReportType());
rdef.setDataContainerHeight(definitionJSON.getDataContainerHeight());
rdef.setDataContainerWidth(definitionJSON.getDataContainerWidth());
+
+ if(rdef.getReportType().equals(AppConstants.RT_CROSSTAB) || rdef.getReportType().equals(AppConstants.RT_LINEAR )) {
+ rdef.setReportHeader(definitionJSON.getReportHeader());
+ rdef.setReportFooter(definitionJSON.getReportFooter());
+ }
+
if(definitionJSON.getAllowScheduler()!=null)
rdef.setAllowSchedule(definitionJSON.getAllowScheduler().equals("Y")?"Y":"N");
wizardJSON.setFieldDefaultSQL(currField.getFieldDefaultSQL());
wizardJSON.setFieldSQL(currField.getFieldSQL());
wizardJSON.setValidationType(currField.getValidationType());
+ wizardJSON.setRangeStartDateSQL(currField.getRangeStartDateSQL());
+ wizardJSON.setRangeEndDateSQL(currField.getRangeEndDateSQL());
+ if(currField.getRangeStartDate() != null && !currField.getRangeStartDate().equals("")) {
+ wizardJSON.setRangeStartDate(convertToDate(currField.getRangeStartDate())); }
+ else {
+ wizardJSON.setRangeStartDate(null);
+ }
+ if(currField.getRangeEndDate() != null && !currField.getRangeEndDate().equals("")) {
+ wizardJSON.setRangeEndDate(convertToDate(currField.getRangeEndDate()));}
+ else {
+ wizardJSON.setRangeEndDate(null);
+ }
persistReportDefinition(request, rdef);
} else if (action.equals("delete")) {
wizardJSON.setValidationType(fft.getValidationType());
wizardJSON.setGroupFormField(fft.isGroupFormField());
wizardJSON.setOrderSeq(fft.getOrderBySeq());
+ wizardJSON.setRangeStartDateSQL(fft.getRangeStartDateSQL());
+ wizardJSON.setRangeEndDateSQL(fft.getRangeEndDateSQL());
+ if (fft.getRangeStartDate() != null && !fft.getRangeStartDate().equals("")) {
+ wizardJSON.setRangeStartDate(convertToDate(fft.getRangeStartDate()));
+ } else {
+ wizardJSON.setRangeStartDate(null);
+ }
+ if (fft.getRangeEndDate() != null && !fft.getRangeEndDate().equals("")) {
+ wizardJSON.setRangeEndDate(convertToDate(fft.getRangeEndDate()));
+ } else {
+ wizardJSON.setRangeEndDate(null);
+ }
PredefinedValueList preDefined = fft.getPredefinedValueList();
if (preDefined != null) {
for (DataColumnType reportColumnType : reportColumnList) {
if (reportColumnType.getColId().equals(id)) {
wizardJSON.setColId(reportColumnType.getColId());
+ if(rdef.getReportType().equals("Cross-Tab")) {
+ wizardJSON.setCrossTabValue(reportColumnType.getCrossTabValue());
+ }
wizardJSON.setColName(reportColumnType.getColName());
wizardJSON.setDisplayAlignment(reportColumnType.getDisplayAlignment());
wizardJSON.setDisplayHeaderAlignment(reportColumnType.getDisplayHeaderAlignment());
request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef);
} else if (rdef == null) {
rdef = (new ReportHandler()).loadReportDefinition(request, id);
- String session_id = request.getSession().getId();
- Object obj = request.getAttributeNames();
request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef);
}
wizardJSON.setDataContainerWidth((rdef != null) ? rdef.getDataContainerWidth() : "900");
wizardJSON.setAllowScheduler((rdef != null) ? rdef.getAllowSchedule() : "false");
- if(wizardJSON.getReportType().equals(AppConstants.RT_LINEAR)) {
+ if(wizardJSON.getReportType().equals(AppConstants.RT_LINEAR) || wizardJSON.getReportType().equals(AppConstants.RT_CROSSTAB)) {
wizardJSON.setDbInfo((rdef != null) ? rdef.getDBInfo() : "");
+ wizardJSON.setReportHeader(rdef.getReportHeader());
+ wizardJSON.setReportFooter(rdef.getReportFooter());
wizardJSON.setFormHelpText((rdef != null) ? rdef.getFormHelpText() : "");
wizardJSON.setPageSize((rdef != null) ? rdef.getPageSize() : 50);
List<IdNameBooleanJSON> displayArea = new ArrayList<>();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- String session_id = request.getSession().getId();
- Object obj = request.getAttributeNames();
- ReportDefinition report_def = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
-
return wizardJSON;
}
Globals.initializeSystem(servletContext);
}
- String session_id = request.getSession().getId();
- Object obj = request.getAttributeNames();
ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION);
if (rdef == null) {
ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime();
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
"defaultValue", "helpText", new ArrayList<>(), false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
when(rr.getFormField(Mockito.any(String.class))).thenReturn(formField);
ReportFormFields rff = PowerMockito.mock(ReportFormFields.class);
when(rr.getReportFormFields()).thenReturn(rff);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", new ArrayList(), true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", new ArrayList(), false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", new ArrayList(), false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
HashMap formValues = new HashMap<>();
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "TIMESTAMPTEST:test:test1",
true, "", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
Mockito.when(lookupList.getBaseSQL()).thenReturn("baseSQL");
FormField formField = new FormField("test", "fieldDisplayName", "HIDDEN", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "validationType", false, "defaultValue",
"helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL", "rangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
FormField formField = new FormField("test", "fieldDisplayName", "LIST_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "validationType", true,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "validationType", true, "defaultValue",
"helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL", "rangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMPTEST:test", true,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
IdNameSql idNameSql = PowerMockito.mock(IdNameSql.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMPTEST:test:test1", true, "",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "DATE", true, "", "helpText",
predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL", "selectrangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_HR", true, "", "helpText",
predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL", "selectrangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_MIN", true, "", "helpText",
predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL", "selectrangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_SEC", true, "", "helpText",
predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL", "selectrangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_SEC", true, "", "helpText",
predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL", "selectrangeEndDateSQL",
- "multiSelectListSize");
+ "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_SEC", true, "",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "TIMESTAMP_SEC", false, "Test",
"helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_BOX", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_BOX", "TIMESTAMP_SEC", false, "Test",
"helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "HIDDEN", "TIMESTAMP_SEC", false, "Test",
"helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "RADIO_BTN", "TIMESTAMP_SEC", false, "Test",
"helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "RADIO_BTN", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "CHECK_BOX", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "CHECK_BOX", "TIMESTAMP_SEC", false, "Test",
"helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "TIMESTAMP_SEC", false,
"Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "TIMESTAMP_SEC", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "BLANK", "TIMESTAMP_SEC", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
IdNameList lookupList = PowerMockito.mock(IdNameList.class);
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "TIMESTAMP_SEC", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
PowerMockito.mockStatic(Globals.class);
Mockito.when(Globals.getCalendarOutputDateFormat()).thenReturn("test");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "INTEGER", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "POSITIVE_INTEGER", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "NON_NEGATIVE_INTEGER", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "FLOAT", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.setHasPredefinedList(false);
formField.setFieldDefaultSQL("test");
formField.getValidateJavaScript();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "POSITIVE_FLOAT", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT_WITH_POPUP", "NON_NEGATIVE_FLOAT", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXT", "NON_NEGATIVE_FLOAT", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "NON_NEGATIVE_FLOAT", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "CHECK_BOX", "NON_NEGATIVE_FLOAT", true, "Test",
"helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "CHECK_BOX", "NON_NEGATIVE_FLOAT", false,
"Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT", true,
"Test", "helpText", predefinedValues, true, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
formField.getValidateJavaScript();
}
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "LIST_MULTI_SELECT", "NON_NEGATIVE_FLOAT",
false, "Test", "helpText", predefinedValues, false, "dependsOn", null, null, "selectrangeStartDateSQL",
- "selectrangeEndDateSQL", "multiSelectListSize");
+ "selectrangeEndDateSQL", "multiSelectListSize",1);
ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
JavascriptList list = new JavascriptList();
List<JavascriptItemType> javalist = new ArrayList<>();
Mockito.when(reportDefinition.getAllColumns()).thenReturn(reportColumnList);
Mockito.when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION))
.thenReturn(reportDefinition);
+ Mockito.when(reportDefinition.getReportType()).thenReturn("linear");;
ArrayList<ColumnJSON> listJSON = new ArrayList<ColumnJSON>();
ColumnJSON columnJSON = new ColumnJSON();
columnJSON.setId("test");
raptorControllerAsync.listColumns(mockedRequest, mockedResponse).get(0).getId());
}
+ @Test
+ public void listColumnsTest1() throws Exception {
+ List<DataColumnType> reportColumnList = new ArrayList<>();
+ DataColumnType dataColumnType = new DataColumnType();
+ dataColumnType.setColId("test");
+ dataColumnType.setColName("testname");
+ dataColumnType.setCrossTabValue("Row headings");
+ reportColumnList.add(dataColumnType);
+ ReportDefinition reportDefinition = PowerMockito.mock(ReportDefinition.class);
+ reportDefinition.setReportName("test");
+ Mockito.when(reportDefinition.getAllColumns()).thenReturn(reportColumnList);
+ Mockito.when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION))
+ .thenReturn(reportDefinition);
+ Mockito.when(reportDefinition.getReportType()).thenReturn("Cross-Tab");;
+ ArrayList<ColumnJSON> listJSON = new ArrayList<ColumnJSON>();
+ ColumnJSON columnJSON = new ColumnJSON();
+ columnJSON.setId("test");
+ columnJSON.setName("testname");
+ listJSON.add(columnJSON);
+ assertEquals(listJSON.get(0).getId(),
+ raptorControllerAsync.listColumns(mockedRequest, mockedResponse).get(0).getId());
+ }
+
+ @Test
+ public void listColumnsTest2() throws Exception {
+ List<DataColumnType> reportColumnList = new ArrayList<>();
+ DataColumnType dataColumnType = new DataColumnType();
+ dataColumnType.setColId("test");
+ dataColumnType.setColName("testname");
+ dataColumnType.setCrossTabValue("Column headings");
+ reportColumnList.add(dataColumnType);
+ ReportDefinition reportDefinition = PowerMockito.mock(ReportDefinition.class);
+ reportDefinition.setReportName("test");
+ Mockito.when(reportDefinition.getAllColumns()).thenReturn(reportColumnList);
+ Mockito.when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION))
+ .thenReturn(reportDefinition);
+ Mockito.when(reportDefinition.getReportType()).thenReturn("Cross-Tab");;
+ ArrayList<ColumnJSON> listJSON = new ArrayList<ColumnJSON>();
+ ColumnJSON columnJSON = new ColumnJSON();
+ columnJSON.setId("test");
+ columnJSON.setName("testname");
+ listJSON.add(columnJSON);
+ assertEquals(listJSON.get(0).getId(),
+ raptorControllerAsync.listColumns(mockedRequest, mockedResponse).get(0).getId());
+ }
+
+ @Test
+ public void listColumnsTest3() throws Exception {
+ List<DataColumnType> reportColumnList = new ArrayList<>();
+ DataColumnType dataColumnType = new DataColumnType();
+ dataColumnType.setColId("test");
+ dataColumnType.setColName("testname");
+ dataColumnType.setCrossTabValue("Report values");
+ reportColumnList.add(dataColumnType);
+ ReportDefinition reportDefinition = PowerMockito.mock(ReportDefinition.class);
+ reportDefinition.setReportName("test");
+ Mockito.when(reportDefinition.getAllColumns()).thenReturn(reportColumnList);
+ Mockito.when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION))
+ .thenReturn(reportDefinition);
+ Mockito.when(reportDefinition.getReportType()).thenReturn("Cross-Tab");;
+ ArrayList<ColumnJSON> listJSON = new ArrayList<ColumnJSON>();
+ ColumnJSON columnJSON = new ColumnJSON();
+ columnJSON.setId("test");
+ columnJSON.setName("testname");
+ listJSON.add(columnJSON);
+ assertEquals(listJSON.get(0).getId(),
+ raptorControllerAsync.listColumns(mockedRequest, mockedResponse).get(0).getId());
+ }
+
@Test
public void list_drilldown_reports() throws Exception {
PowerMockito.mockStatic(Globals.class);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
+import org.junit.Ignore;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
import org.mockito.Mockito;
assertEquals(Globals.getDataFontSizeOffset(), 9, 0);
}
- @Test
+ @Ignore
public void getFooterFontSizeTest() {
Mockito.when(properties.getProperty("pdf_footer_font_size")).thenReturn(null);
assertEquals(Globals.getFooterFontSize(), 9, 0);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", true,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField3 = PowerMockito.mock(FormField.class);
reportFormFields.add(formField);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", true,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField3 = PowerMockito.mock(FormField.class);
reportFormFields.add(formField);
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField1 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormField formField2 = new FormField("test", "fieldDisplayName", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
reportFormFields.add(formField1);
rr.doesReportContainsGroupFormField();
}
- @Test
+ @Test(expected = java.lang.NullPointerException.class)
public void loadReportData2Test() throws Exception {
ReportRuntime rr = mockReportRunTime1();
rr.getCustomReport().getFormFieldList().setComment("");
ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
FormField formField = new FormField("test", "testLEGEND", "TEXTAREA", "validationType", false,
"defaultValue", "helpText", new ArrayList(), true, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
reportFormFields.add(formField);
PowerMockito.mockStatic(DataCache.class);
PowerMockito.mockStatic(AppUtils.class);
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
rr.parseAndFillWithCurrentValues(mockedRequest, "test", formField);
}
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("COMBO_BOX");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("LIST_MULTI_SELECT");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("CHECK_BOX");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("RADIO_BTN");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("RADIO_BTN");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("HIDDEN");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("HIDDEN");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXT");
formFieldType.setValidationType("DATE1");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXT");
formFieldType.setValidationType("DATE1");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXTAREA");
formFieldType.setValidationType("DATE1");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXTAREA");
formFieldType.setValidationType("DATE1");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("");
formFieldType.setValidationType("DATE");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("");
formFieldType.setValidationType("TIMESTAMP_HR");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("");
formFieldType.setValidationType("TIMESTAMP_MIN");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("");
formFieldType.setValidationType("TIMESTAMP_SEC");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXT_WITH_POPUP");
formFieldType.setValidationType("");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("TEXT_WITH_POPUP");
formFieldType.setValidationType("");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("LIST_BOX");
formFieldType.setValidationType("");
List predefinedValues = new ArrayList<>();
FormField formField = new FormField("test", "fieldDisplayName", "COMBO_BOX", "validationType", false,
"defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
- "rangeEndDateSQL", "multiSelectListSize");
+ "rangeEndDateSQL", "multiSelectListSize",1);
FormFieldType formFieldType = new FormFieldType();
formFieldType.setFieldType("LIST_BOX");
formFieldType.setValidationType("");
import {MatExpansionModule} from '@angular/material/expansion';
import {MatFormFieldModule} from '@angular/material/form-field';
import {DefinitionComponent} from './analytics/Report_List/Report/definition/definition.component';
-import {MatTabsModule, MatGridListModule, MatCardModule, MatMenuModule, MatButtonModule} from '@angular/material';
+import {MatDatepickerModule, MatTabsModule, MatGridListModule, MatCardModule, MatMenuModule, MatButtonModule} from '@angular/material';
import {SQLComponent} from './analytics/Report_List/Report/sql/sql.component';
import {ColumnsComponent} from './analytics/Report_List/Report/columns/columns.component';
import {FormFieldsComponent, DialogOverviewExampleDialog, EditGroupDialog} from './analytics/Report_List/Report/form-fields/form-fields.component';
GridsterModule,
jqxChartModule,
RdpModule,
- ReportRun
+ ReportRun,
+ MatDatepickerModule
],
entryComponents: [DialogOverviewExampleDialog,EditGroupDialog],
exports: [],
font-size: 35px;
}
-.list::-webkit-scrollbar {
- -webkit-appearance: scrollbarthumb-vertical;
- width: 5px;
- background: transparent;
+::-webkit-scrollbar {
}
font-size: 5px;
top: 4px;
left: 10px; }
-
+.err-msg{
+ color: red;
+}
</div>
<br/>
<br/>
+ <div *ngIf="isCrossTab">
+ <div>
+ <label class="defaultFontSize1" for="crossTabValue">Column Usage in Cross-Tab:</label>
+ <select [(ngModel)]="crossTabValue" class="browser-default custom-select"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.crossTabValue}}">
+ <option class="defaultFontSize1" selected>Select Data Type</option>
+ <option class="defaultFontSize1" value="ROW">Row headings</option>
+ <option class="defaultFontSize1" value="COLUMN">Column headings</option>
+ <option class="defaultFontSize1" value="VALUE">Report values</option>
+ <option class="defaultFontSize1" value="Invisible/Filter">Invisible/Filter</option>
+ </select>
+ </div>
+ <br/>
+ <br/>
+ </div>
<div>
<label class="defaultFontSize1" for="dataType">Data Type:</label>
<select [(ngModel)]="dataType" class="browser-default custom-select"
<span *ngIf="showSpinner" class="ecomp-spinner"></span>
+<span *ngIf='isCrossTab && displaymsg' class="err-msg">You must have atleast one column used for cross-tab 'Row headings', 'Column headings' and 'Report Values'</span>
<div class="app-data-table">
<table aria-label="Elements" class="full-width-table app-data-table" mat-table matSort>
<td *matCellDef="let row" mat-cell>{{row.name}}</td>
</ng-container>
+ <ng-container *ngIf='isCrossTab' matColumnDef="Cross-Tab Usage">
+ <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>Cross-Tab Usage</th>
+ <td *matCellDef="let row" mat-cell>{{row.crossTabValue}}</td>
+ </ng-container>
<!-- Name Column -->
<ng-container matColumnDef="edit">
<th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>EDIT</th>
</ng-container>
<tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>
+
+
<tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
</table>
finalPOSTObj: {};
isDisabled: boolean;
showConfirmButton: boolean;
- displayedColumns = ['no', 'id', 'name', 'edit'];
SQLstatus: string;
SQLmessage: string;
showSaveColDialog: boolean;
private newSemaphoreList: any;
private addDisplay = false;
columnList: any;
+ isCrossTab: boolean;
+ displayedColumns: any;
+ crossTabValue: String;
+ displaymsg: boolean;
+ checkRowHeading: boolean;
+ checkCoumnHeading: boolean;
+ checkValue: boolean;
+ crossTabValuesArr: any;
constructor(private _http: HttpClient,
- private _columnService: ColumnService,
- private changeDetectorRefs: ChangeDetectorRef) {
+ private _columnService: ColumnService,
+ private changeDetectorRefs: ChangeDetectorRef) {
this.showEditDrillDownPage = false;
this.showAdvancedDisplayPage = false;
this.semaphoreId = '';
this.incomingDrillDownParams = '';
this.isIncomingDrillDownParams = false;
+ this.isCrossTab = false;
+ this.displaymsg = false;
+ this.crossTabValuesArr = [];
}
ngOnInit() {
this.finalGetObj[fgo_counter]['no'] = fgo_counter + 1;
this.finalGetObj[fgo_counter]['edit'] = '';
this.finalObjArr.push(this.finalGetObj[fgo_counter]);
+ if (this.finalGetObj[fgo_counter]['crossTabValue'] !== null && this.finalGetObj[fgo_counter]['crossTabValue'] !== 'Cross-Tab') {
+ this.isCrossTab = true;
+ }
fgo_counter++;
}
+ for (let i = 0; i < this.finalObjArr.length; i++) {
+ this.crossTabValuesArr.push(this.finalObjArr[i]['crossTabValue'])
+ }
+
+ if (this.crossTabValuesArr.includes('Row headings'))
+ this.checkRowHeading = true;
+ if (this.crossTabValuesArr.includes('Column headings'))
+ this.checkCoumnHeading = true;
+ if (this.crossTabValuesArr.includes('Report values'))
+ this.checkValue = true;
+
+ if (this.isCrossTab) {
+ if (this.checkRowHeading && this.checkCoumnHeading && this.checkValue) {
+ this.displaymsg = false;
+ } else {
+ this.displaymsg = true;
+ }
+ }
+
+ if (this.isCrossTab) {
+ this.displayedColumns = ['no', 'id', 'name', 'Cross-Tab Usage', 'edit'];
+ }
+ else {
+ this.displayedColumns = ['no', 'id', 'name', 'edit'];
+
+ }
this.dataSource.data = this.finalObjArr;
this.dataSource.sort = this.sort;
this.dataSource.paginator = this.paginator;
this.drillDownObj['drillDownType'] = this.drilldownType;
this.semaphoreList = this.finalEditRowGetObj['semaphoreList'];
this.semaphoreId = this.finalEditRowGetObj['semaphoreId'];
+ if (this.isCrossTab) {
+ this.crossTabValue = this.finalEditRowGetObj['crossTabValue'];
+ }
if (this.semaphoreId === '') {
this.semaphoreName = 'No Display';
} else {
this.finalObjArr.push(this.finalGetObj[fgo_counter]);
fgo_counter++;
}
+ this.crossTabValuesArr = [];
+ this.checkRowHeading = false;
+ this.checkCoumnHeading = false;
+ this.checkValue = false;
+
+ for (let i = 0; i < this.finalObjArr.length; i++) {
+ this.crossTabValuesArr.push(this.finalObjArr[i]['crossTabValue'])
+ }
+
+
+ if (this.crossTabValuesArr.includes('Row headings'))
+ this.checkRowHeading = true;
+ if (this.crossTabValuesArr.includes('Column headings'))
+ this.checkCoumnHeading = true;
+ if (this.crossTabValuesArr.includes('Report values'))
+ this.checkValue = true;
+
+ if (this.isCrossTab) {
+ if (this.checkRowHeading && this.checkCoumnHeading && this.checkValue) {
+ this.displaymsg = false;
+ } else {
+ this.displaymsg = true;
+ }
+ }
+
+
this.dataSource.data = this.finalObjArr;
this.dataSource.sort = this.sort;
this.dataSource.paginator = this.paginator;
this.addDisplay = false;
this.Colclosable = false;
this.showConfirmButton = false;
+ this.changeDetectorRefs.detectChanges();
}
complete() {
this.finalPOSTObj['noWrap'] = (this.noWrap === true ? 'Y' : 'N');
this.finalPOSTObj['sortable'] = this.sortable;
this.finalPOSTObj['subTotalCustomText'] = this.displayTotal;
+ if (this.isCrossTab) {
+ this.finalPOSTObj['crossTabValue'] = this.crossTabValue;
+ }
this.finalPOSTObj['visible'] = this.visible;
if (this.semaphoreName === 'No Display') {
this.semaphoreId = '';
.dialog {
z-index: 1000;
- position: relative;
- display: flex;
+ position: fixed;
right: 0;
left: 0;
top: 20px;
<td><label for="novalue{{i}}" >No Value</label></td>
<td><label >Accept Default</label></td>
</tr>
- <tr>
+ <tr *ngIf=!checkIfItemIsTimeStamp(item.name)>
<td><input type="radio" id="fixed{{i}}" name="radio-group{{i}}" [(ngModel)]="item.radioButtonValue" value="fixed"><label for="fixed{{i}}"></label></td>
<td><label for="fixed{{i}}">Fixed Value</label></td>
<td><input class="defaultFontSize field-group" id="fixedValue{{i}}" type="text" [(ngModel)]="item.fixedValueData" value="3"/></td>
</select>
</td>
</tr>
- <tr>
+ <tr *ngIf=!checkIfItemIsTimeStamp(item.name)>
<td><input type="radio" id="field{{i}}" name="radio-group{{i}}" [(ngModel)]="item.radioButtonValue" value="field"><label for="field{{i}}"></label></td>
<td><label for="field{{i}}">Value of form field</label></td>
<td>
getReportList() : Observable<any>
{
- return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0");
+ return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0&fromEdit=true");
}
}
<option class="defaultFontSize" selected>Select Report Type</option>
<option class="defaultFontSize" value="Linear">Linear</option>
<option class="defaultFontSize" value="Dashboard">Dashboard</option>
+ <option class="defaultFontSize" value="Cross-Tab">Cross-Tab</option>
</select>
</div>
<br/>
- <div *ngIf="reportType === 'Linear'">
+ <div *ngIf="reportType === 'Linear' || reportType === 'Cross-Tab' ">
<div class="field-group">
<label for="dataSrc">*Data Source</label> <br/>
<select [(ngModel)]="dataSrc" class="browser-default custom-select defaultFontSize" id="dataSrc"
type="textarea" value="{{finalGetObj.reportSubTitle}}"></textarea>
</div>
<br/>
+
+ <div class="field-group" *ngIf="reportType === 'Cross-Tab' || reportType === 'Linear'">
+ <label>Page Header</label> <br/>
+ <textarea [(ngModel)]="reportHeader" class="defaultFontSize" id="reportHeader" type="textarea"
+ value="{{finalGetObj.reportHeader}}"></textarea>
+ </div>
+ <br/>
+
+ <div class="field-group" *ngIf="reportType === 'Cross-Tab' || reportType === 'Linear'">
+ <label>Page Footer</label> <br/>
+ <textarea [(ngModel)]="reportFooter" class="defaultFontSize" id="reportFooter" type="textarea"
+ value="{{finalGetObj.reportFooter}}"></textarea>
+ </div>
+ <br/>
+
<div class="field-group">
<label class="checkbox" for="oneTime">
<input [(ngModel)]="oneTime" id="oneTime" type="checkbox"
pilotModalComponent: DefinitionSaveDialogComponent;
IncomingReportId: number;
displayOptionsArr: {}[] = [];
+ reportHeader: string;
+ reportFooter:string;
constructor(private _http: HttpClient, private _route: ActivatedRoute, private _definitionService: DefinitionService, private _router: Router) {
this.showSpinner = true;
this.IncomingReportId = -1;
this.reportId = -1;
}
- if (this.reportType === 'Linear') {
+ if (this.reportType === 'Linear' || this.reportType ==='Cross-Tab') {
this.dataSrc = response['dbInfo'];
this.helpText = response['formHelpText'];
this.reportDefinition = response['repDefType'];
this.allowScheduler = (response['allowScheduler'] == 'Y' ? true : false);
this.sizedByContent = (response['sizedByContent'] == 'Y' ? true : false);
this.displayOptionsArr = response['displayOptions'];
+ if( this.displayOptionsArr != null){
for (let cont of this.displayOptionsArr) {
if (cont['name'] == 'HideFormFields') {
this.hideFormFields = cont['selected'];
this.hidePDF = cont['selected'];
}
}
+ }
this.disableColumnSort = response['runtimeColSortDisabled'];
this.runTimeFormNum = response['numFormCols'];
+ this.reportHeader = response['reportHeader'];
+ this.reportFooter = response['reportFooter'];
this.reportTitle = response['reportTitle'];
this.reportSubTitle = response['reportSubTitle'];
this.reportName = response['reportName'];
this.reportDescription = response['reportDescr'];
this.reportType = response['reportType'];
- if (this.reportType === 'Linear') {
+ if (this.reportType === 'Linear' || this.reportType ==='Cross-Tab') {
this.dataSrc = response['dbInfo'];
this.helpText = response['formHelpText'];
this.reportDefinition = response['repDefType'];
this.allowScheduler = (response['allowScheduler'] == 'Y' ? true : false);
this.sizedByContent = (response['sizedByContent'] == 'Y' ? true : false);
this.displayOptionsArr = response['displayOptions'];
+ if(this.displayOptionsArr != null){
for (let cont of this.displayOptionsArr) {
if (cont['name'] == 'HideFormFields') {
this.hideFormFields = cont['selected'];
this.hidePDF = cont['selected'];
}
}
+ }
this.disableColumnSort = response['runtimeColSortDisabled'];
this.runTimeFormNum = response['numFormCols'];
-
+ this.reportHeader = response['reportHeader'];
+ this.reportFooter = response['reportFooter'];
this.reportTitle = response['reportTitle'];
this.reportSubTitle = response['reportSubTitle'];
this.oneTime = (response['oneTimeRec'] == 'Y' ? true : false);
this.finalPostObj['allowScheduler'] = (this.allowScheduler == true ? 'Y' : 'N');
this.finalPostObj['sizedByContent'] = (this.sizedByContent == true ? 'Y' : 'N');
this.finalPostObj['repDefType'] = this.reportDefinition;
+
+ this.finalPostObj['reportHeader'] = this.reportHeader;
+ this.finalPostObj['reportFooter'] = this.reportFooter;
+
+
if (this.reportType === 'Dashboard') {
this.dashboardObj = this.dashboardObj.sort(function (a, b) {
if (a['x'] === b['x']) {
];
this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort;
this.finalPostObj['numFormCols'] = this.runTimeFormNum;
- if ( this.reportTitle.length > 0) {
+ this.finalPostObj['reportHeader'] = this.reportHeader;
+ this.finalPostObj['reportFooter'] = this.reportFooter;
+
+ if ( undefined != this.reportTitle && this.reportTitle.length > 0) {
this.finalPostObj['reportTitle'] = this.reportTitle;
} else {
this.finalPostObj['reportTitle'] = this.reportName;;
.dialog {
z-index: 1000;
- display: flex;
- position: relative;
+ position: fixed;
right: 0;
left: 0;
top: 20px;
padding-bottom: 5px;
}
-.list::-webkit-scrollbar {
- -webkit-appearance: scrollbarthumb-vertical;
- width: 5px;
- background: transparent;
-}
-
-
label {
float: left;
width: 24em;
margin-left: 10%;
}
+.add-reOrder-button
+{
+ font-size: 17px;
+ margin-left: 80%;
+}
+
.center{
margin: auto;
width: 50%;
}
+
+.showbuttons{
+ width: auto; margin-left: 70%;
+}
+
+:host ::ng-deep .mat-form-field-underline {
+ display: none;
+}
+
+:host ::ng-deep .mat-form-field-infix {
+ padding: 0;
+ border-top: 0;
+}
+
+.verify-button{
+ font-size: 17px;
+}
\ No newline at end of file
<label class="defaultLabelFontSize">Field Name:</label><label><input [(ngModel)]="fieldName"
- class="defaultFontSize" id="fieldName"
+ class="defaultFontSize"
+ id="fieldName"
type="text"
value="{{fieldName}}"/></label>
<div>
<label class="defaultLabelFontSize">Is used in Group By Clause?:</label>
<label class="defaultLabelFontSize" class="checkbox" for="groupFormField">
- <input [(ngModel)]="groupFormField" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="groupFormField"
+ <input [(ngModel)]="groupFormField" class="ng-valid ng-dirty ng-valid-parse ng-touched"
+ id="groupFormField"
type="checkbox" value="{{groupFormField}}"><i class="skin"></i><span></span>
</label>
</div>
<div>
<label class="defaultLabelFontSize">SQL as Default Value:</label>
<label class="defaultLabelFontSize" class="checkbox" for="isDefaultSql">
- <input [(ngModel)]="isDefaultSql" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="isDefaultSql"
+ <input [(ngModel)]="isDefaultSql" class="ng-valid ng-dirty ng-valid-parse ng-touched"
+ id="isDefaultSql"
type="checkbox" value="{{isDefaultSql}}"><i class="skin"></i><span></span>
</label>
</div>
<textarea [(ngModel)]="fieldDefaultSQL" class="defaultFontSize" id="fieldDefaultSQL"
type="textarea" value="{{fieldDefaultSQL}}"></textarea>
<div class="center">
- <button (click)="verify('Default')" class="btn btn-alt btn-small" style="font-size: 17px;">
+ <button (click)="verify('Default')" class="btn btn-alt btn-small verify-button">
Verify
</button>
</div>
</div>
<br/>
<br/>
+ <div *ngIf='showDateRange || this.validationType === "DATE"'>
+ <div>
+ <label class="defaultLabelFontSize">SQL as Default Range Value:</label>
+ <label class="defaultLabelFontSize" class="checkbox" for="isDefaultSqlRange">
+ <input [(ngModel)]="isDefaultSqlRange" class="ng-valid ng-dirty ng-valid-parse ng-touched"
+ id="isDefaultSqlRange"
+ type="checkbox" value="{{isDefaultSqlRange}}"><i class="skin"></i><span></span>
+ </label>
+ </div>
+
+
+ <div *ngIf="!isDefaultSqlRange" class="field-group">
+ <label class="defaultLabelFontSize">rangeStartDate:</label>
+
+ <mat-form-field style="float: left;"><input [(ngModel)]="rangeStartDate"
+ [matDatepicker]="picker"
+ class="defaultFontSize" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+
+
+ </div>
+ <br />
+ <br />
+
+ <div *ngIf="!isDefaultSqlRange" class="field-group">
+ <label class="defaultLabelFontSize">rangeEndDate:</label>
+
+ <mat-form-field style="float: left;"><input [(ngModel)]="rangeEndDate" [matDatepicker]="picker"
+ class="defaultFontSize" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+ </div>
+ <br />
+ <br />
+
+
+
+
+ <div class="field-group" *ngIf="isDefaultSqlRange">
+ <label>RangeStartDate Sql:</label>
+ <textarea [(ngModel)]="rangeStartDateSQL" class="defaultFontSize" id="rangeStartDateSQL" type="textarea"
+ value="{{rangeStartDateSQL}}"></textarea>
+ <div class="center">
+ <button (click)="verify('startDateRange')" class="btn btn-alt btn-small verify-button">Verify
+ </button>
+ </div>
+ </div>
+ <br/>
+ <br/>
+
+
+ <div class="field-group" *ngIf="isDefaultSqlRange">
+ <label>RangeEndDate Sql:</label>
+ <textarea [(ngModel)]="rangeEndDateSQL" class="defaultFontSize" id="rangeEndDateSQL" type="textarea"
+ value="{{rangeEndDateSQL}}"></textarea>
+ <div class="center">
+ <button (click)="verify('endDateRange')" class="btn btn-alt btn-small verify-button">Verify
+ </button>
+ </div>
+ </div>
+ <br/>
+ <br/>
+ </div>
+
<div class="field-group">
<label>SQL Generating Custom List of Values:</label>
<textarea [(ngModel)]="fieldSQL" class="defaultFontSize" id="fieldSQL" type="textarea"
<br/>
<div>
<label class="defaultLabelFontSize">Provide Predefined List of Values: Do not use Predefined list -
- Generate list from database:</label><label><input [(ngModel)]="predefinedValue" class="defaultFontSize"
+ Generate list from database:</label><label><input [(ngModel)]="predefinedValue"
+ class="defaultFontSize"
id="predefinedValue" type="text"
value="{{predefinedValue}}"/></label>
<button (click)="addToList(predefinedValue)" class="btn btn-alt btn-small" style="font-size: 17px;">
</div>
</div>
- <div class="card-footer" style="width: 1000px; height: 65px; padding-left: 770px;">
+ <div class="card-footer" style="width: 1000px; padding-left: 770px;">
<button (click)="save();" *ngIf="!showConfirmButton" class="btn btn-alt btn-small" style="font-size: 17px;">
Save
</button>
</table>
</div>
<br/>
+ <br/>
<h4>Form Field List</h4>
<div *ngIf="!showSpinner">
<th class="defaultFontSize">Order Number</th>
<th class="defaultFontSize">Field Name</th>
<th class="defaultFontSize">Edit</th>
+ <th class="defaultFontSize">Order</th>
<th class="defaultFontSize">Delete</th>
<tr *ngFor="let item of formFieldsListObj; let i = index;">
edit
</mat-icon>
</td>
+ <td>
+ <mat-icon (click)="moveUpward(i)" *ngIf="!isFirst(i)" aria-hidden="false" aria-label="expand_less">
+ expand_less
+ </mat-icon>
+ <mat-icon (click)="moveDownward(i)" *ngIf="!isLast(i)" aria-hidden="false" aria-label="expand_more">
+ expand_more
+ </mat-icon>
+ </td>
<td>
<mat-icon (click)="delete(item.id)" aria-hidden="false" aria-label="delete">delete</mat-icon>
</td>
</table>
<br/>
+ <table class="showbuttons">
+ <tr>
+ <td>
+ <button (click)="add(); setDisplayMode('Add');" class="btn btn-alt btn-small add-reOrder-button">
+ Add
+ </button>
+ </td>
+ <td>
+ <button (click)="reOrder()" *ngIf="showReOrderButton"
+ class="btn btn-alt btn-small add-reOrder-button">ReOrder
+ </button>
+ </td>
+ </tr>
+ </table>
- <div class="field-group">
- <button (click)="add(); setDisplayMode('Add');" class="btn btn-alt btn-small"
- style="font-size: 17px; margin-left: 80%;">Add
- </button>
- </div>
<br/>
- <hr/>
</div>
</div>
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpClientTestingModule } from '@angular/common/http/testing';
-import { MatDialogModule, MatSnackBarModule } from '@angular/material';
+import { MatDatepickerModule, MatDialogModule, MatSnackBarModule } from '@angular/material';
import { CommonModule } from '@angular/common';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormFieldsService } from './form-fields.service';
HttpClientTestingModule,
MatDialogModule,
MatSnackBarModule,
- BrowserAnimationsModule
+ BrowserAnimationsModule,
+ MatDatepickerModule
]
})
.compileComponents();
-import {Component, OnInit, Input, Inject} from '@angular/core';
+import {Component, OnInit, Input, Inject, ChangeDetectorRef} from '@angular/core';
import {FormFieldsService} from './form-fields.service';
import {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
import {Observable} from 'rxjs';
queryObj: {};
validateResponseString: string;
showVerifySpinner: boolean;
- Groups: {}[] = [];
+ Groups: any;
isDefaultSql: boolean;
showConfirmButton: boolean;
-
-
- constructor(private _formFieldsService: FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar) {
+ showReOrderButton: boolean;
+ orderSeqArray: any;
+ showDateRange: any;
+ rangeStartDate :any;
+ rangeEndDate :any;
+ rangeStartDateSQL :any;
+ rangeEndDateSQL:any;
+ isDefaultSqlRange:boolean;
+ isFFDate: boolean;
+
+
+ constructor(private _formFieldsService: FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar,private changeDetectorRefs: ChangeDetectorRef) {
this.formFieldsListObj = [];
this.postMoveUpwrdObj = {};
this.postDownwardObj = {};
this.showVerifySpinner = false;
this.Groups = [];
this.isDefaultSql = false;
+ this.showReOrderButton = false;
+ this.orderSeqArray = [];
+ this.showDateRange = false;
+ this.isDefaultSqlRange = false;
+ this.rangeStartDate ='';
+ this.rangeEndDate='';
+ this.rangeStartDateSQL ='';
+ this.rangeEndDateSQL='';
+ this.isFFDate = false;
}
ngOnInit() {
this._formFieldsService.getListOfFormFields()
.subscribe((responseFormFields) => {
for (let m = 0; m < responseFormFields.length; m++) {
- responseFormFields[m]['orderSeq'] = m + 1;
this.formFieldsListObj.push(responseFormFields[m]);
}
+ this.formFieldsListObj = this.formFieldsListObj.sort(function (a, b) {
+ if ((a['orderSeq']) === (b['orderSeq'])) {
+ return a;
+ } else {
+ return (a['orderSeq']) - (b['orderSeq']);
+ }
+ });
+ for (let ff = 0; ff < this.formFieldsListObj.length; ff++) {
+ let val = this.formFieldsListObj[ff]['orderSeq'];
+ this.orderSeqArray.push(val);
+ }
+ if (this.orderSeqArray.includes(null) || this.orderSeqArray.length !== new Set(this.orderSeqArray).size) {
+ this.reOrder();
+ }
this._formFieldsService.getFormFieldGroupsData(this.reportId1)
.subscribe((responseGroupsData) => {
this.Groups = JSON.parse(responseGroupsData['formFieldGroupsJSON']);
+ this.Groups = this.Groups.sort(function (a, b) {
+ if ((a['orderSeq']) === (b['orderSeq'])) {
+ return a;
+ } else {
+ return (a['orderSeq']) - (b['orderSeq']);
+ }
+ });
+
});
});
}
this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp;
this.postDownwardObj['orderSeq'] = this.orderSeqOfDown;
- console.log(this.postDownwardObj);
- console.log(this.postMoveUpwrdObj);
- this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId'];
- this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId'];
-
this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
.subscribe((responsePostn) => {
if (responsePostn['message']) {
}
}
this.showSpinner = false;
+ this.updateGroupOnOrderChange();
});
}
});
});
});
+ }
-
+ updateGroupOnOrderChange() {
+ let formfieldsMap: Map<string, string> = new Map();
+ for (let i = 0; i < this.formFieldsListObj.length; i++) {
+ formfieldsMap.set(this.formFieldsListObj[i]['id'], this.formFieldsListObj[i]['orderSeq']);
+ }
+ for (let k = 0; k < this.Groups.length; k++) {
+ let element = this.Groups[k];
+ for (let l = 0; l < element['formFieldList'].length; l++) {
+ element['formFieldList'][l]['orderSeq'] = formfieldsMap.get(element['formFieldList'][l]['id']);
+ }
+ }
+ this.saveFormFieldGroups();
}
+
moveDownward(n: number) {
this.showSpinner = true;
this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp;
this.postDownwardObj['orderSeq'] = this.orderSeqOfDown;
-
- console.log(this.postDownwardObj);
- console.log(this.postMoveUpwrdObj);
-
- this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId'];
- this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId'];
-
this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
.subscribe((responsePostn) => {
if (responsePostn['message']) {
this._formFieldsService.getListOfFormFields()
.subscribe((finalListResponse) => {
for (let k = 0; k < finalListResponse.length; k++) {
- // this.formFieldsListObj.push(finalListResponse[k]);
for (let m = 0; m < finalListResponse.length; m++) {
if (finalListResponse[m]['orderSeq'] == k + 1) {
this.formFieldsListObj.push(finalListResponse[m]);
}
}
this.showSpinner = false;
+ this.updateGroupOnOrderChange();
});
}
});
this.openEditDialog(group);
}
+
+ setDate($event : any){
+ const mnth = ('0' + ($event.getMonth() + 1)).slice(-2);
+ const day = ('0' + $event.getDate()).slice(-2);
+ let temp = [mnth, day, $event.getFullYear()].join('/');
+ temp = temp+' '+ '00:00:00';
+
+ return temp;
+
+ }
edit(id: string) {
this._formFieldsService.getFormFieldData(id)
.subscribe((responseFormFieldData) => {
- this.validationType = responseFormFieldData['validationType'];
+ this.validationType = responseFormFieldData["validationType"];
+ this.showDateRange = false;
+ if(this.validationType ==='DATE'){
+ this.showDateRange = true;
+ if (responseFormFieldData['rangeStartDate'] != null) {
+ if (responseFormFieldData['rangeStartDate'] != '')
+ this.rangeStartDate = new Date(responseFormFieldData['rangeStartDate']); else {
+ this.rangeStartDate = '';
+ }
+ } else {
+ this.rangeStartDate = '';
+ }
+ if (responseFormFieldData['rangeEndDate'] != null) {
+ if (responseFormFieldData['rangeEndDate'] != '')
+ this.rangeEndDate = new Date(responseFormFieldData['rangeEndDate']);
+ else {
+ this.rangeEndDate = '';
+ }
+ } else {
+ this.rangeEndDate = '';
+ }
+ this.rangeStartDateSQL = responseFormFieldData['rangeStartDateSQL'];
+ this.rangeEndDateSQL = responseFormFieldData['rangeEndDateSQL'];
+ if ((this.rangeStartDate == '' && this.rangeEndDate == '')) {
+ this.isDefaultSqlRange = true;
+ } else {
+
+ this.isDefaultSqlRange = false;
+ }
+
+ if ((this.rangeStartDate == '' && this.rangeEndDate == '' && this.rangeEndDateSQL == '' && this.rangeStartDateSQL == '')) {
+ this.isDefaultSqlRange = false;
+ }
+ }
if (responseFormFieldData['visible'] === true) {
this.visible = 'YES';
} else {
this.isDefaultSql = false;
this.predefinedValueList = [];
this.defaultValue = '';
-
+ this.orderSeq = null;
this.showDialog = true;
this.closable = true;
+ this.isDefaultSqlRange = false;
+ this.rangeStartDate ='';
+ this.rangeEndDate='';
+ this.rangeStartDateSQL ='';
+ this.rangeEndDateSQL='';
+ this.showDateRange='';
this.mode = 'Add';
this.showSpinner = true;
this.showDialog = false;
this.finalPOSTObj['validationType'] = this.validationType;
+ if (this.validationType === 'DATE') {
+ if (this.rangeStartDate != null && this.rangeStartDate != '') {
+ this.finalPOSTObj['rangeStartDate'] = this.setDate(this.rangeStartDate);
+ } else {
+ this.finalPOSTObj['rangeStartDate'] = '';
+ }
+ if (this.rangeEndDate != null && this.rangeEndDate != '') {
+ this.finalPOSTObj['rangeEndDate'] = this.setDate(this.rangeEndDate);
+ } else {
+ this.finalPOSTObj['rangeEndDate'] = '';
+ }
+ this.finalPOSTObj['rangeStartDateSQL'] = this.rangeStartDateSQL;
+ this.finalPOSTObj['rangeEndDateSQL'] = this.rangeEndDateSQL;
+ }
+
+ if (this.isDefaultSqlRange) {
+ this.finalPOSTObj['rangeStartDate'] = '';
+ this.finalPOSTObj['rangeEndDate'] = '';
+ }
+ if (!this.isDefaultSqlRange) {
+ this.finalPOSTObj['rangeStartDateSQL'] = '';
+ this.finalPOSTObj['rangeEndDateSQL'] = '';
+ }
if (this.visible == 'YES') {
this.finalPOSTObj['visible'] = true;
} else {
this.finalPOSTObj['defaultValue'] = this.defaultValue;
+ this.finalPOSTObj['defaultValue'] = this.defaultValue;
+
if (this.fieldDefaultSQL != '' && this.fieldDefaultSQL != null) {
this.finalPOSTObj['defaultValue'] = '';
}
this.validateResponseString = responseDefaultSQL['data']['elements'];
this.showVerifySpinner = false;
});
+ } else if (SQLType == 'startDateRange' || SQLType =='endDateRange'){
+
+ if(SQLType == 'startDateRange'){
+ this.queryObj = {
+ query: this.rangeStartDateSQL
+ };
+ }
+ if(SQLType == 'endDateRange'){
+ this.queryObj = {
+ query: this.rangeEndDateSQL
+ };
+ }
+ this._formFieldsService.verifySQL(this.queryObj)
+ .subscribe((responseDefaultSQL) => {
+ this.validateResponseString = responseDefaultSQL['data']['elements'];
+ this.showVerifySpinner = false;
+ });
+
} else {
this.queryObj = {
query: this.fieldSQL
});
}
+ reOrder() {
+ this._formFieldsService.reOrderFFValues()
+ .subscribe((response) => {
+ console.log(response);
+ this.formFieldsListObj = [];
+ for (let k = 0; k < response.length; k++) {
+ for (let m = 0; m < response.length; m++) {
+ if (response[m]['orderSeq'] == k + 1) {
+ this.formFieldsListObj.push(response[m]);
+ }
+ }
+ }
+ this.showSpinner = false;
+ this.showReOrderButton = false;
+ this.updateGroupOnOrderChange();
+ });
+ }
openEditDialog(groupInfo: any) {
const multiSelectArray = [];
{
return this._http.post(environment.baseUrl + "report/wizard/save_formfield_groups_data", formFieldGroupObj, { headers: new HttpHeaders({'Content-Type': 'application/json'})});
}
+ reOrderFFValues() : Observable<any>
+ {
+ return this._http.post(environment.baseUrl + "report/wizard/reorder", { headers: new HttpHeaders({'Content-Type': 'application/json'})});
+ }
}
closeValidateModal() {
if (this.reportMode === 'Create') {
- if (this.Validatestatus == 'SQL Test Run - Failed!') {
- this.sqlText = this.sqlText;
- } else {
this._http.get(environment.baseUrl + 'report/wizard/retrieve_def_tab_wise_data/InSession')
.subscribe((response) => {
console.log(response);
this._router.navigate(['v2/app/reports', 'Edit', response['reportId']]);
});
- }
}
this.showValidateSQLDialog = !this.showValidateSQLDialog;
this.Validateclosable = false;
<div *ngIf="reportMode !== 'Create'">
-<div *ngIf=" reportType === 'Linear'" >
+<div *ngIf=" reportType === 'Linear' || reportType === 'Cross-Tab'" >
<mat-tab-group>
<mat-tab label="Definition"><ng-template matTabContent><app-definition [reportId]="reportId" [reportMode]="reportMode"></app-definition></ng-template></mat-tab>
<mat-tab label="SQL"><ng-template matTabContent><app-sqlcomponent [reportId]="reportId" [reportMode]="reportMode"></app-sqlcomponent></ng-template></mat-tab>
<mat-tab label="Columns"><ng-template matTabContent><app-columns [reportId]="reportId"></app-columns></ng-template></mat-tab>
<mat-tab label="Form Fields"><ng-template matTabContent><app-form-fields [reportId]="reportId"></app-form-fields></ng-template></mat-tab>
- <mat-tab label="Chart Wizard"><ng-template matTabContent><app-chart-wizard [reportId]="reportId"></app-chart-wizard></ng-template></mat-tab>
+ <mat-tab label="Chart Wizard" *ngIf="reportType !== 'Cross-Tab'"><ng-template matTabContent><app-chart-wizard [reportId]="reportId"></app-chart-wizard></ng-template></mat-tab>
<mat-tab label="Security"><ng-template matTabContent><app-security [reportId]="reportId"></app-security></ng-template></mat-tab>
<mat-tab label="Log"><ng-template matTabContent><app-log [reportId]="reportId"></app-log></ng-template></mat-tab>
<mat-tab label="Run"><ng-template matTabContent><app-run [reportId]="reportId"></app-run></ng-template></mat-tab>
<div *ngIf="reportMode === 'Create'">
<mat-tab-group>
<mat-tab label="Definition"><ng-template matTabContent><app-definition [reportId]="reportId" [reportMode]="reportMode" (outputReportType)="getReportType($event)" ></app-definition></ng-template></mat-tab>
- <mat-tab label="SQL" *ngIf=" reportType === 'Linear'"><ng-template matTabContent><app-sqlcomponent [reportId]="reportId" [reportMode]="reportMode"></app-sqlcomponent></ng-template></mat-tab>
- <mat-tab label="Columns" *ngIf=" reportType === 'Linear'"><ng-template matTabContent><app-columns [reportId]="reportId"></app-columns></ng-template></mat-tab>
- <mat-tab label="Form Fields" *ngIf=" reportType === 'Linear'"><ng-template matTabContent><app-form-fields [reportId]="reportId"></app-form-fields></ng-template></mat-tab>
+ <mat-tab label="SQL" *ngIf=" reportType === 'Linear' || reportType === 'Cross-Tab'"><ng-template matTabContent><app-sqlcomponent [reportId]="reportId" [reportMode]="reportMode"></app-sqlcomponent></ng-template></mat-tab>
+ <mat-tab label="Columns" *ngIf=" reportType === 'Linear' || reportType === 'Cross-Tab'"><ng-template matTabContent><app-columns [reportId]="reportId"></app-columns></ng-template></mat-tab>
+ <mat-tab label="Form Fields" *ngIf=" reportType === 'Linear' || reportType === 'Cross-Tab'"><ng-template matTabContent><app-form-fields [reportId]="reportId"></app-form-fields></ng-template></mat-tab>
<mat-tab label="Chart Wizard" *ngIf=" reportType === 'Linear'"><ng-template matTabContent><app-chart-wizard [reportId]="reportId"></app-chart-wizard></ng-template></mat-tab>
<mat-tab label="Security"><ng-template matTabContent><app-security [reportId]="reportId"></app-security></ng-template></mat-tab>
<mat-tab label="Log"><ng-template matTabContent><app-log [reportId]="reportId"></app-log></ng-template></mat-tab>
import {ReportRunRouting} from './report-run-routing.module';
import {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';
import { RemoveSpaceDirective} from './run/run-report-form-fields/remove-space.directive';
+import { RunCrossTabReportComponent } from './run/run-report/run-cross-tab-report/run-cross-tab-report.component';
@NgModule({
declarations: [RunDashboardReportComponent,
ReportRunComponent,
RunReportResultSetComponent,
RunComponent,
- RemoveSpaceDirective],
+ RemoveSpaceDirective,
+ RunCrossTabReportComponent],
imports: [
MatTableModule,
CommonModule,
MatSortModule,
NgbTooltipModule
],
- exports: [RunReportComponent, RunComponent]
+ exports: [RunReportComponent, RunComponent, RunReportFormFieldsComponent]
})
export class ReportRun {
padding: 0.4em;
}
+.wrapper2 {
+ display: grid;
+ grid-template-columns:auto auto auto;
+ overflow: auto;
+}
+
+.wrapper2 > div {
+ border-radius: 3px;
+ padding: 0.4em;
+}
+
mat-button-toggle-group {
width: 800px;
}
</div>
<div *ngIf="item.validationType == 'DATE'" class="fieldWidth">
<label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
+ <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" [min]="formFieldListValueMap.get(item.fieldId+'_minDate')" [max]="formFieldListValueMap.get(item.fieldId+'_maxDate')" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
[matDatepicker]="picker"
class="defaultFontSize" matInput>
<mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
<div *ngIf="navigateToRun">
<!-- <app-run-dashboard-report [reportId]="reportId" [reportMode]="reportMode" [queryString]="getQueryString()" [DashboardReportObj]="DashboardReportObj"></app-run-dashboard-report> -->
+ <div *ngIf="reportType !== 'Cross-Tab'">
+ <div *ngIf="reportHeader !== ''">
+ <div [innerHtml]="reportHeader" style="width: 60%; padding-left: 20%;">
+ </div>
+ <br/>
+ <br/>
+ </div>
<app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr"
- [hitCnt]="hitCnt"
- [queryString]="getQueryString()"
- [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" [isGoBack]="downloadPrevReport" ></app-run-report>
+ [chartType]="chartType"
+ [groupSelectValue]="groupSelectValue"
+ [hitCnt]="hitCnt" [isGoBack]="downloadPrevReport" [queryString]="getQueryString()"
+ [reportId]="reportId" [reportMode]="reportMode" [reportType]="reportType"
+ [runAgain]="runReportAgain"></app-run-report>
+ <div [innerHtml]="reportFooter" style="width: 60%; padding-left: 20%;"></div>
+
+ </div>
+ <div *ngIf="reportType === 'Cross-Tab'">
+ <div *ngIf="reportHeader !== ''">
+ <div [innerHtml]="reportHeader" style="width: 60%; padding-left: 20%;">
+ </div>
+ <br/>
+ <br/>
+ </div>
+ <app-run-cross-tab-report [groupSelectValue]="groupSelectValue" [hitCnt]="hitCnt"
+ [parentId]="reportId"
+ [queryString]="queryString"
+ [reportId]="reportId"
+ [reportMode]="reportMode"
+ [reportType]="reportType"
+ [isGoBack]="downloadPrevReport"></app-run-cross-tab-report>
+ <div [innerHtml]="reportFooter" style="width: 60%; padding-left: 20%;">
+ </div>
+ </div>
</div>
<div *ngIf="error == true">
styleUrls: ['./run-report-form-fields.component.css']
})
export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
- @Input('formFieldList') formFieldList: {}[];
+ @Input('formFieldList') formFieldList: any;
@Input('reportId') reportId: string;
staticFormFieldList: {}[] = [];
formFieldListValueArr: any[];
triggerFormFieldArr = [];
initialObject = {};
formFieldGroupObjList: {}[] = [];
- toggleFormFieldRenderArr: {}[] = [];
+ toggleFormFieldRenderArr:any;
groupSelectValue = '';
oldGroupSelectValue = '';
unCommonCnt = 0;
downloadPrevReport = '';
timeStampArray: any[];
hoursArray : any[];
+ private orderSeqArray: any;
+ minDate:any;
+ maxDate:any;
+ reportHeader: string;
+ reportFooter: string;
+ reportType: string;
+
constructor(private _runService: RunService,
private _route: ActivatedRoute,
private _router: Router,
this.downloadPrevReport = '';
this.timeStampArray = [];
this.hoursArray = [];
+ this.orderSeqArray = [];
+ this.reportHeader = '';
+ this.reportFooter = '';
+ this.reportType = '';
}
this.chartType = '';
this.showRunButton = false;
this.downloadPrevReport = '';
+ this.minDate = '';
+ this.maxDate = '';
+ this.reportType = '';
+ this.reportHeader='';
+ this.reportFooter='';
}
ngOnInit() {
this.getHours();
this._route.params.subscribe(params => {
this.createNewObject();
+ if(params['reportId'] !== undefined){
this.reportId = params['reportId'];
+ }
const checkOfCache = this.httpCacheService.getPreviousId(this.reportId) || null;
if (!checkOfCache) {
this.httpCacheService.clearCache();
for (const ff of this.actualformFieldValues) {
const formfiledArray = ff.split('=');
const formFieldId = formfiledArray[0];
- const formFieldObj = formfiledArray[1];
+ const formFieldObj = formfiledArray[1].replaceAll('||','/');
this.finalQueryParamsObj[formFieldId] = formFieldObj;
}
+ if(this.directCallQueryParams.includes('NULL')){
+ this.directCallQueryParams = this.directCallQueryParams.replaceAll('NULL','');
+ }
+ this.directCallQueryParams = this.directCallQueryParams.replaceAll('||','/')
this.queryString = this.directCallQueryParams;
}
this.reportName = responseDefPage['reportName'];
this.reportSubTitle = responseDefPage['reportSubTitle'];
this.chartType = responseDefPage['chartType'];
+ this.reportType = responseDefPage['reportType'];
+
+ if (responseDefPage['reportType'] === 'Cross-Tab' || responseDefPage['reportType'] === 'Linear' ) {
+ if(responseDefPage['reportHeader'] !== undefined){
+ this.reportHeader = responseDefPage['reportHeader'];
+ }
+ if(responseDefPage['reportFooter'] !== undefined){
+ this.reportFooter = responseDefPage['reportFooter'];
+ }
+
+ }
+
if (responseDefPage['reportType'] !== 'Dashboard') {
if (this.calledWithFormFields == false) {
this._runService.getReportData(this.reportId)
if (this.finalQueryParamsObj[ff.fieldId]) {
if (ff.validationType == 'DATE') {
const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ dateVal.toString().replace(/%2F/g, '/')
this.formFieldListValueMap.set(ff.fieldId, new Date(dateVal.toString().replace(/%2F/g, '/')));
+ if (ff.rangeStartDate != null) {
+ if (ff.rangeStartDate != '')
+ this.minDate = this.getMinMaxDate(ff.rangeStartDate);
+ else {
+ this.minDate = '';
+ }
+ } else {
+ this.minDate = '';
+ }
+
+ if (ff.rangeEndDate != null) {
+ if (ff.rangeEndDate != '')
+ this.maxDate = this.getMinMaxDate(ff.rangeEndDate);
+ else {
+ this.maxDate = '';
+ }
+ } else {
+ this.maxDate = '';
+ }
+
+ if(this.minDate == '' && this.maxDate ==''){
+
+ if (ff.rangeStartDateSQL != null) {
+ if (ff.rangeStartDateSQL != '')
+ this.minDate = this.getMinMaxDate(ff.rangeStartDateSQL);
+ else {
+ this.minDate = '';
+ }
+ } else {
+ this.minDate = '';
+ }
+
+ if (ff.rangeEndDateSQL != null) {
+ if (ff.rangeEndDateSQL != '')
+ this.maxDate = this.getMinMaxDate(ff.rangeEndDateSQL);
+ else {
+ this.maxDate = '';
+ }
+ } else {
+ this.maxDate = '';
+ }
+
+
+ }
+ this.formFieldListValueMap.set(ff.fieldId+'_minDate', this.minDate);
+ this.formFieldListValueMap.set(ff.fieldId+'_maxDate', this.maxDate);
+
+
+
} else if (ff.fieldType == 'LIST_MULTI_SELECT') {
const multiSelectArray = [];
let multiVal = this.finalQueryParamsObj[ff.fieldId];
multiSelectArray.push(multiVal);
}
this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
- } else {
+ } else if (ff.validationType == 'TIMESTAMP_SEC') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
+ }
+ else if (ff.validationType == 'TIMESTAMP_MIN') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_HOUR') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
+ }
+
+ else {
let multiVal = this.finalQueryParamsObj[ff.fieldId];
multiVal = multiVal.toString().replace(/%2F/g, '/');
multiVal = multiVal.toString().replace(/%20/g, ' ');
if (ff.fieldType == 'LIST_MULTI_SELECT') {
const multiSelectArray = [];
this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ } else if (ff.validationType == 'TIMESTAMP_SEC') {
+
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_MIN') {
+
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_HOUR') {
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
} else {
this.formFieldListValueMap.set(ff.fieldId, '');
}
multiSelectArray.push(multiVal);
}
this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
- } else {
+ } else if (ff.validationType == 'TIMESTAMP_SEC') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
+ }
+ else if (ff.validationType == 'TIMESTAMP_MIN') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_HOUR') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ const multiSelectArray = [];
+ multiSelectArray.push(new Date(dateVal.toString().replace(/%2F/g, '/')));
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
+ }
+ else {
let multiVal = this.finalQueryParamsObj[ff.fieldId];
multiVal = multiVal.toString().replace(/%2F/g, '/');
multiVal = multiVal.toString().replace(/%20/g, ' ');
if (ff.fieldType == 'LIST_MULTI_SELECT') {
const multiSelectArray = [];
this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ } else if (ff.validationType == 'TIMESTAMP_SEC') {
+
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Sec']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_MIN') {
+
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Min']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ }
+ else if (ff.validationType == 'TIMESTAMP_HOUR') {
+ const multiSelectArray = [];
+ multiSelectArray.push('');
+ multiSelectArray.push(this.finalQueryParamsObj[ff.fieldId + '_Hr']);
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+
} else {
this.formFieldListValueMap.set(ff.fieldId, '');
}
}
}
+ let orderSeqArray = [];
+ for (let ff = 0; ff < this.formFieldList.length; ff++) {
+ let val = this.formFieldList[ff]['setOrderBySeq'];
+ orderSeqArray.push(val);
+ }
+
+ if (!(orderSeqArray.includes(null) || orderSeqArray.length !== new Set(orderSeqArray).size)) {
+ this.toggleFormFieldRenderArr = this.toggleFormFieldRenderArr.sort(function (a, b) {
+ if ((a['setOrderBySeq']) === (b['setOrderBySeq'])) {
+ return a;
+ } else {
+ return (a['setOrderBySeq']) - (b['setOrderBySeq']);
+ }
+ });
+ }
}
if (this.firstRun) {
this.saveGroupSelectValue = this.groupSelectValue;
}
}
+ getMinMaxDate(str: any){
+
+ let date = str;
+ let tempDate = new Date(date);
+ return date = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());
+ }
+
fetchAndPopulateFormFields(respObj: any, ffReportId: string) {
this._runService.getFormFieldGroupsData(ffReportId)
.subscribe((responseFormFieldGroups) => {
this.formFieldGroupObjList = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']);
this.saveFormFieldGroups = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']);
this.formFieldList = respObj['formFieldList'];
+ let orderSeqArray = [];
+ for (let ff = 0; ff < this.formFieldList.length; ff++) {
+ let val = this.formFieldList[ff]['setOrderBySeq'];
+ orderSeqArray.push(val);
+ }
+
+ if (!(orderSeqArray.includes(null) || orderSeqArray.length !== new Set(orderSeqArray).size)) {
+ this.formFieldList = this.formFieldList.sort(function (a, b) {
+ if ((a['setOrderBySeq']) === (b['setOrderBySeq'])) {
+ return a;
+ } else {
+ return (a['setOrderBySeq']) - (b['setOrderBySeq']);
+ }
+ });
+ }
+
if (this.formFieldList.length === 1 && this.formFieldList[0]['visible'] === false) {
this.showRunButton = false;
} else if (this.formFieldList.length > 0) {
for (let i = 0; i < this.formFieldList.length; i++) {
const formFieldObj = this.formFieldList[i];
if (formFieldObj['formFieldValues'] != null && this.calledWithFormFields != true) {
- if ((formFieldObj['validationType'] == 'DATE' && formFieldObj['formFieldValues'].length > 0) || formFieldObj['validationType'] == 'TIMESTAMP_SEC' || formFieldObj['validationType'] == 'TIMESTAMP_MIN' || formFieldObj['validationType'] == 'TIMESTAMP_HOUR') {
+ if (formFieldObj['validationType'] == 'DATE' || formFieldObj['validationType'] == 'TIMESTAMP_SEC' || formFieldObj['validationType'] == 'TIMESTAMP_MIN' || formFieldObj['validationType'] == 'TIMESTAMP_HOUR') {
if (formFieldObj['validationType'] == 'TIMESTAMP_SEC') {
const multiSelectArray = [];
}
}
else{
+ if(formFieldObj['formFieldValues'].length > 0){
const date = formFieldObj['formFieldValues'][0]['id'];
this.formFieldListValueMap.set(formFieldObj['fieldId'], new Date(date));
+ }else{
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], '');
+ }
+ if (formFieldObj['rangeStartDate'] != null) {
+ if (formFieldObj['rangeStartDate'] != '')
+ this.minDate = this.getMinMaxDate(formFieldObj['rangeStartDate']);
+ else {
+ this.minDate = '';
+ }
+ } else {
+ this.minDate = '';
+ }
+
+ if (formFieldObj['rangeEndDate'] != null) {
+ if (formFieldObj['rangeEndDate'] != '')
+ this.maxDate = this.getMinMaxDate(formFieldObj['rangeEndDate']);
+ else {
+ this.maxDate = '';
+ }
+ } else {
+ this.maxDate = '';
+ }
+
+ if(this.minDate == '' && this.maxDate ==''){
+
+ if (formFieldObj['rangeStartDateSQL'] != null) {
+ if (formFieldObj['rangeStartDateSQL'] != '')
+ this.minDate = this.getMinMaxDate(formFieldObj['rangeStartDateSQL']);
+ else {
+ this.minDate = '';
+ }
+ } else {
+ this.minDate = '';
+ }
+
+ if (formFieldObj['rangeEndDateSQL'] != null) {
+ if (formFieldObj['rangeEndDateSQL'] != '')
+ this.maxDate = this.getMinMaxDate(formFieldObj['rangeEndDateSQL']);
+ else {
+ this.maxDate = '';
+ }
+ } else {
+ this.maxDate = '';
+ }
+
+
+ }
+ this.formFieldListValueMap.set(formFieldObj['fieldId']+'_minDate', this.minDate);
+ this.formFieldListValueMap.set(formFieldObj['fieldId']+'_maxDate', this.maxDate);
}
} else if (formFieldObj['fieldType'] == 'LIST_BOX' && formFieldObj['formFieldValues'].length > 0) {
let isAdded = false;
}
editReport(reportId: string) {
+ this.httpCacheService.clearCache();
this._router.navigate(['v2/app/reports', 'Edit', reportId]);
}
getTime(){
for(let i=0; i<=59; i++){
+ if(i<=9){
+ this.timeStampArray.push('0'+i)
+ }else
this.timeStampArray.push(i);
}
}
getHours(){
for(let i=0; i<=23; i++){
+ if(i<=9){
+ this.hoursArray.push('0'+i)
+ }else
this.hoursArray.push(i);
}
}
--- /dev/null
+<span *ngIf="showSpinner" class="ecomp-spinner"></span>
+<div *ngIf="!showChart">
+ <div class="field-group">
+
+ <div class="filter-div" >
+ <mat-form-field><input (keyup)="applyFilter($event.target.value)" matInput placeholder="Filter Report Data">
+ </mat-form-field>
+ </div>
+ <div class="download-div" >
+ <span *ngIf="download_in_progress" class="ecomp-small-spinner"></span>
+ <span class="download-title"> Download:</span>
+ <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.ms-excel', 'xls')" placement="top" ngbTooltip="Download Upto 65,000"
+ src="assets/images/xlsx.png"></a>
+ </div>
+ <div class="pagination-div">
+ <mat-paginator [pageSizeOptions]="pageSize" showFirstLastButtons></mat-paginator>
+ </div>
+ </div>
+ <div class="app-data-table">
+ <div class="app-data-table-fixed-height">
+ <div class="example-container">
+ <table [dataSource]="dataSource" mat-table>
+ <div *ngFor="let keys of displayedColumns; let i = index">
+ <ng-container matColumnDef="{{keys}}">
+ <th *matHeaderCellDef mat-header-cell>{{displayedColumns[i]}}</th>
+ <td *matCellDef="let row" mat-cell [ngStyle]="setStyle(row[keys])">
+ <div *ngIf="row[keys].split('|')[0] == 'linkToReport'"
+ [ngStyle]="setStyle(row[keys].split('|')[4])">
+ <a (click)="linkToReport(row[keys].split('|')[1], row[keys].split('|')[2])"
+ [routerLink]="">{{row[keys].split('|')[3]}}</a>
+ </div>
+ <div *ngIf="row[keys].split('|')[0] == 'linkToFeedback'"
+ [ngStyle]="setStyle(row[keys].split('|')[4])">
+ <a (click)="linkToFeedback(row[keys].split('|')[1], row[keys].split('|')[2])"
+ [routerLink]="">{{row[keys].split('|')[3]}}</a>
+ </div>
+ <div *ngIf="row[keys].split('|')[0] == 'linkToMail'"
+ [ngStyle]="setStyle(row[keys].split('|')[3])">
+ <a (click)="linkToMail(row[keys].split('|')[1])"
+ [routerLink]="">{{row[keys].split('|')[2]}}</a>
+ </div>
+ <div *ngIf="row[keys].split('|')[0] == 'linkToMap'">
+ <a (click)="linkToMap(row[keys].split('|')[1])"
+ [routerLink]="">{{row[keys].split('|')[2]}}</a>
+ </div>
+ <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToFeedback' && row[keys].split('|')[0] !== 'linkToMail'
+ && row[keys].split('|')[0] !== 'clickToDelete' && row[keys].split('|')[0] !== 'clickToResubmit'
+ && row[keys].split('|')[0] !== 'linkToMap'
+ && row[keys].split('|')[0] !== 'clickToDownload' && row[keys].split('|')[0]!== 'clickToCheckBox' && row[keys].split('|')[0]!== 'isComment'
+ && row[keys].split('|')[0]!== 'isImage' && row[keys].split('|')[0]!== 'isApproval' && row[keys].split('|')[0] != 'clickToRevert'">{{row[keys].split('|')[0]}} </div>
+ </td>
+ <td *matFooterCellDef align="center"
+ mat-footer-cell>{{getDisplayTotal(keys)}}</td>
+ </ng-container>
+ </div>
+
+ <tr *matHeaderRowDef="displayedColumns; sticky: true;"
+ mat-header-row></tr>
+ <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
+ <tr *matFooterRowDef="displayedColumns; sticky: true;" mat-footer-row></tr>
+ </table>
+ </div>
+ </div>
+ </div>
+</div>
+<div *ngIf="showChart" align="center">
+ <iframe #iframe height="550px" style="border: none" width="100%"></iframe>
+</div>
+
+<style scoped>
+ :host ::ng-deep .mat-paginator-outer-container .mat-paginator-container{
+ min-height: 30px;
+ height: 30px;
+ }
+
+ :host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-label {
+ font-size: 14px;
+ }
+
+ :host ::ng-deep .mat-paginator, .mat-paginator-page-size .mat-select-trigger {
+ font-size: 14px;
+ }
+
+ :host ::ng-deep .mat-sort-header-arrow.ng-trigger.ng-trigger-arrowPosition {
+ color: black;
+ opacity: 0;
+ }
+
+ :host ::ng-deep .mat-sort-header-pointer-left.ng-trigger.ng-trigger-leftPointer {
+ transform: rotate(-45deg);
+ color: black;
+ }
+ :host ::ng-deep .mat-sort-header-pointer-right.ng-trigger.ng-trigger-rightPointer {
+ transform: rotate(45deg);
+ color: black;
+ }
+
+</style>
--- /dev/null
+.approval-img{
+ height:25px;
+ width:25px
+}
+.submit-approval-btn{
+ display: flex;
+ margin-top: 5px;
+}
+.submit-approval-check-box{
+ margin-top: 10px;
+}
+
+.submit-rejection-btn{
+ display: flex;
+ margin-top: 5px;
+}
+.submit-rejection-check-box{
+ margin-top: 20px;
+}
+.checkbox-reject{
+ margin-left: 10px;
+ margin-right: 4px;
+ margin-top: 4px;
+}
+.gridster-item-content{
+ overflow-y: scroll;
+ overflow-x: scroll;
+ overflow: scroll;
+}
+
+.lds-ring {
+ display: inline-block;
+ position: relative;
+ width: 64px;
+ height: 64px;
+}
+.lds-ring div {
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ width: 35px;
+ height: 35px;
+ margin: 6px;
+ margin-top: 40px;
+ border: 6px solid #006496;
+ border-radius: 80%;
+ animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
+ border-color: #006496 transparent transparent transparent;
+}
+.lds-ring div:nth-child(1) {
+ animation-delay: -0.45s;
+}
+.lds-ring div:nth-child(2) {
+ animation-delay: -0.3s;
+}
+.lds-ring div:nth-child(3) {
+ animation-delay: -0.15s;
+}
+@keyframes lds-ring {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+.btn-auto-upload{
+ font-size: 15px;
+ margin-bottom: 5px;
+ margin-left:250px;
+}
+
+.div-auto-upload{
+ display: contents;
+}
+mat-icon{
+ color: #006496;
+ cursor: pointer;
+}
+.mat-icon-delete{
+ color: #006496;
+ cursor: pointer;
+}
+
+
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle; }
+
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ appearance: button;
+ cursor: pointer; }
+
+
+.defaultFontSize1{
+ font-size: 16px;
+}
+
+.defaultFontSize{
+ font-size: 15px;
+}
+.boxMargin{
+
+ width: auto;
+}
+
+td.mat-cell{
+ padding-left: 3px;
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-right: 1px solid #999;
+ border-left: 1px solid #999;
+}
+
+mat-button-toggle{
+ display: block;
+ width: 400px;
+ border-radius: 5px;
+}
+
+
+.tab-content{
+ margin-right: 20px;
+ color: rgb(0, 0, 0);
+}
+
+.stdForm{
+ margin-left: 20px;
+}
+
+.field-group {
+ position: relative;
+ display: block;
+}
+
+
+input {
+ width: 400px;
+ height: 35px;
+}
+
+label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row {
+ margin-top: 5px;
+}
+
+
+.checkbox .skin {
+ background-color: #fff;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ width: 24px;
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+.pla-img{
+ cursor: pointer;
+}
+
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; }
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; }
+
+input[type=search] {
+ -webkit-appearance: textfield; }
+
+input[type=search]:-webkit-search-cancel-button,
+input[type=search]:-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+
+
+[class*="icon-primary-"],
+.nav-links a:after,
+.bellyband-link a:after,
+.breadcrumb > li:after,
+.checkbox input:checked + .skin:after,
+.checkbox input.indeterminate + .skin:after,
+.checkbox input:indeterminate + .skin:after,
+.selectWrap.large:before,
+.form-row.error .error-msg:before,
+.close:before,
+.reset-field:before,
+.cssIcon-globe:before,
+.selectWrap:after {
+ color: #0568ae;
+ left: 6px;
+ top: -3px;
+ width: 2px;
+ height: 3px;
+ border: solid white;
+ border-width: 0 3px 3px 0;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);}
+
+[class*="icoWeather-"], [class*="icoTrans-"], [class*="icoBubble-"], [class*="icoRetail-"], [class*="icoPeople-"], [class*="icoNumslets-"], [class*="icoLocation-"], [class*="icoHealthcare-"], [class*="icoDocuments-"], [class*="icoDevices-"], [class*="icoDatanetwork-"], [class*="icoControls-"], [class*="icoBuilding-"], [class*="icoArrows-"] {
+ color: #0568ae;
+ display: inline-block;
+ font-style: normal;
+ font-size: 20px;
+ font-weight: normal;
+ font-variant: normal;
+ font-style: normal;
+ width: 20px;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ position: relative;
+ speak: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ vertical-align: middle; }
+
+[class*="icon-primary-"]:before,
+[class*="icon-primary-"]:after {
+ box-sizing: border-box;
+ display: inline-block;
+ font-size: 1em;
+ height: 1em;
+ position: relative;
+ top: 0;
+ left: 0;
+ vertical-align: middle;
+ width: 1em; }
+
+
+.checkbox {
+ position: relative;
+ min-height: 24px;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 1rem;
+}
+.checkbox input {
+ -webkit-tap-highlight-color: transparent;
+ height: 20px;
+ margin-left: 20px;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ left: 1px;
+ top: 1px;
+ width: 10px; }
+.checkbox input:focus + .skin {
+ border-color: #0568ae; }
+.checkbox input:focus + .skin:before {
+ content: "";
+ height: 34px;
+ left: -6px;
+ top: -6px;
+ outline: 1px dotted #000000;
+ position: absolute;
+ width: 34px; }
+.checkbox input:checked:not(:disabled) + .skin {
+ background-color: #0568ae;
+ border-color: #0568ae; }
+.checkbox input:checked:disabled + .skin:after {
+ color: #5A5A5A; }
+.checkbox input:checked + .skin:after {
+ height: 20px;
+ width: 10px;
+ background-color: transparent;
+ font-size: 23.4px;
+ color: #FFFFFF;
+ line-height: 21px; }
+.checkbox input:disabled + .skin {
+ cursor: not-allowed;
+ background-color: #d2d2d2;
+ border-color: #d2d2d2;
+ color: #666666; }
+.checkbox input:disabled + .skin + span {
+ cursor: not-allowed;
+ color: #666666; }
+.checkbox input:invalid + .skin {
+ border: solid 1px #cf2a2a; }
+.checkbox input:indeterminate + .skin:after {
+ background-color: transparent;
+ font-size: 25px;
+ color: #0574ac;
+ content: "\e920"; }
+.checkbox .skin {
+ background-color: #fff;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ width: 24px;
+ position: absolute;
+ left: 0;
+ top: 0; }
+.checkbox span {
+ display: inline-block;
+ margin-left: 34px;
+ margin-top: 0;
+ position: relative;
+ top: 3px; }
+.checkbox label {
+ font-size: 1.6rem;
+ font-family: "Omnes-ECOMP-W02", Arial; }
+.checkbox input {
+ z-index: 9999; }
+.checkbox input.indeterminate + .skin:after {
+ font-size: 22px;
+ color: #0568ae; }
+.b2b-tree-checkbox a > span.nodeIcon.end {
+ margin-top: 10px; }
+.b2b-tree-checkbox a:only-child {
+ color: #0574ac; }
+.b2b-tree-checkbox a:only-child > span.nodeIcon {
+ left: -11px;
+ border-radius: 50%;
+ line-height: 7px;
+ top: 0; }
+.b2b-tree-checkbox a:only-child > span.nodeIcon > i {
+ background-color: inherit;
+ background: #fff; }
+.b2b-tree-checkbox a > span.nodeIcon > i.icon-primary-circle {
+ background-color: inherit;
+ background: #fff;
+ font-size: 5px; }
+.b2b-tree-checkbox ul li:first-child > a:only-child > span {
+ left: -11px;
+ border-radius: 50%;
+ line-height: 12px;
+ top: 0px; }
+.b2b-tree-checkbox ul li:first-child > a:only-child > span.end {
+ margin-top: 0px; }
+.b2b-tree-checkbox ul li:first-child > a:only-child > span i.icon-primary-circle {
+ top: 8px; }
+.b2b-tree-checkbox ul li:last-child > a:only-child > span {
+ height: 34px;
+ background-color: #fff; }
+.b2b-tree-checkbox li a + ul {
+ height: 0;
+ overflow: hidden; }
+.b2b-tree-checkbox li a.active + ul {
+ height: auto; }
+.b2b-tree-checkbox li a.grp {
+ font-family: "Omnes-ECOMP-W02-Italic", Arial; }
+.b2b-tree-checkbox span.end {
+ left: -6px !important; }
+.b2b-tree-checkbox .checkbox {
+ margin-bottom: 0px;
+ margin-top: 2px;
+ font-size: 14px; }
+.b2b-tree-checkbox .checkbox input:indeterminate + .skin:after {
+ content: "\2014";
+ padding-left: 2px;
+ font-family: inherit !important;
+ line-height: inherit !important; }
+
+.b2b-pane-selector-wrapper .pane-container .panes div.pane-block .form-row .checkbox-selectall {
+ margin: 0px 0 0 24px !important; }
+
+.filter-container .checkbox .icon-primary-spinner {
+ height: 24px;
+ position: absolute;
+ width: 24px; }
+
+
+textarea {
+ display: block;
+ width: 400px;
+ max-width: 50%;
+ padding: 15px;
+}
+select {
+ margin-right: -1;
+ max-width: 400px;
+ height: 36px;
+ line-height: 25px;
+ width: 400px;
+ background-color: #95959521; }
+
+.selectWrap.disabled .icon-primary-down {
+ color: #d6d6d6; }
+
+.selectWrap.disabled input.awd-select {
+ z-index: 0;
+ padding: 10px 45px 10px 15px;
+ text-indent: 0; }
+
+.selectWrap.disabled button.awd-select {
+ z-index: 0;
+ text-indent: 15px; }
+
+.selectWrap.disabled:after {
+ color: #5A5A5A;
+ cursor: not-allowed; }
+
+input.awd-select {
+ background-color: transparent;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
+ color: #333333;
+ display: block;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ height: 36px;
+ line-height: 0;
+ margin-bottom: 0;
+ position: relative;
+ text-align: left;
+ top: 0;
+ width: 100%;
+ z-index: 10;
+ padding: 12px 45px 8px 15px;
+ user-select: none; }
+input.awd-select:focus {
+ border-color: #0568ae !important;
+ text-overflow: ellipsis;
+ padding-right: 45px; }
+
+button.awd-select {
+ background-color: transparent;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
+ color: #333333;
+ display: block;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ height: 36px;
+ line-height: 36px;
+ margin-bottom: 0;
+ position: relative;
+ text-align: left;
+ top: 0;
+ width: 100%;
+ z-index: 10; }
+button.awd-select:not(.large) {
+ text-indent: 15px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: clip;
+ text-overflow: ellipsis; }
+button.awd-select img {
+ height: 26px;
+ margin-right: 7px;
+ margin-top: -10px;
+ position: relative;
+ top: 2px;
+ vertical-align: text-bottom; }
+button.awd-select:focus {
+ border-color: #0568ae !important; }
+button.awd-select i {
+ font-size: 23px;
+ position: absolute;
+ right: 33px;
+ top: 5px;
+ z-index: 1000; }
+
+button.awd-select.large {
+ align-items: center;
+ display: flex;
+ height: 60px;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left: 70px;
+ vertical-align: middle; }
+button.awd-select.large img {
+ height: 40px;
+ left: 20px;
+ position: absolute;
+ top: 20px;
+ width: 40px; }
+
+.selectWrap.large {
+ height: 60px; }
+.selectWrap.large .awd-select-list-item {
+ align-items: center;
+ display: flex;
+ height: 60px;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left: 70px;
+ vertical-align: middle; }
+.selectWrap.large .awd-select-list-item img {
+ height: 40px;
+ left: 20px;
+ position: absolute;
+ top: 20px;
+ width: 40px;
+ top: 10px; }
+
+.inputWrap {
+ border-radius: 6px;
+ position: relative;
+ height: 36px;
+ line-height: 44px;
+ display: block;
+ margin: 0;
+}
+
+button.awd-select.active {
+ border-radius: 6px 6px 0 0; }
+button.awd-select.active:focus {
+ border-color: #d2d2d2 !important; }
+
+input.awd-select.active {
+ border-radius: 6px 6px 0 0; }
+input.awd-select.active:focus {
+ border-color: #d2d2d2 !important; }
+
+.selectWrapper {
+ position: relative; }
+
+span.selectWrap input[readonly]:focus {
+ color: transparent;
+ text-shadow: 0 0 0 #000; }
+
+.isIE.ds2-no-colors .awd-select:focus {
+ outline: 1px dashed transparent; }
+
+.awd-select-list {
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
+ border-radius: 0 0 6px 6px;
+ position: absolute;
+ border: 1px solid #d2d2d2;
+ border-top: 0;
+ padding: 0;
+ background-color: #f2f2f2;
+ z-index: 1000;
+ width: 100%;
+ max-height: 320px;
+ overflow-y: auto; }
+
+.awd-select-list-item {
+ cursor: pointer;
+ height: 100%;
+ min-height: 36px;
+ line-height: 20px;
+ overflow: hidden;
+ padding: 8px 15px;
+ position: relative;
+ z-index: 1000; }
+.awd-select-list-item:hover {
+ cursor: pointer;
+ background-color: #d2d2d2;
+ outline: 1px dashed transparent; }
+.awd-select-list-item:focus {
+ cursor: pointer;
+ background-color: #d2d2d2;
+ outline: 1px dashed transparent; }
+.awd-select-list-item img {
+ margin-top: 0;
+ margin-right: 7px;
+ height: 26px;
+ width: 26px; }
+
+.selectWrap {
+ border-radius: 6px;
+ position: relative;
+ height: 36px;
+ line-height: 28px;
+ display: block;
+ margin: 0;
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); }
+.selectWrap:not(.large) .awd-select-list-item:first-child {
+ margin-top: 15px; }
+.selectWrap:not(.large) .awd-select-list-item:last-child {
+ margin-bottom: 15px; }
+.selectWrap .icon-primary-down {
+ font-size: 23px;
+ margin-top: -11px;
+ position: absolute;
+ right: 4px;
+ top: 50%; }
+.selectWrap + [aria-expanded="true"] {
+ padding-bottom: 9px;
+ padding-top: 20px; }
+
+.awd-select-list-item[data-hover="true"] {
+ background-color: #d2d2d2; }
+
+span input.awd-select {
+ width: 100%;
+ cursor: pointer;
+ text-overflow: ellipsis;
+ padding-right: 45px; }
+
+li.optgroup-wrapper {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ cursor: default !important;
+ padding: 0px 15px; }
+li.optgroup-wrapper:first-child {
+ padding-top: 10px; }
+li.optgroup-wrapper:hover {
+ background-color: #f2f2f2; }
+
+ul.optgroup {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ cursor: pointer !important;
+ margin: 0 -15px; }
+ul.optgroup li {
+ padding: 0 0 0 33px; }
+
+label + .selectWrap {
+ margin-top: 4px; }
+
+.selectorModule {
+ border-radius: 6px;
+ position: relative;
+ height: 36px;
+ line-height: 28px;
+ display: block;
+ margin: 0;
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); }
+
+.group .selectWrap {
+ margin: 0 0 10px 0; }
+
+select.awd-select {
+ position: relative;
+ top: 0;
+ left: 0;
+ font-size: 16px;
+ z-index: 1010;
+ height: 33px;
+ min-width: 100%;
+ opacity: 0.01; }
+select.awd-select > optgroup {
+ padding-left: 8px;
+ font-style: normal;
+ margin-top: 10px; }
+select.awd-select > optgroup:first-child {
+ margin-top: 0; }
+select.awd-select > optgroup > option {
+ padding-left: 8px; }
+select.awd-select > option {
+ padding-left: 8px; }
+select.awd-select + span {
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0);
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 0;
+ display: block;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ height: 35px;
+ line-height: 0;
+ padding: 18px 45px 15px 15px;
+ width: 100%;
+ font-size: 1.6rem;
+ padding-right: 45px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+select.awd-select + span > i {
+ font-size: 23px;
+ position: absolute;
+ right: 33px;
+ top: 5px;
+ z-index: 1000; }
+select.awd-select + span > i:before {
+ left: 1px;
+ position: absolute;
+ top: -1px; }
+select.awd-select:focus + span {
+ border-color: #0568ae; }
+
+.isIE select.awd-select + span {
+ line-height: 1; }
+
+[data-default-option="true"] {
+ color: #767676 !important;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial; }
+
+.placeholdercolor {
+ color: #767676 !important;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial; }
+
+.filterTank button.awd-select {
+ border-color: #d2d2d2;
+ background-color: #333333;
+ color: #FFFFFF;
+ color: #333333; }
+.filterTank button.awd-select:after {
+ background-color: #FFFFFF !important;
+ border-color: #d2d2d2; }
+
+.utility-bg button.awd-select {
+ border-color: #d2d2d2;
+ background-color: #333333;
+ color: #FFFFFF;
+ color: #333333; }
+.utility-bg button.awd-select:after {
+ background-color: #FFFFFF !important;
+ border-color: #d2d2d2; }
+
+.utility-bg select.awd-select + span {
+ border-color: #d2d2d2;
+ border-color: #d2d2d2;
+ background-color: #333333;
+ background-color: #333333;
+ color: #FFFFFF;
+ color: #FFFFFF; }
+.utility-bg select.awd-select + span:after {
+ background-color: #FFFFFF !important;
+ background-color: #FFFFFF !important;
+ border-color: #d2d2d2;
+ border-color: #d2d2d2; }
+
+.utility-bg select.awd-select:focus + span {
+ border-color: #d2d2d2;
+ border-color: #d2d2d2;
+ background-color: #333333;
+ background-color: #333333;
+ color: #FFFFFF;
+ color: #FFFFFF; }
+.utility-bg select.awd-select:focus + span:after {
+ background-color: #FFFFFF !important;
+ background-color: #FFFFFF !important;
+ border-color: #d2d2d2;
+ border-color: #d2d2d2; }
+
+.utility-bg select.awd-select:hover + span {
+ border-color: #d2d2d2;
+ border-color: #d2d2d2;
+ background-color: #333333;
+ background-color: #333333;
+ color: #FFFFFF;
+ color: #FFFFFF; }
+.utility-bg select.awd-select:hover + span:after {
+ background-color: #FFFFFF !important;
+ background-color: #FFFFFF !important;
+ border-color: #d2d2d2;
+ border-color: #d2d2d2; }
+
+input.awd-select[disabled] {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+input.awd-select[disabled] + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+
+button.awd-select[disabled] {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+button.awd-select[disabled]:after {
+ background-color: #d2d2d2 !important;
+ border-color: #d2d2d2; }
+
+select.awd-select[disabled] + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+select.awd-select[disabled] + span:after {
+ background-color: #d2d2d2 !important;
+ border-color: #d2d2d2; }
+
+select.awd-select[disabled]:focus + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+
+select.awd-select[disabled]:hover + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+
+input.awd-select[disabled="disabled"] {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+input.awd-select[disabled="disabled"] + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+
+select.awd-select[disabled="disabled"] + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+select.awd-select[disabled="disabled"] + span:after {
+ background-color: #d2d2d2 !important;
+ border-color: #d2d2d2; }
+
+select.awd-select[disabled="disabled"]:focus + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+select.awd-select[disabled="disabled"]:focus + span:after {
+ background-color: #d2d2d2 !important;
+ border-color: #d2d2d2; }
+
+select.awd-select[disabled="disabled"]:hover + span {
+ cursor: not-allowed;
+ border-color: #d2d2d2;
+ background-color: #d2d2d2;
+ background-image: none;
+ color: #5A5A5A; }
+select.awd-select[disabled="disabled"]:hover + span:after {
+ background-color: #d2d2d2 !important;
+ border-color: #d2d2d2; }
+
+.ddexpand-wrapper > h2 {
+ margin-bottom: 11px; }
+.ddexpand-wrapper > h2 + p {
+ margin-bottom: 4px; }
+
+.ddexpand-wrapper .selectWrap + [aria-expanded="true"] .form-row {
+ margin-top: 11px; }
+
+.ddexpand-wrapper .selectWrap + [aria-expanded="true"] .row + .row .form-row {
+ margin-top: 14px; }
+
+.modal .awd-select-list {
+ z-index: 1060 !important; }
+
+.form-row.error button.awd-select.active:focus {
+ border-color: #cf2a2a !important; }
+
+.form-row.error input.awd-select.active:focus {
+ border-color: #cf2a2a !important; }
+
+.awd-module-list .module-list-item[aria-selected="true"] {
+ background-color: #f2f2f2; }
+
+li.module-list-item[aria-selected="true"]:before {
+ color: #0568ae;
+ display: inline-block;
+ font-family: "icoControls" !important;
+ font-style: normal;
+ font-size: 20px;
+ font-weight: normal;
+ font-variant: normal;
+ height: 1em;
+ margin-right: 7px;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ position: relative;
+ speak: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ vertical-align: middle;
+ width: 1em;
+ content: "\e907";
+ box-sizing: border-box;
+ display: inline-block;
+ font-size: 2em;
+ height: 1em;
+ position: absolute;
+ top: 20px;
+ right: 0px;
+ vertical-align: middle;
+ width: 1em;
+ color: #007a3e; }
+
+@media (min-width: 768px) {
+ span[class*="large"] {
+ max-width: 370px; }
+ .large {
+ max-width: 370px; } }
+
+@media (max-width: 767px) {
+ .selectWrap.large:after {
+ right: 5px; }
+ .selectWrap.large .awd-select-list-item {
+ padding-right: 41px; }
+ .selectWrap + div > h4 {
+ margin-bottom: 0;
+ font-size: 16px; } }
+input.awd-select {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text; }
+
+.checkbox .skin {
+ background-color: #fff;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ width: 24px;
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+
+i, em {
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+}
+
+
+
+.card{
+ border-radius: 5px;
+}
+
+.card-header{
+ height: 50px;
+}
+
+.card-body{
+ height: 150px;
+}
+
+.card-footer{
+ height: 50px;
+}
+
+.dialog__close-btn {
+ border: 0;
+ background: #087ac2;
+ color: #ffffff;
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ font-size: 1.2em;
+ display: block;
+ border: #087ac2 2px solid;
+}
+
+.modalTitle{
+ font-size: 35px;
+}
+
+
+.full-width-table {
+ width: 100%;
+}
+
+
+.app-data-table {
+ margin-top: 35px;
+}
+
+.app-data-table-fixed-height {
+ overflow: scroll;
+ width: 100%;
+ max-height: 750px;
+}
+
+th{
+ background-color: #2125299c;
+ color: rgb(255, 255, 255);
+ font-size: 15px;
+ border-radius: 2px;
+ height: 35px;
+}
+
+tr:nth-child(even) {
+ background-color: #dddddd;
+ font-size: 2px;
+ height: 35px;
+ border-radius: 4px;
+
+}
+
+tr:nth-child(odd) {
+ font-size: 2px;
+ height: 35px;
+ border-radius: 4px;
+}
+
+
+.card{
+ border-radius: 10px;
+
+}
+
+.card-header{
+ height: 80px;
+}
+
+.card-body{
+ height: 150px;
+}
+
+.card-footer{
+ height: 55px;
+ margin-right: 10px;
+}
+
+.dialog__close-btn {
+ border: 0;
+ background: #087ac2;
+ color: #ffffff;
+ position: absolute;
+ top: 12px;
+ right: 12px;
+ font-size: 1em;
+ display: block;
+ border: #087ac2 2px solid;
+}
+
+.modalTitle{
+ font-size: 35px;
+}
+
+label {
+ float: left;
+ width: 24em;
+ margin-right: 2em;
+ text-align: right;
+}
+
+
+.btn-alt {
+ border-color: #087ac2 transparent #0568ae;
+ background-color: #0568ae;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+ color: #ffffff; }
+.btn-alt:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-alt:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-alt:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+
+
+a.btn {
+ vertical-align: middle; }
+a.btn:hover {
+ text-decoration: none; }
+
+.field-group + .btn {
+ margin-left: 20px; }
+
+.btn-primary {
+ border-color: #ea7400 transparent #d16500;
+ background-color: #ea7400 transparent #d16500;
+ background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%);
+ color: #ffffff;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-weight: bold; }
+.btn-primary:hover {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+.btn-primary:focus {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+.btn-primary:active {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+
+.btn-arrow {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 1.6rem;
+ font-weight: normal;
+ background-color: transparent;
+ border: none;
+ padding: 5px 0 0;
+ top: -4px;
+ color: #333333;
+ position: relative; }
+.btn-arrow:hover {
+ text-decoration: underline; }
+.btn-arrow:hover .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+.btn-arrow:hover .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+.btn-arrow:hover .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
+.btn-arrow:hover .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+.btn-arrow:focus {
+ text-decoration: underline;
+ outline: 1px dotted #666; }
+.btn-arrow:focus .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+.btn-arrow:focus .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+.btn-arrow:focus .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
+.btn-arrow:focus .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+.btn-arrow:active .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
+.btn-arrow:active .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+.btn-arrow:active .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
+.btn-arrow:active .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+.btn-arrow .btn-alt {
+ border-color: #087ac2 transparent #0568ae;
+ background-color: #0568ae;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+ color: #ffffff; }
+.btn-arrow .btn-alt:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-arrow .btn-alt:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-arrow .btn-alt:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-arrow::-moz-focus-inner {
+ padding: 0;
+ border: 0; }
+.btn-arrow .btn {
+ border: 1px solid transparent;
+ border-radius: 100%;
+ height: 36px;
+ margin-bottom: 0;
+ margin-right: 7px;
+ max-width: 36px;
+ min-width: 20px;
+ padding: 0;
+ margin-top: -4px;
+ vertical-align: middle;
+ width: 36px; }
+.btn-arrow .btn .icon-primary-left {
+ bottom: 0;
+ display: block;
+ height: 100%;
+ left: 0;
+ line-height: 0;
+ position: absolute;
+ right: 0;
+ text-indent: 0;
+ top: 0; }
+.btn-arrow .btn .icon-primary-left:before {
+ position: absolute;
+ font-size: 1.6rem;
+ left: 1px;
+ top: 9px; }
+.btn-arrow .btn .icon-primary-right {
+ bottom: 0;
+ display: block;
+ height: 100%;
+ left: 0;
+ line-height: 0;
+ position: absolute;
+ right: 0;
+ text-indent: 0;
+ top: 0;
+ color: #ffffff; }
+.btn-arrow .btn .icon-primary-right:before {
+ position: absolute;
+ font-size: 1.6rem;
+ left: 17px;
+ top: 9px; }
+.btn-arrow .btn.btn-primary .icon-primary-left {
+ color: #fff; }
+.btn-arrow .btn.btn-primary .icon-primary-right {
+ color: #fff; }
+.btn-arrow .btn.btn-alt .icon-primary-left {
+ color: #fff; }
+.btn-arrow .btn.btn-alt .icon-primary-right {
+ color: #fff; }
+.btn-arrow .btn.btn-secondary {
+ border: 1px solid #d2d2d2; }
+.btn-arrow .btn.btn-secondary .icon-primary-left {
+ color: #0568ae; }
+.btn-arrow .btn.btn-secondary .icon-primary-right {
+ color: #0568ae; }
+.btn-arrow .btn.btn-small {
+ height: 20px;
+ max-width: 20px;
+ min-width: 20px;
+ width: 20px;
+ top: -1px; }
+.btn-arrow .btn.btn-small .icon-primary-left:before {
+ font-size: 5px;
+ top: 4px;
+ left: 0; }
+.btn-arrow .btn.btn-small .icon-primary-right:before {
+ font-size: 5px;
+ top: 4px;
+ left: 10px; }
+.btn-arrow .btn.btn-large .icon-primary-left:before {
+ font-size: 112%;
+ top: 12px;
+ left: 23px; }
+.btn-arrow .btn.btn-large .icon-primary-right:before {
+ font-size: 112%;
+ top: 12px;
+ left: 23px; }
+
+.btn-secondary {
+ border: 1px solid #d2d2d2;
+ background-color: #f2f2f2;
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ color: #0568ae;
+ box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15);
+ padding: 14px 18px 11px 17px; }
+.btn-secondary:hover {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+.btn-secondary:focus {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+.btn-secondary:active {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
+
+.btn-alt {
+ border-color: #087ac2 transparent #0568ae;
+ background-color: #0568ae;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+ color: #ffffff; }
+.btn-alt:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-alt:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+.btn-alt:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
+
+.btn-specialty {
+ border-color: #008744 transparent #007a3e;
+ background-color: #007a3e;
+ background: linear-gradient(to bottom, #008744 0%, #007a3e 100%);
+ color: #ffffff; }
+.btn-specialty:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+.btn-specialty:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+.btn-specialty:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
+
+.btn-clear {
+ background: transparent !important;
+ border-color: transparent !important;
+ font-weight: normal;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ box-shadow: none;
+ text-decoration: none;
+ color: #0568ae; }
+.btn-clear:focus {
+ text-decoration: underline; }
+.btn-clear:hover {
+ text-decoration: underline; }
+
+.downloadImg{
+ height: 25px ;
+ width: 25px;
+}
+
+#reportTableSize{
+ width: 99%;
+ max-height: 750px;
+}
+
+.gridster-color {
+ background: rgba(94, 94, 94, 0.7);
+}
+
+
+.download-div{
+ width: 20%;
+ float: left;
+ height: 30px;
+}
+
+.pagination-div{
+ width: 60%;
+ float: right;
+ height: 30px;
+}
+
+.download-title{
+ padding-right: 10px;
+ font-size: 14px;
+ font-family: Roboto, "Helvetica Neue", sans-serif;
+ color: rgba(0, 0, 0, 0.54);
+}
+
+.filter-div{
+ height: 30px;
+ width: 20%;
+ float: left;
+}
+.btn-back {
+ padding-bottom: 5px;
+ font-size: 15px;}
+
+a{
+ color: darkblue;
+ /*font-weight: normal;*/
+ text-decoration: underline;
+}
+
--- /dev/null
+import {Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef, ChangeDetectorRef} from '@angular/core';
+import {GridsterConfig, GridType, GridsterItem} from 'angular-gridster2';
+import {MatTableDataSource} from '@angular/material/table';
+import {MatPaginator} from '@angular/material/paginator';
+
+import {MatSort} from '@angular/material';
+import {Router} from '@angular/router';
+import {RunService} from '../../run.service';
+import {FormControl} from '@angular/forms';
+import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
+import {environment} from '../../../../../environments/environment';
+import {DisplayHtml} from '../../../../pages/analytics/Report_List/Report/display-html';
+import {ErrorModalComponent} from '../../../../modals/error-modal/error-modal.component';
+import {DashboardReportService} from '../run-dashboard-report/dashboard-report.service';
+import {HttpCacheService} from '../../../../shared/services/cache.service';
+
+export interface PeriodicElement {
+
+}
+
+const ELEMENT_DATA: PeriodicElement[] = [{}];
+
+@Component({
+ selector: 'app-run-cross-tab-report',
+ templateUrl: './run-cross-tab-report.component.html',
+ styleUrls: ['./run-cross-tab-report.component.scss']
+})
+export class RunCrossTabReportComponent implements OnInit {
+
+ @Input('reportId') inputReportId: string;
+ @Input('queryString') queryString: string;
+ @Input('hitCnt') hitCnt: number;
+ @Input('reportType') reportType: string;
+ @Input('reportMode') reportMode: string;
+ @Input('parentId') parentId: string;
+ @Input('groupSelectValue') groupSelectValue: string;
+ @Input('isGoBack') isGoBack: string;
+ dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);
+ @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator;
+ @ViewChild(MatSort, {static: false} as any) sort: MatSort;
+ @ViewChild('iframe') iframe: ElementRef;
+ options: GridsterConfig;
+ dashboard: Array<GridsterItem> = [];
+ displayedColumns: string[];
+ IncomingReportId: string;
+ displayedColumnsArr: string[];
+ displayedRowObj: {}[];
+ formFieldPresent: boolean;
+ showSpinner: boolean;
+ formFieldList: {}[];
+ isReady: boolean;
+ responseFormFieldListLength: number;
+ NEWdisplayedColumns: string[];
+ initCnt: number;
+ reportName: string;
+ showDashboardReport: boolean;
+ checkCnt: number;
+ initialQueryString: string;
+ initCounter: number;
+ runButtonHitCounter: number;
+ showChart = false;
+ displayColumValue: string;
+ displayTotal: any[];
+ nodeName: string;
+ uploadId: string;
+ ecgi: string;
+ lac: string;
+ cid: string;
+ commentCtrl = new FormControl();
+ replaceDisplayValue: String;
+ saveResponseObj: any;
+ customFieldsDataArray: any[];
+ private chartRunUrl: string;
+ pageSize = [];
+ download_in_progress = false;
+
+ constructor(private _dashboardReportService: DashboardReportService,
+ private _router: Router,
+ private _runService: RunService,
+ private ngModal: NgbModal,
+ private changeDetectorRefs: ChangeDetectorRef,
+ public ngbModal: NgbModal,
+ private httpCacheService: HttpCacheService) {
+ this.initCounter = 0;
+ this.runButtonHitCounter = 0;
+ this.pageSize = [];
+ }
+
+ ngOnInit() {
+ this.initialQueryString = this.queryString;
+ this.initCounter++;
+ this.runButtonHitCounter = this.hitCnt;
+ if (this.reportType === 'Chart') {
+ this.showChart = true;
+ }
+ this.initialProcesses();
+ }
+
+ initialProcesses() {
+ // this.dataSource.paginator = this.paginator;
+ }
+
+ ngOnChanges() {
+ if (this.initialQueryString !== this.queryString && this.initCounter > 0 && this.runButtonHitCounter !== this.hitCnt) {
+ this.initialQueryString = this.queryString;
+ this.runButtonHitCounter = this.hitCnt;
+ this.initialProcesses();
+ this.afterViewInitProcesses();
+ } else {
+ this.runButtonHitCounter = this.hitCnt;
+ this.initialQueryString = this.queryString;
+ }
+ }
+
+ ngAfterViewInit() {
+ this.afterViewInitProcesses();
+ }
+
+ afterViewInitProcesses() {
+ if (this.showChart) {
+ this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
+ this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0';
+ this.iframe.nativeElement.setAttribute('src', this.chartRunUrl);
+ this.showSpinner = false;
+ } else {
+
+ this.displayedColumnsArr = [];
+ this.displayedRowObj = [];
+ this.displayedColumns = [];
+ this.formFieldList = [];
+ this.showSpinner = true;
+ this.isReady = false;
+ this.NEWdisplayedColumns = [];
+ this.displayTotal = [];
+ if (localStorage.getItem(this.inputReportId)) {
+ this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId)));
+ localStorage.removeItem(this.inputReportId);
+ } else {
+ this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId, this.groupSelectValue)
+ .subscribe((response) => {
+ if (response['errormessage']){
+ this.openErrorModel(response['errormessage']);
+ this.showSpinner = false;
+ this.changeDetectorRefs.detectChanges();
+ } else {
+ this.postFetchingReportDataFn(response);
+ }
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showSpinner = false;
+ this.changeDetectorRefs.detectChanges();
+ });
+ }
+ }
+ }
+
+ postFetchingReportDataFn(response: any) {
+ this.displayedColumnsArr = [];
+ this.displayedColumns = [];
+ this.customFieldsDataArray = [];
+ this.formFieldPresent = false;
+ this.responseFormFieldListLength = 0;
+ this.reportName = response['reportName'];
+ let rdc_cntr = 0;
+ while (response['reportDataColumns'][rdc_cntr]) {
+ const columnTitle = response['reportDataColumns'][rdc_cntr]['columnTitle'];
+ const columnId = response['reportDataColumns'][rdc_cntr]['colId'];
+ this.displayedColumnsArr.push(columnTitle + '||' + columnId);
+ this.displayedColumns.push(columnId);
+ rdc_cntr++;
+ }
+
+
+ /* let totalCnt = 0;
+ while (response['reportTotalDataRows'][totalCnt]) {
+ this.displayTotal.push(response['reportTotalDataRows'][totalCnt]);
+ totalCnt++;
+ }*/
+ this.customFieldsDataArray = response['reportDataRows'];
+ let rdr_cntr = 0;
+ while (response['reportDataRows'][rdr_cntr]) {
+ let dca_cntr = 0;
+ const obj = {};
+ const reportDataRows = response['reportDataRows'][rdr_cntr];
+ while (this.displayedColumnsArr[dca_cntr]) {
+ const rowColumnId = this.displayedColumnsArr[dca_cntr].split('||')[1];
+ if (reportDataRows[rowColumnId]) {
+ let drillDownHtml = '';
+ let displayValue = '';
+ drillDownHtml = reportDataRows[rowColumnId]['drillDownURL'];
+ displayValue = reportDataRows[rowColumnId]['displayValue'];
+ if (drillDownHtml !== null &&
+ drillDownHtml.length > 0 &&
+ !displayValue.includes('linkToReport')) {
+ const value = this.convertToLinkToReport(drillDownHtml);
+ if (value.length > 0) {
+ let valueCount = [];
+ let valueDisplay = '';
+ valueCount = reportDataRows[rowColumnId]['displayValue'].split('|');
+ if (valueCount.length > 1 && this.reportType === 'Cross-Tab') {
+ for (let count = 0; count < valueCount.length - 1; count++) {
+ valueDisplay = valueDisplay + valueCount[count];
+ }
+ this.replaceDisplayValue = value + ',' + valueDisplay;
+ } else {
+ this.replaceDisplayValue = value + ',' + reportDataRows[rowColumnId]['displayValue'];
+ }
+ } else {
+ this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue'];
+ }
+ } else {
+ this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue'];
+ }
+ let displayObj: DisplayHtml = new class implements DisplayHtml {
+ 'background-color': string;
+ 'font-family': string;
+ 'font-size': string;
+ 'font-style': string;
+ 'font-weight': string;
+ 'text-align': string;
+ 'text-decoration': string;
+ color: string;
+ };
+ if (this.reportType === ('Cross-Tab') && reportDataRows[rowColumnId]['displayValueHtml'].includes('|')) {
+ let crossTabDisplayValArr = [];
+ crossTabDisplayValArr = reportDataRows[rowColumnId]['displayValueHtml'].split('|');
+ if (crossTabDisplayValArr.length > 1) {
+ displayObj['background-color'] = crossTabDisplayValArr[1];
+ }
+ }
+ if (reportDataRows[rowColumnId]['displayValueHtml'].includes('setStyle')) {
+ displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']);
+ }
+ displayObj['text-align'] = reportDataRows[rowColumnId]['alignment'];
+ if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')
+ || this.replaceDisplayValue.includes('linkToMap')) {
+ let replaceValArr = [];
+ if (this.replaceDisplayValue.includes('linkToReport')) {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|');
+ replaceValArr = obj[reportDataRows[rowColumnId]['colId']].split('|');
+ if (replaceValArr.length > 4) {
+ const dispValue = replaceValArr[3] + ',' + replaceValArr[4];
+ obj[reportDataRows[rowColumnId]['colId']] = obj[reportDataRows[rowColumnId]['colId']].replace(replaceValArr[3] + '|' + replaceValArr[4], replaceValArr[3] + ',' + replaceValArr[4]) + '|' + JSON.stringify(displayObj);
+ } else {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|')
+ + '|' + JSON.stringify(displayObj);
+ }
+ } else {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|')
+ + '|' + JSON.stringify(displayObj);
+ }
+ } else {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split('comment-break-line').join('')
+ + '|' + JSON.stringify(displayObj);
+ }
+ }
+ dca_cntr++;
+ }
+ this.displayedRowObj.push(obj);
+ rdr_cntr++;
+ }
+ this.pageSize = response['pageSize'];
+/* for (let cntr = 0; cntr < this.displayedColumnsArr.length; cntr++) {
+ const columnArrId = this.displayedColumnsArr[cntr].split(',')[1];
+ this.displayedColumns.push(columnArrId);
+ }*/
+ this.pageSize = [response['pageSize']];
+ this.showSpinner = false;
+ this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj);
+ this.dataSource.paginator = this.paginator;
+ this.changeDetectorRefs.detectChanges();
+ }
+
+ linkToReport(reportID: string, queryParameters: string) {
+ if (!this.httpCacheService.getPreviousId(this.inputReportId)) {
+ this.httpCacheService.setPreviousId(this.inputReportId, 'parent');
+ }
+ this.httpCacheService.setPreviousId(reportID, this.inputReportId);
+ let queryParamsArr = [];
+ let columnDrilldownqueryParamsArr = [];
+ let groupSelectValue = '';
+ if (queryParameters.includes('groupSelectValue')) {
+ queryParamsArr = queryParameters.split('&');
+ for (let val = 0; val < queryParamsArr.length; val++) {
+ if (queryParamsArr[val].includes('groupSelectValue')) {
+ groupSelectValue = queryParamsArr[val].substring(queryParamsArr[val].indexOf('=') + 1, queryParamsArr[val].length);
+ }
+ }
+ this._router.navigate(['v2/run', reportID, queryParameters, groupSelectValue]);
+ } else if (queryParameters.includes('SELECTCRITERIA-')) {
+ columnDrilldownqueryParamsArr = queryParameters.split('&');
+ for (let val = 0; val < columnDrilldownqueryParamsArr.length; val++) {
+ if (columnDrilldownqueryParamsArr[val].includes('SELECTCRITERIA-')) {
+ groupSelectValue = columnDrilldownqueryParamsArr[val].substring(columnDrilldownqueryParamsArr[val].indexOf('-') + 1, columnDrilldownqueryParamsArr[val].length);
+ }
+ }
+ this._router.navigate(['v2/run', reportID, queryParameters, groupSelectValue, 'true', '']);
+ } else {
+ this._router.navigate(['v2/run', reportID, queryParameters, '', 'true', '']);
+ }
+ }
+
+ linkToMail(mailId: string) {
+ const email = 'mailto:' + mailId;
+ window.location.href = email;
+ }
+
+ applyFilter(filterValue: string) {
+ this.dataSource.filter = filterValue.trim().toLowerCase();
+ }
+
+ setStyle(rowData: string) {
+ let styles = '';
+ if (rowData.split('|')[0] === 'linkToReport' || rowData.split('|')[0] === 'linkToFeedback') {
+ styles = rowData.split('|')[4];
+ } else if (this.reportType = 'Cross-Tab') {
+ const rowDataArray = rowData.split('|');
+ let crossTabstyles = {};
+ if (rowDataArray.length > 1) {
+ if (rowDataArray[1].includes('{')) {
+ styles = rowDataArray[1];
+ return JSON.parse(styles);
+ } else {
+ crossTabstyles = {'background-color': rowData.split('|')[1]};
+ return crossTabstyles;
+ }
+ }
+ } else {
+ styles = rowData.split('|')[1];
+ }
+ if (styles.includes('{')) {
+ return JSON.parse(styles);
+ } else {
+ return {};
+ }
+ }
+
+ getDisplayTotal(keys: any) {
+ if (this.displayTotal.length > 0) {
+ return this.displayTotal[0][keys].displayValue;
+ } else {
+ return '';
+ }
+ }
+
+ clearComments() {
+ this.commentCtrl.setValue('');
+ }
+
+ convertToLinkToReport(value: string) {
+ value = value.replace(/;/g, '');
+ let outPut = '';
+ while (value.includes('c_master=')) {
+ const index = value.indexOf('c_master=');
+ if (index > 0) {
+ value = value.substring(index, value.length);
+ } else if (index === 0) {
+ value = value.replace('c_master=', '');
+ }
+ }
+ const split = value.split('&');
+ // const spltFirst = split[0].split('=');
+ if (split[1].length <= 0) {
+ return outPut;
+ }
+ outPut = 'linkToReport,' + split[0] + ',';
+ let splitCounter = 1;
+ for (splitCounter = 1; splitCounter < split.length; splitCounter++) {
+ if (!split[splitCounter].includes('LOGIN_ID=') &&
+ !split[splitCounter].includes('display_content=') &&
+ !split[splitCounter].includes('drilldown_index=') &&
+ !split[splitCounter].includes('show_back_btn=') &&
+ !split[splitCounter].includes('r_action')) {
+ outPut = outPut + '&' + split[splitCounter];
+ }
+ }
+ return outPut;
+ }
+
+ openErrorModel(_message: string) {
+ const modalInfoRef = this.ngbModal.open(ErrorModalComponent);
+ modalInfoRef.componentInstance.message = _message;
+ return modalInfoRef;
+ }
+
+ downloadReport(contentType: string, extension: string) {
+
+ this.changeDetectorRefs.detectChanges();
+ if (this.showDashboardReport === false) {
+ this.download_in_progress = true;
+ this._runService.downloadReport(this.inputReportId, extension, this.isGoBack)
+ .subscribe((responseExcel) => {
+
+ this.downLoadFile(responseExcel, contentType, extension, '');
+ this.download_in_progress = false;
+ this.changeDetectorRefs.detectChanges();
+ });
+ } else {
+ this.download_in_progress = true;
+ this._runService.getDashboardReportFormFields(this.inputReportId)
+ .subscribe((dashboardFormFields) => {
+ /* this._runService.runDashboardReport(this.inputReportId, this.queryString)
+ .subscribe((runDashboardReportResp) => {*/
+ this._runService.downloadDashboardReportExcel(this.inputReportId)
+ .subscribe((responseDownloadDashboardReport) => {
+ this.downLoadFile(responseDownloadDashboardReport, contentType, extension, 'Dashboard');
+ this.download_in_progress = false;
+ this.changeDetectorRefs.detectChanges();
+ });
+ // });
+
+ });
+ }
+ }
+
+ downLoadFile(data: any, type: string, extension: string, reportType: string) {
+ const blob = new Blob([data], {type: type});
+ const date = new Date();
+ const dateStr =
+ ('00' + (date.getMonth() + 1)).slice(-2) +
+ ('00' + date.getDate()).slice(-2) +
+ date.getFullYear() +
+ ('00' + date.getHours()).slice(-2) +
+ ('00' + date.getMinutes()).slice(-2) +
+ ('00' + date.getMilliseconds());
+ let fileName = this.reportName + dateStr + '.' + extension;
+ if (reportType === 'Dashboard') {
+ fileName = '';
+ fileName = reportType + '_' + this.inputReportId + '_' + dateStr + '.' + extension;
+ }
+ if (window.navigator.msSaveOrOpenBlob) {
+ window.navigator.msSaveBlob(blob, fileName);
+ } else {
+ const anchor = window.document.createElement('a');
+ anchor.href = window.URL.createObjectURL(blob);
+ anchor.download = fileName;
+ document.body.appendChild(anchor);
+ anchor.click();
+ document.body.removeChild(anchor);
+ window.URL.revokeObjectURL(anchor.href);
+ }
+ }
+}
+
'text-decoration': string;
color: string;
};
- if (reportDataRows[rowColumnId]['displayValueHtml'].includes('{')) {
+ if (reportDataRows[rowColumnId]['displayValueHtml'].includes('setStyle')) {
displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']);
}
displayObj['text-align'] = reportDataRows[rowColumnId]['alignment'];
styles = rowData.split('|')[4];
} else if (rowData.split('|')[0] === 'linkToMail') {
styles = rowData.split('|')[3];
+ } else if (this.reportType === 'Cross-Tab') {
+ const rowDataArray = rowData.split('|');
+ let crossTabstyles = {};
+ if (rowDataArray.length > 0) {
+ if (rowDataArray[1].includes('{')) {
+ styles = rowDataArray[1];
+ return JSON.parse(styles);
+ } else {
+ crossTabstyles = {'background-color': rowData.split('|')[1]};
+ return crossTabstyles;
+ }
+ }
} else {
styles = rowData.split('|')[1];
}
.btn-back {
padding-bottom: 5px;
font-size: 15px;}
+
+a{
+ color: darkblue;
+ /*font-weight: normal;*/
+ text-decoration: underline;
+}
+
+.hyperlink-color{
+ text-decoration: underline;
+ cursor: pointer;
+ color: darkblue;
+}
\ No newline at end of file
<a (click)="linkToReport(row[keys].split('|')[1], row[keys].split('|')[2])"
[routerLink]="">{{row[keys].split('|')[3]}}</a>
</div>
+ <div *ngIf="row[keys].split('|')[0] == 'linkToHref'">
+ <a (click)="linkToOpenNewTab(row[keys].split('|')[1], row[keys].split('|')[2])"
+ [routerLink]="">{{row[keys].split('|')[3]}}</a>
+ </div>
<div *ngIf="row[keys].split('|')[0] == 'linkToMail'"
>
<a (click)="linkToMail(row[keys].split('|')[1])"
[routerLink]="">{{row[keys].split('|')[2]}}</a>
</div>
- <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToMail'">
+ <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToMail' && row[keys].split('|')[0] !== 'linkToHref'">
{{row[keys].split('|')[0]}} </div>
</td>
<td *matFooterCellDef align="center" mat-footer-cell>{{getDisplayTotal(keys)}}</td>
import {ErrorModalComponent} from '../../../modals/error-modal/error-modal.component';
import {InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component';
import { FormControl } from '@angular/forms';
-import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { NgbModal, NgbModalOptions} from '@ng-bootstrap/ng-bootstrap';
import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
import {MatDialog} from '@angular/material';
import {HttpCacheService} from '../../../shared/services/cache.service';
export class RunReportComponent implements OnInit, AfterViewInit, OnChanges {
@Input('reportId') inputReportId: string;
@Input('reportMode') reportMode: string;
+ @Input('reportType') reportType: string;
@Input('queryString') queryString: string;
@Input('isGoBack') isGoBack: string;
@Input('DashboardReportObj') DashboardReportObj: Array<GridsterItem>;
timeTaken = '...';
saveResponseObj: any;
showBackButton = false;
+ customFieldsDataArray: any[];
isDashboardExcelReadyToDownload = false;
+ modalOptions: NgbModalOptions;
constructor(private _http: HttpClient,
private _route: ActivatedRoute,
this.download_in_progress = false;
this.isGoBack = '';
this.isDashboardExcelReadyToDownload = false;
+ this.modalOptions = {
+ backdrop: 'static',
+ keyboard: false,
+ size: 'lg'
+ };
}
@HostListener('click') onClick() {
this.totalRecords = 0;
this.displayedColumnsArr = [];
this.displayedColumns = [];
+ this.customFieldsDataArray = [];
this.formFieldPresent = false;
this.responseFormFieldListLength = 0;
this.reportName = response['reportName'];
this.displayTotal.push(response['reportTotalDataRows'][totalCnt]);
totalCnt++;
}
-
+ this.customFieldsDataArray = response['reportDataRows'];
let rdr_cntr = 0;
while (response['reportDataRows'][rdr_cntr]) {
let dca_cntr = 0;
!displayValue.includes('linkToReport')) {
const value = this.convertToLinkToReport(drillDownHtml);
if (value.length > 0) {
- this.replaceDisplayValue = value + ',' +
- reportDataRows[rowColumnId]['displayValue'];
+ let valueCount = [];
+ let valueDisplay = '';
+ valueCount = reportDataRows[rowColumnId]['displayValue'].split('|');
+ if (valueCount.length > 1 && this.reportType === 'Cross-Tab') {
+ for (let count = 0; count < valueCount.length - 1; count++) {
+ valueDisplay = valueDisplay + valueCount[count];
+ }
+ this.replaceDisplayValue = value + ',' + valueDisplay;
+ } else {
+ this.replaceDisplayValue = value + ',' + reportDataRows[rowColumnId]['displayValue'];
+ }
} else {
this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue'];
}
'text-decoration': string;
color: string;
};
+ if (this.reportType === ('Cross-Tab') && reportDataRows[rowColumnId]['displayValueHtml'].includes('|')) {
+ let crossTabDisplayValArr = [];
+ crossTabDisplayValArr = reportDataRows[rowColumnId]['displayValueHtml'].split('|');
+ if (crossTabDisplayValArr.length > 1) {
+ displayObj['background-color'] = crossTabDisplayValArr[1];
+ }
+ }
if (reportDataRows[rowColumnId]['displayValueHtml'].includes('setStyle')) {
displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']);
}
displayObj['text-align'] = reportDataRows[rowColumnId]['alignment'];
obj['RowNum'] = (pagenum * response['pageSize'] + rdr_cntr + 1) + '|{"text-align":"center"}';
if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')
- || this.replaceDisplayValue.includes('linkToMap')) {
+ || this.replaceDisplayValue.includes('linkToMap') || this.replaceDisplayValue.includes('linkToHref')) {
let replaceValArr = new Array();
if (this.replaceDisplayValue.includes('linkToReport')) {
obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|');
length++;
sessionStorage.setItem(length.toString(), this.inputReportId + '|' + this.queryString);
}*/
- let queryParamsArr = new Array();
- let columnDrilldownqueryParamsArr = new Array();
+ let queryParamsArr = [];
+ let columnDrilldownqueryParamsArr = [];
let groupSelectValue = '';
if (queryParameters.includes('groupSelectValue')) {
queryParamsArr = queryParameters.split('&');
styles = rowData.split('|')[4];
} else if (rowData.split('|')[0] === 'linkToMail') {
styles = rowData.split('|')[3];
+ } else if (this.reportType === 'Cross-Tab') {
+ const rowDataArray = rowData.split('|');
+ let crossTabstyles = {};
+ if (rowDataArray.length > 0) {
+ if (rowDataArray[1].includes('{')) {
+ styles = rowDataArray[1];
+ return JSON.parse(styles);
+ } else {
+ crossTabstyles = {'background-color': rowData.split('|')[1]};
+ return crossTabstyles;
+ }
+ }
} else {
styles = rowData.split('|')[1];
}
- if (styles.includes('{')) {
+ if (styles !== undefined && styles.includes('{')) {
return JSON.parse(styles);
} else {
return {};
openErrorModel(_message: string) {
this.changeDetectorRefs.detectChanges();
- const modalInfoRef = this.ngbModal.open(ErrorModalComponent);
+ const modalInfoRef = this.ngbModal.open(ErrorModalComponent, this.modalOptions);
modalInfoRef.componentInstance.message = _message;
return modalInfoRef;
}
+ openErrorModelPopup(_message: string) {
+ this.changeDetectorRefs.detectChanges();
+ const modalInfoRef = this.ngbModal.open(ErrorModalComponent, this.modalOptions);
+ modalInfoRef.componentInstance.message = _message;
+ modalInfoRef.result.then((data) => {
+ this.resetFormFieldValues(this.inputReportId);
+ });
+ return modalInfoRef;
+ }
+
+ resetFormFieldValues(reportId) {
+ this.httpCacheService.clearCache();
+ this._router.navigateByUrl('v2/app/refresh', {skipLocationChange: true}).then(() =>
+ this._router.navigate(['v2/run', reportId]));
+ }
+
+ linkToOpenNewTab(repId, formfiledValues) {
+ let str = [];
+ formfiledValues = formfiledValues.replaceAll('%2F','||');
+ str = window.location.pathname.split('/');
+ let approot = str[1];
+ let reportLink2 = this._router.serializeUrl(this._router.createUrlTree([approot + '/v2/run', repId, formfiledValues]));
+ window.open(reportLink2, '_blank');
+ }
}
import { TestBed } from '@angular/core/testing';
import { HttpClientModule, HttpClient, HttpXhrBackend } from '@angular/common/http';
+import { HttpClientTestingModule } from '@angular/common/http/testing';
import { HeaderService } from './header.service';
import { environment } from 'src/environments/environment';
let httpMock: HttpTestingController;
beforeEach(() =>{ TestBed.configureTestingModule({
- imports:[HttpClientModule],
+ imports:[HttpClientModule, HttpClientTestingModule],
providers: [HttpClient, HeaderService, HttpTestingController],
});
*/
import { TestBed } from '@angular/core/testing';
import { HttpClientModule, HttpClient } from '@angular/common/http';
-
+import { HttpClientTestingModule } from '@angular/common/http/testing';
import { SidebarService } from './sidebar.service';
import { environment } from 'src/environments/environment';
import { inject } from '@angular/core';
let httpMock: HttpTestingController;
beforeEach(() => { TestBed.configureTestingModule({
- imports: [HttpClientModule],
+ imports: [HttpClientModule, HttpClientTestingModule],
providers: [SidebarService, HttpTestingController, HttpClient]
});
import { ActivatedRoute } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
-xdescribe('SelfComponent', () => {
+describe('SelfComponent', () => {
let component: SelfComponent;
let fixture: ComponentFixture<SelfComponent>;
let userService:UserService;