123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: cogadmin
- //
- // (C) Copyright IBM Corp. 2005, 2014
- //
- // 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 (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- //----------------------------------------------------------
- com.cognos.admin.ObjectFactory("com.cognos.admin.util.Tools");
- com.cognos.admin.util.Tools.VERSION = "0.1.0";
- dojo.require("dojox.json.ref");
- com.cognos.admin.util.Tools.revertDsp = function (elt,dsp){
- if (typeof elt == "string")
- elt = xGetElementById(elt);
-
- if (dsp == true) {
- xDisplay(elt,"");
-
- } else if (dsp == false) {
- xDisplay(elt,"none");
-
- } else {
- if (elt.style.display == "none") {
- dsp = true;
- xDisplay(elt,"");
-
- } else {
- dsp = false;
- xDisplay(elt,"none");
- }
- }
-
- return dsp;
- };
- //TODO:
- com.cognos.admin.util.Tools.ToggleButton = function (elt){
- this.elt = elt;
- };
- //TODO:
- com.cognos.admin.util.Tools.ToggleButton.prototype = {
- getCurrentState : function (){
- return this.elt.getAttribute("state");
- },
-
- click : function (){
- if (this.elt.src){
- var currentState = this.getCurrentState();
- var stateModel = com.cognos.admin.util.Tools.cogEval(this.elt);
- var newState = stateModel.states[currentState].next;
-
- this.elt.src = stateModel.states[newState].image;
- this.elt.setAttribute("state", newState);
- }
- }
- };
- /*
- * @param exclude, ='true' will remove the prefix fragId + "_"
- * from the Id, if any; otherwise will add a fragId + "_" as prefix of the ID.
- *
- */
- com.cognos.admin.util.Tools.getNormalizedId = function (Id,fragId,exclude){
- var retId = Id;
-
- if (exclude){
- retId = Id.substring(fragId.length+1,Id.length);
- } else {
- retId = fragId + "_" + Id;
- }
-
- return retId;
- };
- com.cognos.admin.util.Tools.getFlag = function (id){
- var flags = id.toString().split("_");
- return flags[flags.length-1];
- }
- com.cognos.admin.util.Tools.getPartner = function (elt,postfix,postfixP){
- var reg = new RegExp ("_"+postfix+"$","i");
- var regP = new RegExp ("_"+postfixP+"$","i");
- var id="";
- if (reg.test(elt.id)){
- id = elt.id.replace(reg,"_"+postfixP);
- } else if (regP.test(elt.id)){
- id = elt.id.replace(regP,"_"+postfix);
- }
-
- return $(id);
- }
- com.cognos.admin.util.Tools.Masker = function (elt,hint,frag){
- if (!$(elt)) throw new Error("Masker cannot apply on an empty element.");
-
- this.maskID = $(elt).id + "_masker";
- this.backingID = $(elt).id + "masker_backing";
- this.elt = elt;
- var backing = $(this.backingID);
- if (backing == null) {
- backing = document.createElement("iframe");
- backing.id = this.backingID;
- backing.style.display = "none";
- backing.style.position ="absolute";
- backing.style.backgroundColor ="#dddddd";
- xOpacity (backing,0);
- backing.src = _F_Config.webContent + "/fragments/common/images/space.gif";
- document.body.appendChild(backing);
- }
- var mask = $(this.maskID);
- if (mask == null) {
- mask = document.createElement("DIV");
- mask.id = this.maskID;
- mask.style.display= "none";
- mask.style.position = "absolute";
- mask.style.backgroundColor = "#dddddd";
- mask.setAttribute("title",hint);
- document.body.appendChild(mask);
- }
-
- this.adjust();
-
- if (frag){
- evtHandler = _F_Document.associate(frag,this,"adjust");
- frag.onresize = evtHandler;
- } else {
- evtHandler = _F_Document.associate(window,this,"adjust");
- _F_Document.addEventListener(window, "resize", evtHandler, true);
- }
- }
- com.cognos.admin.util.Tools.Masker.OPACITY = 0.2;
- com.cognos.admin.util.Tools.Masker.prototype = {
- adjustEx : function (source,target) {
- xLeft(source,xPageX(target));
- xTop(source,xPageY(target));
- xResizeTo(source, xWidth(target), xHeight(target));
- },
-
- adjust : function (){
- this.adjustEx ($(this.maskID),this.elt);
- this.adjustEx ($(this.backingID),this.elt);
- },
-
- show : function (showing){
- if (showing){
- xOpacity($(this.maskID),com.cognos.admin.util.Tools.Masker.OPACITY);
- $(this.maskID).style.display = "";
- $(this.backingID).style.display = "";
- } else {
- $(this.maskID).style.display = "none";
- $(this.backingID).style.display = "none";
- }
- },
-
- destroy : function (){
- $(this.backingID).parentNode.removeChild($(this.backingID));
- $(this.backingID) = null;
- $(this.maskID).parentNode.removeChild($(this.maskID));
- $(this.maskID) = null;
- }
- };
- com.cognos.admin.util.Tools.setBusyCursor = function (tag,isBusy){
- tag.style.cursor = isBusy ? 'wait' : 'default';
- document.body.style.cursor = isBusy ? 'wait' : 'default';
- }
- com.cognos.admin.util.Tools.ThreeCheckbox = function (elt,fragId,toggler){
-
- this.tools = com.cognos.admin.util.Tools;
- this.elt = elt;
- this.onclickEvt = [];
- this.fragId = fragId;
- this.flag = this.tools.getFlag(elt.id);
- this.allToggler = $(com.cognos.admin.util.Tools.getNormalizedId("toggle_all_" + this.flag,this.fragId));
- this.allTogglerPartner = this.tools.getPartner(this.allToggler,com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y,com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N);
- this.toggler = toggler;
- this.isToggled = false;
- this.isToggleAll = (this.allToggler === this.toggler);
- };
- com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED = "true";
- com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED = "false";
- com.cognos.admin.util.Tools.ThreeCheckbox.MIXED = "mixed";
- com.cognos.admin.util.Tools.ThreeCheckbox.DISABLED = "disabled";
- com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y = "y";
- com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N = "n";
- com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_M = "m";
- com.cognos.admin.util.Tools.ThreeCheckbox.prototype = {
- getCurrentState : function (){
- if (this.elt.src.search(/checkbox_checked.gif/i) != -1)
- return com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED;
- else if (this.elt.src.search(/checkbox_unchecked.gif/i) != -1)
- return com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED;
- else if (this.elt.src.search(/checkbox_mixed.gif/i) != -1)
- return com.cognos.admin.util.Tools.ThreeCheckbox.MIXED;
- else if (this.elt.src.search(/checkbox_disabled.gif/i) != -1)
- return com.cognos.admin.util.Tools.ThreeCheckbox.DISABLED;
- else
- return "";
- },
-
- setIsToggled : function (isToggled){
- this.isToggled = isToggled || false;
- },
-
- onclickReg : function (handler) {
- if (typeof handler == "function"){
- this.onclickEvt.push(handler);
- }
- },
-
- getCurrentStatus : function () {
- return this.getCurrentState() != com.cognos.admin.util.Tools.ThreeCheckbox.DISABLED;
- },
-
- onclick : function (){
- var ret = true;
- this.onclickEvt.push(this.getCurrentStatus);
- for (var i = this.onclickEvt.length-1; i >= 0 ; i--){
- ret = ret && this.onclickEvt[i].apply(this);
- if (!ret) break;
- }
-
- return ret;
- },
-
- click : function (){
- if (this.onclick() && this.elt.src){
- if (this.isToggled){
- var state;
- if (this.isToggleAll) {
- state = this.toggler.checked ? com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED : com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED;
- } else {
- state = this.toggler.getAttribute("state");
- }
- this.setState(state);
- } else {
- if (this.getCurrentState() == com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED){
- this.setState(com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED);
- } else {
- this.setState(com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED);
- }
- }
-
- //Three stage checkbox generic toggle rule #1 deselect partner when the current one is checked.
- if (this.getCurrentState() == com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED){
- this.deselectElt("",true);
- }
-
- //Three stage checkbox generic toggle rule #2 deselect "n" toggler when current "n" is unchecked.
- if (!this.isToggleAll && !this.isToggled && (!(this.flag == com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N && this.getCurrentState() == com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED))){
- this.deselectElt(this.toggler,(this.flag == com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y));
- }
- }
- },
-
- deselectElt : function (elt,isPartner){
- var elt = elt || this.elt;
- if (isPartner){
- elt = this.tools.getPartner(elt,com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_Y,com.cognos.admin.util.Tools.ThreeCheckbox.FLAG_N);
- }
- if (elt){
- this.setState(com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED,elt);
- }
- },
-
- disableAllTogglerState : function (disabled){
- if (this.allToggler){
- if (disabled){
- this.deselectAllTogglerState();
- }
- this.allToggler.disabled = disabled;
- this.allTogglerPartner.disabled = disabled;
- }
- },
-
- deselectAllTogglerState : function (){
- if (this.allToggler){
- this.allToggler.checked = false;
- this.allTogglerPartner.checked = false;
- }
- },
-
- setState : function (state,elt){
- var elt = elt || this.elt;
- elt.setAttribute("state",state);
- dojo.attr(elt,"class","");
- dojo.attr(elt,"tabindex","0");
- this.disableAllTogglerState(false);
-
- //deselect the toggle all buttons regardingless (except the toggle all event)
- if (!this.isToggleAll){
- this.deselectAllTogglerState();
- }
-
- elt.disabled = false;
- elt.setAttribute("aria-disabled","false");
-
- switch (state) {
- case com.cognos.admin.util.Tools.ThreeCheckbox.CHECKED:
- elt.src = elt.src.replace(/checkbox_(.)*.gif/i,"checkbox_checked.gif");
- elt.setAttribute("aria-checked","true");
- break;
-
- case com.cognos.admin.util.Tools.ThreeCheckbox.MIXED:
- elt.setAttribute("aria-checked","mixed");
- elt.src = elt.src.replace(/checkbox_(.)*.gif/i,"checkbox_mixed.gif");
- break;
-
- case com.cognos.admin.util.Tools.ThreeCheckbox.DISABLED:
- elt.src = elt.src.replace(/checkbox_(.)*.gif/i,"checkbox_disabled.gif");
- dojo.attr(elt,"class","hiddenEntryIcon");
- dojo.attr(elt,"tabindex","-1");
- elt.disabled = true;
- elt.setAttribute("aria-disabled","true");
- elt.setAttribute("aria-checked","undefined");
- this.disableAllTogglerState(true);
- break;
-
- case com.cognos.admin.util.Tools.ThreeCheckbox.UNCHECKED:
- elt.setAttribute("aria-checked","false");
-
- default:
- elt.src = elt.src.replace(/checkbox_(.)*.gif/i,"checkbox_unchecked.gif");
- elt.setAttribute("aria-checked","false");
- }
-
- }
- };
- com.cognos.admin.util.Tools.revertImg = function (elt,dsp){
- if (elt.src) {
- if (dsp == true) {
- elt.src = elt.src.replace(/expand.gif/i,"collapse.gif");
- }
- else if (dsp == false) elt.src = elt.src.replace(/collapse.gif/i,"expand.gif");
- else {
- if (elt.src.search(/collapse.gif/i) != -1){
- elt.src = elt.src.replace(/collapse.gif/i,"expand.gif");
- dsp = false;
- } else if (elt.src.search(/expand.gif/i) != -1){
- elt.src = elt.src.replace(/expand.gif/i,"collapse.gif");
- dsp = true;
- } else {
- throw new Error ("the element is not a toggle image.");
- }
-
- }
- return dsp;
- }
- };
- com.cognos.admin.util.Tools.getLevelById = function (pre,id) {
- var retLevel = 0;
-
- if (id && _F_Array.indexOf(id,pre) == 0) {
- //following the naming convention, id ******_row_1
- retLevel = id.substring(pre.length,id.length).split("_").length - 2;
- }
-
- return retLevel;
- };
- //TODO: optimized the match process to meet the high performence require for toggle all event.
- com.cognos.admin.util.Tools.GetElementsById = function (exp,scope,isReg,excludedIds) {
- this.scope = scope || document.body;
- this.isReg = isReg;
- this.excludedIds = excludedIds || [];
- this.selectedElements = [];
- this.flag = false;
- this.n = 0;
-
- if (exp instanceof Array)
- this.exp = exp.join("|");
- else
- this.exp = exp;
-
- if (this.isReg){
- this.isMatch = function (targetId){
- var rExp = new RegExp (this.exp);
- if (rExp.test(targetId))
- return true;
- else
- return false;
- };
- } else {
- this.isMatch = function (targetId){
- return (_F_Array.indexOf(targetId,this.exp) != -1) ? true : false;
- };
- };
- };
-
- com.cognos.admin.util.Tools.GetElementsById.prototype = {
- reset : function () {
- this.selectedElements = []
- },
-
- getElt : function (rElt){
- if (!this.exp){
- return [];
- }
-
- var rootElt = rElt || this.scope;
-
- if (rootElt.id && (_F_Array.indexOf(this.excludedIds,rootElt.id) == -1) && this.isMatch(rootElt.id)) {
- this.selectedElements.push(rootElt);
- }
-
- var children = rootElt.childNodes;
- for (var i = 0; i < children.length; i++){
-
- if (children[i].nodeType != 1 )
- continue;
-
- this.getElt(children[i]);
- }
- },
-
- getSiblingElt : function (rElt){
-
- if (!this.exp)
- return [];
-
- var rootElt = rElt || this.scope;
-
- for (var c = rootElt.firstChild; c!=null; c=c.nextSibling){
- if (c.nodeType != 1 ){
- continue;
-
- } else if (c.id && (_F_Array.indexOf(this.excludedIds,c.id) == -1) && this.isMatch(c.id)) {
- this.selectedElements.push(c);
- this.flag = true;
-
- } else if (this.flag) {
- return this.selectedElements;
-
- } else {
- this.getSiblingElt(c);
- }
- }
- }
- };
- /* Recipe manager
- *
- */
- com.cognos.admin.util.Tools.Recipe = function () {
- this.recipe = [];
- };
- com.cognos.admin.util.Tools.Recipe.prototype = {
- add : function (cogType,fnName,evt,cap){
- var cap = cap || false;
- var evt = evt.toLowerCase();
- this.recipe.push ({cogType:cogType,fnName:fnName,evt:evt,cap:cap});
- },
-
- getAll : function (){ return this.recipe;},
-
- init : function () { this.recipe = [];},
-
- /**
- * helper to add mouseover/out recipe
- */
- enableAction : function (cogType){
- if (cogType){
- this.add (cogType,"mouseOverLink","init");
- this.add (cogType,"mouseOverElt","mouseover");
- this.add (cogType,"mouseOutElt","mouseout");
- this.add (cogType,"mouseClickElt","click");
- this.add (cogType,"mouseDownElt","mousedown");
- this.add (cogType,"mouseUpElt","mouseup");
- this.add (cogType,"doAction","click");
- this.add (cogType,"doAction","keypress");
- }
- }
- };
- com.cognos.admin.util.Tools.uniqueID = (function() {
- var id = 0;
- return function() { return id++; };
- })();
- //wrapper function around dojox.json.ref
- com.cognos.admin.util.Tools.JSON = function () {
- return {
- stringify : function (value){
- return dojox.json.ref.toJson(value);
- },
- parse : function(value){
- if (/^[\],:{}\s]*$/.test(value.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
- return eval('(' + value + ')');
- }
- throw new SyntaxError('com.cognos.admin.util.Tools.JSON.parse');
- }
- };
- }();
- /**
- * Parse the XML document contained in the string argument and return
- * a Document object that represents it.
- */
- com.cognos.admin.util.Tools.XMLParse = function(text) {
- if (typeof DOMParser != "undefined") {
- // Mozilla, Firefox, and related browsers
- return (new DOMParser( )).parseFromString(text, "application/xml");
- }
- else if (typeof ActiveXObject != "undefined") {
- var doc = new ActiveXObject("MSXML2.DOMDocument"); // Create an empty document
- doc.loadXML(text); // Parse text into it
- return doc; // Return it
- }
- };
- /**
- * Parse the function name (e.g. "a.b.c") to a real function
- *
- */
- com.cognos.admin.util.Tools.fnParse = function(fnName,args) {
- if (typeof fnName != "string") return null;
-
- var obj = window;
- var arrFn = fnName.toString().split(".");
-
- for (var i=0; i<arrFn.length-1; i++){
- obj = obj[arrFn[i]];
- }
-
- return obj[arrFn[arrFn.length-1]].apply(obj,args);
- };
- /*
- * JavaScript eval wrapper
- *
- */
- //TODO: add a prefix and/or suffix to the JSON considering the security issue, when the server side code is ready.
- com.cognos.admin.util.Tools.cogEval = function (target){
- var strJSON = "";
-
- //for cogAdmin specific attribute
- if (typeof target == "object" && target.getAttribute("cogParam"))
- strJSON = target.getAttribute("cogParam");
-
- //for JSON object
- else if (typeof target == "string" && target.search(/^\s*{/) != -1)
- strJSON = target;
-
- //for XML generated by Fragment
- else if (typeof target == "string" && target.search(/<fragment>/i) != -1){
- var oXml = com.cognos.admin.util.Tools.XMLParse(target);
- var oMarkup;
- if (oXml){
- oMarkup = oXml.getElementsByTagName("markupString")[0];
- if (!oMarkup){
- oMarkup = oXml.getElementsByTagName("markupXml")[0];
- if (!oMarkup){
- oMarkup = oXml.getElementsByTagName("error")[0];
- }
- }
-
- if (oMarkup){
- var json = oMarkup.getElementsByTagName("json")[0];
- if (json) {
- strJSON = json.firstChild.nodeValue;
- }
- }
- }
- }
-
- if (com.cognos.admin.config.debug){
- _F_log ("D","JSON from cogParam:");
- _F_log ("D",strJSON);
- }
-
- if (strJSON) {
- try {
- return com.cognos.admin.util.Tools.JSON.parse(strJSON);
- } catch (ex) {
- _F_log("E",ex.message);
- return null;
- }
- } else {
- return oMarkup;
- }
-
- };
- com.cognos.admin.util.Tools.parseContent = function (objJSON,containerId,state){
- var retHTML = "";
- if (!$(containerId)){
- var contentId = "cogadmin_newcreated_content_"+com.cognos.admin.util.Tools.uniqueID();
- container = document.createElement("div");
- container.id = contentId;
- container.style.display = "none";
- containerId = container.id;
- document.body.appendChild(container);
- }
-
- switch (objJSON.type) {
- case "JSON":
- retHTML += "<table style=\"font-size:8pt\">";
- if (objJSON.content){
- for (var i = 0; i < objJSON.content.length; i++){
- var textHTML = "<tr><td style=\"white-space: nowrap; vertical-align:middle; padding-right: 10px;\"> <img src=\"" + com.cognos.admin.WEBCONTENT + objJSON.content[i].image + "\" border=\"0\" alt=\""+objJSON.content[i].text+"\"/> "+objJSON.content[i].text+"</td></tr>";
- if (!objJSON.content[i].caption || (i>0 && objJSON.content[i].caption == objJSON.content[i-1].caption)){
- retHTML += textHTML;
- } else {
- retHTML += "<tr><td style=\"white-space: nowrap;\" class=\"popup-tooltip-label\">" + objJSON.content[i].caption + "</td></tr>";
- retHTML += textHTML;
- }
- }
- }
- retHTML += "</table>";
- $(containerId).innerHTML = retHTML;
- break;
-
- case "fragment":
- if (objJSON.url){
- var fragId = "cogadmin_newcreated_fragment_"+com.cognos.admin.util.Tools.uniqueID();
- var dFragment = new fragment(objJSON.url,fragId,containerId);
- dFragment.retrieve((objJSON.param ? encodeURI(objJSON.param) +"&" : '')+state.getStateURL());
- retHTML = $(containerId).innerHTML;
- } else {
- var fragId = objJSON.targetFragID;
- retHTML = $(fragId+"cog_controlled_div").innerHTML;
- $(containerId).innerHTML = retHTML;
- }
- break;
-
- case "xts":
- var iframe = xCreateElement("iframe");
- iframe.src = sGateway + '?b_action=xts.run&m=' + objJSON.src;
- iframe.frameborder = 0;
- iframe.width = "100%";
- iframe.height = "100%";
- iframe.marginheight = 0;
- iframe.marginwidth = 0;
- iframe.scrolling = "no";
- xAppendChild($(containerId),iframe);
- retHTML = iframe.document.body.innerHTML;
-
- case "AJAX":
- if (objJSON.url){
- var a = new com.cognos.admin.util.Tools.ajaxObj();
- a.setUrl (objJSON.url);
-
- if (objJSON.method)
- a.setMethod (objJSON.method);
-
- if (objJSON.parameters)
- a.setParameters (objJSON.parameters);
-
- a.onSuccess = function(transport) {
- retHTML = transport.responseText;
- $(containerId).innerHTML = retHTML;
- };
- a.run();
- $(containerId).innerHTML = "loading...";
- }
- default:
- }
-
- return retHTML;
- };
-
- /*
- *
- */
- com.cognos.admin.util.Tools.getKey = function (tag) {
- var initParam = com.cognos.admin.util.Tools.cogEval(tag);
- var ret = "";
-
- if (tag.getAttribute("key")){
- ret = tag.getAttribute("key");
- } else if (initParam && initParam["key"]){
- ret = initParam["key"];
- } else {
- var elt = tag;
- while (elt = xParent(elt,true)){
- if (elt.nodeType==1 && elt.getAttribute("key")){
- ret = elt.getAttribute("key");
- break;
- }
- }
- }
- return ret;
- };
- /*
- *
- */
- com.cognos.admin.util.Tools.generateQueryString = function (currentString,newName,newValue,ignoreEmptyValues) {
- if (!currentString) {
- currentString="";
- }
- if (newName) {
- if (ignoreEmptyValues && (!newValue || newValue.length == 0)) {
- return currentString;
- }
- if (currentString.length > 0) {
- currentString+="&";
- }
- return currentString+newName+"="+encodeURIComponent(newValue);
- }
- return currentString;
- }
- com.cognos.admin.util.Tools.dspOpacity = function (objectId,opacity,isFadeIn){
- var obj = $(objectId);
- xOpacity(obj,opacity/100);
- if (opacity == 0)
- obj.style.display = (isFadeIn) ? "" : "none";
- };
- /*
- * Adjust the cogadmin table's height to fit the fragment properly
- * @param outterTable string or object, usually refers to the Fragment container
- * @param innerTable string or object, refers to the container you want to adjust the height
- * @param windowState maximized/normal/minimized, refers to Fragment window statate.
- * @param numRow (integer,default:1) the number of the vertical fragment
- */
- com.cognos.admin.util.Tools.adjustTableHeight = function (outterTable,innerTable,windowState,numRow){
- var PAGELET_TOP_HEIGHT = 60;
- var FRAGMENT_MIN_HEIGHT = 500;
- var FRAGMENT_TOP_HEIGHT = 34;
-
- var defaultPageletHeight = (xClientHeight() < FRAGMENT_MIN_HEIGHT) ? FRAGMENT_MIN_HEIGHT : xClientHeight()-PAGELET_TOP_HEIGHT;
- var oTable = $(outterTable);
- var iTable = $(innerTable);
- var fragmentOtherHeight = (xHeight(iTable) && xHeight(oTable)) ? (xHeight(oTable) - xHeight(iTable) + 2) : 85;
- var num = numRow || 1;
-
- if (!oTable || !iTable){
- if (com.cognos.admin.config.debug){
- _F_log('D','One of the containers or both is not defined.');
- }
- return false;
- }
-
- switch (windowState){
- case "maximized":
- xHeight(iTable,defaultPageletHeight - fragmentOtherHeight);
- break;
-
- case "extended":
- xHeight(iTable,defaultPageletHeight - FRAGMENT_TOP_HEIGHT - fragmentOtherHeight);
- break;
-
- case "normal":
- default:
- xHeight(iTable,(defaultPageletHeight/num) - fragmentOtherHeight);
- }
- };
- com.cognos.admin.util.Tools.includeClass = function includeClass(elt,cName) {
- var elt = xGetElementById(elt);
- if (elt && elt.className){
- var reg = new RegExp("(^|\\s)"+cName+"(\\s|$)");
- return reg.test(elt.className);
- } else {
- return false;
- }
- }
- /*
- * Adjust the destination table's td width with the original table
- *
- * @param oriTable original table, could be a table's id or obj
- * @param desTable destination table.
- * @return "true" if adjustment applied, "false" otherwise.
- *
- * Currently reserved for the furture use (partially finished)
- */
- com.cognos.admin.util.Tools.adjustTdWidth = function (oriTable, desTable){
- var oTable = (typeof oriTable == "object") ? oriTable : $(oriTable);
- var dTable = (typeof desTable == "object") ? desTable : $(desTable);
-
- if (!oTable || !dTable){
- if (com.cognos.admin.config.debug){
- _F_log('D','One of the table or both is not defined.');
- }
- return false;
- }
-
- var firstOrow = oTable.rows[0].childNodes;
- var firstDrow = dTable.rows[0].childNodes;
-
- if (firstOrow.length == firstDrow.length){
- for (var i = 0; i < firstOrow.length; i++){
- if (firstDrow[i].nodeType == 1)
- xWidth(firstDrow[i],xWidth(firstOrow[i]));
- }
- } else {
- //TODO: Implement the case when table has a unmatched number of td
- }
- };
- //**************************Fragment wrapper begin*****************************************/
- com.cognos.admin.util.Tools.addFrgEvtListener = function (fragment, key, listener) {
- fragment.addEventListener("com.cognos.admin" + key, listener);
- };
- com.cognos.admin.util.Tools.removeFrgEvtListener = function (fragment, key, listener) {
- fragment.removeEventListener("com.cognos.admin" + key, listener);
- };
- com.cognos.admin.util.Tools.raiseFrgEvt = function (fragment, key, payload) {
- fragment.raiseEvent("com.cognos.admin" + key, payload);
- };
- /* @fragID: The ID for the fragment that will get created
- * @divID: The ID of the div that will get updated by the fragment
- * @targetURL: parameters that will get added to the URL. Should NOT start with &, can be either a xts call or path of
- * cogadmin pipleline.
- */
- com.cognos.admin.util.Tools.createFragment = function (targetURL,fragID, divID) {
- var fragContext = [];
- fragContext.path = encodeURI(targetURL);
- fragContext.id = fragID;
- fragContext.div = divID;
- return _F_attach(fragContext);
- };
- /*
- *
- */
- com.cognos.admin.util.Tools.createTransient = function (name, value, scope, channel) {
- var t = [];
- t["name"] = name
- t["scope"] = scope;
- t["channel"] = channel;
- t["value"] = value;
-
- return t;
- };
- com.cognos.admin.util.Tools.ajaxObj = function (){
- this.url = "";
- this.method = "post";
- this.text = "";
- this.xml = "";
- this.JSON = "";
- this.parameters;
- this.onSuccess;
- this.onFailure;
- this.onGoing;
- };
- com.cognos.admin.util.Tools.ajaxObj.prototype = {
-
- setUrl : function (url){
- this.url = url;
- },
-
- setMethod : function (method){
- this.method = method;
- },
-
- setParameters : function (parameters){
- this.parameters = parameters;
- },
-
- run : function (){
- var option = {};
-
- if (this.method)
- option.method = this.method;
- if (this.parameters)
- option.parameters = this.parameters;
-
- if (typeof this.onSuccess == "function")
- option.onSuccess = this.onSuccess;
- if (typeof this.onFailure == "function"){
- option.onFailure = this.onFailure;
- } else {
- option.onFailure = function () {
- _F_log ("E", "Loading failed!");
- }
- }
-
- var a = new _F_Ajax.Request(this.url,option);
-
- if (typeof this.onGoing == "function"){
- this.onGoing();
-
- } else {
- if (com.cognos.admin.config.debug)
- _F_log ("I", "Loading... from " + this.url);
- }
- },
-
- getXml : function () {
- return this.xml;
- },
-
- getText : function () {
- return this.text;
- },
-
- getJSON : function () {
- return this.JSON;
- }
-
- };
- //**************************Fragment wrapper end*****************************************/
|