diff --git a/asterix-app/src/main/resources/feed/dashboard.html b/asterix-app/src/main/resources/feed/dashboard.html
index aa25bd8..365f2f5 100644
--- a/asterix-app/src/main/resources/feed/dashboard.html
+++ b/asterix-app/src/main/resources/feed/dashboard.html
@@ -36,6 +36,13 @@
 
          
         function onFeedReportReceived(data) {
+            var type = data["type"];
+            if (type == ("reload")) {
+              ingestLocations  = data["ingestLocations"];
+              computeLocations = data["computeLocations"];
+              storageLocations = data["storageLocations"];
+              document.location.reload(true);
+            } else {
             var report = data["value"];
             var tputArray = report.split("|");
             var covered = 0;
@@ -49,6 +56,7 @@
                 ingestionTimeSeries[j].append(data["time"], 0);
             }          
             ingestionTimeSeries[numIngestionNodes].append(data["time"], totalTput);
+            }
         }
 
         function myYRangeFunction(range) {
@@ -60,7 +68,7 @@
         function initTimeline(ingestLocations) {
 
           document.write("<i>" + "Feed Ingestion" + "<i>");
-          document.write("<br />" + "Ingestion Locations: " + ingestLocations);
+          document.write("<br />" + "Ingestion Locations: " + computeLocations);
           document.write("<br />" + "Compute Locations: " + computeLocations);
           document.write("<br />" + "Storage Locations: " + storageLocations);
           document.write("<br />" + "Ingestion Policy: " + ingestionPolicy);
@@ -69,7 +77,7 @@
           document.write("<br />");
     
           for( var i = 0; i < numIngestionNodes; i++){
-              graphNames[i] = ingestionNodes[i];
+              graphNames[i] = "Partition " + i;
           }          
 
           if(numIngestionNodes > 1){
