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

Enrico Zini enrico at alioth.debian.org
Fri Nov 17 13:29:42 CET 2006


Author: enrico
Date: Fri Nov 17 13:29:42 2006
New Revision: 2073

Added:
   web/trunk/js/uuid.js
Modified:
   web/trunk/edit.html
   web/trunk/js/debtags.js
   web/trunk/js/test.html
Log:
Implemented session tracking

Modified: web/trunk/edit.html
==============================================================================
--- web/trunk/edit.html	(original)
+++ web/trunk/edit.html	Fri Nov 17 13:29:42 2006
@@ -8,6 +8,7 @@
   <meta name="Author"    content="Enrico Zini, enrico at debian.org">
   <link rev="made" href="mailto:enrico at debian.org">
   <link href="main.css" rel="stylesheet" type="text/css">
+  <script src="js/uuid.js"></script>
   <script src="js/vocabulary.js"></script>
   <script src="js/debtags.js"></script>
   <script type="text/javascript">
@@ -19,6 +20,7 @@
 var relevant = new Array();
 var suggested = new Array();
 var atcurfacet = "use";
+var sessionTag = sessionTag();
 
 function setPackage(p)
 {
@@ -223,7 +225,7 @@
 			// If successful, refresh package info
 			if (res[0] == "200 OK")
 				setPackage(pkg);
-	}, false);
+	}, false, sessionTag);
 }
   //-->
   </script>

Modified: web/trunk/js/debtags.js
==============================================================================
--- web/trunk/js/debtags.js	(original)
+++ web/trunk/js/debtags.js	Fri Nov 17 13:29:42 2006
@@ -244,13 +244,63 @@
 	);
 }
 
-function fireSubmitPatch(patch, progressFunc, finalFunc, async)
+function fireSubmitPatch(patch, progressFunc, finalFunc, async, tag)
 {
 	var content = "patch="+encodeURIComponent(patch);
+	if (tag) content += "&tag="+encodeURIComponent(tag);
 	runPostRequest(QUERY_BASE + "/patch", content, progressFunc, finalFunc, async);
 }
 
 //
+// Cookies
+//
+
+// From http://www.quirksmode.org/js/cookies.html
+function createCookie(name,value,days)
+{
+	if (days)
+	{
+		var date = new Date();
+		date.setTime(date.getTime()+(days*24*60*60*1000));
+		var expires = "; expires="+date.toGMTString();
+	}
+	else
+		var expires = "";
+	document.cookie = name+"="+value+expires+"; path=/";
+}
+
+// From http://www.quirksmode.org/js/cookies.html
+function readCookie(name)
+{
+	var nameEQ = name + "=";
+	var ca = document.cookie.split(';');
+	for(var i=0;i < ca.length;i++) {
+		var c = ca[i];
+		while (c.charAt(0)==' ') c = c.substring(1,c.length);
+		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+	}
+	return null;
+}
+
+// From http://www.quirksmode.org/js/cookies.html
+function eraseCookie(name) {
+	createCookie(name,"",-1);
+}
+
+// Retrieve or create a session identification tags
+function sessionTag()
+{
+	var oldTag = readCookie("session");
+	if (oldTag == null)
+		oldTag = new UUID();
+
+	// Create or refresh the cookie
+	createCookie("session", oldTag, 14);
+
+	return oldTag;
+}
+
+//
 // Debtags infrastructure
 //
 

Modified: web/trunk/js/test.html
==============================================================================
--- web/trunk/js/test.html	(original)
+++ web/trunk/js/test.html	Fri Nov 17 13:29:42 2006
@@ -10,6 +10,7 @@
   <link href="main.css" rel="stylesheet" type="text/css">
   <!--script src="http://debtags.alioth.debian.org/packagebrowser/vocabulary.js"></script-->
   <script src="vocabulary.js"></script>
+  <script src="uuid.js"></script>
   <script src="debtags.js"></script>
 </head>
 <body>
@@ -198,6 +199,10 @@
   ensure_equals("sync query has no partial events", count, 1);
   ensure_equals("submit of patch should succeed", result[0], "200 OK");
 
+var t = sessionTag();
+var t1 = sessionTag();
+  ensure_equals("session tags must not change", t, t1);
+
 /*
 var a = {};
 a["antani"] = "blinda";



More information about the Debtags-commits mailing list