From 72633de4757587d7629dc42b41b8923c7c3d675f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 02 Oct 2011 16:54:07 -0400
Subject: [PATCH] Calculate repository sizes in Gitblit instead of the page.

---
 src/com/gitblit/GitBlit.java                         |    5 +++++
 src/com/gitblit/wicket/panels/RepositoriesPanel.java |   15 ++-------------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 73ec29e..1727038 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -62,6 +62,7 @@
 import com.gitblit.models.FederationSet;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.utils.ByteFormat;
 import com.gitblit.utils.FederationUtils;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.JsonUtils;
@@ -530,6 +531,10 @@
 			model.origin = config.getString("remote", "origin", "url");
 		}
 		r.close();
+		if (getBoolean(Keys.web.showRepositorySizes, true)) {
+			ByteFormat byteFormat = new ByteFormat();
+			model.size = byteFormat.format(calculateSize(model));			
+		}
 		return model;
 	}
 
diff --git a/src/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/com/gitblit/wicket/panels/RepositoriesPanel.java
index 63b512c..709ad82 100644
--- a/src/com/gitblit/wicket/panels/RepositoriesPanel.java
+++ b/src/com/gitblit/wicket/panels/RepositoriesPanel.java
@@ -47,7 +47,6 @@
 import com.gitblit.SyndicationServlet;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
-import com.gitblit.utils.ByteFormat;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.utils.TimeUtils;
 import com.gitblit.wicket.GitBlitWebSession;
@@ -71,12 +70,6 @@
 		if (models == null) {
 			linksActive = true;
 			models = GitBlit.self().getRepositoryModels(user);
-			final ByteFormat byteFormat = new ByteFormat();
-			if (showSize) {
-				for (RepositoryModel model : models) {
-					model.size = byteFormat.format(GitBlit.self().calculateSize(model));
-				}
-			}
 		} else {
 			// disable links if the repositories are already provided
 			// the repositories are most likely from a proposal
@@ -125,7 +118,7 @@
 		} else {
 			dp = new SortableRepositoriesProvider(models);
 		}
-		
+
 		final String baseUrl = WicketUtils.getGitblitURL(getRequest());
 
 		DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("row", dp) {
@@ -163,11 +156,7 @@
 
 				if (entry.hasCommits) {
 					// Existing repository
-					if (showSize) {
-						row.add(new Label("repositorySize", entry.size));
-					} else {
-						row.add(new Label("repositorySize").setVisible(false));
-					}
+					row.add(new Label("repositorySize", entry.size).setVisible(showSize));
 				} else {
 					// New repository
 					row.add(new Label("repositorySize", "<span class='empty'>(empty)</span>")

--
Gitblit v1.9.1