From 9882de50cbd6a9c1379a6f1bdbee1beae82ab904 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Fri, 4 Mar 2016 09:53:15 +0100
Subject: [PATCH] Fixed reverse sorting of observations and messages

---
 VIPSWeb/static/js/frontpage.js                | 11 +++++--
 VIPSWeb/static/js/util.js                     | 30 +++++++++++++++++++
 .../templates/observations/index.html         |  1 +
 vips_messages/templates/messages/index.html   |  7 ++++-
 vips_messages/views.py                        |  5 +++-
 5 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/VIPSWeb/static/js/frontpage.js b/VIPSWeb/static/js/frontpage.js
index 704cdcc0..d3846d70 100644
--- a/VIPSWeb/static/js/frontpage.js
+++ b/VIPSWeb/static/js/frontpage.js
@@ -95,14 +95,14 @@ function filterObservations(){
  */
 function renderObservationMessages()
 {
-	// TODO: Sort in reverse chronological order
+	// Sort in reverse chronological order
+	filteredObservations.sort(sortObservationMessages).reverse();
 	var messagesLeftColTBody = document.getElementById("messagesLeftColTBody");
 	messagesLeftColTBody.innerHTML = "";
 	
 	for(var i=0;i<Math.min(3,filteredObservations.length);i++) // Max 4 latest messages
 	{
 		var observation = filteredObservations[i];
-		
 		messagesLeftColTBody.innerHTML += '<tr>\n<td class="dateCell">' + getStandardFormattedDate(observation["timeOfObservation"]) + '</td><td><a href="/observations/' + observation["observationId"] + '">' + observation["observationHeading"] + '</a></td>\n</tr>';
 	}
 }
@@ -127,6 +127,9 @@ function cacheMessages()
  */
 function renderMessages()
 {
+	// Sorting in reverse chronological order
+	filteredMessages.sort(sortMessages).reverse();
+	
 	var messagesRightColTBody = document.getElementById("messagesRightColTBody");
 	messagesRightColTBody.innerHTML = "";
 	
@@ -444,6 +447,10 @@ var sortForecastSummaries = function(a,b){
 	return 1;
 }
 
+
+
+
+
 /**
  * Returns the localized status message
  * @param warningStatus
diff --git a/VIPSWeb/static/js/util.js b/VIPSWeb/static/js/util.js
index cc08cf6d..f6dd4d5e 100644
--- a/VIPSWeb/static/js/util.js
+++ b/VIPSWeb/static/js/util.js
@@ -255,4 +255,34 @@ function getLocalizedOrganismName(organism)
 
 function capitalizeFirstLetter(string) {
     return string && string.charAt(0).toUpperCase() + string.slice(1);
+}
+
+var sortMessages = function(a,b)
+{
+	var momentA = moment(a.datePub);
+	var momentB = moment(b.datePub);
+	if(momentA.isBefore(momentB))
+	{
+		return -1;
+	}
+	if(momentA.isSame(momentB))
+	{
+		return 0;
+	};
+	return 1;
+}
+
+var sortObservationMessages = function(a,b)
+{
+	var momentA = moment(a.timeOfObservation);
+	var momentB = moment(b.timeOfObservation);
+	if(momentA.isBefore(momentB))
+	{
+		return -1;
+	}
+	if(momentA.isSame(momentB))
+	{
+		return 0;
+	};
+	return 1;
 }
\ No newline at end of file
diff --git a/observations/templates/observations/index.html b/observations/templates/observations/index.html
index ee0247ad..c369eb77 100644
--- a/observations/templates/observations/index.html
+++ b/observations/templates/observations/index.html
@@ -49,6 +49,7 @@
 	$(document).ready(function() {
 		$.getJSON("http://" + settings.vipslogicServerName + "/rest/observation/list/" + settings.vipsOrganizationId, function( json ) {
 			allObservations = json;
+			allObservations.sort(sortObservationMessages).reverse();
 			var tableHTML = "";
 			for(var i in allObservations){
 				var observation = allObservations[i];
diff --git a/vips_messages/templates/messages/index.html b/vips_messages/templates/messages/index.html
index 59c88d71..2e1d7c90 100644
--- a/vips_messages/templates/messages/index.html
+++ b/vips_messages/templates/messages/index.html
@@ -58,11 +58,13 @@
 {% endblock %}
 {% block extendJS%}
 <script src="{% static "js/3rdparty/chosen.jquery.min.js" %}"></script>
+<script type="text/javascript" src="{% static "js/3rdparty/moment.min.js" %}"></script>
+<script src="{% static "js/util.js" %}"></script>
 {% endblock %}
 {% block customJS%}
 <script type="text/javascript">
 	var messageList = [
-	{% for message in messages reversed %}
+	{% for message in messages %}
 	{
 		datePub:"{{ message.date_pub | date:"Y-m-d"}}",
 		heading:"{{ message.heading | escapejs }}",
@@ -84,6 +86,9 @@
 	{
 		var messageListEl = document.getElementById("messageListEl");
 		var HTML = "";
+		
+		messageListSubset.sort(sortMessages).reverse();
+		
 		for(var i in messageListSubset)
 		{
 			var listItem = messageListSubset[i];
diff --git a/vips_messages/views.py b/vips_messages/views.py
index db691f28..1460ea5a 100644
--- a/vips_messages/views.py
+++ b/vips_messages/views.py
@@ -39,7 +39,10 @@ def index(request):
                               )
     else:
         messages = Message.get_messages(translation.get_language())
-        
+    
+    # Sort the messages
+    
+    
     crops = Organism.get_all_crops()    
     
     context = {
-- 
GitLab