123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- var SV_ROOT = "selectValues";
- var SV_VALUES = "values";
- var SV_VALUE = "value";
- var SV_TYPE = "type";
- var SV_SECONDARY_REQUESTS = "secondaryRequests";
- var SV_SECONDARY_REQUEST = "secondaryRequest";
- var SV_VALUE_USE_ATTR = "use";
- var SV_VALUE_DISPLAY_ATTR = "display";
- var dataRequest = null;
- var callbackFn = null;
- var sv_conversation = null;
- var sv_tracking = null;
- var sv_useValues = null;
- var sv_displayValues = null;
- var sv_secondaryRequests = null;
- var sv_type = null;
- var sv_page = null;
- var SV_PASSPORT = "passport";
- var SV_FAULT = "fault";
- var SV_WORKING = "working";
- var SV_PROMPTING = "prompting";
- var SV_FINISHED = "finished";
- var SV_CANCEL = "cancel";
- var SV_PROMPTING_FINISHED = "prompting_finished"
- function doSelectValuesRequest(callback_function, method, treeObj, sort, filter, filter_type, tracking, conversation)
- {
-
- callbackFn = callback_function;
-
- var request = getDataRequestString(method, treeObj, sort, filter, filter_type, tracking, conversation);
-
- doDataRequest(request);
- }
- function getDataRequestString(method, treeObj, sort, filter, filter_type, tracking, conversation)
- {
- var sURL = "";
- var cl="";
- var pl="";
-
-
- var el="";
- var clk = "cl";
- var plk = "pl";
- var locales = getLocales(clk, plk);
-
- sURL += URIEncode(clk, locales[clk]);
- sURL += URIEncode(plk, locales[plk]);
- sURL += URIEncode("el",getExpressionLocale());
-
-
- sURL += URIEncode("sort", sort);
-
- if (filter) {
- sURL += URIEncode("filter", filter.replace(/'/g, "''"));
- }
- sURL += URIEncode("filter_type", filter_type);
-
- sURL += URIEncode("disp_trackingInfo", tracking);
- sURL += URIEncode("conversation", conversation);
-
- sURL += URIEncode("xslURL", "selectValue.xslt");
- sURL += URIEncode("model", cfgGet("cmLastModel"));
-
-
-
- if (treeObj.type == "level" || treeObj.type == "hierarchy") {
- sURL += URIEncode("memberRequest","1");
- }
-
-
- sURL += URIEncode("method",method);
- sURL += URIEncode("inlineSpecType","reportServiceReportSpecification");
-
- sURL += URIEncode("prompt", "false");
- if (treeObj != null) {
- sURL += URIEncode("queryRef",treeObj.name);
- var referencedQueryItems = cf.getTreeValues(getDataItemsTree());
- var itemsStr="";
-
-
- var noAggregate = !(treeObj instanceof aiDataItem);
- itemsStr = buildDataItemXML(treeObj,sort,noAggregate);
-
- for (var i=0;i<referencedQueryItems.length;i++) {
- var qi=referencedQueryItems[i];
-
- if (qi.ref != treeObj.ref) {
- itemsStr += buildDataItemXML(qi);
- }
- }
- }
- sURL += URIEncode("queryItems",itemsStr);
-
-
- sURL += URIEncode("parameterValues",getConnectionParameterValues());
-
-
- return sURL;
- }
- function doDataRequest(request)
- {
- var url = "b_action=xts.run";
- url += URIEncode("m","/ags/async/asyncConv.xts");
- url += URIEncode("buildRequestXTS","/ags/async/selectValuesRequest.xts");
- url += URIEncode("buildResponseXTS","/ags/async/selectValuesResponse.xts");
-
- url += URIEncode("forceSOAPFault","false");
- url += request;
- if (cafContextId != "") {
- url += URIEncode("cafcontextid",cafContextId);
- }
-
- if (dataRequest!= null) {
- cancelDispatcherRequest(dataRequest);
- }
-
- dataRequest = sendDispatcherRequestWithXMLTextResponse(url, selectDataXMLTextResponse);
- }
- function promptSelectDataResponse(parameters, response, conversation, clientContext, tracking)
- {
- if (response == "Cancel" || response == "Error")
- {
- doClosePopUp();
-
- callClientCallback(SV_CANCEL);
- }
- else
- {
- callClientCallback(SV_PROMPTING_FINISHED);
-
-
- saveParameterValues(parameters);
-
-
- var request = URIEncode("context", clientContext);
- request += URIEncode("promptResponse", response);
- request += URIEncode("disp_trackingInfo", tracking);
-
- showDialogFrame(0);
- doSetPopUpClosureFlag();
-
- setTimeout("doDataRequest('" + request + "');", 100);
- }
- }
- function callClientCallback(status)
- {
- if (callbackFn != null)
- {
- try {
- callbackFn(status);
- } catch(ex) {
-
- }
- }
- }
- function selectDataXMLTextResponse(responseArray)
- {
-
- var responseXML = responseArray[0];
- var responseText = responseArray[1];
-
- dataRequest = null;
- var workingRoot = responseXML.getElementsByTagName(ASYNC_WORKING);
- var promptingRoot = responseXML.getElementsByTagName(ASYNC_PROMPTING);
- var valuesRoot = responseXML.getElementsByTagName(ASYNC_RESPONSE);
- var parsedResponse = parseResponse(responseXML,responseText);
-
-
-
- if (parsedResponse.isLogonFault()) {
-
- callClientCallback(SV_PASSPORT);
- doPassportExpire(responseXML,null,parsedResponse);
- } else if (parsedResponse.isSoapFault()) {
-
- callClientCallback(SV_FAULT);
-
- doSOAPFault(responseXML,null,parsedResponse);
- } else if (workingRoot.length == 1) {
-
- callClientCallback(SV_WORKING);
-
- doWorking(workingRoot[0], "doDataRequest");
- } else if (promptingRoot.length == 1) {
-
- callClientCallback(SV_PROMPTING);
-
-
-
- doPrompting(promptingRoot[0], 7, "selectValue.xslt");
- } else if (valuesRoot.length == 1) {
- buildSelectValues(valuesRoot[0]);
-
- callClientCallback(SV_FINISHED);
- } else {
-
- callClientCallback(SV_FAULT);
-
- if (parsedResponse.isHTML() && !parsedResponse.isEmptyBody()) {
- doHTMLResponse(responseText);
- } else {
- alert(asyncSelectValuesError_string);
- }
- }
- }
- function buildSelectValues(obj)
- {
-
- var conversationElements = obj.getElementsByTagName(ASYNC_CONVERSATION);
-
- var trackingElements = obj.getElementsByTagName(ASYNC_TRACKING);
-
- var valuesElements = obj.getElementsByTagName(SV_VALUES);
-
- var typeElements = obj.getElementsByTagName(SV_TYPE);
-
- var secondaryRequestsElements = obj.getElementsByTagName(SV_SECONDARY_REQUESTS);
-
- sv_conversation = null;
- sv_tracking = null;
- sv_useValues = new Array();
- sv_displayValues = new Array();
- sv_secondaryRequests = new Array();
-
-
-
- if (conversationElements[0].childNodes.length > 0) {
- sv_conversation = getTextNodeValue(conversationElements[0]);
- }
- if (trackingElements[0].childNodes.length > 0) {
- sv_tracking = getTextNodeValue(trackingElements[0]);
- }
-
-
- sv_type = null;
-
- if (typeElements.length == 1) {
- if (typeElements[0].childNodes.length == 1) {
- sv_type = getTextNodeValue(typeElements[0]);
- }
- }
-
-
- if (valuesElements.length == 1) {
- var valueElements = valuesElements[0].getElementsByTagName(SV_VALUE);
- for (var i = 0; i < valueElements.length; i++) {
- var useValue = valueElements[i].getAttribute(SV_VALUE_USE_ATTR);
- var displayValue = valueElements[i].getAttribute(SV_VALUE_DISPLAY_ATTR);
-
- if (useValue == null) {
- useValue = displayValue;
- }
-
-
- var v_sQuote = "";
- switch (sv_type) {
- case "1":
- case "25":
- case "26":
- case "27":
- case "28":
- case "29":
- case "30":
- case "31":
- case "32":
- case "34":
- case "35":
- case "36":
- case "43":
- case "45":
- case "55":
- case "56":
- v_sQuote = "'";
- break;
- }
-
-
- useValue = displayValue;
-
- useValue = useValue.replace(/'/g, "''");
- useValue = useValue.replace(/[\s]+$/g,"");
-
-
- useValue = v_sQuote + useValue + v_sQuote;
-
-
- sv_useValues.push(useValue);
- sv_displayValues.push(displayValue);
- }
- }
-
-
- var secondaryRequestElements = secondaryRequestsElements[0].getElementsByTagName(SV_SECONDARY_REQUEST);
- for (var i = 0; i < secondaryRequestElements.length; ++i) {
- if (secondaryRequestElements[i].childNodes.length == 1) {
- sv_secondaryRequests.push(getTextNodeValue(secondaryRequestElements[i]));
- }
- }
- }
|