r9894 - apps/gobi/trunk/code/Updates

[email protected] Tue, 15 Sep 2009 00:04:49 +0200 (CEST)
Newsgroups gmane.comp.java.helma.cvs
Message-ID <20090914220449.12E513D0E3@mia>
Author: hannes
Date: 2009-09-15 00:04:48 +0200 (Tue, 15 Sep 2009)
New Revision: 9894

Modified:
   apps/gobi/trunk/code/Updates/Updates.js
Log:
Quick fix for lousy updates page performance.

Details at http://dev.helma.org/trac/helma/changeset/9894

Modified: apps/gobi/trunk/code/Updates/Updates.js
===================================================================
--- apps/gobi/trunk/code/Updates/Updates.js	2009-09-14 20:14:15 UTC (rev 9893)
+++ apps/gobi/trunk/code/Updates/Updates.js	2009-09-14 22:04:48 UTC (rev 9894)
@@ -59,7 +59,7 @@
         this.calendar_macro(param);
         return;
     }
-    var items = this.getLinks(new RegExp("^update:"), Link.OUT, {reverse: true});
+    var items = this.links_out.list().reverse();
     var pattern = new RegExp(req.data.day || req.data.month || "");
     // style for listing table
     var tableStyle = {
@@ -75,10 +75,9 @@
     var table = new Html.TableWriter(4, tableStyle);
     var i, date, lastDay, month, first = true;
     for (i = 0; i < items.length; i++) {
-        var link = items[i];
-        var day = link.type.substring(7, 17);
-        if (!pattern.test(day) || !link.target ||
-            !link.target.checkAccess || !link.target.checkAccess("main")) {
+        var group = items[i];
+        var day = group.groupname.substring(7, 17);
+        if (!pattern.test(day)) {
             lastDay = day;
             if (!first) {
                 break;
@@ -95,6 +94,7 @@
             }
         }
         if (day.indexOf(month) != 0) {
+            lastDay = day;
             break;
         }
         if (day != lastDay) {
@@ -110,36 +110,40 @@
             table.write("Author", {"class": "caption"});
             table.write("Change", {"class": "caption"});
         }
-        var time = link.type.length <= 18 ? "" : link.type.substring(18);
-        if (time && time.length == 8)
-            table.write(timeFormat.format(time.toDate("HH.mm.ss")));
-        else
-            table.write();
-        var info = eval(link.info) || {};
-        if (global.SvnBrowser && link.target instanceof SvnBrowser) {
-            var rev = link.target.getPage("changeset/" + info.revision);
-            table.write(rev.getHtmlLink());
-            table.write(info.user);
-            res.push();
-            res.encode(rev.message_macro({}) || "");
-            res.write(rev.files_macro({}) || "");
-            table.write(res.pop());
-        } else {
-            table.write(link.target.getHtmlLink());
-            var userPage = info.user ? Page.getById(info.user) : null;
-            table.write(userPage? userPage.getHtmlLink() : "");
-            var diffPage = info.id ? Page.getById(info.id) : null;
-            if (diffPage) {
-                var index = link.target.version_history.contains(diffPage) + 1;
-                if (index > 1) {
-                    var diff = Html.Link({href: link.target.href("history.diff") + "?v=" + index});
-                    diff.add(info.description || "version " + index);
-                    table.write(diff)
+        var links = group.list().reverse();
+        for (var j in links) {
+            var link = links[j];
+            var time = link.type.length <= 18 ? "" : link.type.substring(18);
+            if (time && time.length == 8)
+                table.write(timeFormat.format(time.toDate("HH.mm.ss")));
+            else
+                table.write();
+            var info = eval(link.info) || {};
+            if (global.SvnBrowser && link.target instanceof SvnBrowser) {
+                var rev = link.target.getPage("changeset/" + info.revision);
+                table.write(rev.getHtmlLink());
+                table.write(info.user);
+                res.push();
+                res.encode(rev.message_macro({}) || "");
+                res.write(rev.files_macro({}) || "");
+                table.write(res.pop());
+            } else {
+                table.write(link.target.getHtmlLink());
+                var userPage = info.user ? Page.getById(info.user) : null;
+                table.write(userPage? userPage.getHtmlLink() : "");
+                var diffPage = info.id ? Page.getById(info.id) : null;
+                if (diffPage) {
+                    var index = link.target.version_history.indexOf(diffPage) + 1;
+                    if (index > 1) {
+                        var diff = Html.Link({href: link.target.href("history.diff") + "?v=" + index});
+                        diff.add(info.description || "version " + index);
+                        table.write(diff)
+                    } else {
+                       table.write("");
+                    }
                 } else {
-                   table.write("");
+                    table.write(info.description);
                 }
-            } else {
-                table.write(info.description);
             }
         }
     }