[Debtags-commits] [svn] r1939 - in web/trunk: . js

Enrico Zini enrico at costa.debian.org
Fri Sep 22 22:53:30 UTC 2006


Author: enrico
Date: Fri Sep 22 22:53:30 2006
New Revision: 1939

Modified:
   web/trunk/js/debtags.js
   web/trunk/ssearch.html
Log:
Only load package data when needed

Modified: web/trunk/js/debtags.js
==============================================================================
--- web/trunk/js/debtags.js	(original)
+++ web/trunk/js/debtags.js	Fri Sep 22 22:53:30 2006
@@ -222,6 +222,16 @@
 				return true;
 		return false;
 	},
+	toString: function() {
+		var str = "";
+		this.each(function(i){if(str == "") str+=i; else str+=', '+i;});
+		return str;
+	},
+	copy: function() {
+		var res = new Tagset();
+		this.each(function(i){res.add(i);});
+		return res;
+	},
 };
 
 Collection = function() {
@@ -271,6 +281,10 @@
 	packageCount: function() {
 		return this.pcount;
 	},
+	merge: function(coll) {
+		var tmp = this;
+		coll.iterPackages(function(p,t){tmp.addPackage(p,t);});
+	},
 };
 
 Packages = function() {
@@ -297,6 +311,14 @@
 		else
 			return null;
 	},
+	each: function(fun) {
+		for (var i in this.db)
+			fun(i, this.db[i]);
+	},
+	merge: function(pkgs) {
+		var tmp = this;
+		pkgs.each(function(p,d){tmp.add(p,d);});
+	},
 };
 
 

Modified: web/trunk/ssearch.html
==============================================================================
--- web/trunk/ssearch.html	(original)
+++ web/trunk/ssearch.html	Fri Sep 22 22:53:30 2006
@@ -17,6 +17,15 @@
 var available = new Array();
 var coll = new Collection();
 var pkgs = new Packages();
+var baseSearches = new Array();
+
+function needsPackageData()
+{
+	for (var i in baseSearches)
+		if (wanted.contains(baseSearches[i]))
+			return false;
+	return true;
+}
 
 function addToWanted(tag)
 {
@@ -75,12 +84,17 @@
 
 function updateColl()
 {
+	if (!needsPackageData())
+		return;
+	else
+		baseSearches.push(wanted.copy());
+
 	firePKGSQuery(wanted, function(coll,pkgs){
 		var node = document.getElementById("results");
 		node.innerHTML = "Loading package data... ("+coll.packageCount()+")";
 	}, function(c,p){
-		coll = c;
-		pkgs = p;
+		coll.merge(c);
+		pkgs.merge(p);
 		updateResults();
 	}, true);
 }



More information about the Debtags-commits mailing list