123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: pps
- //
- // (C) Copyright IBM Corp. 2005, 2017
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- // This forms the javascript functions used for the Custom Subsets pane of
- // PowerPlay Studio.
- // The functions handle any minor browser differences.
- var DIMCACHE_LOAD_DELAY = 100;
- var PRELOAD_LOADING_DELAY = 500;
- var metaDataPreloaded = false;
- var preloadMetadata = null;
- var csData = new CSData();
- var csResults = new CSResults();
- var SelectedSearchDef = -1;
- var CS_DEFAULT_TYPE = 3;
- var CS_RULE_RANGE = 0;
- var CS_RULE_COUNT = 1;
- var CS_END_TOP = 0;
- var CS_END_BOTTOM = 1;
- var actionsEnabled = true;
- var pickedCats = new Array();
- var hierRootPath = new Array();
- var resultsEmpty = true;
- var scopeTreeComboBox;
- var numWarningMessages;
- var measureCatTypeDiv;
- var measureCatRangeSection;
- var measureCatNumberSection;
- var MEASURE_TYPE_RANGE = 0;
- var MEASURE_TYPE_NUMBER = 1;
- //*********************************
- // Common methods
- //*********************************
- var dimensions = new Array();
- function init() {
- topparent.openActionPane();
- ContextMenu.initialize(true,false);
- if (wizardPane != "R")
- topparent.setActionPaneHeight("315");
- else
- topparent.setActionPaneHeight("180");
- if (preloadMetadata) {
- metaDataPreloaded = false;
- //we need to ensure that the dimCache has preloaded the necessary information.
- displayCommonMessage(strLoading, MESSAGE_TYPE_SIMPLE, [], []);
- preload_next_metaData_chunk(0,0);
- } else
- metaDataPreloaded = true;
- init_customSubset_pane();
- }
- function init_customSubset_pane() {
- if (metaDataPreloaded) {
- removeMessage();
- switch (wizardPane) {
- case "I": //Init
- init_init();
- break;
-
- case "N": //Name Definition
- init_name_def();
- break;
- case "M": //Measure Definition
- init_measure_def();
- break;
- case "P": //PickList
- init_picklist();
- break;
- case "R": //Rename
- init_rename();
- break;
- }
- numWarningMessages = warningMessage.length;
- displayNextWarningMessage();
- } else {
- setTimeout("init_customSubset_pane()",PRELOAD_LOADING_DELAY);
- }
- }
- function cleanup() {
- switch (wizardPane) {
- case "M":
- clearFlyouts();
- if (measureTree)
- measureTree.clearTreeContainer();
- case "N":
- if (scopeTree)
- scopeTree.clearTreeContainer();
- break;
- case "P":
- if (pickTree)
- pickTree.clearTreeContainer();
- break;
- }
- }
- function displayNextWarningMessage() {
- //take the last one on the list
- if (numWarningMessages) {
- if (warningMessageCancel[numWarningMessages - 1])
- displayCommonMessage(warningMessage[numWarningMessages - 1], MESSAGE_TYPE_INFO, [message_ok_button_text, message_cancel_button_text], [function() {removeMessage();displayNextWarningMessage();}, function() {topparent.closeActionPane();}]);
- else
- displayCommonMessage(warningMessage[numWarningMessages - 1], MESSAGE_TYPE_INFO, [message_ok_button_text], [function() {removeMessage();displayNextWarningMessage();}]);
- numWarningMessages--;
- }
- }
- function goto_page(page) {
- if ((wizardPane == "I" && !validate_Init()) ||
- (wizardPane == "M" && page == "P" && !validate_measure()) ||
- (wizardPane == "N" && page == "P" && !validate_name()))
- return false;
- if (wizardPane == "M")
- setMeasureDefinitionData();
- if (wizardPane != "I")
- var subsetType = csData.getType();
- else {
- if (document.getElementById("methodRadioName").checked)
- subsetType = "1";
- else if (document.getElementById("methodRadioMeasure").checked)
- subsetType = "2";
- else
- subsetType = "3";
- if (subsetType != csData.getType() || document.getElementById("subsetDim").selectedIndex != csData.getDimension())
- csData.clearData();
-
- csData.setName(document.getElementById("subsetName").value);
- csData.setDimension(document.getElementById("subsetDim").selectedIndex);
- }
- cmd = "MZ" + page + ":" + csData.makeCommonCommand(subsetType);
- cmd += csData.makeSearchDefsCommand() + csData.makeSearchRuleCommand() + csData.makeExclusionsCommand() + csData.makePickListCommand();
- topparent.getXtabFrame().doit(cmd);
- }
- function submit_page() {
- if ((wizardPane == "P" && !validate_pickList()) ||
- (wizardPane == "M" && !validate_measure()) ||
- (wizardPane == "N" && !validate_name()))
- return false;
- if (wizardPane == "R")
- csData.setName(document.getElementById("subsetName").value);
- topparent.closeActionPane();
- var subsetType = csData.getType();
- if (wizardPane.charAt(0) == "N")
- subsetType = "1";
- else if (wizardPane.charAt(0) == "M")
- subsetType = "2";
- cmd = "Z";
-
- if (wizardPane == "R")
- cmd += "R";
- else if (csData.isEditing())
- cmd += "E";
- else
- cmd += "C";
- cmd += ":" + csData.makeCommonCommand(subsetType);
- cmd += csData.makeSearchDefsCommand() + csData.makeSearchRuleCommand() + csData.makeExclusionsCommand() + csData.makePickListCommand();
- topparent.getXtabFrame().doit(cmd);
-
- }
- function cancelEventBubble(event) {
- var eventM = new eventManager(event);
- eventM.cancelBubble();
- }
- function displayCustomsubsetsMsg(msg) {
- displayCommonMessage(msg, MESSAGE_TYPE_INFO, [message_ok_button_text], [function() {removeMessage();}]);
- }
- function clearCustomsubsetsMsg() {
- removeMessageDiv();
- }
- //Meta Data preloading
- function metaDataCat(dim, catCode) {
- this.dim = dim;
- this.code = catCode;
- }
- function preload_next_metaData_chunk(firstIdx, secondIdx) {
-
- if (preloadMetadata[firstIdx]) {
- var subArray = preloadMetadata[firstIdx];
-
- //Check if we have this item in the dimCache.
- while (subArray[secondIdx] && dimCache.getCategory(subArray[secondIdx].dim,subArray[secondIdx].code)) {
- secondIdx += 1;
- }
- if (subArray[secondIdx]) {
- //We found an item that was not loaded.
- //get the parent category (must be loaded);
- var parent = dimCache.getCategory(subArray[secondIdx - 1].dim, subArray[secondIdx - 1].code);
- parent.loadChildren();
- setTimeout("preload_next_metaData_chunk(" + firstIdx + "," + secondIdx + ");", DIMCACHE_LOAD_DELAY);
- return;
- } else {
- preload_next_metaData_chunk(firstIdx + 1, 0);
- }
- } else {
- //All metadata preloaded
- metaDataPreloaded = true;
- }
- }
- //***************************
- // Comon Data object
- //***************************
- function CSData() {
-
- var code = "";
- var name = "";
- var dimension = 0;
- var searchDefs = new Array();
- var numSearchDefs = 0;
- var searchRule = null;
- var exclusions = new cat_collection();
- var pickList = new cat_collection();
- var CSType = CS_DEFAULT_TYPE;
- var crc32 = 0;
- var useShortNames = false;
- this.setcode = function(Code) {
- code = Code;
- }
- this.setcrc32 = function(idx) {
- crc32 = idx;
- }
- this.isEditing = function() {
- return (code != "");
- }
- this.setUseShortNames = function(useShort) {
- useShortNames = useShort;
- }
- this.isUsingShortNames = function() {
- return useShortNames;
- }
- this.setName = function(Name) {
- name = Name;
- }
- this.getName = function() {
- return name;
- }
- this.setDimension = function(Dim) {
- dimension = Dim;
- }
- this.getDimension = function() {
- return parseInt(dimension);
- }
- this.setType = function(type) {
- type = parseInt(type);
- if (type <= 3 && type >= 0) {
- CSType = type;
- }
- }
- this.getType = function() {
- return CSType;
- }
- this.addSearchDef = function(String,OpCode,Ancestor,AncestorLabel,AncestorCode,IncDesc,itemNum) {
- var increment = (itemNum == numSearchDefs);
- searchDefs[itemNum] = new search_def(String,OpCode,Ancestor,AncestorLabel,AncestorCode,IncDesc);
- if (increment)
- numSearchDefs++;
- }
- this.searchDefToString = function(idx) {
- var string = templateSearchDefStr;
- switch (searchDefs[idx].opCode) {
- case 0: string = string.replace(/%0/,containsString); break;
- case 1: string = string.replace(/%0/,beginsString); break;
- case 2: string = string.replace(/%0/,endsString); break;
- }
- string = string.replace(/%1/,searchDefs[idx].text);
- string = string.replace(/%2/,searchDefs[idx].ancestorLabel);
- switch (searchDefs[idx].incDesc) {
- case 0: string = string.replace(/%3/,strShortChildren);
- case 1: string = string.replace(/%3/,strShortAllDesc);
- case 2: string = string.replace(/%3/,strShortLeaves);
- case 3: string = string.replace(/%3/, strShortNonLeaves);
- }
- return string;
- }
- this.getSearchDef = function(idx) {
- return searchDefs[idx];
- }
- this.removeSearchDef = function(idx) {
- if (idx < numSearchDefs) {
- for (var i = idx; i < numSearchDefs - 1;i++) {
- searchDefs[i] = searchDefs[i+1];
- }
- numSearchDefs--;
- }
- }
- this.numSearchDefs = function() {
- return numSearchDefs;
- }
- this.setSearchRule = function(Measure, MeasureCode, IncDesc, AncestorCode, AncestorId) {
- searchRule = new search_rule(Measure, MeasureCode, 0, null, IncDesc, AncestorCode, AncestorId, new Array());
- }
- this.setSearchRuleRange = function( From, To, IsMin, IsMax ) {
- if (searchRule) {
- searchRule.type = CS_RULE_RANGE;
- searchRule.rule = new search_rule_range(From, To, IsMin, IsMax)
- }
- }
- this.setSearchRuleCount = function( End, Number ) {
- if (searchRule) {
- searchRule.type = CS_RULE_COUNT;
- searchRule.rule = new search_rule_count(End, Number);
- }
- }
- this.getSearchRule = function() {
- return searchRule;
- }
- this.addSearchRuleFilter = function(filter) {
- searchRule.filters[searchRule.filters.length] = filter;
- }
- this.addExclusion = function(exclusion) {
- exclusions.addItem(exclusion);
- }
- this.removeExclusion = function(exclusion) {
- exclusions.removeItem(exclusion);
- }
- this.isAnExclusion = function(exclusion) {
- return exclusions.isInCollection(exclusion);
- }
- this.addPickListCategory = function(cat, beforeCat) {
- pickList.addItem(cat, beforeCat);
- }
- this.removePicklistCategory = function(cat) {
- pickList.removeItem(cat);
- }
- this.isAPicklistCategory = function(cat) {
- return pickList.isInCollection(cat);
- }
- this.clearData = function() {
- numSearchDefs = 0;
- searchRule = null;
- exclusions = new cat_collection();
- pickList = new cat_collection();
- searchResults = new Array();
- }
- this.makeAncestorPathCommand = function() {
- var cmd = "\t{\t\"A\"\t";
- for (var i = 0; i < hierRootPath.length; i++)
- cmd += topparent.getGlobal("dimCache").getCategory(dimension,hierRootPath[i]).getPPDSID() + "\t";
- cmd += "}";
- return cmd;
- }
- this.makeCommonCommand = function(subsetType) {
- var cmd = "";
- cmd += "\"" + code + "\"\t";
- cmd += subsetType + "\t";
- cmd += "\"" + CEncodingUtil.EncodeStrOperand(name) + "\"\t";
- cmd += dimension + "\t";
-
- var shn = "0";
- var hiddenForm = topparent.getXtabFrame().document.fhidden;
- if (hiddenForm && hiddenForm.SHN != "undefined" && hiddenForm.SHN != null && hiddenForm.SHN.value == 1)
- shn = "1";
- cmd += shn + "\t";
- cmd += crc32;
- // Write out the Ancestor Path
- cmd += this.makeAncestorPathCommand();
- return cmd;
- }
- this.makeSearchDefsCommand = function() {
- var cmd = "\t{\t\"N\"\t";
- for (var i = 0; i < numSearchDefs; i++) {
- cmd += "\"" + CEncodingUtil.EncodeStrOperand(searchDefs[i].text) + "\"\t" + searchDefs[i].opCode + "\t" + searchDefs[i].ancestor + "\t" + searchDefs[i].incDesc + "\t";
- }
- cmd += "}";
- return cmd;
- }
- this.makeSearchRuleCommand = function() {
- var cmd = "";
- if (CSType == 2 && searchRule != null) {
- cmd += "\t{\t\"M\"\t" + searchRule.type + "\t" + searchRule.measure + "\t\"\"\t0";
- switch (searchRule.type) {
- case CS_RULE_RANGE:
- cmd += makeSearchRuleRangeCommand();
- break;
- case CS_RULE_COUNT:
- cmd += makeSearchRuleCountCommand();
- break;
- }
-
- cmd += "\t" + searchRule.incDesc + "\t" + searchRule.ancestorId;
- cmd += makeSearchRuleFiltersCommand();
- cmd += "\t}";
- } else {
- cmd += "\t{\t\"M\"\t}";
- }
- return cmd;
- }
- function makeSearchRuleRangeCommand() {
- var cmd = "";
- if (searchRule != null && searchRule.rule != null && searchRule.type == CS_RULE_RANGE)
- cmd += "\t{\t\"r\"\t\"" + searchRule.rule.from + "\"\t\"" + searchRule.rule.to + "\"\t" + searchRule.rule.isMin + "\t" + searchRule.rule.isMax + "\t}";
- return cmd;
- }
- function makeSearchRuleCountCommand() {
- var cmd = "";
- if (searchRule != null && searchRule.rule != null && searchRule.type == CS_RULE_COUNT)
- cmd += "\t{\t\"c\"\t" + searchRule.rule.end + "\t" + searchRule.rule.number + "\t}";
- return cmd;
- }
- function makeSearchRuleFiltersCommand() {
- var cmd = "";
- if (searchRule != null && searchRule.filters.length) {
- cmd += "\t{\t\"f\"\t";
- for (var i = 0; i < searchRule.filters.length; i++)
- cmd += searchRule.filters[i] + "\t";
- cmd += "}";
- }
- return cmd;
- }
- this.makeExclusionsCommand = function() {
-
- var cmd = "";
- cmd += "\t{\t\"P\"\t1\t";
- for (var i = 0; i < exclusions.numItems(); i++) {
- cmd += exclusions.getItem(i) + "\t";
- }
- cmd += "}";
- return cmd;
- }
-
- this.makePickListCommand = function() {
- var cmd = "";
- cmd = "\t{\t\"P\"\t0\t";
- for (var i = 0; i < pickList.numItems(); i++) {
- cmd += pickList.getItem(i) + "\t";
- }
- cmd += "}";
- return cmd;
- }
- }
- function CSResults() {
- var results = new Array();
- this.addResult = function(Id, Label, Code, IsLeaf, IsCalculated, fullPath, SearchResult, Picked, Excluded) {
- results[results.length] = new search_cat(Id, Label, Code, IsLeaf, IsCalculated, fullPath, SearchResult, Picked, Excluded);
- }
- this.getResult = function(Idx) {
- return results[Idx];
- }
- this.numResults = function() {
- return results.length;
- }
- }
- function search_def(String,OpCode,Ancestor,AncestorLabel,AncestorCode,IncDesc) {
- this.text = String;
- this.opCode = OpCode;
- this.ancestor = Ancestor;
- this.ancestorLabel = AncestorLabel;
- this.ancestorCode = AncestorCode;
- this.incDesc = IncDesc;
- }
- function search_rule(Measure, MeasureCode, Type, Rule, IncDesc, AncestorCode, AncestorId, Filters) {
- this.measure = Measure;
- this.measureCode = MeasureCode;
- this.type = Type;
- this.rule = Rule;
- this.incDesc = IncDesc;
- this.ancestorCode = AncestorCode;
- this.ancestorId = AncestorId;
- this.filters = Filters;
- }
- function search_rule_range(From, To, IsMin, IsMax) {
- this.from = From;
- this.to = To;
- this.isMin = IsMin;
- this.isMax = IsMax;
- }
- function search_rule_count(End, Number) {
- this.end = End;
- this.number = Number;
- }
- function search_cat(Id, Label, Code, IsLeaf, IsCalculated, FullPath, SearchResult, Picked, Excluded) {
- this.id = Id;
- this.label = Label;
- this.code = Code;
- this.isLeaf = IsLeaf;
- this.isCalculated = IsCalculated;
- this.fullPath = FullPath;
- this.searchResult = SearchResult;
- this.picked = Picked;
- this.excluded = Excluded;
- }
- function cat_collection() {
- var cats = new Array();
- var numCats = 0;
- this.addItem = function(item, beforeCat) {
- var found = false;
- for (var i = 0; i < numCats && !found; i++) {
- if (cats[i] == item)
- found = true;
- }
- if (!found) {
- var insertBefore = -1;
- if (beforeCat) {
- for (var i = 0; i < cats.length; i++)
- if (cats[i] == beforeCat)
- insertBefore = i;
- }
- if (insertBefore == -1)
- cats[numCats] = item;
- else
- cats.splice(insertBefore, 0, item);
-
- numCats++;
- }
- }
- this.removeItem = function(item) {
- var found = false;
- for (var i = 0; i < numCats; i++) {
- if (cats[i] == item) {
- found = true;
- numCats--;
- }
- if (found)
- cats[i] = cats[i+1];
- }
- }
- this.numItems = function() {
- return numCats;
- }
- this.getItem = function(idx) {
- if (idx < numCats && idx >= 0)
- return cats[idx];
- else
- return null;
- }
- this.isInCollection = function(item) {
- var found = false;
- for (var i = 0; i < numCats && !found; i++) {
- if (cats[i] == item)
- found = true;
- }
- return found;
- }
- }
- //***************************
- // Init Pane
- //***************************
- function init_init() {
- populate_dimensions();
-
- var select = document.getElementById("subsetDim");
- select.selectedIndex = csData.getDimension();
- if (csData.getType() == 1) {
- document.getElementById("methodRadioName").checked = true;
- } else if (csData.getType() == 2) {
- document.getElementById("methodRadioMeasure").checked = true;
- } else
- document.getElementById("methodRadioPickList").checked = true;
- if (csData.getName() != "")
- document.getElementById("subsetName").value = csData.getName();
- if (topparent.getDimTreeFrame().dTree.numTreeItemsSelected()) {
- var dimIdx = parseInt(topparent.getDimTreeFrame().dTree.getTreeSelectedItem().parentNode.getAttribute("dimIdx"));
- if (dimIdx < document.getElementById("subsetDim").options.length)
- document.getElementById("subsetDim").selectedIndex = dimIdx;
- }
- }
- function subsetDimChange() {
- hierRootPath = new Array();
- }
- function finalPaneInit() {
- document.getElementById("subsetName").value = csData.getName();
- }
- function getInitNextPage() {
- var cmd;
- if (document.getElementById("methodRadioName").checked)
- cmd = "N";
- else if (document.getElementById("methodRadioMeasure").checked)
- cmd = "M";
- else
- cmd = "P";
- return cmd;
- }
- function populate_dimensions() {
- var select = document.getElementById("subsetDim");
- for (var i = 0; i < dimensions.length; i++) {
- select.options[i] = new Option(dimensions[i],i);
- }
- }
- function validate_Init() {
- if (!document.getElementById("subsetName").value.length) {
- displayCustomsubsetsMsg(strErrorNoName);
- return false;
- }
- return true;
- }
- //******************************
- // By Name Definition Pane
- //******************************
- function init_name_def() {
- for (var i = 0; i < csData.numSearchDefs(); i++) {
- addSearchDefToSelect(i);
- }
- scopeTree = new dimTree(document.getElementById("NameScopeTreeDiv"));
- scopeTree.setTreeSelectionType(TREE_SELECTION_CHILDREN);
- scopeTree.setTreeMustSelect(true);
- scopeTree.setTreeWideSelect(true);
- scopeTree.setLeavesSelectable(false);
- scopeTree.setTreeShowCustomSubsets(false);
- scopeTree.initDimTree(csData.getDimension(),true);
- initScopeTreeComboBox();
- if (csData.isEditing()) {
- disableButton(document.getElementById("button-Back"));
- var shn = false;
- var hiddenForm = topparent.getXtabFrame().document.fhidden;
- if (hiddenForm && hiddenForm.SHN != "undefined" && hiddenForm.SHN != null && hiddenForm.SHN.value == 1)
- shn = true;
- SelectedSearchDef = -1;
- }
- resetEnabledActionControls();
- }
- function initScopeTreeComboBox() {
- scopeTreeComboBox = initComboBox(document.getElementById("scopeTypeSelect"));
- scopeTreeComboBox.addItem(new cbTextItem(scopeTreeOptions[0],"handleSearchLimitChange();",true));
- scopeTreeComboBox.addItem(new cbTextItem(scopeTreeOptions[1],"handleSearchLimitChange();",false));
- scopeTreeComboBox.addItem(new cbTextImageItem(scopeTreeOptions[2],images[IMAGE_FILE].src,"handleSearchLimitChange();",false));
- scopeTreeComboBox.addItem(new cbTextImageItem(scopeTreeOptions[3],images[IMAGE_FOLDER].src,"handleSearchLimitChange();",false));
- }
- function addSearchDef(itemNum) {
- var filter = scopeTree.getTreeSelectedItem(0).parentNode.getAttribute("ppdsId");
- var code = scopeTree.getTreeSelectedItem(0).parentNode.getAttribute("code");
- var label = dimCache.getCategory(csData.getDimension(),code).getLabel();
- csData.addSearchDef(document.getElementById("searchString").value,document.getElementById("searchType").selectedIndex, filter, label, code, scopeTreeComboBox.getSelectedItem() ,itemNum);
- addSearchDefToSelect(itemNum);
- }
- function addSearchDefToSelect(itemNum) {
- var string = csData.searchDefToString(itemNum);
- var select = document.getElementById("searchDefsSelect");
- var option = new Option(string, itemNum);
- select.options[itemNum] = option;
- }
- function deleteItems() {
- if (!actionsEnabled)
- return;
- //move backwards for efficiency.
- var select = document.getElementById("searchDefsSelect");
- for (var i = select.options.length - 1; i >= 0; i--) {
- if (select.options[i].selected) {
- csData.removeSearchDef(i);
- select.options[i] = null;
- }
- }
- if (!select.options.length) {
- hierRootPath = new Array();
- }
- resetEnabledActionControls();
- sendUpdateCountCommand();
- }
- function clearFields(editing) {
- document.getElementById("searchType").selectedIndex = 0;
- document.getElementById("searchString").value = "";
- var container = document.getElementById("NameScopeTreeDiv");
- var select = document.getElementById("searchDefsSelect");
- if (hierRootPath.length == 0 || (!editing && !document.getElementById("searchDefsSelect").childNodes.length) || (editing && document.getElementById("searchDefsSelect").childNodes.length == 1 && document.getElementById("searchDefsSelect").selectedIndex == 0)) {
- scopeTree.setTreeShowAlternateHierarchies(true);
- scopeTree.resetTreeToTop();
- } else {
- scopeTree.setTreeShowAlternateHierarchies(false);
- scopeTree.clearTreeContainer();
- scopeTree.initDimSubTree(csData.getDimension(),hierRootPath[0],true);
- }
- scopeTree.selectRoot();
- scopeTreeComboBox.setSelectedItem(0);
- handleSearchLimitChange();
- }
- function addItem() {
- if (!actionsEnabled)
- return;
- clearFields(false);
- document.getElementById("searchDefsSelect").selectedIndex = -1;
- showNameDefRightSide();
- SelectedSearchDef = csData.numSearchDefs();
- }
- function acceptItem() {
- //If adding the first, or editing the only one, update the hierRootPath.
- if (hierRootPath.length == 0 ||
- (document.getElementById("searchDefsSelect").childNodes.length == 1 && document.getElementById("searchDefsSelect").selectedIndex == 0)) {
- hierRootPath = scopeTree.getHierarchyRootsPath(scopeTree.getTreeSelectedItem(0).parentNode);
- }
- addSearchDef(SelectedSearchDef);
- document.getElementById("searchDefsSelect").selectedIndex = SelectedSearchDef;
- hideNameDefRightSide();
- resetEnabledActionControls();
- sendUpdateCountCommand();
- }
- function hideNameDefRightSide() {
- enableAllNameControls();
- document.getElementById("CustomSubsetsNameRightTable").className = "CustomSubsetsPaneRightTableHidden";
- }
- function showNameDefRightSide() {
- document.getElementById("CustomSubsetsNameRightTable").className = "CustomSubsetsPaneRightTable";
- disableAllNameControls();
- }
- function numberSelected(select) {
- var ctr = 0;
- for (var i = 0; i < select.options.length; i++) {
- if (select.options[i].selected)
- ctr++;
- }
- return ctr;
- }
- function editItem() {
- if (!actionsEnabled)
- return;
- var select = document.getElementById("searchDefsSelect");
- if (numberSelected(select) != 1)
- return;
- SelectedSearchDef = select.selectedIndex;
- showNameDefRightSide();
- clearFields(true);
- var searchDef = csData.getSearchDef(SelectedSearchDef);
- document.getElementById("searchType").selectedIndex = parseInt(searchDef.opCode);
- document.getElementById("searchString").value = searchDef.text;
- scopeTree.setTreeToCat(csData.getDimension(), searchDef.ancestorCode);
- scopeTreeComboBox.setSelectedItem(searchDef.incDesc);
- handleSearchLimitChange();
- }
- function selectedSearchDefChanged() {
- hideNameDefRightSide();
- SelectedSearchDef = document.getElementById("searchDefsSelect").selectedIndex;
- resetEnabledActionControls();
- }
- function handleDimbarClick(item) {
- var dimbar = document.getElementById("dimbar-content");
- //Find the dimbar item.
- var barItem = dimbar.firstChild.firstChild;
- while (item.getAttribute("dimIdx") != barItem.getAttribute("dimIdx")) {
- if (!hasNextSibling(barItem)) break;
- barItem = barItem.parentNode.nextSibling.firstChild;
- }
- barItem.setAttribute("category",item.getAttribute("name"));
- barItem.setAttribute("name",item.getAttribute("tag"));
- barItem.setAttribute("code",item.getAttribute("code"));
- barItem.setAttribute("alternate",(item.className == "dimbar_flyout_entry_alternate"));
- barItem.setAttribute("leaf",item.getAttribute("leaf"));
- barItem.setAttribute("ppds_id",item.getAttribute("ppdsId"));
- var link = document.getElementById("dimbar_item" + parseInt(barItem.getAttribute("number")) + "_cell").firstChild.firstChild;
- var img = link.childNodes[1];
- for (var i = link.childNodes.length - 1; i >= 0; i--) {
- link.removeChild(link.childNodes[i]);
- }
- link.appendChild(document.createTextNode(item.getAttribute("name")));
- link.appendChild(img);
- link.parentNode.className = "dimbar-dimension-span";
- if (item.getAttribute("code") != dimCache.getDimTopNode(parseInt(item.getAttribute("dimIdx"))).getCode())
- link.parentNode.className += "-filtered";
- barItem.setAttribute("item_width",barItem.offsetWidth);
- reflow_dimbar();
- }
- function validate_name() {
- if (!document.getElementById("searchDefsSelect").options.length) {
- displayCustomsubsetsMsg(strErrorNoSearchDefs);
- return false;
- }
- return true;
- }
- function cancelNameDefn() {
- hideNameDefRightSide();
- }
- function acceptNameDefn() {
- acceptItem();
- }
- function disableAllNameControls() {
- disableButton(document.getElementById("button-Cancel"));
- disableButton(document.getElementById("button-Back"));
- disableButton(document.getElementById("button-Next"));
- document.getElementById("addItemLink").className = "CustomSubsetsPaneLinkDisabled";
- document.getElementById("editItemLink").className = "CustomSubsetsPaneLinkDisabled";
- document.getElementById("deleteItemLink").className = "CustomSubsetsPaneLinkDisabled";
- actionsEnabled = false;
- }
- function enableAllNameControls() {
- enableButton(document.getElementById("button-Cancel"));
- if (!csData.isEditing())
- enableButton(document.getElementById("button-Back"));
- enableButton(document.getElementById("button-Next"));
- actionsEnabled = true;
- resetEnabledActionControls();
- }
- function resetEnabledActionControls() {
- if (actionsEnabled) {
- document.getElementById("addItemLink").className = "CustomSubsetsPaneLink";
- if (SelectedSearchDef != -1 && numberSelected(document.getElementById("searchDefsSelect")) == 1) {
- document.getElementById("editItemLink").className = "CustomSubsetsPaneLink";
- } else {
- document.getElementById("editItemLink").className = "CustomSubsetsPaneLinkDisabled";
- }
- if (numberSelected(document.getElementById("searchDefsSelect")) > 0) {
- document.getElementById("deleteItemLink").className = "CustomSubsetsPaneLink";
- } else {
- document.getElementById("deleteItemLink").className = "CustomSubsetsPaneLinkDisabled";
- }
- }
- }
- function sendUpdateCountCommand() {
- if (csData.numSearchDefs()) {
- var cmd = "MZn:" + csData.makeCommonCommand(1);
- cmd += csData.makeSearchDefsCommand() + csData.makeSearchRuleCommand() + csData.makeExclusionsCommand() + csData.makePickListCommand();
- var hf = topparent.getXtabFrame().document.getElementById("fhidden");
- var target = hf.target;
- hf.CNCT.value = 19;
- hf.CO.value = cmd;
- hf.target = CustomSubsetsResultCountFrame.name;
- hf.submit();
- hf.target = target;
- updateCount(strLoading);
- } else {
- updateCount("0");
- }
- }
- function updateCount(count) {
- var container = document.getElementById("resultCount");
- while (container.childNodes.length)
- container.removeChild(container.childNodes[container.childNodes.length - 1]);
- container.appendChild(document.createTextNode(count));
- }
- function customSubsetLinkOver(item) {
- if (item.className != "CustomSubsetsPaneLinkDisabled") {
- item.className = "CustomSubsetsPaneLinkRollover";
- }
- }
- function customSubsetLinkOut(item) {
- if (item.className != "CustomSubsetsPaneLinkDisabled") {
- item.className = "CustomSubsetsPaneLink";
- }
- }
- //******************************
- // By Picklist
- //******************************
- function init_picklist() {
- pickTree = new dimTree(document.getElementById("sourceTreeDiv"));
- pickTree.setTreeMultiSelect(true);
- pickTree.setTreeWideSelect(true);
- pickTree.setTreeHierRootsSelectable(false);
- pickTree.setTreeShowCustomSubsets(false);
- pickTree.initDimTree(csData.getDimension(),false);
- if (csData.isEditing() && csData.getType() == 3)
- disableButton(document.getElementById("button-Back"));
- for (var i =0; i < csResults.numResults(); i++) {
- var result = csResults.getResult(i);
- document.getElementById("picklistResultsDiv").appendChild(createPickListItem(result.label, result.id, result.code, result.isCalculated, result.isLeaf, result.picked, result.searchResult, result.excluded, result.fullPath));
- }
- refreshPicklistEnabling(null);
- }
- function getItemInPicklist(ppdsId) {
- var theItem = null;
-
- var item = document.getElementById("picklistResultsDiv").firstChild;
- while (item != null && theItem == null) {
- if (item.getAttribute("ppdsId") == ppdsId)
- theItem = item;
- item = item.nextSibling;
- }
- return theItem;
- }
- function moveOption(node, beforeNode) {
- var ppdsId = node.getAttribute("ppdsId");
- var item = getItemInPicklist(ppdsId);
- var cat;
- if (item == null) {
- cat = dimCache.getCategory(csData.getDimension(),node.getAttribute("code"));
- var dim = createPickListItem(CEncodingUtil.ForceUnescape(node.childNodes[node.childNodes.length - 1].innerHTML),ppdsId,cat.getCode(),cat.isCalculated(),cat.isLeaf(),true,false,false,createNodePath(node));
- //Check if the before node is a valid node, if so insert before it.
- if (beforeNode != null) {
- document.getElementById("picklistResultsDiv").insertBefore(dim,beforeNode);
- csData.addPickListCategory(ppdsId,beforeNode.getAttribute("ppdsId"));
- } else {
- document.getElementById("picklistResultsDiv").appendChild(dim);
- csData.addPickListCategory(ppdsId);
- }
- } else if (item.getAttribute("searchres") == "true") {
- item.firstChild.src = getIconSrc(item.firstChild.getAttribute("isCalculated") == "true", item.firstChild.getAttribute("isLeaf") == "true", false, false);
- item.childNodes[1].className = "CustomSubsetsPickListResultsItemText";
- item.setAttribute("csdisabled","false");
- item.setAttribute("picked","true");
- item.childNodes[0].title = strPickedCat;
- csData.removeExclusion(item.getAttribute("ppdsId"));
- csData.addPickListCategory(ppdsId);
- }
- }
- function createNodePath(node,str) {
- var str2;
- str2 = node.lastChild.innerHTML;
- if (str != null)
- str2 += "/" + str;
- if (dimCache.getDimTopNode(csData.getDimension()).getCode() != node.getAttribute("code")) {
- str2 = createNodePath(node.parentNode.previousSibling,str2);
- }
- return str2;
- }
- function moveSelectedOptions() {
- if (pickTree.numTreeItemsSelected()) {
- if (!pickTree.selectionInSameHierarchy())
- return;
- //Check if we have a node selected to insert over.
- var selectedItem = getFirstSelectedItem();
-
- for (var i = 0; i < pickTree.numTreeItemsSelected(); i++) {
- moveOption(pickTree.getTreeSelectedItem(i).parentNode,selectedItem);
- }
- refreshPicklistEnabling(pickTree.getTreeSelectedItem(0).parentNode);
- } else {
- reEnableSelectedItems();
- }
- }
- function getIconSrc(isCalculated, leaf, searchRes, disabled) {
- if (!searchRes) {
- if (isCalculated)
- return images[IMAGE_CALCULATED_FILE].src;
- else if (leaf)
- return images[IMAGE_FILE].src;
- else
- return images[IMAGE_FOLDER].src;
- } else {
- if (!disabled) {
- if (isCalculated)
- return images[IMAGE_SEARCH_CALCULATED_FILE].src;
- else if (leaf)
- return images[IMAGE_SEARCH_FILE].src;
- else
- return images[IMAGE_SEARCH_FOLDER].src;
- } else {
- if (isCalculated)
- return images[IMAGE_SEARCH_CALCULATED_FILE_DISABLED].src;
- else if (leaf)
- return images[IMAGE_SEARCH_FILE_DISABLED].src;
- else
- return images[IMAGE_SEARCH_FOLDER_DISABLED].src;
- }
- }
- }
- function createPickListItem(text, ppdsId, code, isCalculated, isLeaf, isPicked, isSearchRes, isDisabled, fullPath) {
- var div = document.createElement("DIV");
- div.className = "CustomSubsetsPickListResultsItem";
- div.setAttribute("ppdsId",ppdsId);
- div.setAttribute("code", code);
- if (isSearchRes)
- div.setAttribute("searchres","true");
- else
- div.setAttribute("searchres","false");
-
- if (isPicked)
- div.setAttribute("picked","true");
- else
- div.setAttribute("picked","false");
- if (isDisabled)
- div.setAttribute("csdisabled","true");
- else
- div.setAttribute("csdisabled","false");
- insertIMGNode(div, getIconSrc(isCalculated, isLeaf, !isPicked, isDisabled), "CustomSubsetsPickListResultsIcon", [
- new attrib("title",(isPicked)? strPickedCat : strRuleResuts),
- new attrib("isCalculated",(isCalculated)? "true" : "false"),
- new attrib("isLeaf",(isLeaf)? "true" : "false")
- ]);
- var link = document.createElement("A");
- if (isDisabled)
- link.className = "customSubsetsPickListResultsItemTextStrikeout";
- else
- link.className = "CustomSubsetsPickListResultsItemText";
- link.href = "#";
- link.appendChild(document.createTextNode(text));
- link.title = fullPath;
- div.appendChild(link);
- div.onclick = selectPLResult;
- return div;
- }
- function handlePicklistTreeDblClick(event) {
- var eventM = new eventManager(event);
- eventM.cancelBubble();
- var src = eventM.getSrc();
- while (src.tagName != "DIV" && src.tagName != "div")
- src = src.parentNode;
- if (src.getAttribute("type") != "cm" || src.getAttribute("selectable") == "false" || src.getAttribute("tndisabled") == "true")
- return;
- moveOption(src);
- refreshPicklistEnabling(src);
- }
- function selectPLResult(event) {
- var eventM = new eventManager(event);
- var sourceObj = eventM.getSrc();
- if (sourceObj.tagName != "DIV")
- sourceObj = sourceObj.parentNode;
- if (sourceObj.getAttribute("selected") == "true" &&
- ((topparent.getGlobal("MacGecko") && eventM.theEvent.altKey) ||
- (!topparent.getGlobal("MacGecko") && eventM.theEvent.ctrlKey))) {
- deSelectPL(sourceObj);
- } else {
- if ((topparent.getGlobal("MacGecko"))? !eventM.theEvent.altKey : !eventM.theEvent.ctrlKey)
- deselectAllPLResults();
- selectPL(sourceObj);
- }
- eventM.cancelBubble();
- }
- function selectPL(item) {
- item.setAttribute("selected","true");
- item.className = "CustomSubsetsPickListResultsItemSelected";
- if (item.getAttribute("csdisabled") == "true")
- item.childNodes[1].className = "customSubsetsPickListResultsItemTextStrikeout";
- else
- item.childNodes[1].className = "customSubsetsPickListResultsItemTextSelected";
- }
- function deSelectPL(item) {
- item.setAttribute("selected","false");
- item.className = "CustomSubsetsPickListResultsItem";
- if (item.getAttribute("csdisabled") == "true")
- item.childNodes[1].className = "customSubsetsPickListResultsItemTextStrikeout";
- else
- item.childNodes[1].className = "customSubsetsPickListResultsItemText";
- }
- function selectAllPLResults() {
- var item = document.getElementById("picklistResultsDiv").firstChild;
- while (item != null) {
- selectPL(item);
- item = item.nextSibling;
- }
- }
- function deselectAllPLResults() {
- var item = document.getElementById("picklistResultsDiv").firstChild;
- while (item != null) {
- deSelectPL(item);
- item = item.nextSibling;
- }
- }
- function removeSelectedItems() {
- var container = document.getElementById("picklistResultsDiv");
- var item = container.firstChild;
- var nextItem;
- while (item != null) {
- nextItem = item.nextSibling;
- if (item.getAttribute("selected") == "true") {
- if (item.getAttribute("searchres") == "true") {
- item.setAttribute("csdisabled","true");
- item.firstChild.src = getIconSrc(item.firstChild.getAttribute("isCalculated") == "true", item.firstChild.getAttribute("isLeaf") == "true", true, true);
- item.childNodes[1].className = "customSubsetsPickListResultsItemTextStrikeout";
- item.childNodes[0].title = strRuleResuts;
- csData.addExclusion(item.getAttribute("ppdsId"));
- } else {
- container.removeChild(item);
- }
- csData.removePicklistCategory(item.getAttribute("ppdsId"));
- }
- item = nextItem;
- }
- refreshPicklistEnabling(null);
- }
- function reEnableSelectedItems() {
- var container = document.getElementById("picklistResultsDiv");
- var item = container.firstChild;
- while (item != null) {
- if (item.getAttribute("selected") == "true" && item.getAttribute("csdisabled") == "true") {
- item.setAttribute("csdisabled","false");
- item.firstChild.src = getIconSrc(item.firstChild.getAttribute("isCalculated") == "true", item.firstChild.getAttribute("isLeaf") == "true", true, false);
- item.childNodes[1].className = "customSubsetsPickListResultsItemTextSelected";
- csData.removeExclusion(item.getAttribute("ppdsId"));
- }
- item = item.nextSibling;
- }
- }
- function getFirstSelectedItem() {
- var container = document.getElementById("picklistResultsDiv");
- var item = container.firstChild;
- while (item != null) {
- if (item.getAttribute("selected") == "true" && item.getAttribute("searchres") != "true")
- return item;
- item = item.nextSibling;
- }
- return null;
- }
- function refreshPicklistEnabling(node) {
- var container = document.getElementById("picklistResultsDiv");
- if (!resultsEmpty && !container.childNodes.length) { //previously not empty, now empty
- hierRootPath = new Array();
- pickTree.enableAllTreeNodes();
- resultsEmpty = true;
- } else if (resultsEmpty && container.childNodes.length) { //Previously empty, now not empty
- if (!hierRootPath.length) {
- if (node == null && !hierRootPath.length) { //Set to the root of tree
- hierRootPath = new Array();
- hierRootPath[0] = document.getElementById("sourceTreeDiv").firstChild.getAttribute("code");
- } else
- hierRootPath = pickTree.getHierarchyRootsPath(node);
- }
- pickTree.setEnabledRootNode(hierRootPath);
- resultsEmpty = false;
- }
- }
- function initOptions(options, toBox) {
- for (var i = 0;i < options.length; i++) {
- toBox.options[i] = options[i];
- }
- }
- function doPickListBack() {
- if (csData.getType() == 1)
- goto_page("N");
- else if (csData.getType() == 2)
- goto_page("M");
- else
- goto_page("I");
- }
- function validate_pickList() {
- if (!numberOfPickedItems() && csData.getType() == 3) {
- displayCustomsubsetsMsg(strErrorNoCats);
- return false;
- }
- return true;
- }
- function numberOfPickedItems() {
- var ctr = 0;
- for (var i = 0; i < document.getElementById("picklistResultsDiv").childNodes.length; i++)
- if (document.getElementById("picklistResultsDiv").childNodes[i].getAttribute("csdisabled") != "true")
- ctr++;
- return ctr;
- }
- function handlearrowbuttondown(button) {
- button.className = "customSubsetsArrowButtonPressed";
- }
- function handlearrowbuttonup(button) {
- button.className = "customSubsetsArrowButtonRollover";
- }
- function handlearrowbuttonrollover(button) {
- button.className = "customSubsetsArrowButtonRollover";
- }
- function handlearrowbuttonrollout(button) {
- button.className = "customSubsetsArrowButton";
- }
- //*********************************
- // Measures Definition
- //*********************************
- function init_measure_def() {
- measureCatTypeDiv = document.getElementById("measureCategoriesTypeDiv");
- measureCatRangeSection = document.getElementById("measureCategoriesRange");
- measureCatNumberSection = document.getElementById("measureCategoriesNumber");
- measureCatTypeDiv.removeChild(measureCatRangeSection);
- measureCatTypeDiv.removeChild(measureCatNumberSection);
- measureTree = new dimTree(document.getElementById("measureTreeDiv"));
- measureTree.setTreeWideSelect(true);
- measureTree.setTreeMustSelect(true);
- measureTree.setMeasurePlaceholdersGrayText(true);
- measureTree.initDimTree(topparent.getGlobal("gDimensionInfo").length - 1,false);
- scopeTree = new dimTree(document.getElementById("MeasureScopeTreeDiv"));
- scopeTree.setTreeSelectionType(TREE_SELECTION_CHILDREN);
- scopeTree.setTreeMustSelect(true);
- scopeTree.setTreeWideSelect(true);
- scopeTree.setLeavesSelectable(false);
- scopeTree.setTreeShowCustomSubsets(false);
- scopeTree.initDimTree(csData.getDimension(),true);
- scopeTree.selectRoot();
- initScopeTreeComboBox();
- //On a separate thread to ensure that the browser refreshes its content before this is called.
- setTimeout("init_dimbar();",1);
- if (csData.isEditing())
- disableButton(document.getElementById("button-Back"));
- var searchRule = csData.getSearchRule();
- if (searchRule != null) {
- document.getElementById("csMeasureType").selectedIndex = searchRule.type;
- csMeasureTypeChanged();
- if (searchRule.type == CS_RULE_RANGE) {
- if (!searchRule.rule.isMin) {
- document.getElementById("csMinimum").value = CNumUtil.localizeDecimal(searchRule.rule.from);
- document.getElementById("csMinSelectCus").checked = true;
- }
- if (!searchRule.rule.isMax) {
- document.getElementById("csMaximum").value = CNumUtil.localizeDecimal(searchRule.rule.to);
- document.getElementById("csMaxSelectCus").checked = true;
- }
- } else if (searchRule.type == CS_RULE_COUNT) {
- if (searchRule.rule.end == CS_END_TOP)
- document.getElementById("csTop").checked = true;
- else
- document.getElementById("csBottom").checked = true;
- document.getElementById("csTopBottomNumber").value = searchRule.rule.number;
- }
- measureTree.setTreeToCat(topparent.getGlobal("gDimensionInfo").length - 1,searchRule.measureCode);
- scopeTree.setTreeToCat(csData.getDimension(),searchRule.ancestorCode);
- scopeTreeComboBox.setSelectedItem(searchRule.incDesc);
- handleSearchLimitChange();
- } else {
- csMeasureTypeChanged();
- document.getElementById("csMinimum").value = "";
- document.getElementById("csMaximum").value = "";
- //Get the current measure from the crosstab cell
- var frame = topparent.getChartFrame();
- if (!frame)
- frame = topparent.getXtabFrame();
- var measureCode = frame.document.getElementById("dimbar-content").childNodes[topparent.getGlobal("gDimensionInfo").length - 1].firstChild.getAttribute("code");
- if (dimCache.getDimTopNode(topparent.getGlobal("gDimensionInfo").length - 1).getCode() != measureCode) {
- measureTree.setTreeToCat(topparent.getGlobal("gDimensionInfo").length - 1, measureCode);
- } else {
- //No measure selected, select the default measure.
- if (defaultMeasureCode == "")
- measureTree.selectFirstChildOfRoot();
- else
- measureTree.setTreeToCat(topparent.getGlobal("gDimensionInfo").length - 1,defaultMeasureCode);
- }
- }
- }
- function setMeasureDefinitionData() {
- var measure = measureTree.getTreeSelectedItem(0).parentNode.getAttribute("ppdsId");
- var measureCode = measureTree.getTreeSelectedItem(0).parentNode.getAttribute("code");
- var searchCode = scopeTree.getTreeSelectedItem(0).parentNode.getAttribute("code");
- var searchId = scopeTree.getTreeSelectedItem(0).parentNode.getAttribute("ppdsId");
- csData.setSearchRule(measure,measureCode,scopeTreeComboBox.getSelectedItem(), searchCode,searchId);
-
- if (document.getElementById("csMeasureType").selectedIndex == MEASURE_TYPE_RANGE) {
- csData.getSearchRule().type = CS_RULE_RANGE;
- var from = 0;
- var isMin = 1;
- if (document.getElementById("csMinSelectCus").checked && isNumber(document.getElementById("csMinimum"))) {
- from = getNumFromField(document.getElementById("csMinimum").value);
- isMin = 0;
- }
- var to = 0;
- var isMax = 1;
- if (document.getElementById("csMaxSelectCus").checked && isNumber(document.getElementById("csMaximum"))) {
- to = getNumFromField(document.getElementById("csMaximum").value);
- isMax = 0;
- }
- csData.setSearchRuleRange(from, to, isMin, isMax);
- } else if (document.getElementById("csMeasureType").selectedIndex == MEASURE_TYPE_NUMBER) {
- csData.getSearchRule().type = CS_RULE_COUNT;
- var end = (document.getElementById("csTop").checked)? CS_END_TOP : CS_END_BOTTOM ;
- var number = 0;
- if (isNumber(document.getElementById("csTopBottomNumber"), true))
- number = getNumFromField(document.getElementById("csTopBottomNumber").value);
- csData.setSearchRuleCount( end, number );
- }
- hierRootPath = scopeTree.getHierarchyRootsPath(scopeTree.getTreeSelectedItem(0).parentNode);
- getFiltersFromDimBar(document.getElementById("dimbar-content"));
- }
- function getFiltersFromDimBar(dimBar) {
- var dimItem = dimBar.firstChild.firstChild;
- while (dimItem && dimItem.tagName == "TABLE") {
- csData.addSearchRuleFilter(parseInt(dimItem.getAttribute("ppds_id")));
- if (!hasNextSibling(dimItem)) break;
- dimItem = dimItem.parentNode.nextSibling.firstChild;
- }
- }
- function csMinimumChange() {
- document.getElementById("csMinSelectCus").checked = true;
- }
- function csMaximumChange() {
- document.getElementById("csMaxSelectCus").checked = true;
- }
- function clearCSMinimum() {
- document.getElementById("csMinimum").value = "";
- }
- function clearCSMaximum() {
- document.getElementById("csMaximum").value = "";
- }
- function handleSearchLimitChange() {
- switch (scopeTreeComboBox.getSelectedItem()) {
- case 0: scopeTree.setTreeSelectionType(TREE_SELECTION_CHILDREN); break;
- case 1: scopeTree.setTreeSelectionType(TREE_SELECTION_ALL_DESCENDANTS); break;
- case 2: scopeTree.setTreeSelectionType(TREE_SELECTION_DESCENDENT_LEAVES); break;
- case 3: scopeTree.setTreeSelectionType(TREE_SELECTION_DESCENDENT_NON_LEAVES); break;
- }
- }
- function validate_measure() {
- if (document.getElementById("csMeasureType").selectedIndex == MEASURE_TYPE_RANGE) {
- convertPercentages(document.getElementById("csMinimum"));
- convertPercentages(document.getElementById("csMaximum"));
- var from = document.getElementById("csMinimum").value;
- var to = document.getElementById("csMaximum").value;
- if (!document.getElementById("csMinSelectDef").checked && !isNumber(document.getElementById("csMinimum"))) {
- displayCustomsubsetsMsg(strErrorInvalidFrom);
- return false;
- }
- if (!document.getElementById("csMaxSelectDef").checked && !isNumber(document.getElementById("csMaximum"))) {
- displayCustomsubsetsMsg(strErrorInvalidTo);
- return false;
- }
- if (!document.getElementById("csMinSelectDef").checked && !document.getElementById("csMaxSelectDef").checked && !(getNumFromField(from) <= getNumFromField(to))) {
- displayCustomsubsetsMsg(strErrorInvalidRange);
- return false;
- }
- } else if (document.getElementById("csMeasureType").selectedIndex == MEASURE_TYPE_NUMBER) {
- var numberField = document.getElementById("csTopBottomNumber");
- if (!isNumber(numberField, true) || getNumFromField(numberField.value) <= 0) {
- displayCustomsubsetsMsg(strErrorInvalidNumCats);
- return false;
- }
- if (getNumFromField(numberField.value) > maxNoCats) {
- displayCustomsubsetsMsg(strErrorTooManyCats);
- return false;
- }
- }
- return true;
- }
- function getNumFromField(value) {
- return parseFloat(CNumUtil.normalizeDecimal(value));
- }
- function convertPercentages(field) {
- var value = field.value;
- if (value.charAt(value.length - 1) == "%") {
- field.value = value.substring(0,value.length - 1);
- if (isNumber(field))
- field.value = getNumFromField(value)/100;
- else
- field.value += "%";
- }
- }
- function isNumber(elem, excludeDecimal) {
- if (!elem.value.length)
- return false;
- var validChars;
- if (excludeDecimal)
- validChars = "/[^0-9\-]/";
- else
- validChars = "/[^0-9" + decimalpt + "\-]/";
- return CNumUtil.validateNumField(elem, true, validChars);
- }
- function makeScopeTreeOptions(event) {
- scopeTreeComboBox.displayDropDown();
- }
- function clearScopeTreeOptionsDropDown() {
- scopeTreeComboBox.hideDropDown();
- }
- function csMeasureTypeChanged() {
- while (measureCatTypeDiv.childNodes.length)
- measureCatTypeDiv.removeChild(measureCatTypeDiv.firstChild);
- switch(document.getElementById("csMeasureType").selectedIndex) {
- case MEASURE_TYPE_RANGE:
- measureCatTypeDiv.appendChild(measureCatRangeSection);
- break;
- case MEASURE_TYPE_NUMBER:
- measureCatTypeDiv.appendChild(measureCatNumberSection);
- break;
- }
- }
- //******************************
- // Rename Dialog
- //******************************
- function init_rename() {
- document.getElementById("subsetName").value = csData.getName();
- }
|