/*############################################################################## # Copyright (C) 2011 HPCC Systems. # # All rights reserved. This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . ############################################################################## */ define([ "dojo/_base/config", "dojo/_base/declare" ], function (baseConfig, declare) { return declare(null, { constructor: function (args) { declare.safeMixin(this, args); }, getParam: function (key) { var value = dojo.queryToObject(dojo.doc.location.search.substr((dojo.doc.location.search[0] === "?" ? 1 : 0)))[key]; if (value) return value; return baseConfig[key]; }, getBaseURL: function () { var serverIP = this.getParam("serverIP"); if (serverIP) return "http://" + serverIP + ":8010/WsWorkunits"; return "/WsWorkunits"; }, parseKeyValue: function (xmlDom, nodeLabel) { var items = xmlDom.getElementsByTagName(nodeLabel); if (items.length && items[0].childNodes.length) { return items[0].childNodes[0].nodeValue; } return ""; }, parseKeyChildren: function (xmlDom, nodeLabel) { var items = xmlDom.getElementsByTagName(nodeLabel); if (items.length && items[0].childNodes.length) { return items[0].childNodes; } return null; }, parseRows: function (xmlDom, nodeLabel) { var rows = []; var items = xmlDom.getElementsByTagName(nodeLabel); for (var i = 0; i < items.length; ++i) { var item = items[i]; var cols = {}; for (var c = 0; c < item.childNodes.length; ++c) { colNode = item.childNodes[c]; if (colNode.childNodes.length && colNode.childNodes[0].nodeValue) { cols[colNode.nodeName] = colNode.childNodes[0].nodeValue; } else { cols[colNode.nodeName] = ""; } } rows.push(cols); } return rows; }, // parseDataset: function (xmlDom, _name, nodeLabel) { var retVal = {}; var retValRows = this.parseRows(xmlDom, nodeLabel); var retValHeader = []; if (retValRows.length) { for (var key in retValRows[0]) { retValHeader.push(key) } } retVal = { name: _name, header: retValHeader, rows: retValRows }; return retVal; }, parseDatasets: function (xmlDom, nodeLabel, innerNodeLabel) { var retVal = []; var datasets = xmlDom.getElementsByTagName(nodeLabel); for (var d = 0; d < datasets.length; ++d) { var dataset = datasets[d]; var retValRows = this.parseRows(dataset, innerNodeLabel); var retValHeader = []; if (retValRows.length) { for (var key in retValRows[0]) { retValHeader.push(key) } } retVal.push({ name: dataset.getAttribute("name"), header: retValHeader, rows: retValRows }); } return retVal; } }); });