You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@steve.apache.org by hu...@apache.org on 2016/02/07 10:37:34 UTC

svn commit: r1728932 - /steve/trunk/pysteve/www/htdocs/js/steve_monitor.js

Author: humbedooh
Date: Sun Feb  7 09:37:33 2016
New Revision: 1728932

URL: http://svn.apache.org/viewvc?rev=1728932&view=rev
Log:
start using backlog instead

Modified:
    steve/trunk/pysteve/www/htdocs/js/steve_monitor.js

Modified: steve/trunk/pysteve/www/htdocs/js/steve_monitor.js
URL: http://svn.apache.org/viewvc/steve/trunk/pysteve/www/htdocs/js/steve_monitor.js?rev=1728932&r1=1728931&r2=1728932&view=diff
==============================================================================
--- steve/trunk/pysteve/www/htdocs/js/steve_monitor.js (original)
+++ steve/trunk/pysteve/www/htdocs/js/steve_monitor.js Sun Feb  7 09:37:33 2016
@@ -54,6 +54,8 @@ var recasts = {}
 var recasters = {}
 var rigged = false
 var riggedIssues = {}
+var backlog = {}
+var oldbacklog = {}
 
 function saveData(election) {
     if (typeof(window.localStorage) !== "undefined" ) {
@@ -65,7 +67,9 @@ function saveData(election) {
             recasts: recasts,
             recasters: recasters,
             rigged: rigged,
-            riggedIssues: riggedIssues
+            riggedIssues: riggedIssues,
+            backlog: backlog,
+            oldbacklog: oldbacklog
         }
         window.localStorage.setItem("monitor_" + election, JSON.stringify(js))
     }
@@ -83,7 +87,9 @@ function fetchData(election) {
             recasts = js.recasts
             recasters = js.recasters
             rigged = js.rigged
-            riggedIssues = js.riggedIssues
+            riggedIssues = js.riggedIssues,
+            backlog = js.backlog,
+            oldbacklog = js.oldbacklog
         }
     }
 }
@@ -109,7 +115,22 @@ function updateVotes(code, response, iss
     if (code == 200) {
         recasters[issue] = recasters[issue] ? recasters[issue] : {}
         oldvotes[issue] = votes[issue] ? votes[issue] : {}
-        votes[issue] = response.votes
+        oldbacklog[issue] = backlog[issue]
+        backlog[issue] = response.history
+        votes[issue] = {}
+        var founduid = {}
+        recasts[issue] = 0
+        for (var i in backlog[issue]) {
+            var vote = backlog[issue][i]
+            if (founduid[vote.uid]) {
+                recasts[issue]++;
+            }
+            founduid[vote.uid] = true
+            votes[issue][vote.uid] = {
+                timestamp: vote.timestamp,
+                vote: vote.vote
+            }
+        }
         var is = {}
         for (i in issues) {
             if (issues[i].id == issue) {
@@ -126,35 +147,13 @@ function updateVotes(code, response, iss
         if (ehash != response.hash) {
             rigged = true
         }
-        recasts[issue] = recasts[issue] ? recasts[issue] : 0
+        
     } else if (response.message == "Issue not found") {
         var header = document.getElementById('issue_' + issue + "_header")
         header.innerHTML = "<font color='red'><b>Issue deleted?: " + response.message + "</b></font>"
     }
 }
 
-function calcChanges(issue, oldv, newv) {
-    sinceLast = 0;
-    
-    
-    // Find new votes cast since last update
-    if (!oldv || !newv) {
-        return [0,0]
-    }
-    for (i in newv) {
-        if (!oldv[i]) {
-            sinceLast++;
-        } else if (oldv[i].timestamp != undefined && newv[i].timestamp != undefined && oldv[i].timestamp != newv[i].timestamp) {
-            recasts[issue]++;
-            recasters[issue][i] = (recasters[issue][i] ? recasters[issue][i] : 0) + 1
-        }
-    }
-    var nrc = 0;
-    for (i in recasters[issue]) nrc++;
-    
-    return [sinceLast, nrc]
-}
-
 var timeouts = {}
 
 function showDetails(issueid, update) {
@@ -167,7 +166,12 @@ function showDetails(issueid, update) {
         for (i in votes[issueid]) {
             var rawvote = votes[issueid][i]
             var vote = null
-            var nrc = recasters[issueid][i] ? recasters[issueid][i] : 0
+            var nrc = -1
+            for (var n in backlog[issueid]) {
+                if (backlog[issueid][n].uid == i) {
+                    nrc++
+                }
+            }
             var add = ""
             if (rawvote.timestamp) {
                 vote = rawvote.vote
@@ -222,8 +226,16 @@ function showChanges(issue) {
         if (numvotes > 0) {
             var v = votes[issue.id]
             var a = calcChanges(issue.id, oldvotes[issue.id], v)
-            sinceLast = a[0]
-            nrc = a[1]
+            sinceLast = (backlog[issue] || 0) - (oldbacklog[issue] || 0)
+            nrc = 0
+            var fuid = {}
+            for (var z in backlog[issue.id]) {
+                var v = backlog[issue.id][z]
+                fuid[v.uid] = true
+            }
+            for (var x in fuid) {
+                nrc++;
+            }
             header.innerHTML = ""
             if (riggedIssues[issue.id] && riggedIssues[issue.id].length > 0) {
                 header.innerHTML += "<a href='#' onclick=\"alert(riggedIssues['" + issue.id + "']);\"><font color='red'>ISSUE POSSIBLY RIGGED! </font></a><br/> "
@@ -236,7 +248,7 @@ function showChanges(issue) {
         }
     }
     saveData(eid)
-    getJSON("/steve/admin/monitor/" + eid + "/" + issue.id, issue.id, updateVotes)
+    getJSON("/steve/admin/backlog/" + eid + "/" + issue.id, issue.id, updateVotes)
     
 }