diff --git a/observations/static/observations/js/observationList.js b/observations/static/observations/js/observationList.js index 50e3266b37f3a4e4f8436ee75b1fa377b5f97762..afe7bc16ccb264407a1f8059c722d1962b80db56 100644 --- a/observations/static/observations/js/observationList.js +++ b/observations/static/observations/js/observationList.js @@ -16,7 +16,6 @@ * along with VIPSWeb. If not, see <http://www.nibio.no/licenses/>. * */ - var allObservations = []; // Populated asynchronously var drawnFeatures = []; // Populated asynchronously var currentDate; // Initialized in initMap @@ -290,15 +289,79 @@ var renderObservationTable = function(data) for(var i=0; i<data.length;i++) { var obs = data[i]; + var dSchema = JSON.parse(obs.observationDataSchema["dataSchema"]) + var dMod = JSON.parse(obs.observationDataSchema["dataModel"]) + var obsData = JSON.parse(obs.observationData) + /** + * HashMap for values in the dataSchema + */ + var dSchemaVal = {} + Object.keys(dSchema).forEach(function(key) { + dSchemaVal[key] = dSchema[key]["title"] + }); + /** + * HashMap for default values + */ + var defaultVal = {} + Object.keys(dMod).forEach(function (key) { + defaultVal[key] = dMod[key] + }) + /** + * HashMap over measures values + */ + var measuredVal = {} + if(obsData != null){ + Object.keys(obsData).forEach(function (key) { + measuredVal[key] = obsData[key] + }) + // } else { + // Object.keys(plain).forEach(function (key) { + // faktiskVerdi[key] = "Denne er tom" + // }) + } + /** + * Create array that contains value for pop-up + * If no measured data default is used. + */ + var printVal = [] + Object.keys(dSchemaVal).forEach(function (key) { + if(Object.keys(measuredVal).length === 0){ + return; + // Object.keys(defaultVal).forEach(function (defaultKey) { + // if(key == defaultKey){ + // printVal.push(dSchemaVal[key] + ": " + defaultVal[defaultKey]) + // } + // }) + } else { + Object.keys(measuredVal).forEach(function (defaultKey) { + if(key == defaultKey){ + printVal.push(dSchemaVal[key] + ": " + measuredVal[defaultKey]) + } + }) + + + } + }) + + console.info(printVal) + + tbodyHTML.push("<tr>"); tbodyHTML.push("<td>" + moment(obs.timeOfObservation).format("YYYY-MM-DD HH:mm ZZ") + "</td>"); tbodyHTML.push("<td>" + obs.organismName + "</td>"); tbodyHTML.push("<td>" + obs.cropOrganismName + "</td>"); tbodyHTML.push("<td>" + obs.observationHeading + "</td>"); + + if(Object.keys(measuredVal).length != 0){ + tbodyHTML.push("<td><a tabindex='0' class='btn btn-lg' role='button' data-toggle='popover' data-placement='left' data-trigger='focus' data-html='true' data-content='" + printVal.join("<br/>") + "' ><i class='fa fa-balance-scale' aria-hidden='true' </i></a></td>")} else{ + tbodyHTML.push("<td></td>") + } + tbodyHTML.push("<td><a href='/observations/" + obs.observationId + "' target='new'>" + gettext("Details") + "</a></td>"); tbodyHTML.push("</tr>"); } tbody.innerHTML = tbodyHTML.join("\n"); + $(tbody) > $('[data-toggle="popover"]').popover(); }; /** diff --git a/observations/templates/observations/index.html b/observations/templates/observations/index.html index 385083b0cb1e63ab1b02559872824e1d2c7119bc..84860bcebbff1b9ca9019e36091b23b4707f9519 100644 --- a/observations/templates/observations/index.html +++ b/observations/templates/observations/index.html @@ -115,7 +115,7 @@ [60, 'rgba(0, 0, 255, 1.0)'], // Blue ];*/ $(document).ready(function() { - initMap( + initMap( [{{settings.MAP_CENTER_LONGITUDE|unlocalize}},{{settings.MAP_CENTER_LATITUDE|unlocalize}}], 4, {{settings.VIPS_ORGANIZATION_ID}},