window.fdi = window.fdi || {}; window.fdi.setInputValue = function (ctrlID, val) { var input = document.getElementById(ctrlID); input.value = val; } window.fdi.getInputValue = function (ctrlID) { var input = document.getElementById(ctrlID); console.log("ctrlID " + ctrlID + " " + input.value); return input.value; } window.fdi.callAsyncSucceded = function (xhr) { ///_api/Web/Lists/getbytitle('Pages')/ } window.fdi.callSP = function () { window.fdi.callAsync(window.fdi.getInputValue('fdiWebSite'), window.fdi.getInputValue('fdiQuery') + window.fdi.getInputValue('fdiFields') + window.fdi.getInputValue('fdiFilter'), window.fdi.querySucceded); } window.fdi.callSPFields = function () { window.fdi.callAsync(window.fdi.getInputValue('fdiWebSite'), window.fdi.getInputValue('fdiGetFields'), window.fdi.queryFieldsSucceded); } window.fdi.fdiXhr = null; window.fdi.generateTable = function (columns, datas) { console.log(columns); console.dir(datas); var tbl = document.createElement("table"); var cols = columns.split(','); //push columns var trHeader = document.createElement("tr"); for (var j = 0 ; j < cols.length ; j++) { var th = document.createElement("th"); th.innerText = cols[j]; trHeader.appendChild(th); } tbl.appendChild(trHeader); // push datas for (var i = 0 ; i < datas.length ; i++) { var trCol = document.createElement("tr"); for (var j = 0 ; j < cols.length ; j++) { var td = document.createElement("td"); var name = "" + cols[j]; if (name.indexOf('/') <= 0) td.innerText = datas[i][name]; else {//lookups var tab = name.split('/'); td.innerText = datas[i][tab[0]][tab[1]]; } if (j == 0) { var at = document.createAttribute("onclick"); //at.value = "window.fdi.addFieldToList('" + td.innerText + "')"; //td.attributes.add(at); td.setAttribute("onclick", "window.fdi.addFieldToList('fdiFields', '" + td.innerText + "')"); } trCol.appendChild(td); } tbl.appendChild(trCol); } return tbl; } window.fdi.queryFieldsSucceded = function (xhr) { if (xhr.status === 200) { var kk = JSON.parse(xhr.responseText); console.dir(kk.d.results); console.log("length : " + kk.d.results.length); var tbl = window.fdi.generateTable("InternalName,Title,TypeAsString,Group,Required,Hidden", kk.d.results); var ctrlOutput = document.getElementById('fdiOutput'); if (ctrlOutput != null) { ctrlOutput.innerHTML = tbl.outerHTML; } } else { console.dir(xhr); alert('Request failed. Returned status of ' + xhr.status); } } window.fdi.querySucceded = function (xhr) { if (xhr.status === 200) { var kk = JSON.parse(xhr.responseText); console.dir(kk); console.log("length : " + kk.d.results.length); var fields = window.fdi.getInputValue('fdiFields'); fields = fields.split(','); for (var i = 0 ; i < kk.d.results.length ; i++) { var item = kk.d.results[i]; //console.dir(item); for (var j = 0 ; j < fields.length ; j++) { console.log(fields[j]); console.log(item[fields[j]]); } } var tbl = window.fdi.generateTable(window.fdi.getInputValue('fdiFields'), kk.d.results); var ctrlOutput = document.getElementById('fdiOutputTbl'); if (ctrlOutput != null) { ctrlOutput.innerHTML = tbl.outerHTML; } } else { console.dir(xhr); alert('Request failed. Returned status of ' + xhr.status); } } window.fdi.addFieldToList = function (ctrlId, val) { var data = window.fdi.getInputValue(ctrlId); if (data == null){ window.fdi.setInputValue(ctrlId, val.trim()); return; } if (data.trim() == ""){ window.fdi.setInputValue(ctrlId, val.trim()); return; } window.fdi.setInputValue(ctrlId, data.trim() + "," + val.trim()); } window.fdi.callAsync = function (webUrl, query, success) { var xhr = new XMLHttpRequest(); window.fdi.fdiXhr = xhr; console.log(webUrl + query); xhr.open('GET', webUrl + query); xhr.setRequestHeader("Accept", "application/json; odata=verbose"); xhr.setRequestHeader("Connection", "close"); xhr.onload = function () { success(xhr); /* if (xhr.status === 200) { var kk = JSON.parse(xhr.responseText); console.dir(kk); } else { console.dir(xhr); alert('Request failed. Returned status of ' + xhr.status); }*/ }; xhr.send(); } function test2() { var xhr = new XMLHttpRequest(); xhr.open('GET', "http://bnp-gedoc/sites/gdoc/_api/Web/Lists/getbytitle('EJ')"); xhr.setRequestHeader("Accept", "application/json; odata=verbose"); xhr.setRequestHeader("Connection", "close"); xhr.onload = function () { if (xhr.status === 200) { var kk = JSON.parse(xhr.responseText); console.dir(kk); } else { console.dir(xhr); alert('Request failed. Returned status of ' + xhr.status); } }; xhr.send(); } function test() { console.clear(); window.fdi.setInputValue('fdiWebSite', 'http://bnp-gedoc/sites/gdoc'); window.fdi.setInputValue('fdiQuery', "/_api/Web/Lists/getbytitle('EJ')/items?$select="); window.fdi.setInputValue('fdiFields', "Title,ID,Author/Title"); window.fdi.setInputValue('fdiFilter', "&$expand=Author&$filter= Title eq 'entite du ga 1'"); window.fdi.setInputValue('fdiGetFields', "/_api/Web/Lists/getbytitle('EJ')/Fields?filter=Hidden eq false&$orderBy=InternalName"); }