/**************************************************************** ** Licensed Materials - Property of IBM ** ** BI and PM: qs ** ** (C) Copyright IBM Corp. 2001, 2015 ** ** US Government Users Restricted Rights - Use, duplication or ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *****************************************************************/ // Copyright (C) 2008 Cognos ULC, an IBM Company. All Rights Reserved. // Cognos and the Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated) in the United States and/or other countries. IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, or other countries, or both. Other company, product, or service names may be trademarks or service marks of others. var cf = (typeof getConfigFrame == "function" ? getConfigFrame() : this); var giRANGE_STRING = -1; var giRANGE_NUMERIC = 0; var giRANGE_DATE = 1; var giRANGE_TIME = 2; var giRANGE_DATETIME = 3; var giRANGE_INTERVAL = 4; var giRANGE_VALUES = 5; var gsPREVIEW = "pb-"; var gsRANGEHEADER = "Range"; var gsSELECTHEADER = "Selection"; var gsSELECTLINK = "(Select a value)"; var gsADDRANGELINK = "(Add a range)"; var gsSTYLEHEADER = "Style"; var gsPREVIEWTEXT = "AaBbCc"; var gsSELECTCLASS = "sc-"; var gsTHRESHOLD = "tb-"; var gsHIGHESTVALUE = "Highest value"; var gsLOWESTVALUE = "Highest value"; var gsCSSCLASS_DEFAULT = 'cs-default'; var gsCSSCLASS_CUSTOM = 'cs-custom'; var gsCSS_DEFAULT = "(default)"; var gsCSS_EXCELLENT = "Great"; var gsCSS_GOOD = "Good"; var gsCSS_AVERAGE = "Average"; var gsCSS_BAD = "Bad"; var gsCSS_POOR = "Poor"; var gsCSS_CUSTOM = "(custom)"; var gsDATAFORMAT_INTERVAL = "^0 days, ^1 hrs, ^2 mins"; var gsMISSING_VALUES = ""; function CStyleRangeList(columnId, type, colType) { this.m_columnId = columnId; this.m_id = "csrl_" + getSafeIdentifier(columnId); this.m_ranges = null; this.setType(type); this.setColType(colType); this.m_defaultClass = ""; this.m_defaultStyleInfo = ""; this.m_ranges = new Array(); }; function CStyleRangeList_initStrings(sRange, sSelect, sSelectLink, sAddRangeLink, sStyle, sHigh, sLow, sPreview, sDefault, sExcellent, sGood, sAvg, sBad, sPoor, sCustom, sIntervalFormat, sMissingValues) { gsPREVIEWTEXT = sPreview; gsRANGEHEADER = sRange; gsSELECTHEADER = sSelect; gsSELECTLINK = sSelectLink; gsADDRANGELINK = sAddRangeLink; gsSTYLEHEADER = sStyle; gsHIGHESTVALUE = sHigh; gsLOWESTVALUE = sLow; gsCSS_DEFAULT = sDefault; gsCSS_EXCELLENT = sExcellent; gsCSS_GOOD = sGood; gsCSS_AVERAGE = sAvg; gsCSS_BAD = sBad; gsCSS_POOR = sPoor; gsCSS_CUSTOM = sCustom; gsDATAFORMAT_INTERVAL = sIntervalFormat; gsMISSING_VALUES = cf.htmlencode(sMissingValues); }; function CStyleRangeList_addStyleRange(styleRange) { this.m_ranges[this.m_ranges.length] = styleRange; styleRange.m_parent = this; return styleRange; }; function CStyleRangeList_addRange(from, to) { var r = new CStyleRange(from, to, true, true); r.setId(this.generateID()); return ( this.addStyleRange(r) ); }; function CStyleRangeList_addSVList(svList) { var sv = new CStyleSV(svList); sv.setId(this.generateID()); return ( this.addStyleRange(sv) ); }; function CStyleRangeList_addThreshold(threshold) { if ( this.m_type == giRANGE_VALUES ) return null; if ( !this.m_ranges ) this.m_ranges = new Array(); if ( this.m_type == giRANGE_NUMERIC ) { threshold = parseFloat(threshold); if (isNaN(threshold)) { return; } } var rangeIndex = this.indexWith(threshold); var aNewRanges = new Array(); if ( rangeIndex > -1 ) { var old_r = this.m_ranges[rangeIndex]; if (old_r.getFrom() == threshold || old_r.getTo() == threshold) { return; } var new_r = old_r.clone(); new_r.setId(this.generateID()); new_r.setTo(threshold); new_r.setToInclusive(true); if ( this.rangeExists(new_r) ) { return; } old_r.setFrom(threshold); old_r.setFromInclusive(false); this.insertRangeAt(new_r,rangeIndex); aNewRanges[aNewRanges.length] = new_r; aNewRanges[aNewRanges.length] = old_r; } else { var r1 = new CStyleRange(null, threshold); r1.setId(this.generateID()); r1.setClass(this.getClass()); r1.setStyleInfo(this.getStyleInfo()); aNewRanges[aNewRanges.length] = this.addStyleRange( r1 ); var r2 = new CStyleRange(threshold, null); r2.setId(this.generateID()); r2.setClass(this.getClass()); r2.setStyleInfo(this.getStyleInfo()); aNewRanges[aNewRanges.length] = this.addStyleRange( r2 ); } return aNewRanges; }; function CStyleRangeList_clone() { var clone = new CStyleRangeList(); clone.m_columnId = this.columnId; clone.m_ranges = this.m_ranges.clone(); clone.m_type = this.m_type; clone.m_colType = this.m_colType; if (clone.m_ranges) { for (var i = 0; i < clone.m_ranges.length; i++) { clone.m_ranges[i].m_parent = clone; } } return clone; }; function CStyleRangeList_generateID() { var i = 0; while ( this.getRangeById("styleRange" + i) != null ) i++; return ("styleRange" + i); }; function CStyleRangeList_getClass() { if (this.m_defaultClass == null) { this.m_defaultClass = ""; } return this.m_defaultClass; }; function CStyleRangeList_getColType() { return this.m_colType; }; function CStyleRangeList_getCommand() { var s = "OA:" + cf.escapeParam(this.m_columnId) + ","; var filterType = ''; switch (this.getType()) { case giRANGE_NUMERIC: filterType = "numeric"; break; case giRANGE_STRING: filterType = "string"; break; case giRANGE_DATE: filterType = "date"; break; case giRANGE_DATETIME: filterType = "datetime"; break; case giRANGE_TIME: filterType = "time"; break; case giRANGE_INTERVAL: filterType = "interval"; break; case giRANGE_VALUES: filterType = "selectValue"; break; default: break; } var xml = '= this.m_ranges.length || index == null) new_ranges[new_ranges.length] = range; this.m_ranges = new_ranges; } }; function CStyleRangeList_moveRange(id, delta) { var r = this.getRangeById(id); if (r) { var rIndex = this.indexOf(r); var step = (delta < 0 ? -1 : 1); if (delta < 0 && (rIndex + delta) >= 0) { for (var i = rIndex; i > rIndex + delta; i--) { var swapObject = this.m_ranges[i]; this.m_ranges[i] = this.m_ranges[i + step]; this.m_ranges[i + step] = swapObject; } } else if (delta > 0 && (rIndex + delta) < this.m_ranges.length) { for (var i = rIndex; i < rIndex + delta; i++) { var swapObject = this.m_ranges[i]; this.m_ranges[i] = this.m_ranges[i + step]; this.m_ranges[i + step] = swapObject; } } } }; function CStyleRangeList_rangeExists(new_r) { if (this.m_ranges) { for (var i = 0; i < this.m_ranges.length; i++) { var r = this.m_ranges[i]; var n_from = new_r.getFrom(); var n_to = new_r.getTo(); var o_from = r.getFrom(); var o_to = r.getTo(); if (typeof n_from == "string") { n_from = n_from.toUpperCase(); } if (typeof n_to == "string") { n_to = n_to.toUpperCase(); } if (typeof o_from == "string") { o_from = o_from.toUpperCase(); } if (typeof o_to == "string") { o_to = o_to.toUpperCase(); } if (n_from == o_from && n_to == o_to && new_r.getFromInclusive() == r.getFromInclusive() && new_r.getToInclusive() == r.getToInclusive()) return true; } } return false; }; function CStyleRangeList_removeRange(r) { if ( !(r instanceof CStyleRange || r instanceof CStyleSV) ) { r = this.getRangeById(r); } if ( !(r instanceof CStyleRange || r instanceof CStyleSV) ) { return; } var retval = null; var newRanges = new Array(); for (var i = 0; i < this.m_ranges.length; i++) { if (this.m_ranges[i].getId() == r.getId()) { retval = this.m_ranges[i]; if (this.m_type != giRANGE_VALUES) { if ( (i+1) < this.m_ranges.length ) { this.m_ranges[i+1].setFrom( (newRanges.length > 0 ? newRanges[newRanges.length-1].getTo() : null) ); this.m_ranges[i+1].setFromInclusive( !(newRanges.length > 0 ? newRanges[newRanges.length-1].getToInclusive() : true) ); } else if ( newRanges.length > 0 ) { newRanges[newRanges.length-1].getTo() = null; } } } else { newRanges[newRanges.length] = this.m_ranges[i]; } } this.m_ranges = newRanges; if (this.m_type != giRANGE_VALUES) { if (this.m_ranges && this.m_ranges.length <= 1 && this.m_ranges[0].getFrom() == null && this.m_ranges[0].getTo() == null) { this.setClass(this.m_ranges[0].getClass()); this.setStyleInfo(this.m_ranges[0].getStyleInfo()); this.m_ranges = new Array(); } } return retval; }; function CStyleRangeList_removeThreshold(threshold) { for (var i = 0; i < this.m_ranges.length; i++) { if ( this.m_ranges[i].getTo() == threshold ) { return this.removeRange(this.m_ranges[i]); } } return null; }; function CStyleRangeList_render(container, clientWin) { if ( typeof container != "object" ) { } var hs = '' + '' + '' + '
' + ''; var out = '' + '' + '' + hs + '' + ( this.m_type == giRANGE_VALUES ? gsSELECTHEADER : gsRANGEHEADER ) + '' + '' + '' + hs + '' + '
' + gsSTYLEHEADER + '
' + ''; var msgID_highest = "HIGHEST"; var msgID_lowest = "LOWEST"; if (this.m_type == giRANGE_DATE || this.m_type == giRANGE_DATETIME) { msgID_highest = "HIGHEST_DATE"; msgID_lowest = "LOWEST_DATE"; } else if (this.m_type == giRANGE_TIME) { msgID_highest = "HIGHEST_TIME"; msgID_lowest = "LOWEST_TIME"; } if (this.m_ranges.length > 0) { if (this.m_type == giRANGE_VALUES) { for (var i = 0; i < this.m_ranges.length; i++) { out += this.m_ranges[i].render(clientWin); } } else { out += splitRow(msgCndFrmt[msgID_highest]); for (var i = this.m_ranges.length - 1; i > 0; i--) { out += this.m_ranges[i].render(clientWin); out += splitRow(""); } if (this.m_ranges.length > 0) { out += this.m_ranges[0].render(clientWin); } out += splitRow(msgCndFrmt[msgID_lowest]); } } if (this.m_ranges.length == 0 || this.m_type == giRANGE_VALUES) { if (this.m_type == giRANGE_VALUES) { out += '' + '' + '' + '' + cf.htmlencode(gsSELECTLINK) + ' ' + msgCndFrmt["OR"] + ' ' + cf.htmlencode(gsADDRANGELINK) + '' + (this.m_ranges.length > 0 ? '' : renderStyleControls(this)) + ''; if (this.m_ranges.length > 0) { out += '' + '' + msgCndFrmt["REMAINING_VALUES"] + ''+ renderStyleControls(this) + ''; } } else { out += splitRow(msgCndFrmt[msgID_highest]) + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '' + renderStyleControls(this) + ''; } if (this.m_type != giRANGE_VALUES) { out += splitRow(msgCndFrmt[msgID_lowest]); } } out += ''; container.innerHTML = out; }; function renderStyleControls(obj) { var _id = ""; var _class = ""; var _style = ""; if (obj != null) { _id = obj.getId(); _class = obj.getClass(); _style = obj.getStyleInfo(); } var _bThresholdUI = false; var _t = obj.m_type; if (_t == null && obj.m_parent != null) { _t = obj.m_parent.m_type; } switch (_t) { case giRANGE_NUMERIC: case giRANGE_DATE: case giRANGE_TIME: case giRANGE_DATETIME: case giRANGE_INTERVAL: _bThresholdUI = true; } var s = '' + '' + (_bThresholdUI ? '' : '' ) + '
' + '' + '' + '' + renderPreviewBox(obj) + '' + '' + '
' + ''; return s; }; function renderClassOption(name, text, css_class, css_style, bSelected) { var buf = '