Skip to content
Snippets Groups Projects
Commit 0c9dc474 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Improvements of observation list

parent e3b2d2df
No related branches found
No related tags found
No related merge requests found
...@@ -60,6 +60,11 @@ function getStandardFormattedTimestamp(timestamp) ...@@ -60,6 +60,11 @@ function getStandardFormattedTimestamp(timestamp)
return moment(timestamp).format(); return moment(timestamp).format();
} }
function getSimpleFormattedTimestamp(timestamp)
{
return moment(timestamp).format("YYYY-MM-DD HH:mm");
}
function getStandardFormattedDate(timestamp) function getStandardFormattedDate(timestamp)
{ {
return moment(timestamp).format("YYYY-MM-DD"); return moment(timestamp).format("YYYY-MM-DD");
......
...@@ -26,7 +26,17 @@ ...@@ -26,7 +26,17 @@
{% block content %} {% block content %}
<h1>{% trans "Observations" %}</h1> <h1>{% trans "Observations" %}</h1>
<div class="row">
<div class="col-xs-3">
<div class="form-group">
<select id="pestFilterList" class="form-control" onchange="filterOnPest(this)">
<option value="-1">{% trans "All pests" %}</option>
</select>
</div>
</div>
<div class="col-xs-9">
</div>
</div>
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
...@@ -47,26 +57,73 @@ ...@@ -47,26 +57,73 @@
<script type="text/javascript" src="{% static "js/util.js" %}"></script> <script type="text/javascript" src="{% static "js/util.js" %}"></script>
<script type="text/javascript"> <script type="text/javascript">
var allObservations = []; var allObservations = [];
var allPests = {};
$(document).ready(function() { $(document).ready(function() {
$.getJSON("/vipslogicproxy/rest/observation/broadcast/list/" + settings.vipsOrganizationId, function( json ) { $.getJSON("/vipslogicproxy/rest/observation/broadcast/list/" + settings.vipsOrganizationId, function( json ) {
allObservations = json; allObservations = json;
allObservations.sort(sortObservationMessages).reverse(); allObservations.sort(sortObservationMessages).reverse();
var tableHTML = ""; for(var i in allObservations)
for(var i in allObservations){ {
var observation = allObservations[i]; allPests[allObservations[i].organism.organismId] = allObservations[i].organism;
tableHTML += [
"<tr>",
"<td>",getStandardFormattedTimestamp(observation.timeOfObservation),"</td>",
"<td>", getLocalizedOrganismName(observation.organism)," <i>(", observation.organism.latinName, ")</i></td>",
"<td>", getLocalizedOrganismName(observation.cropOrganism) ," <i>(", observation.cropOrganism.latinName, ")</i></td>",
"<td>", observation.observationHeading, "</td>",
"<td><a href='/observations/", observation.observationId, "'>{% trans "View details" %}</a></td>",
"</tr>"
].join("");
} }
document.getElementById("observationList").innerHTML = tableHTML; renderPestFilterList();
renderObservations(allObservations);
}); });
}); });
function renderObservations(observations)
{
var tableHTML = "";
for(var i in observations){
var observation = observations[i];
tableHTML += [
"<tr>",
"<td>",getSimpleFormattedTimestamp(observation.timeOfObservation),"</td>",
"<td>", getLocalizedOrganismName(observation.organism)," <i>(", observation.organism.latinName, ")</i></td>",
"<td>", getLocalizedOrganismName(observation.cropOrganism) ," <i>(", observation.cropOrganism.latinName, ")</i></td>",
"<td>", observation.observationHeading, "</td>",
"<td><a href='/observations/", observation.observationId, "'>{% trans "View details" %}</a></td>",
"</tr>"
].join("");
}
document.getElementById("observationList").innerHTML = tableHTML;
}
function renderPestFilterList()
{
var pestFilterList = document.getElementById("pestFilterList");
pestFilterList.options.length = 1;
for(var i in allPests)
{
var pestOpt = new Option(getLocalizedOrganismName(allPests[i]), allPests[i].organismId);
pestFilterList.options[pestFilterList.options.length] = pestOpt;
}
}
function filterOnPest(pestFilterList)
{
var selectedPestOrganismId = parseInt(pestFilterList.options[pestFilterList.options.selectedIndex].value);
var filteredObservations = [];
if(selectedPestOrganismId == -1)
{
filteredObservations = allObservations;
}
else
{
for(var i in allObservations)
{
var obs = allObservations[i];
if(obs.organism.organismId == selectedPestOrganismId)
{
filteredObservations.push(obs);
}
}
}
renderObservations(filteredObservations);
}
</script> </script>
{% endblock %} {% endblock %}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment