<script type="text/javascript"> //<![CDATA[ //Manage Messages function getXDMDelayed(sheetName,factor) { window.setTimeout(function() { getSubmissionSet(sheetName); }, factor * 750); } function getSubmissionSet(sheetName) { //https://docs.google.com/spreadsheets/d/1aOhhmBgp5xrJteHUAzr687c_J-Iz0qDgFsuZz1NbqT4/edit?usp=sharing var spreadsheetId = '1aOhhmBgp5xrJteHUAzr687c_J-Iz0qDgFsuZz1NbqT4'; var url = BaseURL.sheets + spreadsheetId + '/values/' + sheetName + '?key=' + ApiKey; var client = new HttpClient(sheetName); client.get(url, _processXDMSubmissionSet); } function _processXDMSubmissionSet(response, sheetName) { var msgId = sheetName.split('^')[0] + '_' + sheetName.split('^')[1]; var divId = 'div' + msgId; var values = JSON.parse(response).values; var title = values[0][0]; var table = document.createElement('table'); table.setAttribute('class','msgTable'); var tableContent = _setXDMTableHeader(values); var level = 0; var exLevel = 0; var exclude = false; var testWord = ""; var reqFlag = ""; var value=""; var cellStyle="" var colNum = values[1].length; var isGroupRow = true; var segments = new Object; segments.elements = new Object; segments.span = colNum; var segmentId = ""; var elementId = ""; for (var i=2; i < values.length; i++) { level = (values[i][0].match(/\u21E8/g) || []).length; //number of leading arrows determines the nesting level testWord = _lastWord(values[i][1].toLowerCase()); isGroupRow = (testWord == 'begin') || (testWord == 'end'); if (exclude) //we are in an exclusion range, check for end of range { if ((level == exLevel) && (testWord == 'end')) { exclude = false; } continue; } reqFlag = (values[i][2] + "").toLowerCase(); if (!_required(reqFlag)) { if (testWord == 'begin') //start exclusion range { exLevel = level; exclude = true; } if (testWord != 'end') //catch closure of non-excluded group { continue; } } tableContent = tableContent + '<tr>\n'; for (var j=0; j < colNum; j++) { value = values[i][j]; if (value == null) { value=""; } cellStyle = '<td class="msgTable">'; if ( (j == 2) || j == 3) { cellStyle = '<td class="msgTable col' + j + '">'; } if ( (j == 1) && isGroupRow) { cellStyle = '<td class="msgTable group">'; } if ( (j == 0) && (!isGroupRow)) { segmentId = value.substring(level).replace(/[\[\]\ {}]/g,''); elementId = '360X_'+ msgId + '_' + segmentId + '_' + i; value = value + '<div id="Cell_' + elementId + '" class="expand" onClick="segToggle(\'' + elementId + '\')">\u229e<\/div>'; } if (j == 4 ) { value = value.replace(/(?:\r\n|\r|\n)/g, '<br />'); } tableContent = tableContent + cellStyle + value + '<\/td>\n'; } tableContent = tableContent + '<\/tr>\n'; if (!isGroupRow) //build the segment table { tableContent = tableContent + '<tr id="' + elementId + '" class="hide"><\/tr>\n'; storeSegment(segments, segmentId, elementId); } } //appendPre(tableContent); table.innerHTML = tableContent; var div = document.getElementById(divId); div.appendChild(table); getSegments(segments); } function _setXDMTableHeader(values) { var content='<tr>\n<td colspan="' + values[1].length + '" class="msgTable title">' + values[0][0] + '<\/td>\n<\/tr>\n<tr>\n'; for (var j=0; j < values[1].length; j++) { content = content + '<th class="msgTable col' + j + '">' + values[1][j] + '<\/th>\n'; } content = content + '<\/tr>\n'; return content; } //]]> </script> |