[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