123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- "use strict";
- /**
- * Licensed Materials - Property of IBM
- * IBM Cognos Products: Cognos Analytics
- * Copyright IBM Corp. 2015, 2019
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['underscore'], function (_) {
- var xmlKnownEntities = '<!ENTITY nbsp " ">\r\n' + '<!ENTITY iexcl "¡">\r\n' + '<!ENTITY cent "¢">\r\n' + '<!ENTITY pound "£">\r\n' + '<!ENTITY curren "¤">\r\n' + '<!ENTITY yen "¥">\r\n' + '<!ENTITY brvbar "¦">\r\n' + '<!ENTITY sect "§">\r\n' + '<!ENTITY uml "¨">\r\n' + '<!ENTITY copy "©">\r\n' + '<!ENTITY ordf "ª">\r\n' + '<!ENTITY laquo "«">\r\n' + '<!ENTITY not "¬">\r\n' + '<!ENTITY shy "­">\r\n' + '<!ENTITY reg "®">\r\n' + '<!ENTITY macr "¯">\r\n' + '<!ENTITY deg "°">\r\n' + '<!ENTITY plusmn "±">\r\n' + '<!ENTITY sup2 "²">\r\n' + '<!ENTITY sup3 "³">\r\n' + '<!ENTITY acute "´">\r\n' + '<!ENTITY micro "µ">\r\n' + '<!ENTITY para "¶">\r\n' + '<!ENTITY middot "·">\r\n' + '<!ENTITY cedil "¸">\r\n' + '<!ENTITY sup1 "¹">\r\n' + '<!ENTITY ordm "º">\r\n' + '<!ENTITY raquo "»">\r\n' + '<!ENTITY frac14 "¼">\r\n' + '<!ENTITY frac12 "½">\r\n' + '<!ENTITY frac34 "¾">\r\n' + '<!ENTITY iquest "¿">\r\n' + '<!ENTITY Agrave "À">\r\n' + '<!ENTITY Aacute "Á">\r\n' + '<!ENTITY Acirc "Â">\r\n' + '<!ENTITY Atilde "Ã">\r\n' + '<!ENTITY Auml "Ä">\r\n' + '<!ENTITY Aring "Å">\r\n' + '<!ENTITY AElig "Æ">\r\n' + '<!ENTITY Ccedil "Ç">\r\n' + '<!ENTITY Egrave "È">\r\n' + '<!ENTITY Eacute "É">\r\n' + '<!ENTITY Ecirc "Ê">\r\n' + '<!ENTITY Euml "Ë">\r\n' + '<!ENTITY Igrave "Ì">\r\n' + '<!ENTITY Iacute "Í">\r\n' + '<!ENTITY Icirc "Î">\r\n' + '<!ENTITY Iuml "Ï">\r\n' + '<!ENTITY ETH "Ð">\r\n' + '<!ENTITY Ntilde "Ñ">\r\n' + '<!ENTITY Ograve "Ò">\r\n' + '<!ENTITY Oacute "Ó">\r\n' + '<!ENTITY Ocirc "Ô">\r\n' + '<!ENTITY Otilde "Õ">\r\n' + '<!ENTITY Ouml "Ö">\r\n' + '<!ENTITY times "×">\r\n' + '<!ENTITY Oslash "Ø">\r\n' + '<!ENTITY Ugrave "Ù">\r\n' + '<!ENTITY Uacute "Ú">\r\n' + '<!ENTITY Ucirc "Û">\r\n' + '<!ENTITY Uuml "Ü">\r\n' + '<!ENTITY Yacute "Ý">\r\n' + '<!ENTITY THORN "Þ">\r\n' + '<!ENTITY szlig "ß">\r\n' + '<!ENTITY agrave "à">\r\n' + '<!ENTITY aacute "á">\r\n' + '<!ENTITY acirc "â">\r\n' + '<!ENTITY atilde "ã">\r\n' + '<!ENTITY auml "ä">\r\n' + '<!ENTITY aring "å">\r\n' + '<!ENTITY aelig "æ">\r\n' + '<!ENTITY ccedil "ç">\r\n' + '<!ENTITY egrave "è">\r\n' + '<!ENTITY eacute "é">\r\n' + '<!ENTITY ecirc "ê">\r\n' + '<!ENTITY euml "ë">\r\n' + '<!ENTITY igrave "ì">\r\n' + '<!ENTITY iacute "í">\r\n' + '<!ENTITY icirc "î">\r\n' + '<!ENTITY iuml "ï">\r\n' + '<!ENTITY eth "ð">\r\n' + '<!ENTITY ntilde "ñ">\r\n' + '<!ENTITY ograve "ò">\r\n' + '<!ENTITY oacute "ó">\r\n' + '<!ENTITY ocirc "ô">\r\n' + '<!ENTITY otilde "õ">\r\n' + '<!ENTITY ouml "ö">\r\n' + '<!ENTITY divide "÷">\r\n' + '<!ENTITY oslash "ø">\r\n' + '<!ENTITY ugrave "ù">\r\n' + '<!ENTITY uacute "ú">\r\n' + '<!ENTITY ucirc "û">\r\n' + '<!ENTITY uuml "ü">\r\n' + '<!ENTITY yacute "ý">\r\n' + '<!ENTITY thorn "þ">\r\n' + '<!ENTITY yuml "ÿ">\r\n' + // HTMLsymbol.ent
- '<!ENTITY fnof "ƒ">\r\n' + '<!ENTITY Alpha "Α">\r\n' + '<!ENTITY Beta "Β">\r\n' + '<!ENTITY Gamma "Γ">\r\n' + '<!ENTITY Delta "Δ">\r\n' + '<!ENTITY Epsilon "Ε">\r\n' + '<!ENTITY Zeta "Ζ">\r\n' + '<!ENTITY Eta "Η">\r\n' + '<!ENTITY Theta "Θ">\r\n' + '<!ENTITY Iota "Ι">\r\n' + '<!ENTITY Kappa "Κ">\r\n' + '<!ENTITY Lambda "Λ">\r\n' + '<!ENTITY Mu "Μ">\r\n' + '<!ENTITY Nu "Ν">\r\n' + '<!ENTITY Xi "Ξ">\r\n' + '<!ENTITY Omicron "Ο">\r\n' + '<!ENTITY Pi "Π">\r\n' + '<!ENTITY Rho "Ρ">\r\n' + '<!ENTITY Sigma "Σ">\r\n' + '<!ENTITY Tau "Τ">\r\n' + '<!ENTITY Upsilon "Υ">\r\n' + '<!ENTITY Phi "Φ">\r\n' + '<!ENTITY Chi "Χ">\r\n' + '<!ENTITY Psi "Ψ">\r\n' + '<!ENTITY Omega "Ω">\r\n' + '<!ENTITY alpha "α">\r\n' + '<!ENTITY beta "β">\r\n' + '<!ENTITY gamma "γ">\r\n' + '<!ENTITY delta "δ">\r\n' + '<!ENTITY epsilon "ε">\r\n' + '<!ENTITY zeta "ζ">\r\n' + '<!ENTITY eta "η">\r\n' + '<!ENTITY theta "θ">\r\n' + '<!ENTITY iota "ι">\r\n' + '<!ENTITY kappa "κ">\r\n' + '<!ENTITY lambda "λ">\r\n' + '<!ENTITY mu "μ">\r\n' + '<!ENTITY nu "ν">\r\n' + '<!ENTITY xi "ξ">\r\n' + '<!ENTITY omicron "ο">\r\n' + '<!ENTITY pi "π">\r\n' + '<!ENTITY rho "ρ">\r\n' + '<!ENTITY sigmaf "ς">\r\n' + '<!ENTITY sigma "σ">\r\n' + '<!ENTITY tau "τ">\r\n' + '<!ENTITY upsilon "υ">\r\n' + '<!ENTITY phi "φ">\r\n' + '<!ENTITY chi "χ">\r\n' + '<!ENTITY psi "ψ">\r\n' + '<!ENTITY omega "ω">\r\n' + '<!ENTITY thetasym "ϑ">\r\n' + '<!ENTITY upsih "ϒ">\r\n' + '<!ENTITY piv "ϖ">\r\n' + '<!ENTITY bull "•">\r\n' + '<!ENTITY hellip "…">\r\n' + '<!ENTITY prime "′">\r\n' + '<!ENTITY Prime "″">\r\n' + '<!ENTITY oline "‾">\r\n' + '<!ENTITY frasl "⁄">\r\n' + '<!ENTITY weierp "℘">\r\n' + '<!ENTITY image "ℑ">\r\n' + '<!ENTITY real "ℜ">\r\n' + '<!ENTITY trade "™">\r\n' + '<!ENTITY alefsym "ℵ">\r\n' + '<!ENTITY larr "←">\r\n' + '<!ENTITY uarr "↑">\r\n' + '<!ENTITY rarr "→">\r\n' + '<!ENTITY darr "↓">\r\n' + '<!ENTITY harr "↔">\r\n' + '<!ENTITY crarr "↵">\r\n' + '<!ENTITY lArr "⇐">\r\n' + '<!ENTITY uArr "⇑">\r\n' + '<!ENTITY rArr "⇒">\r\n' + '<!ENTITY dArr "⇓">\r\n' + '<!ENTITY hArr "⇔">\r\n' + '<!ENTITY forall "∀">\r\n' + '<!ENTITY part "∂">\r\n' + '<!ENTITY exist "∃">\r\n' + '<!ENTITY empty "∅">\r\n' + '<!ENTITY nabla "∇">\r\n' + '<!ENTITY isin "∈">\r\n' + '<!ENTITY notin "∉">\r\n' + '<!ENTITY ni "∋">\r\n' + '<!ENTITY prod "∏">\r\n' + '<!ENTITY sum "∑">\r\n' + '<!ENTITY minus "−">\r\n' + '<!ENTITY lowast "∗">\r\n' + '<!ENTITY radic "√">\r\n' + '<!ENTITY prop "∝">\r\n' + '<!ENTITY infin "∞">\r\n' + '<!ENTITY ang "∠">\r\n' + '<!ENTITY and "∧">\r\n' + '<!ENTITY or "∨">\r\n' + '<!ENTITY cap "∩">\r\n' + '<!ENTITY cup "∪">\r\n' + '<!ENTITY int "∫">\r\n' + '<!ENTITY there4 "∴">\r\n' + '<!ENTITY sim "∼">\r\n' + '<!ENTITY cong "≅">\r\n' + '<!ENTITY asymp "≈">\r\n' + '<!ENTITY ne "≠">\r\n' + '<!ENTITY equiv "≡">\r\n' + '<!ENTITY le "≤">\r\n' + '<!ENTITY ge "≥">\r\n' + '<!ENTITY sub "⊂">\r\n' + '<!ENTITY sup "⊃">\r\n' + '<!ENTITY nsub "⊄">\r\n' + '<!ENTITY sube "⊆">\r\n' + '<!ENTITY supe "⊇">\r\n' + '<!ENTITY oplus "⊕">\r\n' + '<!ENTITY otimes "⊗">\r\n' + '<!ENTITY perp "⊥">\r\n' + '<!ENTITY sdot "⋅">\r\n' + '<!ENTITY lceil "⌈">\r\n' + '<!ENTITY rceil "⌉">\r\n' + '<!ENTITY lfloor "⌊">\r\n' + '<!ENTITY rfloor "⌋">\r\n' + '<!ENTITY lang "〈">\r\n' + '<!ENTITY rang "〉">\r\n' + '<!ENTITY loz "◊">\r\n' + '<!ENTITY spades "♠">\r\n' + '<!ENTITY clubs "♣">\r\n' + '<!ENTITY hearts "♥">\r\n' + '<!ENTITY diams "♦">\r\n' + // HTMLspecial.ent
- '<!ENTITY OElig "Œ">\r\n' + '<!ENTITY oelig "œ">\r\n' + '<!ENTITY Scaron "Š">\r\n' + '<!ENTITY scaron "š">\r\n' + '<!ENTITY Yuml "Ÿ">\r\n' + '<!ENTITY circ "ˆ">\r\n' + '<!ENTITY tilde "˜">\r\n' + '<!ENTITY ensp " ">\r\n' + '<!ENTITY emsp " ">\r\n' + '<!ENTITY thinsp " ">\r\n' + '<!ENTITY zwnj "‌">\r\n' + '<!ENTITY zwj "‍">\r\n' + '<!ENTITY lrm "‎">\r\n' + '<!ENTITY rlm "‏">\r\n' + '<!ENTITY ndash "–">\r\n' + '<!ENTITY mdash "—">\r\n' + '<!ENTITY lsquo "‘">\r\n' + '<!ENTITY rsquo "’">\r\n' + '<!ENTITY sbquo "‚">\r\n' + '<!ENTITY ldquo "“">\r\n' + '<!ENTITY rdquo "”">\r\n' + '<!ENTITY bdquo "„">\r\n' + '<!ENTITY dagger "†">\r\n' + '<!ENTITY Dagger "‡">\r\n' + '<!ENTITY permil "‰">\r\n' + '<!ENTITY lsaquo "‹">\r\n' + '<!ENTITY rsaquo "›">\r\n' + '<!ENTITY euro "€">\r\n';
- return {
- _createDTD: function _createDTD() {
- return "<!DOCTYPE " + 'Document' + " [\r\n" + xmlKnownEntities + "\r\n]>\r\n";
- },
- processResponse: function processResponse(report, response) {
- var parameters = [];
- var $status = $(response).selectNode('Envelope').selectNode('Body').find('> *').selectNode('result').selectNode('details').selectNode('item').byAttributeValue('xsi:type', 'bus:asynchDetailReportStatus').selectNode('status');
- if ($status.text() === '') {
- $status = $(response).selectNode('Envelope').selectNode('Body').find('> *').selectNode('result').selectNode('status');
- }
- if ($status.text() !== 'prompting') {
- var $responseNode = $(response).selectNode('Envelope').selectNode('Body').find('> *');
- parameters = this._extractParametersFromResponse(report, $responseNode);
- } else {
- parameters.push({
- name: 'credential:',
- 'report_id': report.id,
- 'type': 'credential'
- });
- }
- var $outputPage = $(response).selectNode('Envelope').selectNode('Body').find('> *').find('> *').selectNode('details').selectNode('item').byAttributeValue('xsi:type', 'bus:asynchDetailReportOutput').selectNode('outputPages').selectNode('item');
- var promptControlOutput;
- var promptControls = [];
- var xmlText = $outputPage.text();
- if (xmlText !== '') {
- xmlText = this._createDTD() + xmlText;
- promptControlOutput = $.parseXML(xmlText);
- var promptControlNodes = $(promptControlOutput).find('*[parameter]');
- _.each(promptControlNodes, function (promptControlNode) {
- promptControls.push($(promptControlNode).attr('parameter'));
- });
- } else {
- promptControlOutput = null;
- }
- return {
- parameters: parameters,
- promptControls: promptControls,
- status: $status.text(),
- type: 'xml',
- report: report.defaultName,
- report_id: report.id,
- $conversation: $(response).selectNode('Envelope').selectNode('Body').find('> *').selectNode('result').selectNode('primaryRequest'),
- $tracking: $(response).selectNode('Envelope').selectNode('Header').selectNode('biBusHeader').selectNode('tracking').selectNode('conversationContext'),
- xml: promptControlOutput
- };
- },
- _extractParametersFromResponse: function _extractParametersFromResponse(report, $responseNode) {
- var parameters = [];
- var $parameterNodes = $responseNode.selectNode('result').selectNode('details').selectNode('item').byAttributeValue('xsi:type', 'bus:asynchDetailParameters').selectNode('parameters').selectNode('item').byAttributeValue('xsi:type', 'bus:parameter');
- for (var i = 0; i < $parameterNodes.length; ++i) {
- var parameter = $parameterNodes[i];
- var $parameterType = $(parameter).selectNode('type'); //interval prompts not currently supported
- if ($parameterType.text() === 'xsdDuration') {
- continue;
- }
- var multiSelect = false;
- var type = 'simpleParmValue';
- var capabilities = $(parameter).selectNode('capabilities');
- var items = $(capabilities).selectNode('item');
- _.each(items, function (item) {
- //NOSONAR
- var capability = $(item).text();
- switch (capability) {
- case 'multivalued':
- {
- multiSelect = true;
- break;
- }
- case 'boundRange':
- {
- type = 'boundRange';
- break;
- }
- default:
- {
- break;
- }
- }
- });
- var name = $(parameter).selectNode('name').text();
- var newParameter = {
- 'name': name,
- 'description': '',
- 'multilingualDisplay': {},
- 'source': 'report',
- 'report': report.defaultName,
- 'report_id': report.id,
- 'report_path': report.searchPath,
- 'type': type,
- 'multiSelect': multiSelect,
- 'disabled': false,
- 'accessibleAtSystemOrTenantLevel': false
- };
- var existingParameter = _.find(parameters, function (paramNameValue) {
- return paramNameValue.name === newParameter.name;
- }); //NOSONAR
- if (!existingParameter) {
- parameters.push(newParameter);
- }
- }
- return parameters;
- },
- xml_encode: function xml_encode(input) {
- var output = "" + input;
- if (output === '0' || input !== null && input !== false) {
- //&
- output = output.replace(/&/g, "&"); //<
- output = output.replace(/</g, "<"); //>
- output = output.replace(/>/g, ">"); //"
- output = output.replace(/"/g, """); //'
- output = output.replace(/'/g, "'");
- }
- return output;
- }
- };
- });
|