[bknr-cvs] r2001 - in branches/xml-class-rework/projects/bos: payment-website/static worldpay-test

bknr at bknr.net bknr at bknr.net
Sun Oct 15 21:30:30 UTC 2006


Author: hhubner
Date: 2006-10-15 17:30:30 -0400 (Sun, 15 Oct 2006)
New Revision: 2001

Modified:
   branches/xml-class-rework/projects/bos/payment-website/static/cms.js
   branches/xml-class-rework/projects/bos/worldpay-test/worldpay-test.lisp
Log:
Link statistics to admin menu


Modified: branches/xml-class-rework/projects/bos/payment-website/static/cms.js
===================================================================
--- branches/xml-class-rework/projects/bos/payment-website/static/cms.js	2006-10-15 14:14:22 UTC (rev 2000)
+++ branches/xml-class-rework/projects/bos/payment-website/static/cms.js	2006-10-15 21:30:30 UTC (rev 2001)
@@ -1,3 +1,5 @@
+// This may look like -*- Java -*-, but it really is ECMAScript
+
 // Formularcheck für Sponsoren-Erzeugung
 
 function check_complete_sale() {
@@ -2,44 +4,53 @@
 
-	if (document.form.name.value == "") {
-		alert('Missing name for certificate');
-		return false;
-	}
+    if (document.form.name.value == "") {
+	alert('Missing name for certificate');
+	return false;
+    }
 
-	if (document.form.numsqm.value == ""
-			|| !document.form.numsqm.value.match(/^\d+$/)) {
-		alert('Invalid number of square meters');
-		document.form.numsqm.focus();
-		document.form.numsqm.select();
-		return false;
-	}
+    if (document.form.numsqm.value == ""
+	|| !document.form.numsqm.value.match(/^\d+$/)) {
+	alert('Invalid number of square meters');
+	document.form.numsqm.focus();
+	document.form.numsqm.select();
+	return false;
+    }
 
-	if (!document.form.date.value.match(/^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]$/)) {
-		alert('Invalid date format, use DD.MM.YYYY');
-		return false;
-	}
+    if (!document.form.date.value.match(/^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]$/)) {
+	alert('Invalid date format, use DD.MM.YYYY');
+	return false;
+    }
 
-	var mail_message;
+    var mail_message;
 
-	if (document.form.email.value == "") {
-		mail_message = 'No welcome email will be sent\n';
-	} else {
-		mail_message = 'Welcome email will be sent to ' + document.form.email.value + '\n';
-	}
+    if (document.form.email.value == "") {
+	mail_message = 'No welcome email will be sent\n';
+    } else {
+	mail_message = 'Welcome email will be sent to ' + document.form.email.value + '\n';
+    }
 
-	var send_cert_message;
+    var send_cert_message;
 
-	if (document.form.postaladdress.value.match(/^\s*$/)) {
-		send_cert_message = 'No printed certificate will be mailed\n';
-	} else {
-		send_cert_message = 'Printed certificate will be mailed to:\n' + document.form.postaladdress.value;
-	}
+    if (document.form.postaladdress.value.match(/^\s*$/)) {
+	send_cert_message = 'No printed certificate will be mailed\n';
+    } else {
+	send_cert_message = 'Printed certificate will be mailed to:\n' + document.form.postaladdress.value;
+    }
 
-	var numsqm = document.form.numsqm.value;
-	var price = numsqm * 3;
+    var numsqm = document.form.numsqm.value;
+    var price = numsqm * 3;
 
-	return confirm(numsqm + ' square meters have been bought for ' + price + ' euros\n'
-			+ mail_message
-			+ send_cert_message);
+    return confirm(numsqm + ' square meters have been bought for ' + price + ' euros\n'
+		   + mail_message
+		   + send_cert_message);
 }
 
+function statistic_selected ()
+{
+    var select = document.getElementById('selector');
+    var stats_name = select[select.options.selectedIndex].value;
 
+    document.getElementById('stats').innerHTML
+	= '<embed src="/images/statistics/' + stats_name + '.svg" width="800" height="600" type="image/svg+xml"></embed>';
+
+    return true;
+}

Modified: branches/xml-class-rework/projects/bos/worldpay-test/worldpay-test.lisp
===================================================================
--- branches/xml-class-rework/projects/bos/worldpay-test/worldpay-test.lisp	2006-10-15 14:14:22 UTC (rev 2000)
+++ branches/xml-class-rework/projects/bos/worldpay-test/worldpay-test.lisp	2006-10-15 21:30:30 UTC (rev 2001)
@@ -120,6 +120,24 @@
     (setf contract (find-if #'contract-pdf-pathname (sponsor-contracts (bknr-request-user req)))))
   (redirect (format nil "/certificates/~D.pdf" (store-object-id contract)) req))
 
+(defclass statistics-handler (admin-only-handler prefix-handler)
+  ())
+
+(defmethod handle ((handler statistics-handler) req)
+  (let ((stats-name (parse-url req)))
+    (cond
+      (stats-name
+       (redirect (format nil "~A.svg" stats-name) req))
+      (t
+       (with-bos-cms-page (req :title "Statistics browser")
+	 (:p
+	  ((:select :id "selector" :onchange "return statistic_selected()")
+	   (dolist (file (directory (merge-pathnames #p"images/statistics/*.svg" *website-directory*)))
+	     (html ((:option :value (pathname-name file))
+		    (:princ-safe (pathname-name file)))))))
+	 ((:p :id "stats")
+	  ((:embed :src "/images/statistics/all-contracts.svg" :width 800 :height 600 :type "image/svg+xml") "")))))))
+
 (defclass print-certificate-handler (admin-only-handler object-handler)
   ()
   (:default-initargs :class 'contract))
@@ -209,6 +227,7 @@
 					("/create-contract" create-contract-handler)
 					("/pay-contract" pay-contract-handler)
 					("/cancel-contract" cancel-contract-handler)
+					("/statistics" statistics-handler)
 					("/rss" rss-handler)
 					("/" redirect-handler
 					 :to "/index")
@@ -220,6 +239,7 @@
 		 :modules '(user images stats)
 		 :admin-navigation '(("user" . "user/")
 				     ("sponsor" . "edit-sponsor/")
+				     ("statistics" . "statistics/")
 				     ("news" . "edit-news/")
 				     ("poi" . "edit-poi/")
 				     ("languages" . "languages")




More information about the Bknr-cvs mailing list