diff --git a/static/moderator.js b/static/moderator.js
index ed9cb376f85ca7512b3d98e60bbdfcec5afc1bd6..e7ee4f5c59bd5978a0e1850c4f32b00b778b0211 100644
--- a/static/moderator.js
+++ b/static/moderator.js
@@ -250,56 +250,63 @@ var moderator = {
 			}
 		}
 	},
+	plots: {
+		init: function() {
+			$(window).on("resize", moderator.plots.resize);
+			$(".plotlyresize").on("click", moderator.plots.resize);
+			moderator.plots.createplots(".plot-view")
+		},
+		resize: function() {
+			$(".plot-view").each(function () {Plotly.Plots.resize(this)});
+		},
+		createplots: function (selector) {
+			var l = $(selector);
+			for (var i = 0; i < l.length; i ++) {
+				if (!l[i].id)
+					l[i].id = "plot-"+i;
+				$(l[i]).html('<div class="plot-loader"></div>');
+				$.ajax({
+					divobj: l[i],
+					method: "GET",
+					url: l[i].dataset.url,
+					dataType: "json",
+					error: function (jqXHR, textStatus, errorThrow) {
+						$(this.divobj).html('<div class="plot-error">'+errorThrow+'</div>');
+					},
+					success: function (traces) {
+						var layout = {margin: {l: 30, r: 30, t: 10, b: 70, pad: 0}};
+						for (var i = 0; i < traces.length; i ++) {
+							traces[i].type = this.divobj.dataset.type;
+						}
+						if (this.divobj.dataset.type == "pie")
+							layout.showlegend = false;
+						traces.sort(function (a, b) {
+							asum = 0;
+							bsum = 0;
+							for (var i = 0; i < a.y.length; i++)
+								asum += a.y[i]
+							for (var i = 0; i < b.y.length; i++)
+								bsum += b.y[i]
+							return bsum-asum;
+						});
+						for (var i = 0; i < traces.length; i++)
+							if (i > 20)
+								traces[i].visible = "legendonly";
+						$(this.divobj).html("");
+						Plotly.newPlot(this.divobj.id, traces, layout, { "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false});
+					}
+				});
+			};
+		},
+	},
 	init: function () {
 		moderator.api.init();
 		moderator.editor.init();
 		moderator.permissioneditor.init();
+		moderator.plots.init();
 	}
 };
 
 $( document ).ready( function () {
 	moderator.init(); 
 } );
-
-$( document ).ready( function () {
-  var l = $(".plot-view");
-  for (var i = 0; i < l.length; i ++) {
-    if (!l[i].id)
-      l[i].id = "plot-"+i;
-		$(l[i]).html('<div class="plot-loader"></div>');
-    $.ajax({
-      divobj: l[i],
-      method: "GET",
-      url: l[i].dataset.url,
-      dataType: "json",
-			error: function (jqXHR, textStatus, errorThrow) {
-				$(this.divobj).html('<div class="plot-error">'+errorThrow+'</div>');
-			},
-      success: function (traces) {
-				var layout = {margin: {l: 30, r: 30, t: 10, b: 70, pad: 0}};
-				for (var i = 0; i < traces.length; i ++) {
-					traces[i].type = this.divobj.dataset.type;
-				}
-				if (this.divobj.dataset.type == "pie")
-					layout.showlegend = false;
-				traces.sort(function (a, b) {
-					asum = 0;
-					bsum = 0;
-					for (var i = 0; i < a.y.length; i++)
-						asum += a.y[i]
-					for (var i = 0; i < b.y.length; i++)
-						bsum += b.y[i]
-					return bsum-asum;
-				});
-				for (var i = 0; i < traces.length; i++)
-					if (i > 20)
-						traces[i].visible = "legendonly";
-				$(this.divobj).html("");
-        Plotly.newPlot(this.divobj.id, traces, layout, { "modeBarButtonsToRemove": ['sendDataToCloud','hoverCompareCartesian'], "displaylogo": false});
-      }
-    });
-  };
-});
-$(window).on("resize", function () {
-	$(".plot-view").each(function () {Plotly.Plots.resize(this)});
-});