Index: /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx
===================================================================
--- /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx	(revision 9024)
+++ /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx	(revision 9025)
@@ -37,4 +37,7 @@
     <asp:Label ID="slavesLabel" runat="server" />
       <br />
+      Groups:
+    <asp:Label ID="groupsLabel" runat="server" />
+      <br />
       <br />
       Number of Calculating Tasks by User:<asp:Table ID="calculatingTasksByUserTable" runat="server" GridLines="Both">
@@ -74,5 +77,5 @@
     <br />
     Avg. CPU Utilization History of all Slaves<br />
-    <asp:Chart ID="cpuUtilizationChart" runat="server" Height="270px" Width="1900px">
+    <asp:Chart ID="cpuUtilizationChart" runat="server" Height="270px" Width="1280px">
       <Series>
         <asp:Series BorderWidth="2" ChartType="Line" Color="0, 176, 80" Name="Series1" XValueType="DateTime"
@@ -96,5 +99,5 @@
     <br />
     Cores/Used Cores History<br />
-    <asp:Chart ID="coresChart" runat="server" Palette="None" Width="1900px" PaletteCustomColors="137, 165, 78; 185, 205, 150">
+    <asp:Chart ID="coresChart" runat="server" Palette="None" Width="1280px" PaletteCustomColors="137, 165, 78; 185, 205, 150">
       <Series>
         <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
@@ -121,5 +124,5 @@
     Memory/Used Memory History (GB)<br />
     <asp:Chart ID="memoryChart" runat="server" Palette="None" PaletteCustomColors="170, 70, 67; 209, 147, 146"
-      Width="1900px">
+      Width="1280px">
       <Series>
         <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
Index: /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx.cs
===================================================================
--- /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx.cs	(revision 9024)
+++ /trunk/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Status.aspx.cs	(revision 9025)
@@ -44,4 +44,9 @@
     Dictionary<Guid, int> calculatingTasksByUser = new Dictionary<Guid,int>();
     Dictionary<Guid, int> waitingTasksByUser = new Dictionary<Guid, int>();
+    List<DT.Resource> groups = new List<DT.Resource>();
+
+    transactionManager.UseTransaction(() => {
+       groups = dao.GetResources(x => x.ResourceType == "GROUP").ToList();
+    }, false, false);    
 
     if (!string.IsNullOrEmpty(resourceName)) {
@@ -76,7 +81,8 @@
 
     slavesLabel.Text = string.Join(", ", onlineSlaves.Select(x => string.Format("<a href=\"?resource={0}\">{0}</a> ({1} %)", x.Name, Math.Round(x.CpuUtilization, 2))));
+    groupsLabel.Text = string.Join(", ", groups.Select(x => string.Format("<a href=\"?resource={0}\">{0}</a>", x.Name)));
 
     overallCpuUtilizationLabel.Text = (onlineSlaves.Count() > 0 ? Math.Round(onlineSlaves.Average(s => s.CpuUtilization), 2).ToString() : "0.0") + " %";
-    cpuUtilizationLabel.Text = (onlineSlaves.Count() > 0 ? Math.Round(onlineSlaves.Where(x => x.IsAllowedToCalculate).Average(s => s.CpuUtilization), 2).ToString() : "0.0") + " %";
+    cpuUtilizationLabel.Text = (onlineSlaves.Count() > 0 && onlineSlaves.Where(x => x.IsAllowedToCalculate).Count() > 0 ? Math.Round(onlineSlaves.Where(x => x.IsAllowedToCalculate).Average(s => s.CpuUtilization), 2).ToString() : "0.0") + " %";
 
     DT.Statistics[] stats = new DT.Statistics[0];    
Index: /trunk/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs
===================================================================
--- /trunk/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9024)
+++ /trunk/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9025)
@@ -639,11 +639,15 @@
     public IEnumerable<DT.Resource> GetChildResources(Guid resourceId) {
       using (var db = CreateContext()) {
-        var childs = new List<DT.Resource>();
-        foreach (var child in db.Resources.Where(x => x.ParentResourceId == resourceId)) {
-          childs.Add(DT.Convert.ToDto(child));
-          childs.AddRange(GetChildResources(child.ResourceId));
-        }
-        return childs;
-      }
+        return CollectChildResources(resourceId, db);
+      }
+    }
+
+    public IEnumerable<DT.Resource> CollectChildResources(Guid resourceId, HiveDataContext db) {
+      var childs = new List<DT.Resource>();
+      foreach (var child in db.Resources.Where(x => x.ParentResourceId == resourceId)) {
+        childs.Add(DT.Convert.ToDto(child));
+        childs.AddRange(CollectChildResources(child.ResourceId, db));
+      }
+      return childs;
     }
 
@@ -842,7 +846,7 @@
       using (var db = CreateContext()) {
         var calculatingTasksByUser = from task in db.Tasks
-                              where task.State == TaskState.Calculating
-                              group task by task.Job.OwnerUserId into g
-                              select new { UserId = g.Key, UsedCores = g.Count() };
+                                     where task.State == TaskState.Calculating
+                                     group task by task.Job.OwnerUserId into g
+                                     select new { UserId = g.Key, UsedCores = g.Count() };
         return calculatingTasksByUser.ToDictionary(x => x.UserId, x => x.UsedCores);
       }
