From bknr at bknr.net Tue Jul 1 14:10:38 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:38 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/web/tags.lisp Message-ID: Revision: 3393 Author: hans URL: http://bknr.net/trac/changeset/3393 Add set-cacheable tag U trunk/projects/bos/web/tags.lisp Modified: trunk/projects/bos/web/tags.lisp =================================================================== --- trunk/projects/bos/web/tags.lisp 2008-06-30 14:18:32 UTC (rev 3392) +++ trunk/projects/bos/web/tags.lisp 2008-07-01 09:18:11 UTC (rev 3393) @@ -193,3 +193,5 @@ ((:script :type "text/javascript") (:princ #?"if (_gat) { var pageTracker = _gat._getTracker('$(*google-analytics-account*)'); pageTracker._initData(); pageTracker._trackPageview(); }")))) +(define-bknr-tag set-cachable () + (setf (hunchentoot:header-out :cache-control) "max-age=300")) \ No newline at end of file From bknr at bknr.net Tue Jul 1 14:10:41 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:41 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/payment-website/templates/de/idea.xml Message-ID: Revision: 3394 Author: hans URL: http://bknr.net/trac/changeset/3394 Set cacheable for tries. U trunk/projects/bos/payment-website/templates/de/idea.xml Modified: trunk/projects/bos/payment-website/templates/de/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/idea.xml 2008-07-01 09:18:11 UTC (rev 3393) +++ trunk/projects/bos/payment-website/templates/de/idea.xml 2008-07-01 09:18:33 UTC (rev 3394) @@ -6,8 +6,8 @@ title="REGENWALD f??r SAMBOJA LESTARI" xmlns="http://www.w3.org/1999/xhtml" xmlns:bknr="http://bknr.net" - xmlns:bos="http://headcraft.de/bos" - > + xmlns:bos="http://headcraft.de/bos"> +
@@ -119,4 +119,4 @@
- \ No newline at end of file + From bknr at bknr.net Tue Jul 1 14:10:45 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:45 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3397 Author: ksprotte URL: http://bknr.net/trac/changeset/3397 imported two new sessions to tsung.xml U trunk/projects/bos/test/tsung.xml Change set too large, please see URL above From bknr at bknr.net Tue Jul 1 14:10:42 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:42 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/templates/ Message-ID: Revision: 3395 Author: ksprotte URL: http://bknr.net/trac/changeset/3395 added in all languages U trunk/projects/bos/payment-website/templates/da/bestellung.xml U trunk/projects/bos/payment-website/templates/da/bos.xml U trunk/projects/bos/payment-website/templates/da/contact.xml U trunk/projects/bos/payment-website/templates/da/headline2.xml U trunk/projects/bos/payment-website/templates/da/headline3.xml U trunk/projects/bos/payment-website/templates/da/idea.xml U trunk/projects/bos/payment-website/templates/da/impressum.xml U trunk/projects/bos/payment-website/templates/da/index.xml U trunk/projects/bos/payment-website/templates/da/privacy.xml U trunk/projects/bos/payment-website/templates/de/bestellung.xml U trunk/projects/bos/payment-website/templates/de/bos.xml U trunk/projects/bos/payment-website/templates/de/contact.xml U trunk/projects/bos/payment-website/templates/de/headline2.xml U trunk/projects/bos/payment-website/templates/de/headline3.xml U trunk/projects/bos/payment-website/templates/de/impressum.xml U trunk/projects/bos/payment-website/templates/de/index.xml U trunk/projects/bos/payment-website/templates/de/privacy.xml U trunk/projects/bos/payment-website/templates/en/bestellung.xml U trunk/projects/bos/payment-website/templates/en/bos.xml U trunk/projects/bos/payment-website/templates/en/contact.xml U trunk/projects/bos/payment-website/templates/en/headline2.xml U trunk/projects/bos/payment-website/templates/en/headline3.xml U trunk/projects/bos/payment-website/templates/en/idea.xml U trunk/projects/bos/payment-website/templates/en/impressum.xml U trunk/projects/bos/payment-website/templates/en/index.xml U trunk/projects/bos/payment-website/templates/en/privacy.xml Modified: trunk/projects/bos/payment-website/templates/da/bestellung.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/bestellung.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/bestellung.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/bos.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/bos.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/bos.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/contact.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/contact.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/contact.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/headline2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/headline2.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/headline2.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/headline3.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/headline3.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/headline3.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/idea.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/idea.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/da/impressum.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/impressum.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/impressum.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Imprint

www.create-rainforest.org is a webpage by:

Modified: trunk/projects/bos/payment-website/templates/da/index.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/index.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/index.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +

@@ -107,3 +108,4 @@
+ Modified: trunk/projects/bos/payment-website/templates/da/privacy.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/privacy.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/da/privacy.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -1,6 +1,7 @@ +

Privacy Policy for BOS Danmark

Modified: trunk/projects/bos/payment-website/templates/de/bestellung.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/bestellung.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/bestellung.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -7,6 +7,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

@@ -233,4 +234,4 @@
-
\ No newline at end of file + Modified: trunk/projects/bos/payment-website/templates/de/bos.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/bos.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/bos.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/de/contact.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/contact.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/contact.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/de/headline2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/headline2.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/headline2.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/de/headline3.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/headline3.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/headline3.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
@@ -58,4 +59,4 @@
-
\ No newline at end of file + Modified: trunk/projects/bos/payment-website/templates/de/impressum.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/impressum.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/impressum.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Imprint

www.create-rainforest.org ist eine Webseite von:

Modified: trunk/projects/bos/payment-website/templates/de/index.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/index.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/index.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,8 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > + +

Modified: trunk/projects/bos/payment-website/templates/de/privacy.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/privacy.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/de/privacy.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Datenschutzgrunds??tze (Privacy Policy) von BOS Deutschland e.V.

Modified: trunk/projects/bos/payment-website/templates/en/bestellung.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/bestellung.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/bestellung.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -7,6 +7,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

@@ -195,4 +196,4 @@
- \ No newline at end of file + Modified: trunk/projects/bos/payment-website/templates/en/bos.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/bos.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/bos.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/en/contact.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/contact.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/contact.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/en/headline2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/headline2.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/headline2.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/en/headline3.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/headline3.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/headline3.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
@@ -58,4 +59,4 @@
- \ No newline at end of file + Modified: trunk/projects/bos/payment-website/templates/en/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/idea.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/idea.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/en/impressum.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/impressum.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/impressum.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Imprint

www.create-rainforest.org is a webpage by:

Modified: trunk/projects/bos/payment-website/templates/en/index.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/index.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/index.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Modified: trunk/projects/bos/payment-website/templates/en/privacy.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/privacy.xml 2008-07-01 09:18:33 UTC (rev 3394) +++ trunk/projects/bos/payment-website/templates/en/privacy.xml 2008-07-01 09:55:27 UTC (rev 3395) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +

Privacy Policy of BOS Deutschland e.V.

From bknr at bknr.net Tue Jul 1 14:10:46 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:46 +0200 Subject: [bknr-cvs] hans changed trunk/ Message-ID: Revision: 3398 Author: hans URL: http://bknr.net/trac/changeset/3398 Fixes to payment processing related stuff with new CXML and Hunchentoot. U trunk/bknr/web/src/web/handlers.lisp U trunk/bknr/web/src/web/web-utils.lisp U trunk/projects/bos/m2/map.lisp U trunk/projects/bos/m2-sample.rc U trunk/projects/bos/web/tags.lisp U trunk/projects/bos/web/webserver.lisp Modified: trunk/bknr/web/src/web/handlers.lisp =================================================================== --- trunk/bknr/web/src/web/handlers.lisp 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/bknr/web/src/web/handlers.lisp 2008-07-01 11:01:48 UTC (rev 3398) @@ -180,7 +180,10 @@ (defclass cachable-handler () - ((max-age :initform 60 :initarg :max-age :accessor handler-max-age))) + ((max-age :initform 5 + :initarg :max-age + :accessor handler-max-age + :documentation "Default value to set for the Cache-Control max-age header."))) (defmethod initialize-instance :after ((handler cachable-handler) &rest initargs) (declare (ignore initargs)) Modified: trunk/bknr/web/src/web/web-utils.lisp =================================================================== --- trunk/bknr/web/src/web/web-utils.lisp 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/bknr/web/src/web/web-utils.lisp 2008-07-01 11:01:48 UTC (rev 3398) @@ -69,7 +69,7 @@ (when post (post-parameters*)))) (defun query-param (param-name &key (get t) (post t)) - (let ((value (cdr (assoc param-name (query-params :get get :post post) :test #'equal)))) + (let ((value (cdr (assoc param-name (query-params :get get :post post) :test #'string-equal)))) (unless (equal value "") value))) Modified: trunk/projects/bos/m2/map.lisp =================================================================== --- trunk/projects/bos/m2/map.lisp 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/projects/bos/m2/map.lisp 2008-07-01 11:01:48 UTC (rev 3398) @@ -79,12 +79,43 @@ (setf (ldb (byte 8 0) pixel-rgb-value) blue) pixel-rgb-value)) -(defun point-in-any-allocation-area-p (x-coord y-coord) +(defvar *allocation-area-cache* nil + "Array of bits indicating whether a certain square meter is inside of an allocation area") + +(defvar *allocation-cache-x* nil + "Top left X coordinate of the allocation cache") +(defvar *allocation-cache-y* nil + "Top left Y coordinate of the allocation cache") +(defvar *allocation-cache-width* nil + "Width of the allocation cache") +(defvar *allocation-cache-height* nil + "Height of the allocation cache") + +(defun point-in-any-allocation-area-p% (x-coord y-coord) (find-if #'(lambda (allocation-area) ;; first check whether point is in bounding box, then do full polygon check (and (point-in-polygon-p x-coord y-coord (allocation-area-bounding-box allocation-area)) (point-in-polygon-p x-coord y-coord (allocation-area-vertices allocation-area)))) (store-objects-with-class 'allocation-area))) + +(defun initialize-allocation-cache () + (destructuring-bind (top-left-x top-left-y width height) (allocation-areas-bounding-box) + (setf *allocation-area-cache* (make-array (list width height) :element-type '(unsigned-byte 1)) + *allocation-cache-x* top-left-x + *allocation-cache-y* top-left-y + *allocation-cache-width* width + *allocation-cache-height* height) + (dotimes (x width) + (dotimes (y height) + (when (point-in-any-allocation-area-p (+ x top-left-x) (+ y top-left-y)) + (setf (aref *allocation-area-cache* x y) 1)))))) + +(defun point-in-any-allocation-area-p (x-coord y-coord) + (and (< -1 (- x-coord *allocation-cache-x*) *allocation-cache-width*) + (< -1 (- y-coord *allocation-cache-y*) *allocation-cache-height*) + (plusp (aref *allocation-area-cache* + (- x-coord *allocation-cache-x*) + (- y-coord *allocation-cache-y*))))) (defclass image-tile (tile) ((original-image :documentation "Original satellite image" Modified: trunk/projects/bos/m2-sample.rc =================================================================== --- trunk/projects/bos/m2-sample.rc 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/projects/bos/m2-sample.rc 2008-07-01 11:01:48 UTC (rev 3398) @@ -1,3 +1,3 @@ -:directory (merge-pathnames #p"datastore/" (user-homedir-pathname)) +:directory (merge-pathnames #p"bos-store/" (user-homedir-pathname)) :website-url "http://createrainforest.org" :enable-mails nil Modified: trunk/projects/bos/web/tags.lisp =================================================================== --- trunk/projects/bos/web/tags.lisp 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/projects/bos/web/tags.lisp 2008-07-01 11:01:48 UTC (rev 3398) @@ -4,9 +4,8 @@ (defun emit-without-quoting (str) ;; das ist fuer WPDISPLAY - (let ((s (cxml::chained-handler *html-sink*))) - (cxml::maybe-close-tag s) - (map nil (lambda (c) (cxml::write-rune c s)) str))) + (cxml::maybe-close-tag *html-sink*) + (map nil (lambda (c) (cxml::sink-write-rune c *html-sink*)) str)) (defun language-options-1 (current-language) (loop for (language-symbol language-name) in (website-languages) Modified: trunk/projects/bos/web/webserver.lisp =================================================================== --- trunk/projects/bos/web/webserver.lisp 2008-07-01 10:59:11 UTC (rev 3397) +++ trunk/projects/bos/web/webserver.lisp 2008-07-01 11:01:48 UTC (rev 3398) @@ -22,7 +22,7 @@ ;; If the requested URL is /handle-sale, we do the sales processing ;; and change the template name according to the outcome. -(defmethod find-template-pathname ((Handler worldpay-template-handler) template-name) +(defmethod find-template-pathname ((handler worldpay-template-handler) template-name) (cond ((scan #?r"(^|.*/)handle-sale" template-name) (with-query-params (cartId name address country transStatus lang MC_gift) From bknr at bknr.net Tue Jul 1 14:10:43 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:43 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3396 Author: ksprotte URL: http://bknr.net/trac/changeset/3396 added tsung.xml A trunk/projects/bos/test/tsung.xml Added: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml (rev 0) +++ trunk/projects/bos/test/tsung.xml 2008-07-01 10:13:51 UTC (rev 3396) @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bknr at bknr.net Tue Jul 1 14:10:59 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:10:59 +0200 Subject: [bknr-cvs] ksprotte changed trunk/thirdparty/cl-pdf/config.lisp Message-ID: Revision: 3399 Author: ksprotte URL: http://bknr.net/trac/changeset/3399 for sbcl dont (pushnew :pdf-binary *features*) U trunk/thirdparty/cl-pdf/config.lisp Modified: trunk/thirdparty/cl-pdf/config.lisp =================================================================== --- trunk/thirdparty/cl-pdf/config.lisp 2008-07-01 11:01:48 UTC (rev 3398) +++ trunk/thirdparty/cl-pdf/config.lisp 2008-07-01 11:54:03 UTC (rev 3399) @@ -68,7 +68,7 @@ ;; define the :pdf-binary feature if your Lisp implementation accepts ;; to write binary sequences to character streams ;; For LW you need version 4.2.7 minimum -#+(or lispworks allegro sbcl) +#+(or lispworks allegro) (pushnew :pdf-binary *features*) ;(eval-when (:compile-toplevel :load-toplevel :execute) From bknr at bknr.net Tue Jul 1 14:11:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:11:01 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/m2/map.lisp Message-ID: Revision: 3400 Author: hans URL: http://bknr.net/trac/changeset/3400 Drawing cache for allocation area fixed. U trunk/projects/bos/m2/map.lisp Modified: trunk/projects/bos/m2/map.lisp =================================================================== --- trunk/projects/bos/m2/map.lisp 2008-07-01 11:54:03 UTC (rev 3399) +++ trunk/projects/bos/m2/map.lisp 2008-07-01 14:06:11 UTC (rev 3400) @@ -79,17 +79,11 @@ (setf (ldb (byte 8 0) pixel-rgb-value) blue) pixel-rgb-value)) -(defvar *allocation-area-cache* nil - "Array of bits indicating whether a certain square meter is inside of an allocation area") +(defstruct (allocation-cache (:conc-name ac-)) + x y width height array areas) -(defvar *allocation-cache-x* nil - "Top left X coordinate of the allocation cache") -(defvar *allocation-cache-y* nil - "Top left Y coordinate of the allocation cache") -(defvar *allocation-cache-width* nil - "Width of the allocation cache") -(defvar *allocation-cache-height* nil - "Height of the allocation cache") +(defvar *allocation-cache* nil + "allocation-cache struct indicating whether a certain square meter is inside of an allocation area") (defun point-in-any-allocation-area-p% (x-coord y-coord) (find-if #'(lambda (allocation-area) @@ -99,23 +93,39 @@ (store-objects-with-class 'allocation-area))) (defun initialize-allocation-cache () - (destructuring-bind (top-left-x top-left-y width height) (allocation-areas-bounding-box) - (setf *allocation-area-cache* (make-array (list width height) :element-type '(unsigned-byte 1)) - *allocation-cache-x* top-left-x - *allocation-cache-y* top-left-y - *allocation-cache-width* width - *allocation-cache-height* height) - (dotimes (x width) - (dotimes (y height) - (when (point-in-any-allocation-area-p (+ x top-left-x) (+ y top-left-y)) - (setf (aref *allocation-area-cache* x y) 1)))))) + (destructuring-bind (x y width height) (allocation-areas-bounding-box) + (setf *allocation-cache* + (make-allocation-cache :x x :y y :width width :height height + :array (make-array (list width height) :element-type '(unsigned-byte 1)) + :areas (class-instances 'allocation-area)))) + (dolist (area (ac-areas *allocation-cache*)) + (destructuring-bind (top-left-x top-left-y width height) (allocation-area-bounding-box2 area) + (dotimes (x width) + (dotimes (y height) + (let ((x-coord (+ x top-left-x)) + (y-coord (+ y top-left-y))) + (when (and (point-in-polygon-p x-coord y-coord (allocation-area-bounding-box area)) + (point-in-polygon-p x-coord y-coord (allocation-area-vertices area))) + (setf (aref (ac-array *allocation-cache*) + (- x-coord (ac-x *allocation-cache*)) + (- y-coord (ac-y *allocation-cache*))) + 1)))))))) +(defvar *allocation-cache-lock* (bt:make-lock "Area Cache Lock")) + +(defun validate-allocation-cache () + (bt:with-lock-held (*allocation-cache-lock*) + (unless (and *allocation-cache* + (equal (class-instances 'allocation-area) + (ac-areas *allocation-cache*))) + (initialize-allocation-cache)))) + (defun point-in-any-allocation-area-p (x-coord y-coord) - (and (< -1 (- x-coord *allocation-cache-x*) *allocation-cache-width*) - (< -1 (- y-coord *allocation-cache-y*) *allocation-cache-height*) - (plusp (aref *allocation-area-cache* - (- x-coord *allocation-cache-x*) - (- y-coord *allocation-cache-y*))))) + (and (< -1 (- x-coord (ac-x *allocation-cache*)) (ac-width *allocation-cache*)) + (< -1 (- y-coord (ac-y *allocation-cache*)) (ac-height *allocation-cache*)) + (plusp (aref (ac-array *allocation-cache*) + (- x-coord (ac-x *allocation-cache*)) + (- y-coord (ac-y *allocation-cache*)))))) (defclass image-tile (tile) ((original-image :documentation "Original satellite image" @@ -142,11 +152,12 @@ (copy-image original-image *default-image* 0 0 0 0 (image-width) (image-height))))) (defmethod image-tile-process ((tile image-tile) (operation (eql :areas))) + (validate-allocation-cache) (do-rows (y) (do-pixels-in-row (x) (when (point-in-any-allocation-area-p (tile-absolute-x tile x) - (tile-absolute-y tile y)) - (setf (raw-pixel) (apply #'colorize-pixel (raw-pixel) '(220 220 220))))))) + (tile-absolute-y tile y)) + (setf (raw-pixel) (apply #'colorize-pixel (raw-pixel) '(220 220 220))))))) (defmethod image-tile-process ((tile image-tile) (operation (eql :contracts))) (do-rows (y) From bknr at bknr.net Tue Jul 1 14:15:15 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 01 Jul 2008 16:15:15 +0200 Subject: [bknr-cvs] hans changed trunk/projects/lisp-ecoop/ Message-ID: Revision: 3401 Author: hans URL: http://bknr.net/trac/changeset/3401 Ignore datastore directory. _U trunk/projects/lisp-ecoop/ Property changes on: trunk/projects/lisp-ecoop ___________________________________________________________________ Name: svn:ignore + datastore From bknr at bknr.net Wed Jul 2 08:27:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 10:27:24 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/web/tags.lisp Message-ID: Revision: 3402 Author: hans URL: http://bknr.net/trac/changeset/3402 Ensure bknr session when generating the cert to make sure that the following pages are called with the new sponsor being logged in. U trunk/projects/bos/web/tags.lisp Modified: trunk/projects/bos/web/tags.lisp =================================================================== --- trunk/projects/bos/web/tags.lisp 2008-07-01 14:15:15 UTC (rev 3401) +++ trunk/projects/bos/web/tags.lisp 2008-07-02 08:27:24 UTC (rev 3402) @@ -36,6 +36,7 @@ (emit-tag-children)) (define-bknr-tag generate-cert () + (ensure-bknr-session) (with-template-vars (gift email name address want-print) (let ((contract (find-store-object (parse-integer (get-template-var :contract-id))))) (when (equal want-print "no") From bknr at bknr.net Wed Jul 2 09:14:02 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 11:14:02 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3403 Author: ksprotte URL: http://bknr.net/trac/changeset/3403 tsung added session name='buy-sqm' U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-02 08:27:24 UTC (rev 3402) +++ trunk/projects/bos/test/tsung.xml 2008-07-02 09:14:02 UTC (rev 3403) @@ -459,5 +459,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bknr at bknr.net Wed Jul 2 11:12:03 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 13:12:03 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3404 Author: ksprotte URL: http://bknr.net/trac/changeset/3404 tsung.xml dyn vars for buy-sqm fixed U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-02 09:14:02 UTC (rev 3403) +++ trunk/projects/bos/test/tsung.xml 2008-07-02 11:12:03 UTC (rev 3404) @@ -23,9 +23,34 @@ duration --> - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36,7 +61,7 @@ @@ -495,12 +520,12 @@ - - - + + + From bknr at bknr.net Wed Jul 2 11:47:54 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 13:47:54 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3405 Author: ksprotte URL: http://bknr.net/trac/changeset/3405 tsung new session name='GE' U trunk/projects/bos/test/tsung.xml Change set too large, please see URL above From bknr at bknr.net Wed Jul 2 14:05:55 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:05:55 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3406 Author: ksprotte URL: http://bknr.net/trac/changeset/3406 initial import squid-access-log2csv A trunk/projects/bos/tools/squid-access-log2csv Added: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv (rev 0) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:05:55 UTC (rev 3406) @@ -0,0 +1,57 @@ +#!/usr/local/bin/clisp -C + +(use-package :regexp) + +(assert (probe-file (first ext:*args*)) nil + "Usage: log.lisp ") + + +(defvar *uri-hash* (make-hash-table :test #'equal)) +(defvar *action/codes* nil) + +(defun action/code-count (uri action/code) + (or (cdr (assoc action/code (gethash uri *uri-hash*))) + 0)) + +(defun (setf action/code-count) (count uri action/code) + (let ((cons (assoc action/code (gethash uri *uri-hash*)))) + (if cons + (rplacd cons count) + (push (cons action/code count) + (gethash uri *uri-hash*))))) + +(with-open-file (in (first ext:*args*)) + (with-loop-split (list in " \\+") + (when (= 10 (length list)) + (destructuring-bind (timestamp elapsed client action/code + size method uri ident + hierarchy/from content) + list + (declare (ignore timestamp elapsed client + size method ident + hierarchy/from content)) + (let ((action/code (intern action/code))) + (pushnew action/code *action/codes*) + (incf (action/code-count uri action/code)) + (incf (action/code-count uri :total))))))) + + + +(let (lists) + (maphash (lambda (key value) + (push (cons key value) lists)) + *uri-hash*) + (setf lists (sort lists #'> + :key (lambda (uri) (cdr (assoc :total (cdr uri)))))) + (format t "uri,TOTAL,~{~A~^,~}~%" *action/codes*) + (dolist (list lists) + (destructuring-bind (uri . alist) + list + (format t "\"~A\"," uri) + (format t "~A," (cdr (assoc :total alist))) + (format t "~{~D~^,~}~%" + (mapcar (lambda (action/code) + (or (cdr (assoc action/code alist)) + 0)) + *action/codes*))))) + From bknr at bknr.net Wed Jul 2 14:08:27 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:08:27 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3407 Author: ksprotte URL: http://bknr.net/trac/changeset/3407 squid-access-log2csv small fix U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:05:55 UTC (rev 3406) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:08:27 UTC (rev 3407) @@ -3,9 +3,8 @@ (use-package :regexp) (assert (probe-file (first ext:*args*)) nil - "Usage: log.lisp ") + "Usage: squid-access-log2csv ") - (defvar *uri-hash* (make-hash-table :test #'equal)) (defvar *action/codes* nil) From bknr at bknr.net Wed Jul 2 14:18:35 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:18:35 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3408 Author: ksprotte URL: http://bknr.net/trac/changeset/3408 squid-access-log2csv be a bit more verbose... U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:08:27 UTC (rev 3407) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:18:35 UTC (rev 3408) @@ -19,20 +19,23 @@ (push (cons action/code count) (gethash uri *uri-hash*))))) -(with-open-file (in (first ext:*args*)) - (with-loop-split (list in " \\+") - (when (= 10 (length list)) - (destructuring-bind (timestamp elapsed client action/code - size method uri ident - hierarchy/from content) - list - (declare (ignore timestamp elapsed client - size method ident - hierarchy/from content)) - (let ((action/code (intern action/code))) - (pushnew action/code *action/codes*) - (incf (action/code-count uri action/code)) - (incf (action/code-count uri :total))))))) +(let ((line-count 0)) + (with-open-file (in (first ext:*args*)) + (with-loop-split (list in " \\+") + (when (= 10 (length list)) + (format *standard-error* "Reading log line ~D...~C" + (incf line-count) #\Return) + (destructuring-bind (timestamp elapsed client action/code + size method uri ident + hierarchy/from content) + list + (declare (ignore timestamp elapsed client + size method ident + hierarchy/from content)) + (let ((action/code (intern action/code))) + (pushnew action/code *action/codes*) + (incf (action/code-count uri action/code)) + (incf (action/code-count uri :total)))))))) From bknr at bknr.net Wed Jul 2 14:20:17 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:20:17 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3409 Author: ksprotte URL: http://bknr.net/trac/changeset/3409 squid-access-log2csv typo, sorry U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:18:35 UTC (rev 3408) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:20:16 UTC (rev 3409) @@ -23,7 +23,7 @@ (with-open-file (in (first ext:*args*)) (with-loop-split (list in " \\+") (when (= 10 (length list)) - (format *standard-error* "Reading log line ~D...~C" + (format *error-output* "Reading log line ~D...~C" (incf line-count) #\Return) (destructuring-bind (timestamp elapsed client action/code size method uri ident From bknr at bknr.net Wed Jul 2 14:22:33 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:22:33 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3410 Author: ksprotte URL: http://bknr.net/trac/changeset/3410 squid-access-log2csv last fix U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:20:16 UTC (rev 3409) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:22:33 UTC (rev 3410) @@ -23,8 +23,9 @@ (with-open-file (in (first ext:*args*)) (with-loop-split (list in " \\+") (when (= 10 (length list)) - (format *error-output* "Reading log line ~D...~C" - (incf line-count) #\Return) + (when (zerop (mod line-count 10000)) + (format *error-output* "Reading log line ~D...~C" + (incf line-count) #\Return)) (destructuring-bind (timestamp elapsed client action/code size method uri ident hierarchy/from content) From bknr at bknr.net Wed Jul 2 14:25:34 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:25:34 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3411 Author: ksprotte URL: http://bknr.net/trac/changeset/3411 squid-access-log2csv: finally useful line count output U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:22:33 UTC (rev 3410) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 14:25:34 UTC (rev 3411) @@ -23,9 +23,10 @@ (with-open-file (in (first ext:*args*)) (with-loop-split (list in " \\+") (when (= 10 (length list)) - (when (zerop (mod line-count 10000)) + (incf line-count) + (when (zerop (mod line-count 1000)) (format *error-output* "Reading log line ~D...~C" - (incf line-count) #\Return)) + line-count #\Return)) (destructuring-bind (timestamp elapsed client action/code size method uri ident hierarchy/from content) From bknr at bknr.net Wed Jul 2 14:35:50 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 16:35:50 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3412 Author: ksprotte URL: http://bknr.net/trac/changeset/3412 small ch to tsung.xml U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-02 14:25:34 UTC (rev 3411) +++ trunk/projects/bos/test/tsung.xml 2008-07-02 14:35:50 UTC (rev 3412) @@ -23,7 +23,7 @@ duration --> - + From bknr at bknr.net Wed Jul 2 15:55:21 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 17:55:21 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/templates/ Message-ID: Revision: 3413 Author: ksprotte URL: http://bknr.net/trac/changeset/3413 set-cachable for idea_subtitle{1,2}.xml U trunk/projects/bos/payment-website/templates/da/idea_subtitle1.xml U trunk/projects/bos/payment-website/templates/da/idea_subtitle2.xml U trunk/projects/bos/payment-website/templates/de/idea_subtitle1.xml U trunk/projects/bos/payment-website/templates/de/idea_subtitle2.xml U trunk/projects/bos/payment-website/templates/en/idea_subtitle1.xml U trunk/projects/bos/payment-website/templates/en/idea_subtitle2.xml Modified: trunk/projects/bos/payment-website/templates/da/idea_subtitle1.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/idea_subtitle1.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/da/idea_subtitle1.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -1,6 +1,7 @@ +

Modified: trunk/projects/bos/payment-website/templates/da/idea_subtitle2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/idea_subtitle2.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/da/idea_subtitle2.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -1,6 +1,7 @@ +
Modified: trunk/projects/bos/payment-website/templates/de/idea_subtitle1.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/idea_subtitle1.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/de/idea_subtitle1.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/de/idea_subtitle2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/idea_subtitle2.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/de/idea_subtitle2.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
Modified: trunk/projects/bos/payment-website/templates/en/idea_subtitle1.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/idea_subtitle1.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/en/idea_subtitle1.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
@@ -71,4 +72,4 @@
-
\ No newline at end of file + Modified: trunk/projects/bos/payment-website/templates/en/idea_subtitle2.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/idea_subtitle2.xml 2008-07-02 14:35:50 UTC (rev 3412) +++ trunk/projects/bos/payment-website/templates/en/idea_subtitle2.xml 2008-07-02 15:55:21 UTC (rev 3413) @@ -8,6 +8,7 @@ xmlns:bknr="http://bknr.net" xmlns:bos="http://headcraft.de/bos" > +
From bknr at bknr.net Wed Jul 2 15:59:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 17:59:24 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/tools/squid-access-log2csv Message-ID: Revision: 3414 Author: ksprotte URL: http://bknr.net/trac/changeset/3414 squid-access-log2csv outputs more standard cvs format (always using " and ;) U trunk/projects/bos/tools/squid-access-log2csv Modified: trunk/projects/bos/tools/squid-access-log2csv =================================================================== --- trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 15:55:21 UTC (rev 3413) +++ trunk/projects/bos/tools/squid-access-log2csv 2008-07-02 15:59:24 UTC (rev 3414) @@ -47,13 +47,13 @@ *uri-hash*) (setf lists (sort lists #'> :key (lambda (uri) (cdr (assoc :total (cdr uri)))))) - (format t "uri,TOTAL,~{~A~^,~}~%" *action/codes*) + (format t "\"uri\";\"TOTAL\";~{\"~A\"~^;~}~%" *action/codes*) (dolist (list lists) (destructuring-bind (uri . alist) list - (format t "\"~A\"," uri) - (format t "~A," (cdr (assoc :total alist))) - (format t "~{~D~^,~}~%" + (format t "\"~A\";" uri) + (format t "\"~A\";" (cdr (assoc :total alist))) + (format t "~{\"~D\"~^;~}~%" (mapcar (lambda (action/code) (or (cdr (assoc action/code alist)) 0)) From bknr at bknr.net Wed Jul 2 16:07:54 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 02 Jul 2008 18:07:54 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/tags.lisp Message-ID: Revision: 3415 Author: ksprotte URL: http://bknr.net/trac/changeset/3415 generate-cert use bknr-session instead of ensure-bknr-session U trunk/projects/bos/web/tags.lisp Modified: trunk/projects/bos/web/tags.lisp =================================================================== --- trunk/projects/bos/web/tags.lisp 2008-07-02 15:59:24 UTC (rev 3414) +++ trunk/projects/bos/web/tags.lisp 2008-07-02 16:07:54 UTC (rev 3415) @@ -36,7 +36,7 @@ (emit-tag-children)) (define-bknr-tag generate-cert () - (ensure-bknr-session) + (bknr-session) (with-template-vars (gift email name address want-print) (let ((contract (find-store-object (parse-integer (get-template-var :contract-id))))) (when (equal want-print "no") From bknr at bknr.net Wed Jul 9 05:52:08 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 09 Jul 2008 07:52:08 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/slime/ Message-ID: Revision: 3416 Author: hans URL: http://bknr.net/trac/changeset/3416 update slime U trunk/thirdparty/slime/CVS/Entries U trunk/thirdparty/slime/ChangeLog U trunk/thirdparty/slime/contrib/CVS/Entries U trunk/thirdparty/slime/contrib/ChangeLog U trunk/thirdparty/slime/contrib/slime-parse.el U trunk/thirdparty/slime/contrib/swank-asdf.lisp U trunk/thirdparty/slime/doc/CVS/Entries U trunk/thirdparty/slime/slime.el U trunk/thirdparty/slime/swank-allegro.lisp U trunk/thirdparty/slime/swank-backend.lisp U trunk/thirdparty/slime/swank-cmucl.lisp U trunk/thirdparty/slime/swank-lispworks.lisp U trunk/thirdparty/slime/swank-sbcl.lisp U trunk/thirdparty/slime/swank.lisp Change set too large, please see URL above From bknr at bknr.net Wed Jul 9 05:54:03 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 09 Jul 2008 07:54:03 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/connection-manager.lisp Message-ID: Revision: 3417 Author: hans URL: http://bknr.net/trac/changeset/3417 Remove WORKERS slot from ONE-SLOT-PER-CONNECTION-MANAGER. Workers were never removed from the list and it was used only for shutdown in LispWorks. As worker processes synchronously check for server shutdown anyway, losing the WORKERS slot was the best option to remove the leak. U trunk/thirdparty/hunchentoot/connection-manager.lisp Modified: trunk/thirdparty/hunchentoot/connection-manager.lisp =================================================================== --- trunk/thirdparty/hunchentoot/connection-manager.lisp 2008-07-09 05:52:08 UTC (rev 3416) +++ trunk/thirdparty/hunchentoot/connection-manager.lisp 2008-07-09 05:54:03 UTC (rev 3417) @@ -89,18 +89,11 @@ (process-connection (server manager) socket)) (defclass one-thread-per-connection-manager (connection-manager) - ((workers :initform nil - :accessor connection-manager-workers - :documentation "A list of currently active worker -threads.")) + () (:documentation "Connection manager that starts one thread for listening to incoming requests and one thread for each incoming connection.")) -(defmethod print-object ((manager one-thread-per-connection-manager) stream) - (print-unreadable-object (manager stream :type t) - (format stream "~A worker~:P" (length (connection-manager-workers manager))))) - (defmethod execute-listener ((manager one-thread-per-connection-manager)) #+:lispworks (listen-for-connections (server manager)) @@ -119,30 +112,16 @@ (zerop (mod *worker-counter* *cleanup-interval*))) (when *cleanup-function* (funcall *cleanup-function*))) - ;; start a worker thread for this connection and remember it - (push (mp:process-run-function (format nil "Hunchentoot worker \(client: ~{~A:~A~})" - (multiple-value-list - (get-peer-address-and-port handle))) - nil #'process-connection - (server manager) handle) - (connection-manager-workers manager))) + (mp:process-run-function (format nil "Hunchentoot worker \(client: ~{~A:~A~})" + (multiple-value-list + (get-peer-address-and-port handle))) + nil #'process-connection + (server manager) handle)) #-:lispworks (defmethod handle-incoming-connection ((manager one-thread-per-connection-manager) socket) - (push (bt:make-thread (lambda () - (process-connection (server manager) socket)) - :name (format nil "Hunchentoot worker \(client: ~A:~A)" - (usocket:vector-quad-to-dotted-quad (usocket:get-peer-address socket)) - (usocket:get-peer-port socket))) - (connection-manager-workers manager))) - -#+:lispworks -(defmethod shutdown ((manager one-thread-per-connection-manager)) - ;; kill all worker threads - (dolist (worker (connection-manager-workers manager)) - (ignore-errors - (when (mp:process-alive-p worker) - (mp:process-kill worker))) - (mp:process-allow-scheduling)) - ;; finally, kill main listener - (call-next-method)) + (bt:make-thread (lambda () + (process-connection (server manager) socket)) + :name (format nil "Hunchentoot worker \(client: ~A:~A)" + (usocket:vector-quad-to-dotted-quad (usocket:get-peer-address socket)) + (usocket:get-peer-port socket)))) From bknr at bknr.net Wed Jul 9 05:55:22 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 09 Jul 2008 07:55:22 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/usocket/backend/openmcl.lisp Message-ID: Revision: 3418 Author: hans URL: http://bknr.net/trac/changeset/3418 Convert CCL:INPUT-TIMEOUT to USOCKET:TIMEOUT-ERROR. U trunk/thirdparty/usocket/backend/openmcl.lisp Modified: trunk/thirdparty/usocket/backend/openmcl.lisp =================================================================== --- trunk/thirdparty/usocket/backend/openmcl.lisp 2008-07-09 05:54:03 UTC (rev 3417) +++ trunk/thirdparty/usocket/backend/openmcl.lisp 2008-07-09 05:55:22 UTC (rev 3418) @@ -59,6 +59,8 @@ (openmcl-socket:socket-error (raise-error-from-id (openmcl-socket:socket-error-identifier condition) socket condition)) + (ccl:input-timeout + (error 'timeout-error :socket socket :real-error condition)) (ccl:communication-deadline-expired (error 'timeout-error :socket socket :real-error condition)) (ccl::socket-creation-error #| ugh! |# From bknr at bknr.net Wed Jul 9 07:30:39 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 09 Jul 2008 09:30:39 +0200 Subject: [bknr-cvs] edi changed trunk/thirdparty/hunchentoot/server.lisp Message-ID: Revision: 3419 Author: edi URL: http://bknr.net/trac/changeset/3419 Fix handling of chunked requests (bug caught by Cyrus Harmon) U trunk/thirdparty/hunchentoot/server.lisp Modified: trunk/thirdparty/hunchentoot/server.lisp =================================================================== --- trunk/thirdparty/hunchentoot/server.lisp 2008-07-09 05:55:22 UTC (rev 3418) +++ trunk/thirdparty/hunchentoot/server.lisp 2008-07-09 07:30:39 UTC (rev 3419) @@ -462,6 +462,15 @@ ;; request - note that *SERVER* was bound above already (let ((*reply* (make-instance 'reply)) (*session* nil)) + (when (server-input-chunking-p *server*) + (let ((transfer-encodings (cdr (assoc* :transfer-encoding headers-in)))) + (when transfer-encodings + (setq transfer-encodings + (split "\\s*,\\*" transfer-encodings))) + (when (member "chunked" transfer-encodings :test #'equalp) + ;; turn chunking on before we read the request body + (setf *hunchentoot-stream* (make-chunked-stream *hunchentoot-stream*) + (chunked-stream-input-chunking-p *hunchentoot-stream*) t)))) (multiple-value-bind (remote-addr remote-port) (get-peer-address-and-port socket) (process-request (make-instance (server-request-class *server*) @@ -491,66 +500,56 @@ using START-OUTPUT. If all goes as planned, the function returns T." (let (*tmp-files* *headers-sent*) (unwind-protect - (progn - (when (server-input-chunking-p *server*) - (let ((transfer-encodings (header-in :transfer-encoding request))) - (when transfer-encodings - (setq transfer-encodings - (split "\\s*,\\*" transfer-encodings))) - (when (member "chunked" transfer-encodings :test #'equalp) - ;; turn chunking on before we read the request body - (setf *hunchentoot-stream* (make-chunked-stream *hunchentoot-stream*) - (chunked-stream-input-chunking-p *hunchentoot-stream*) t)))) - (let* ((*request* request) - backtrace) - (multiple-value-bind (body error) - (catch 'handler-done - (handler-bind ((error - (lambda (cond) - ;; only generate backtrace if needed - (setq backtrace - (and (or (and *show-lisp-errors-p* - *show-lisp-backtraces-p*) - (and *log-lisp-errors-p* - *log-lisp-backtraces-p*)) - (get-backtrace cond))) - (when *log-lisp-errors-p* - (log-message* *lisp-errors-log-level* - "~A~:[~*~;~%~A~]" - cond - *log-lisp-backtraces-p* - backtrace)) - ;; if the headers were already sent - ;; the error happens within the body - ;; and we have to close the stream - (when *headers-sent* - (setq *close-hunchentoot-stream* t)) - (throw 'handler-done - (values nil cond)))) - (warning - (lambda (cond) - (when *log-lisp-warnings-p* - (log-message* *lisp-warnings-log-level* - "~A~:[~*~;~%~A~]" - cond - *log-lisp-backtraces-p* - backtrace))))) - ;; skip dispatch if bad request - (when (eql (return-code) +http-ok+) - ;; now do the work - (dispatch-request *server* *request* *reply*)))) - (when error - (setf (return-code *reply*) - +http-internal-server-error+)) - (start-output :content (cond ((and error *show-lisp-errors-p*) - (format nil "
~A~:[~*~;~%~%~A~]
" - (escape-for-html (format nil "~A" error)) - *show-lisp-backtraces-p* - (escape-for-html (format nil "~A" backtrace)))) - (error - "An error has occured.") - (t body)))) - t)) + (let* ((*request* request) + backtrace) + (multiple-value-bind (body error) + (catch 'handler-done + (handler-bind ((error + (lambda (cond) + ;; only generate backtrace if needed + (setq backtrace + (and (or (and *show-lisp-errors-p* + *show-lisp-backtraces-p*) + (and *log-lisp-errors-p* + *log-lisp-backtraces-p*)) + (get-backtrace cond))) + (when *log-lisp-errors-p* + (log-message* *lisp-errors-log-level* + "~A~:[~*~;~%~A~]" + cond + *log-lisp-backtraces-p* + backtrace)) + ;; if the headers were already sent + ;; the error happens within the body + ;; and we have to close the stream + (when *headers-sent* + (setq *close-hunchentoot-stream* t)) + (throw 'handler-done + (values nil cond)))) + (warning + (lambda (cond) + (when *log-lisp-warnings-p* + (log-message* *lisp-warnings-log-level* + "~A~:[~*~;~%~A~]" + cond + *log-lisp-backtraces-p* + backtrace))))) + ;; skip dispatch if bad request + (when (eql (return-code) +http-ok+) + ;; now do the work + (dispatch-request *server* *request* *reply*)))) + (when error + (setf (return-code *reply*) + +http-internal-server-error+)) + (start-output :content (cond ((and error *show-lisp-errors-p*) + (format nil "
~A~:[~*~;~%~%~A~]
" + (escape-for-html (format nil "~A" error)) + *show-lisp-backtraces-p* + (escape-for-html (format nil "~A" backtrace)))) + (error + "An error has occured.") + (t body)))) + t) (dolist (path *tmp-files*) (when (and (pathnamep path) (probe-file path)) ;; the handler may have chosen to (re)move the uploaded From bknr at bknr.net Thu Jul 10 09:32:53 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 10 Jul 2008 11:32:53 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/web/site/squid.conf Message-ID: Revision: 3420 Author: hans URL: http://bknr.net/trac/changeset/3420 Configuration for squid3.0 U trunk/bknr/web/site/squid.conf Modified: trunk/bknr/web/site/squid.conf =================================================================== --- trunk/bknr/web/site/squid.conf 2008-07-09 07:30:39 UTC (rev 3419) +++ trunk/bknr/web/site/squid.conf 2008-07-10 09:32:53 UTC (rev 3420) @@ -1,5 +1,25 @@ acl all src 0.0.0.0/0.0.0.0 -http_access allow all -http_port 80 accel defaultsite=127.0.0.1 vhost vport -cache_peer 127.0.0.1 parent 8088 0 no-query originserver -cache_effective_user daemon +acl manager proto cache_object +acl localhost src 127.0.0.1/255.255.255.255 +acl to_localhost dst 127.0.0.0/8 +acl SSL_ports port 443 +acl Safe_ports port 80 # http +acl Safe_ports port 21 # ftp +acl Safe_ports port 443 # https +acl Safe_ports port 70 # gopher +acl Safe_ports port 210 # wais +acl Safe_ports port 1025-65535 # unregistered ports +acl Safe_ports port 280 # http-mgmt +acl Safe_ports port 488 # gss-http +acl Safe_ports port 591 # filemaker +acl Safe_ports port 777 # multiling http +acl CONNECT method CONNECT + +http_port 80 accel defaultsite=jasmin.headcraft.de +cache_peer 127.0.0.1 parent 8081 0 no-query originserver name=myAccel +acl our_sites dstdomain jasmin.headcraft.de +http_access allow our_sites +cache_peer_access myAccel allow our_sites +cache_peer_access myAccel deny all +access_log /usr/local/squid/logs/access.log squid +pipeline_prefetch on From bknr at bknr.net Thu Jul 10 13:37:33 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 10 Jul 2008 15:37:33 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3421 Author: ksprotte URL: http://bknr.net/trac/changeset/3421 fixed a problem with sat-layer destroy-object, where snapshot would fail afterwards _U trunk/projects/bos/ U trunk/projects/bos/test/bos.test.asd A trunk/projects/bos/test/web/sat-tree.lisp U trunk/projects/bos/web/sat-tree.lisp Property changes on: trunk/projects/bos ___________________________________________________________________ Name: svn:ignore - datastore web.rc m2.rc TAGS bos.core screenrc + datastore web.rc m2.rc TAGS bos.core screenrc hunchentoot-access.log hunchentoot-error.log Modified: trunk/projects/bos/test/bos.test.asd =================================================================== --- trunk/projects/bos/test/bos.test.asd 2008-07-10 09:32:53 UTC (rev 3420) +++ trunk/projects/bos/test/bos.test.asd 2008-07-10 13:37:33 UTC (rev 3421) @@ -14,4 +14,5 @@ :depends-on ("suites" "fixtures") :components ((:file "drakma-requests") - (:file "quad-tree"))))) + (:file "quad-tree") + (:file "sat-tree"))))) Added: trunk/projects/bos/test/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/test/web/sat-tree.lisp (rev 0) +++ trunk/projects/bos/test/web/sat-tree.lisp 2008-07-10 13:37:33 UTC (rev 3421) @@ -0,0 +1,19 @@ +(in-package :bos.test) +(in-suite :bos.test.web) + +(test delete-sat-layer-and-snapshot + (with-fixture initial-bos-store () + (let ((geo-box (bos.web::rectangle-geo-box (bos.web::make-rectangle2 '(10 10 100 100))))) + (cl-gd:with-image (image 1000 1000) + (bos.web::make-sat-layer image geo-box :test 0) + (delete-object (first (class-instances 'bos.web::sat-layer))) + (finishes (snapshot)))))) + +;; (store-test delete-sat-layer-and-snapshot.2 +;; (let ((geo-box (bos.web::rectangle-geo-box (bos.web::make-rectangle2 '(10 10 100 100))))) +;; (cl-gd:with-image (image 1000 1000) +;; (with-store-reopenings () +;; (bos.web::make-sat-layer image geo-box :test 0) +;; (delete-object (first (class-instances 'bos.web::sat-layer))) +;; (pass))))) + Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-10 09:32:53 UTC (rev 3420) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-10 13:37:33 UTC (rev 3421) @@ -18,8 +18,10 @@ (format stream "name: ~s" (name obj)))) (defmethod destroy-object :before ((obj sat-layer)) - (dolist (top-level-node (sat-layer-top-level-nodes obj)) - (delete-node-extension top-level-node))) + ;; (dolist (top-level-node (sat-layer-top-level-nodes obj)) + ;; (delete-node-extension top-level-node)) + (dolist (sat-image (class-instances 'sat-image)) + (delete-object sat-image))) (defun sat-layer-top-level-nodes (sat-layer) (check-type sat-layer sat-layer) From bknr at bknr.net Thu Jul 10 14:31:04 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 10 Jul 2008 16:31:04 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/ Message-ID: Revision: 3422 Author: ksprotte URL: http://bknr.net/trac/changeset/3422 quick fix to test delete-sat-layer-and-snapshot U trunk/projects/bos/test/fixtures.lisp U trunk/projects/bos/test/web/sat-tree.lisp Modified: trunk/projects/bos/test/fixtures.lisp =================================================================== --- trunk/projects/bos/test/fixtures.lisp 2008-07-10 13:37:33 UTC (rev 3421) +++ trunk/projects/bos/test/fixtures.lisp 2008-07-10 14:31:04 UTC (rev 3422) @@ -18,24 +18,28 @@ `(let (,@(iter (for id-var in id-vars) (for store-object-var in store-object-vars) - (collect `(,id-var (store-object-id ,store-object-var))))) + (collect `(,id-var (when (and ,store-object-var + (not (object-destroyed-p ,store-object-var))) + (store-object-id ,store-object-var)))))) (%reopen-store :snapshot ,snapshot) (setf ,@(iter (for id-var in id-vars) (for store-object-var in store-object-vars) (collect store-object-var) - (collect `(find-store-object ,id-var))))))) + (collect `(when ,id-var (find-store-object ,id-var)))))))) (defmacro %with-store-reopenings ((&key snapshot bypass) (&rest store-object-vars) &body body) - `(progn - ,@(if bypass - body - (iter - (for form in body) - (unless (first-time-p) - (collect `(reopen-store (:snapshot ,snapshot) , at store-object-vars))) - (collect form))))) + `(let ((snapshot ,snapshot) + (bypass ,bypass)) + (if bypass + (progn , at body) + (progn + ,@(iter + (for form in body) + (unless (first-time-p) + (collect `(reopen-store (:snapshot ,snapshot) , at store-object-vars))) + (collect form)))))) (defmacro with-store-reopenings ((&rest store-object-vars) &body body) `(%with-store-reopenings (:snapshot snapshot :bypass bypass) Modified: trunk/projects/bos/test/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/test/web/sat-tree.lisp 2008-07-10 13:37:33 UTC (rev 3421) +++ trunk/projects/bos/test/web/sat-tree.lisp 2008-07-10 14:31:04 UTC (rev 3422) @@ -1,19 +1,10 @@ (in-package :bos.test) (in-suite :bos.test.web) -(test delete-sat-layer-and-snapshot - (with-fixture initial-bos-store () - (let ((geo-box (bos.web::rectangle-geo-box (bos.web::make-rectangle2 '(10 10 100 100))))) - (cl-gd:with-image (image 1000 1000) +(store-test delete-sat-layer-and-snapshot + (let ((geo-box (bos.web::rectangle-geo-box (bos.web::make-rectangle2 '(10 10 100 100))))) + (cl-gd:with-image (image 1000 1000) + (with-store-reopenings () (bos.web::make-sat-layer image geo-box :test 0) (delete-object (first (class-instances 'bos.web::sat-layer))) - (finishes (snapshot)))))) - -;; (store-test delete-sat-layer-and-snapshot.2 -;; (let ((geo-box (bos.web::rectangle-geo-box (bos.web::make-rectangle2 '(10 10 100 100))))) -;; (cl-gd:with-image (image 1000 1000) -;; (with-store-reopenings () -;; (bos.web::make-sat-layer image geo-box :test 0) -;; (delete-object (first (class-instances 'bos.web::sat-layer))) -;; (pass))))) - + (pass))))) From bknr at bknr.net Thu Jul 10 15:41:02 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 10 Jul 2008 17:41:02 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3423 Author: ksprotte URL: http://bknr.net/trac/changeset/3423 fixed again sat-layer destroy-object, so that deleting a sat-layer is possible without breaking the store U trunk/projects/bos/test/web/sat-tree.lisp U trunk/projects/bos/web/sat-tree.lisp Modified: trunk/projects/bos/test/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/test/web/sat-tree.lisp 2008-07-10 14:31:04 UTC (rev 3422) +++ trunk/projects/bos/test/web/sat-tree.lisp 2008-07-10 15:41:02 UTC (rev 3423) @@ -6,5 +6,7 @@ (cl-gd:with-image (image 1000 1000) (with-store-reopenings () (bos.web::make-sat-layer image geo-box :test 0) - (delete-object (first (class-instances 'bos.web::sat-layer))) + (progn + (bos.web::remove-sat-layer-from-quad-tree (find-store-object 1)) + (delete-object (first (class-instances 'bos.web::sat-layer)))) (pass))))) Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-10 14:31:04 UTC (rev 3422) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-10 15:41:02 UTC (rev 3423) @@ -3,9 +3,6 @@ (defclass sat-node (node-extension) ((image :accessor image :initarg :image))) -(defmethod delete-node-extension :before ((obj sat-node)) - (delete-object (image obj))) - (defpersistent-class sat-layer () ((name :reader name :initarg :name :index-type unique-index @@ -18,11 +15,23 @@ (format stream "name: ~s" (name obj)))) (defmethod destroy-object :before ((obj sat-layer)) - ;; (dolist (top-level-node (sat-layer-top-level-nodes obj)) - ;; (delete-node-extension top-level-node)) + (when (boundp '*quad-tree*) + ;; when the transaction log is being loaded, *quad-tree* is still + ;; unbound, because it is only initialized, when the entire store + ;; has been loaded -- an example for the fact that the quad-tree + ;; should have been implemented as a proper store index + (assert (null (sat-layer-top-level-nodes obj)) nil + "Please invoke (remove-sat-layer-from-quad-tree (find-store-object ~D)) before deleting ~s." + (store-object-id obj) obj)) (dolist (sat-image (class-instances 'sat-image)) - (delete-object sat-image))) + (when (eq obj (layer sat-image)) + (delete-object sat-image)))) +(defun remove-sat-layer-from-quad-tree (sat-layer) + (let ((nodes (collect-nodes (constantly t) (first (sat-layer-top-level-nodes sat-layer))))) + (mapc #'delete-node-extension nodes) + (values))) + (defun sat-layer-top-level-nodes (sat-layer) (check-type sat-layer sat-layer) (let ((nodes ()) @@ -160,7 +169,7 @@ (let* ((name (name layer)) (nodes (remove-if-not #'pw-ph-large-enough (layer-quad-nodes))) (max-scaling (max-scaling nodes))) - (format t "; creating ~a at depth ~a~%" name start-depth) + (format t "; creating ~a at depth ~a~%" name start-depth) ; (dolist (node nodes layer) (make-sat-image-tile image geo-box (quad-node node) (tile-geo-box node) name max-scaling)) From bknr at bknr.net Fri Jul 11 14:44:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 11 Jul 2008 16:44:24 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3424 Author: ksprotte URL: http://bknr.net/trac/changeset/3424 contract-tree image handler dont call (m2-contract m2) more often than needed U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-10 15:41:02 UTC (rev 3423) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-11 14:44:23 UTC (rev 3424) @@ -216,10 +216,11 @@ (geo-box-middle-m2coord subbox) (setf (cl-gd:raw-pixel) (let* ((m2 (ignore-errors (get-m2 m2x m2y))) + (%contract (m2-contract m2)) (contract (and m2 - (m2-contract m2) - (contract-paidp (m2-contract m2)) - (m2-contract m2)))) + %contract + (contract-paidp %contract) + %contract))) (if contract (destructuring-bind (r g b) (contract-color contract) From bknr at bknr.net Fri Jul 11 15:14:45 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 11 Jul 2008 17:14:45 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3425 Author: ksprotte URL: http://bknr.net/trac/changeset/3425 small fix, used *contract-tree-images-size* in a bad way U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-11 14:44:23 UTC (rev 3424) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-11 15:14:44 UTC (rev 3425) @@ -9,7 +9,7 @@ (image-req-count :initform 0 :accessor image-req-count))) (defvar *contract-tree* nil) -(defparameter *contract-tree-images-size* 256) +(defparameter *contract-tree-images-size* 128) ; was 256 ;;; XXX soll spaeter von was anderem abhaengen (defmethod leaf-node-p ((node contract-node)) @@ -202,7 +202,7 @@ (handle-if-node-modified (incf (image-req-count node)) (let ((box (geo-box node)) - (image-size (progn *contract-tree-images-size* 128))) + (image-size *contract-tree-images-size*)) (cl-gd:with-image (cl-gd:*default-image* image-size image-size t) (setf (cl-gd:save-alpha-p) t (cl-gd:alpha-blending-p) nil) From bknr at bknr.net Mon Jul 14 08:38:04 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 10:38:04 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3426 Author: ksprotte URL: http://bknr.net/trac/changeset/3426 contract-tree-image-handler now serves its images from independently computed store-images U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-11 15:14:44 UTC (rev 3425) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-14 08:38:03 UTC (rev 3426) @@ -5,6 +5,7 @@ ((name :allocation :class :initform 'contract-node) (timestamp :accessor timestamp :initform (get-universal-time)) (placemark-contracts :initform nil :accessor placemark-contracts) + (image :initform nil :accessor image) (kml-req-count :initform 0 :accessor kml-req-count) (image-req-count :initform 0 :accessor image-req-count))) @@ -193,40 +194,61 @@ :lod (node-lod child))))))))))) +;;; image + +;; contract-images are stored as store-images. The image slot of +;; contract-node points to the current store-image. + +(defun contract-node-store-image-name (node) + (format nil "contract-node~{~D~}" (node-path node))) + +(defun contract-node-update-image (node) + (labels ((find-contract-color (contract) + (destructuring-bind (r g b) + (contract-color contract) + (cl-gd:find-color r g b :alpha 40)))) + (let ((box (geo-box node)) + (image-size *contract-tree-images-size*)) + (cl-gd:with-image (cl-gd:*default-image* image-size image-size t) + (setf (cl-gd:save-alpha-p) t + (cl-gd:alpha-blending-p) nil) + ;; (cl-gd:draw-rectangle* 0 0 127 127 :filled nil :color (cl-gd:find-color 255 0 0)) + (let ((transparent (cl-gd:find-color 255 255 255 :alpha 127)) + (subbox (make-geo-box 0d0 0d0 0d0 0d0))) + (cl-gd:do-rows (y) + (cl-gd:do-pixels-in-row (x) + (let ((subbox (geo-subbox box x y image-size subbox))) + (multiple-value-bind (m2x m2y) + (geo-box-middle-m2coord subbox) + (setf (cl-gd:raw-pixel) + (let* ((m2 (ignore-errors (get-m2 m2x m2y))) + (contract (and m2 (m2-contract m2)))) + (if (and contract (contract-paidp contract)) + (find-contract-color contract) + transparent)))))))) + (let* ((image-name (contract-node-store-image-name node)) + (old-store-image (store-image-with-name image-name))) + (when old-store-image (delete-object old-store-image)) + (make-store-image :name image-name + :type :png)))))) + +(defun contract-node-update-image-if-needed (node) + (when (or (null (image node)) + (> (timestamp node) (blob-timestamp (image node)))) + (contract-node-update-image node))) + ;;; image handler (defclass contract-tree-image-handler (page-handler) ()) -(defmethod handle ((handler contract-tree-image-handler)) +(defmethod handle ((handler contract-tree-image-handler)) (with-query-params (path) - (handle-if-node-modified - (incf (image-req-count node)) - (let ((box (geo-box node)) - (image-size *contract-tree-images-size*)) - (cl-gd:with-image (cl-gd:*default-image* image-size image-size t) - (setf (cl-gd:save-alpha-p) t - (cl-gd:alpha-blending-p) nil) - ;; (cl-gd:draw-rectangle* 0 0 127 127 :filled nil :color (cl-gd:find-color 255 0 0)) - (let ((white (cl-gd:find-color 255 255 255 :alpha 127)) - (subbox (make-geo-box 0d0 0d0 0d0 0d0))) - (cl-gd:do-rows (y) - (cl-gd:do-pixels-in-row (x) - (let ((subbox (geo-subbox box x y image-size subbox))) - (multiple-value-bind (m2x m2y) - (geo-box-middle-m2coord subbox) - (setf (cl-gd:raw-pixel) - (let* ((m2 (ignore-errors (get-m2 m2x m2y))) - (%contract (m2-contract m2)) - (contract (and m2 - %contract - (contract-paidp %contract) - %contract))) - (if contract - (destructuring-bind (r g b) - (contract-color contract) - (cl-gd:find-color r g b :alpha 40)) - white)))))))) - (emit-image-to-browser cl-gd:*default-image* :png :date (timestamp node))))))) + (let* ((path (parse-path path)) + (node (find-node-with-path *contract-tree* path)) + (image (image node))) + (hunchentoot:handle-if-modified-since (timestamp image)) + (with-store-image* (image) + (emit-image-to-browser cl-gd:*default-image* :png :date (timestamp image)))))) ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () @@ -238,6 +260,10 @@ (dolist (contract (class-instances 'contract)) (when (contract-published-p contract) (insert-contract *contract-tree* contract))) + (format t "~&rendering contract-tree images...") + (map-nodes #'contract-node-update-image-if-needed *contract-tree*) + (format t "done.~%") + (bknr.datastore::delete-orphaned-blob-files nil) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) #'contract-tree-changed)) From bknr at bknr.net Mon Jul 14 09:01:09 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 11:01:09 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/web/sat-tree.lisp Message-ID: Revision: 3427 Author: ksprotte URL: http://bknr.net/trac/changeset/3427 fixed test DELETE-SAT-LAYER-AND-SNAPSHOT U trunk/projects/bos/test/web/sat-tree.lisp Modified: trunk/projects/bos/test/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/test/web/sat-tree.lisp 2008-07-14 08:38:03 UTC (rev 3426) +++ trunk/projects/bos/test/web/sat-tree.lisp 2008-07-14 09:01:09 UTC (rev 3427) @@ -6,7 +6,7 @@ (cl-gd:with-image (image 1000 1000) (with-store-reopenings () (bos.web::make-sat-layer image geo-box :test 0) - (progn - (bos.web::remove-sat-layer-from-quad-tree (find-store-object 1)) - (delete-object (first (class-instances 'bos.web::sat-layer)))) + (let ((sat-layer (first (class-instances 'bos.web::sat-layer)))) + (bos.web::remove-sat-layer-from-quad-tree sat-layer) + (delete-object sat-layer)) (pass))))) From bknr at bknr.net Mon Jul 14 09:05:11 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 11:05:11 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/sat-tree.lisp Message-ID: Revision: 3428 Author: ksprotte URL: http://bknr.net/trac/changeset/3428 just a tiny change U trunk/projects/bos/web/sat-tree.lisp Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-14 09:01:09 UTC (rev 3427) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-14 09:05:11 UTC (rev 3428) @@ -188,7 +188,8 @@ (when (find local-draw-order (class-instances 'sat-layer) :key #'local-draw-order) (cerror "create the new layer anyway" "There is already a sat-layer with the same local-draw-order '~A'." local-draw-order)) (let ((layer (make-object 'sat-layer :name name :geo-box geo-box :local-draw-order local-draw-order))) - (make-sat-image-tiles-for-depth image geo-box layer start-depth))) + (make-sat-image-tiles-for-depth image geo-box layer start-depth) + layer)) ;; (with-store-image (image (first (class-instances 'store-image))) ;; (make-sat-layer image From bknr at bknr.net Mon Jul 14 09:41:09 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 11:41:09 +0200 Subject: [bknr-cvs] ksprotte changed trunk/bknr/web/src/images/image.lisp Message-ID: Revision: 3429 Author: ksprotte URL: http://bknr.net/trac/changeset/3429 changed WITH-STORE-IMAGE* so that the only difference to WITH-STORE-IMAGE is that it uses CL-GD:*DEFAULT-IMAGE* as VAR. I suspect that WITH-STORE-IMAGE was changed earlier to use (image-type-keyword ,image) and this change was forgotten for WITH-STORE-IMAGE*. U trunk/bknr/web/src/images/image.lisp Modified: trunk/bknr/web/src/images/image.lisp =================================================================== --- trunk/bknr/web/src/images/image.lisp 2008-07-14 09:05:11 UTC (rev 3428) +++ trunk/bknr/web/src/images/image.lisp 2008-07-14 09:41:08 UTC (rev 3429) @@ -58,7 +58,7 @@ , at body)) (defmacro with-store-image* ((image) &body body) - `(with-image-from-file (cl-gd:*default-image* (blob-pathname ,image) (image-type-symbol (blob-mime-type ,image))) + `(with-image-from-file (cl-gd:*default-image* (blob-pathname ,image) (image-type-keyword ,image)) , at body)) (defun make-store-image (&key (image *default-image*) From bknr at bknr.net Mon Jul 14 09:43:17 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 11:43:17 +0200 Subject: [bknr-cvs] ksprotte changed trunk/bknr/web/src/images/image.lisp Message-ID: Revision: 3430 Author: ksprotte URL: http://bknr.net/trac/changeset/3430 again changed WITH-STORE-IMAGE* to expand to WITH-STORE-IMAGE, so they stay in sync! :) U trunk/bknr/web/src/images/image.lisp Modified: trunk/bknr/web/src/images/image.lisp =================================================================== --- trunk/bknr/web/src/images/image.lisp 2008-07-14 09:41:08 UTC (rev 3429) +++ trunk/bknr/web/src/images/image.lisp 2008-07-14 09:43:17 UTC (rev 3430) @@ -58,8 +58,8 @@ , at body)) (defmacro with-store-image* ((image) &body body) - `(with-image-from-file (cl-gd:*default-image* (blob-pathname ,image) (image-type-keyword ,image)) - , at body)) + `(with-store-image (cl-gd:*default-image* ,image) + , at body)) (defun make-store-image (&key (image *default-image*) name From bknr at bknr.net Mon Jul 14 09:46:45 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 11:46:45 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3431 Author: ksprotte URL: http://bknr.net/trac/changeset/3431 fixed CONTRACT-TREE-IMAGE-HANDLER U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-14 09:43:17 UTC (rev 3430) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-14 09:46:45 UTC (rev 3431) @@ -229,8 +229,9 @@ (let* ((image-name (contract-node-store-image-name node)) (old-store-image (store-image-with-name image-name))) (when old-store-image (delete-object old-store-image)) - (make-store-image :name image-name - :type :png)))))) + (setf (image node) + (make-store-image :name image-name + :type :png))))))) (defun contract-node-update-image-if-needed (node) (when (or (null (image node)) @@ -245,10 +246,10 @@ (with-query-params (path) (let* ((path (parse-path path)) (node (find-node-with-path *contract-tree* path)) - (image (image node))) - (hunchentoot:handle-if-modified-since (timestamp image)) + (image (image node))) + (hunchentoot:handle-if-modified-since (blob-timestamp image)) (with-store-image* (image) - (emit-image-to-browser cl-gd:*default-image* :png :date (timestamp image)))))) + (emit-image-to-browser cl-gd:*default-image* :png :date (blob-timestamp image)))))) ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () From bknr at bknr.net Mon Jul 14 11:06:52 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 13:06:52 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/startup.lisp Message-ID: Revision: 3432 Author: ksprotte URL: http://bknr.net/trac/changeset/3432 bos start hunchentoot with :persistent-connections-p nil squid frontend does not seem to have a way to reuse the connection to the hunchentoot backend. U trunk/projects/bos/web/startup.lisp Modified: trunk/projects/bos/web/startup.lisp =================================================================== --- trunk/projects/bos/web/startup.lisp 2008-07-14 09:46:45 UTC (rev 3431) +++ trunk/projects/bos/web/startup.lisp 2008-07-14 11:06:52 UTC (rev 3432) @@ -46,7 +46,8 @@ (hunchentoot:stop-server *webserver*)) (setf *hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf) hunchentoot:*rewrite-for-session-urls* nil) - (setq *webserver* (hunchentoot:start-server :port *port* #+not-yet :threaded #+not-yet (not debug))) + (setq *webserver* (hunchentoot:start-server :port *port* #+not-yet :threaded #+not-yet (not debug) + :persistent-connections-p nil)) (if start-frontend (start-frontend :host host :backend-port port :port frontend-port) (warn "frontend not started - to achieve this specify :start-frontend t")) From bknr at bknr.net Mon Jul 14 12:00:52 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 14:00:52 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3433 Author: ksprotte URL: http://bknr.net/trac/changeset/3433 contract-tree-image-handler uses :max-age 600 U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-14 11:06:52 UTC (rev 3432) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-14 12:00:51 UTC (rev 3433) @@ -242,14 +242,16 @@ (defclass contract-tree-image-handler (page-handler) ()) -(defmethod handle ((handler contract-tree-image-handler)) +(defmethod handle ((handler contract-tree-image-handler)) (with-query-params (path) (let* ((path (parse-path path)) - (node (find-node-with-path *contract-tree* path)) - (image (image node))) + (node (find-node-with-path *contract-tree* path)) + (image (image node))) (hunchentoot:handle-if-modified-since (blob-timestamp image)) (with-store-image* (image) - (emit-image-to-browser cl-gd:*default-image* :png :date (blob-timestamp image)))))) + (emit-image-to-browser cl-gd:*default-image* :png + :date (blob-timestamp image) + :max-age 600))))) ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () From bknr at bknr.net Mon Jul 14 12:59:06 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 14:59:06 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/slime/ Message-ID: Revision: 3434 Author: hans URL: http://bknr.net/trac/changeset/3434 update slime for cmucl-20 support U trunk/thirdparty/slime/CVS/Entries U trunk/thirdparty/slime/contrib/CVS/Entries U trunk/thirdparty/slime/doc/CVS/Entries Modified: trunk/thirdparty/slime/CVS/Entries =================================================================== --- trunk/thirdparty/slime/CVS/Entries 2008-07-14 12:00:51 UTC (rev 3433) +++ trunk/thirdparty/slime/CVS/Entries 2008-07-14 12:59:06 UTC (rev 3434) @@ -2,34 +2,34 @@ D/doc//// /swank-loader.lisp/1.85/Result of merge// /swank-openmcl.lisp/1.125/Mon May 12 18:52:05 2008// -/.cvsignore/1.5/Mon Jun 30 06:11:05 2008// -/ChangeLog/1.1367/Wed Jul 9 05:10:01 2008// -/HACKING/1.9/Mon Jun 30 06:11:05 2008// -/NEWS/1.9/Mon Jun 30 06:11:05 2008// -/PROBLEMS/1.8/Mon Jun 30 06:11:05 2008// -/README/1.14/Mon Jun 30 06:11:05 2008// -/hyperspec.el/1.11/Mon Jun 30 06:11:05 2008// -/metering.lisp/1.4/Mon Jun 30 06:11:05 2008// -/mkdist.sh/1.7/Mon Jun 30 06:11:05 2008// -/nregex.lisp/1.4/Mon Jun 30 06:11:05 2008// -/sbcl-pprint-patch.lisp/1.1/Mon Jun 30 06:11:05 2008// -/slime-autoloads.el/1.5/Mon Jun 30 06:11:05 2008// -/slime.el/1.944/Wed Jul 9 05:10:01 2008// -/swank-abcl.lisp/1.49/Mon Jun 30 06:11:05 2008// -/swank-allegro.lisp/1.103/Wed Jul 9 05:10:01 2008// /swank-backend.lisp/1.133/Result of merge// -/swank-clisp.lisp/1.69/Mon Jun 30 06:11:05 2008// /swank-cmucl.lisp/1.181/Result of merge// -/swank-corman.lisp/1.16/Mon Jun 30 06:11:05 2008// -/swank-ecl.lisp/1.23/Mon Jun 30 06:11:05 2008// -/swank-gray.lisp/1.10/Mon Jun 30 06:11:05 2008// -/swank-lispworks.lisp/1.100/Wed Jul 9 05:10:01 2008// -/swank-sbcl.lisp/1.198/Wed Jul 9 05:10:01 2008// -/swank-scl.lisp/1.19/Mon Jun 30 06:11:05 2008// -/swank-source-file-cache.lisp/1.9/Mon Jun 30 06:11:05 2008// -/swank-source-path-parser.lisp/1.20/Mon Jun 30 06:11:05 2008// -/swank.asd/1.9/Mon Jun 30 06:11:05 2008// /swank.lisp/1.546/Result of merge// -/test-all.sh/1.2/Mon Jun 30 06:11:05 2008// -/test.sh/1.10/Mon Jun 30 06:11:05 2008// -/xref.lisp/1.2/Mon Jun 30 06:11:05 2008// +/.cvsignore/1.5/Thu Jul 10 09:46:55 2008// +/ChangeLog/1.1367/Thu Jul 10 09:46:55 2008// +/HACKING/1.9/Thu Jul 10 09:46:55 2008// +/NEWS/1.9/Thu Jul 10 09:46:55 2008// +/PROBLEMS/1.8/Thu Jul 10 09:46:55 2008// +/README/1.14/Thu Jul 10 09:46:55 2008// +/hyperspec.el/1.11/Thu Jul 10 09:46:55 2008// +/metering.lisp/1.4/Thu Jul 10 09:46:55 2008// +/mkdist.sh/1.7/Thu Jul 10 09:46:55 2008// +/nregex.lisp/1.4/Thu Jul 10 09:46:55 2008// +/sbcl-pprint-patch.lisp/1.1/Thu Jul 10 09:46:55 2008// +/slime-autoloads.el/1.5/Thu Jul 10 09:46:55 2008// +/slime.el/1.944/Thu Jul 10 09:46:55 2008// +/swank-abcl.lisp/1.49/Thu Jul 10 09:46:55 2008// +/swank-allegro.lisp/1.103/Thu Jul 10 09:46:55 2008// +/swank-clisp.lisp/1.69/Thu Jul 10 09:46:55 2008// +/swank-corman.lisp/1.16/Thu Jul 10 09:46:55 2008// +/swank-ecl.lisp/1.23/Thu Jul 10 09:46:55 2008// +/swank-gray.lisp/1.10/Thu Jul 10 09:46:55 2008// +/swank-lispworks.lisp/1.100/Thu Jul 10 09:46:55 2008// +/swank-sbcl.lisp/1.198/Thu Jul 10 09:46:55 2008// +/swank-scl.lisp/1.19/Thu Jul 10 09:46:55 2008// +/swank-source-file-cache.lisp/1.9/Thu Jul 10 09:46:55 2008// +/swank-source-path-parser.lisp/1.20/Thu Jul 10 09:46:55 2008// +/swank.asd/1.9/Thu Jul 10 09:46:55 2008// +/test-all.sh/1.2/Thu Jul 10 09:46:55 2008// +/test.sh/1.10/Thu Jul 10 09:46:55 2008// +/xref.lisp/1.2/Thu Jul 10 09:46:55 2008// Modified: trunk/thirdparty/slime/contrib/CVS/Entries =================================================================== --- trunk/thirdparty/slime/contrib/CVS/Entries 2008-07-14 12:00:51 UTC (rev 3433) +++ trunk/thirdparty/slime/contrib/CVS/Entries 2008-07-14 12:59:06 UTC (rev 3434) @@ -1,38 +1,38 @@ -/ChangeLog/1.107/Wed Jul 9 05:10:01 2008// -/README/1.3/Mon Jun 30 06:11:05 2008// -/bridge.el/1.1/Mon Jun 30 06:11:05 2008// -/inferior-slime.el/1.2/Mon Jun 30 06:11:05 2008// -/slime-asdf.el/1.3/Mon Jun 30 06:11:05 2008// -/slime-autodoc.el/1.8/Mon Jun 30 06:11:05 2008// -/slime-banner.el/1.4/Mon Jun 30 06:11:05 2008// -/slime-c-p-c.el/1.9/Mon Jun 30 06:11:05 2008// -/slime-editing-commands.el/1.6/Mon Jun 30 06:11:05 2008// -/slime-fancy-inspector.el/1.3/Mon Jun 30 06:11:05 2008// -/slime-fancy.el/1.5/Mon Jun 30 06:11:05 2008// -/slime-fuzzy.el/1.7/Mon Jun 30 06:11:05 2008// -/slime-highlight-edits.el/1.3/Mon Jun 30 06:11:05 2008// -/slime-indentation.el/1.2/Mon Jun 30 06:11:05 2008// -/slime-motd.el/1.1/Mon Jun 30 06:11:05 2008// -/slime-parse.el/1.11/Wed Jul 9 05:10:02 2008// -/slime-presentation-streams.el/1.2/Mon Jun 30 06:11:05 2008// -/slime-presentations.el/1.15/Mon Jun 30 06:11:05 2008// -/slime-references.el/1.4/Mon Jun 30 06:11:05 2008// -/slime-scheme.el/1.1/Mon Jun 30 06:11:05 2008// -/slime-scratch.el/1.4/Mon Jun 30 06:11:05 2008// -/slime-tramp.el/1.3/Mon Jun 30 06:11:05 2008// -/slime-typeout-frame.el/1.6/Mon Jun 30 06:11:05 2008// -/slime-xref-browser.el/1.2/Mon Jun 30 06:11:05 2008// -/swank-arglists.lisp/1.21/Mon Jun 30 06:11:05 2008// -/swank-asdf.lisp/1.3/Wed Jul 9 05:10:02 2008// -/swank-c-p-c.lisp/1.2/Mon Jun 30 06:11:05 2008// -/swank-fancy-inspector.lisp/1.15/Mon Jun 30 06:11:05 2008// -/swank-fuzzy.lisp/1.8/Mon Jun 30 06:11:05 2008// -/swank-goo.goo/1.1/Mon Jun 30 06:11:05 2008// -/swank-indentation.lisp/1.1/Mon Jun 30 06:11:05 2008// -/swank-kawa.scm/1.7/Mon Jun 30 06:11:05 2008// -/swank-listener-hooks.lisp/1.1/Mon Jun 30 06:11:05 2008// -/swank-mit-scheme.scm/1.3/Mon Jun 30 06:11:05 2008// -/swank-motd.lisp/1.1/Mon Jun 30 06:11:05 2008// -/swank-presentation-streams.lisp/1.5/Mon Jun 30 06:11:05 2008// -/swank-presentations.lisp/1.5/Mon Jun 30 06:11:05 2008// +/ChangeLog/1.107/Thu Jul 10 09:46:55 2008// +/README/1.3/Thu Jul 10 09:46:55 2008// +/bridge.el/1.1/Thu Jul 10 09:46:55 2008// +/inferior-slime.el/1.2/Thu Jul 10 09:46:55 2008// +/slime-asdf.el/1.3/Thu Jul 10 09:46:55 2008// +/slime-autodoc.el/1.8/Thu Jul 10 09:46:55 2008// +/slime-banner.el/1.4/Thu Jul 10 09:46:55 2008// +/slime-c-p-c.el/1.9/Thu Jul 10 09:46:55 2008// +/slime-editing-commands.el/1.6/Thu Jul 10 09:46:55 2008// +/slime-fancy-inspector.el/1.3/Thu Jul 10 09:46:55 2008// +/slime-fancy.el/1.5/Thu Jul 10 09:46:55 2008// +/slime-fuzzy.el/1.7/Thu Jul 10 09:46:55 2008// +/slime-highlight-edits.el/1.3/Thu Jul 10 09:46:55 2008// +/slime-indentation.el/1.2/Thu Jul 10 09:46:55 2008// +/slime-motd.el/1.1/Thu Jul 10 09:46:55 2008// +/slime-parse.el/1.11/Thu Jul 10 09:46:55 2008// +/slime-presentation-streams.el/1.2/Thu Jul 10 09:46:55 2008// +/slime-presentations.el/1.15/Thu Jul 10 09:46:55 2008// +/slime-references.el/1.4/Thu Jul 10 09:46:55 2008// +/slime-scheme.el/1.1/Thu Jul 10 09:46:55 2008// +/slime-scratch.el/1.4/Thu Jul 10 09:46:55 2008// +/slime-tramp.el/1.3/Thu Jul 10 09:46:55 2008// +/slime-typeout-frame.el/1.6/Thu Jul 10 09:46:55 2008// +/slime-xref-browser.el/1.2/Thu Jul 10 09:46:55 2008// +/swank-arglists.lisp/1.21/Thu Jul 10 09:46:55 2008// +/swank-asdf.lisp/1.3/Thu Jul 10 09:46:55 2008// +/swank-c-p-c.lisp/1.2/Thu Jul 10 09:46:55 2008// +/swank-fancy-inspector.lisp/1.15/Thu Jul 10 09:46:55 2008// +/swank-fuzzy.lisp/1.8/Thu Jul 10 09:46:55 2008// +/swank-goo.goo/1.1/Thu Jul 10 09:46:55 2008// +/swank-indentation.lisp/1.1/Thu Jul 10 09:46:55 2008// +/swank-kawa.scm/1.7/Thu Jul 10 09:46:55 2008// +/swank-listener-hooks.lisp/1.1/Thu Jul 10 09:46:55 2008// +/swank-mit-scheme.scm/1.3/Thu Jul 10 09:46:55 2008// +/swank-motd.lisp/1.1/Thu Jul 10 09:46:55 2008// +/swank-presentation-streams.lisp/1.5/Thu Jul 10 09:46:55 2008// +/swank-presentations.lisp/1.5/Thu Jul 10 09:46:55 2008// D Modified: trunk/thirdparty/slime/doc/CVS/Entries =================================================================== --- trunk/thirdparty/slime/doc/CVS/Entries 2008-07-14 12:00:51 UTC (rev 3433) +++ trunk/thirdparty/slime/doc/CVS/Entries 2008-07-14 12:59:06 UTC (rev 3434) @@ -1,9 +1,9 @@ -/.cvsignore/1.1/Mon Jun 30 06:11:01 2008// -/Makefile/1.12/Mon Jun 30 06:11:01 2008// -/slime-refcard.pdf/1.1/Mon Jun 30 06:11:01 2008// -/slime-refcard.tex/1.1/Mon Jun 30 06:11:01 2008// -/slime-small.eps/1.1/Mon Jun 30 06:11:01 2008// -/slime-small.pdf/1.1/Mon Jun 30 06:11:01 2008// -/slime.texi/1.64/Mon Jun 30 06:11:01 2008// -/texinfo-tabulate.awk/1.2/Mon Jun 30 06:11:01 2008// +/.cvsignore/1.1/Thu Jul 10 09:46:48 2008// +/Makefile/1.12/Thu Jul 10 09:46:48 2008// +/slime-refcard.pdf/1.1/Thu Jul 10 09:46:48 2008// +/slime-refcard.tex/1.1/Thu Jul 10 09:46:48 2008// +/slime-small.eps/1.1/Thu Jul 10 09:46:48 2008// +/slime-small.pdf/1.1/Thu Jul 10 09:46:48 2008// +/slime.texi/1.64/Thu Jul 10 09:46:48 2008// +/texinfo-tabulate.awk/1.2/Thu Jul 10 09:46:48 2008// D From bknr at bknr.net Mon Jul 14 14:18:51 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 16:18:51 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/set-timeouts.lisp Message-ID: Revision: 3435 Author: hans URL: http://bknr.net/trac/changeset/3435 Add SET-TIMEOUTS implementation for CMUCL U trunk/thirdparty/hunchentoot/set-timeouts.lisp Modified: trunk/thirdparty/hunchentoot/set-timeouts.lisp =================================================================== --- trunk/thirdparty/hunchentoot/set-timeouts.lisp 2008-07-14 12:59:06 UTC (rev 3434) +++ trunk/thirdparty/hunchentoot/set-timeouts.lisp 2008-07-14 14:18:51 UTC (rev 3435) @@ -63,6 +63,9 @@ #+:sbcl (setf (sb-impl::fd-stream-timeout (usocket:socket-stream usocket)) (coerce read-timeout 'single-float)) - #-(or :clisp :allegro :openmcl :sbcl :lispworks) + #+:cmu + (setf (lisp::fd-stream-timeout (usocket:socket-stream usocket)) + (coerce read-timeout 'integer)) + #-(or :clisp :allegro :openmcl :sbcl :lispworks :cmu) (not-implemented 'set-timeouts)) From bknr at bknr.net Mon Jul 14 14:33:26 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 16:33:26 +0200 Subject: [bknr-cvs] hans changed trunk/ Message-ID: Revision: 3436 Author: hans URL: http://bknr.net/trac/changeset/3436 Some small cmucl fixes. U trunk/bknr/datastore/src/utils/acl-mp-compat.lisp U trunk/bknr/modules/mail/smtp-server.lisp U trunk/thirdparty/closure-common/closure-common.asd U trunk/thirdparty/slime/swank-cmucl.lisp Modified: trunk/bknr/datastore/src/utils/acl-mp-compat.lisp =================================================================== --- trunk/bknr/datastore/src/utils/acl-mp-compat.lisp 2008-07-14 14:18:51 UTC (rev 3435) +++ trunk/bknr/datastore/src/utils/acl-mp-compat.lisp 2008-07-14 14:33:26 UTC (rev 3436) @@ -8,8 +8,10 @@ (mp:make-process-lock :name name) #+sbcl (sb-thread:make-mutex :name name) - #+cmu + #+(and cmu x86) (mp:make-lock name) + #+(and cmu (not x86)) + (declare (ignore name)) #+openmcl (ccl:make-lock name) #+lispworks Modified: trunk/bknr/modules/mail/smtp-server.lisp =================================================================== --- trunk/bknr/modules/mail/smtp-server.lisp 2008-07-14 14:18:51 UTC (rev 3435) +++ trunk/bknr/modules/mail/smtp-server.lisp 2008-07-14 14:33:26 UTC (rev 3436) @@ -87,14 +87,10 @@ (defun handle-smtp-client (client-socket) (handle-session (make-instance 'smtp-client :socket client-socket))) -#+cmu (defun smtp-server (&key (port 2525)) - (let ((server-socket (socket:make-socket :connect :passive :local-port port :reuse-address t))) - (unwind-protect - (loop - (let* ((client-socket (socket:accept-connection server-socket))) - (unwind-protect - (handle-smtp-client client-socket) - (close client-socket)))) - (format t ";; smtp server finished, closing~%") - (close server-socket)))) + (usocket:with-socket-listener (server-socket :local-port port :reuse-address t) + (loop + (let* ((client-socket (usocket:socket-accept server-socket))) + (unwind-protect + (handle-smtp-client client-socket) + (close client-socket)))))) Modified: trunk/thirdparty/closure-common/closure-common.asd =================================================================== --- trunk/thirdparty/closure-common/closure-common.asd 2008-07-14 14:18:51 UTC (rev 3435) +++ trunk/thirdparty/closure-common/closure-common.asd 2008-07-14 14:33:26 UTC (rev 3436) @@ -26,7 +26,7 @@ #+rune-is-character (error "conflicting unicode configuration. Please recompile.") (pushnew :rune-is-integer *features*)) - ((code-char 70000) + ((ignore-errors (code-char 70000)) (when (test #xD800) (format t " WARNING: Lisp implementation doesn't use UTF-16, ~ but accepts surrogate code points.~%")) Modified: trunk/thirdparty/slime/swank-cmucl.lisp =================================================================== --- trunk/thirdparty/slime/swank-cmucl.lisp 2008-07-14 14:18:51 UTC (rev 3435) +++ trunk/thirdparty/slime/swank-cmucl.lisp 2008-07-14 14:33:26 UTC (rev 3436) @@ -74,7 +74,7 @@ ;;; `:SPAWN' are reasonable alternatives. (defimplementation preferred-communication-style () - :sigio) + :fd-handler) #-(or darwin mips) (defimplementation create-socket (host port) From bknr at bknr.net Mon Jul 14 18:10:10 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 14 Jul 2008 20:10:10 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3437 Author: ksprotte URL: http://bknr.net/trac/changeset/3437 improved the way contract-tree uses store-images for caching U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-14 14:33:26 UTC (rev 3436) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-14 18:10:10 UTC (rev 3437) @@ -3,12 +3,23 @@ ;;; contract-node (defclass contract-node (node-extension) ((name :allocation :class :initform 'contract-node) - (timestamp :accessor timestamp :initform (get-universal-time)) + (timestamp :accessor timestamp) (placemark-contracts :initform nil :accessor placemark-contracts) (image :initform nil :accessor image) (kml-req-count :initform 0 :accessor kml-req-count) (image-req-count :initform 0 :accessor image-req-count))) +(defun contract-node-find-corresponding-store-image (node) + (first (get-keyword-store-images (contract-node-keyword node)))) + +(defmethod initialize-instance :after ((node contract-node) &key args) + (declare (ignore args)) + (let ((image (contract-node-find-corresponding-store-image node))) + (if (and image (probe-file (blob-pathname image))) + (setf (image node) image + (timestamp node) (blob-timestamp image)) + (setf (timestamp node) (get-universal-time))))) + (defvar *contract-tree* nil) (defparameter *contract-tree-images-size* 128) ; was 256 @@ -199,9 +210,18 @@ ;; contract-images are stored as store-images. The image slot of ;; contract-node points to the current store-image. -(defun contract-node-store-image-name (node) - (format nil "contract-node~{~D~}" (node-path node))) +(defun contract-node-keyword (node) + "Used to relate NODE to its store-image." + (intern (format nil "CONTRACT-NODE~{~D~}" (node-path node)) #.(find-package "KEYWORD"))) +(defun contract-node-store-image-name (node old-store-image) + "Used only as a placeholder for store-image-name that always +has to be unique." + (let ((next-internal-id (if old-store-image + (store-object-id old-store-image) + 0))) + (format nil "contract-node~{~d~}_~D" (node-path node) next-internal-id))) + (defun contract-node-update-image (node) (labels ((find-contract-color (contract) (destructuring-bind (r g b) @@ -226,15 +246,21 @@ (if (and contract (contract-paidp contract)) (find-contract-color contract) transparent)))))))) - (let* ((image-name (contract-node-store-image-name node)) - (old-store-image (store-image-with-name image-name))) - (when old-store-image (delete-object old-store-image)) - (setf (image node) - (make-store-image :name image-name - :type :png))))))) + (let* ((keyword (contract-node-keyword node)) + (old-store-image (contract-node-find-corresponding-store-image node)) + (new-store-image (make-store-image :name (contract-node-store-image-name node old-store-image) + :type :png + :keywords (list keyword)))) + ;; activate new-store-image + (setf (image node) new-store-image) + ;; delete the old one + (when old-store-image + (delete-file (blob-pathname old-store-image)) + (delete-object old-store-image))))))) (defun contract-node-update-image-if-needed (node) (when (or (null (image node)) + (not (probe-file (blob-pathname (image node)))) (> (timestamp node) (blob-timestamp (image node)))) (contract-node-update-image node))) @@ -263,10 +289,9 @@ (dolist (contract (class-instances 'contract)) (when (contract-published-p contract) (insert-contract *contract-tree* contract))) - (format t "~&rendering contract-tree images...") + (format t "~&rendering contract-tree images if needed...") (map-nodes #'contract-node-update-image-if-needed *contract-tree*) - (format t "done.~%") - (bknr.datastore::delete-orphaned-blob-files nil) + (format t "done.~%") (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) #'contract-tree-changed)) From bknr at bknr.net Tue Jul 15 07:45:58 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 09:45:58 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3438 Author: ksprotte URL: http://bknr.net/trac/changeset/3438 contract-tree small refactoring U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-14 18:10:10 UTC (rev 3437) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-15 07:45:57 UTC (rev 3438) @@ -9,6 +9,9 @@ (kml-req-count :initform 0 :accessor kml-req-count) (image-req-count :initform 0 :accessor image-req-count))) +(defun contract-node-set-timestamp-now (node) + (setf (timestamp node) (get-universal-time))) + (defun contract-node-find-corresponding-store-image (node) (first (get-keyword-store-images (contract-node-keyword node)))) @@ -18,7 +21,7 @@ (if (and image (probe-file (blob-pathname image))) (setf (image node) image (timestamp node) (blob-timestamp image)) - (setf (timestamp node) (get-universal-time))))) + (contract-node-set-timestamp-now node)))) (defvar *contract-tree* nil) (defparameter *contract-tree-images-size* 128) ; was 256 @@ -75,8 +78,7 @@ (defun insert-contract (contract-tree contract) (let ((geo-box (contract-geo-box contract)) (geo-center (contract-geo-center contract))) - (ensure-intersecting-children contract-tree geo-box - (lambda (node) (setf (timestamp node) (get-universal-time)))) + (ensure-intersecting-children contract-tree geo-box #'contract-node-set-timestamp-now) (let ((placemark-node (find-node-if (lambda (node) (contract-placemark-at-node-p node contract)) contract-tree :prune-test (lambda (node) @@ -92,8 +94,7 @@ (setf (placemark-contracts node) (delete contract (placemark-contracts node))) ;; mark intersecting children as dirty - (ensure-intersecting-children contract-tree geo-box - (lambda (node) (setf (timestamp node) (get-universal-time))))))) + (ensure-intersecting-children contract-tree geo-box #'contract-node-set-timestamp-now)))) (defun contract-tree-changed (contract-tree contract &key type) (case type @@ -232,7 +233,6 @@ (cl-gd:with-image (cl-gd:*default-image* image-size image-size t) (setf (cl-gd:save-alpha-p) t (cl-gd:alpha-blending-p) nil) - ;; (cl-gd:draw-rectangle* 0 0 127 127 :filled nil :color (cl-gd:find-color 255 0 0)) (let ((transparent (cl-gd:find-color 255 255 255 :alpha 127)) (subbox (make-geo-box 0d0 0d0 0d0 0d0))) (cl-gd:do-rows (y) From bknr at bknr.net Tue Jul 15 10:03:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 12:03:24 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3439 Author: ksprotte URL: http://bknr.net/trac/changeset/3439 fixed contract-node timestamp behaviour the main problem was that (timestamp node) has to be computed by (max (timestamp node) (contract-date contract)) U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-15 07:45:57 UTC (rev 3438) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-15 10:03:24 UTC (rev 3439) @@ -3,7 +3,7 @@ ;;; contract-node (defclass contract-node (node-extension) ((name :allocation :class :initform 'contract-node) - (timestamp :accessor timestamp) + (timestamp :accessor timestamp :initform 0) ; timestamp initially "very old" (placemark-contracts :initform nil :accessor placemark-contracts) (image :initform nil :accessor image) (kml-req-count :initform 0 :accessor kml-req-count) @@ -12,16 +12,22 @@ (defun contract-node-set-timestamp-now (node) (setf (timestamp node) (get-universal-time))) +(defun contract-node-timestamp-updater (contract) + (lambda (node) (setf (timestamp node) + (max (timestamp node) (contract-date contract))))) + (defun contract-node-find-corresponding-store-image (node) - (first (get-keyword-store-images (contract-node-keyword node)))) + (let ((store-images (get-keyword-store-images (contract-node-keyword node)))) + (when (< 1 (length store-images)) + (warn "~D store-images for ~S" (length store-images) node)) + (first store-images))) (defmethod initialize-instance :after ((node contract-node) &key args) (declare (ignore args)) (let ((image (contract-node-find-corresponding-store-image node))) - (if (and image (probe-file (blob-pathname image))) - (setf (image node) image - (timestamp node) (blob-timestamp image)) - (contract-node-set-timestamp-now node)))) + (when (and image (probe-file (blob-pathname image))) + (setf (image node) image + (timestamp node) (blob-timestamp image))))) (defvar *contract-tree* nil) (defparameter *contract-tree-images-size* 128) ; was 256 @@ -78,11 +84,13 @@ (defun insert-contract (contract-tree contract) (let ((geo-box (contract-geo-box contract)) (geo-center (contract-geo-center contract))) - (ensure-intersecting-children contract-tree geo-box #'contract-node-set-timestamp-now) - (let ((placemark-node (find-node-if (lambda (node) (contract-placemark-at-node-p node contract)) - contract-tree - :prune-test (lambda (node) - (not (geo-point-in-box-p (geo-box node) geo-center)))))) + (ensure-intersecting-children contract-tree geo-box + (contract-node-timestamp-updater contract)) + (let ((placemark-node (find-node-if + (lambda (node) (contract-placemark-at-node-p node contract)) + contract-tree + :prune-test (lambda (node) + (not (geo-point-in-box-p (geo-box node) geo-center)))))) (assert placemark-node) (push contract (placemark-contracts placemark-node))))) @@ -289,9 +297,9 @@ (dolist (contract (class-instances 'contract)) (when (contract-published-p contract) (insert-contract *contract-tree* contract))) - (format t "~&rendering contract-tree images if needed...") + (format t "~&rendering contract-tree images if needed...") (force-output) (map-nodes #'contract-node-update-image-if-needed *contract-tree*) - (format t "done.~%") + (format t "done.~%") (force-output) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) #'contract-tree-changed)) From bknr at bknr.net Tue Jul 15 10:07:07 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 12:07:07 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3440 Author: ksprotte URL: http://bknr.net/trac/changeset/3440 use contract-node-invalidate-timestamp for remove-contract U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-15 10:03:24 UTC (rev 3439) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-15 10:07:07 UTC (rev 3440) @@ -9,8 +9,12 @@ (kml-req-count :initform 0 :accessor kml-req-count) (image-req-count :initform 0 :accessor image-req-count))) -(defun contract-node-set-timestamp-now (node) - (setf (timestamp node) (get-universal-time))) +(defun contract-node-invalidate-timestamp (node) + (let ((image (contract-node-find-corresponding-store-image node))) + (setf (timestamp node) + (if (and image (probe-file (blob-pathname image))) + (1+ (blob-timestamp image)) + (get-universal-time))))) (defun contract-node-timestamp-updater (contract) (lambda (node) (setf (timestamp node) @@ -102,7 +106,7 @@ (setf (placemark-contracts node) (delete contract (placemark-contracts node))) ;; mark intersecting children as dirty - (ensure-intersecting-children contract-tree geo-box #'contract-node-set-timestamp-now)))) + (ensure-intersecting-children contract-tree geo-box #'contract-node-invalidate-timestamp)))) (defun contract-tree-changed (contract-tree contract &key type) (case type From bknr at bknr.net Tue Jul 15 10:14:00 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 12:14:00 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3441 Author: ksprotte URL: http://bknr.net/trac/changeset/3441 contract-node-invalidate-timestamp: only need to update timestamp if the corresponding blob exists U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-15 10:07:07 UTC (rev 3440) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-15 10:14:00 UTC (rev 3441) @@ -11,10 +11,8 @@ (defun contract-node-invalidate-timestamp (node) (let ((image (contract-node-find-corresponding-store-image node))) - (setf (timestamp node) - (if (and image (probe-file (blob-pathname image))) - (1+ (blob-timestamp image)) - (get-universal-time))))) + (when (and image (probe-file (blob-pathname image))) + (setf (timestamp node) (1+ (blob-timestamp image)))))) (defun contract-node-timestamp-updater (contract) (lambda (node) (setf (timestamp node) From bknr at bknr.net Tue Jul 15 10:46:03 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 12:46:03 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-image-handler.lisp Message-ID: Revision: 3442 Author: ksprotte URL: http://bknr.net/trac/changeset/3442 contract-image-handler: small fix. gives a more explanatory error message when the contract does not exist U trunk/projects/bos/web/contract-image-handler.lisp Modified: trunk/projects/bos/web/contract-image-handler.lisp =================================================================== --- trunk/projects/bos/web/contract-image-handler.lisp 2008-07-15 10:14:00 UTC (rev 3441) +++ trunk/projects/bos/web/contract-image-handler.lisp 2008-07-15 10:46:03 UTC (rev 3442) @@ -27,4 +27,8 @@ (cl-gd:do-rows (y) (cl-gd:do-pixels-in-row (x) (setf (cl-gd:raw-pixel) (aref work-array x y))))) - (emit-image-to-browser cl-gd:*default-image* :png :cache-sticky t)))) \ No newline at end of file + (emit-image-to-browser cl-gd:*default-image* :png :cache-sticky t)))) + +(defmethod handle-object ((handler contract-image-handler) (contract null)) + (error "no contract found")) + From bknr at bknr.net Tue Jul 15 11:24:47 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 13:24:47 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/datastore/src/indices/indexed-class.lisp Message-ID: Revision: 3443 Author: hans URL: http://bknr.net/trac/changeset/3443 Don't use signals in order to find out if an object is destroyed. U trunk/bknr/datastore/src/indices/indexed-class.lisp Modified: trunk/bknr/datastore/src/indices/indexed-class.lisp =================================================================== --- trunk/bknr/datastore/src/indices/indexed-class.lisp 2008-07-15 10:46:03 UTC (rev 3442) +++ trunk/bknr/datastore/src/indices/indexed-class.lisp 2008-07-15 11:24:47 UTC (rev 3443) @@ -457,8 +457,6 @@ (destroy-object-with-class (class-of object) object)) (defmethod object-destroyed-p ((object t)) - (handler-case - (slot-value object 'destroyed-p) - (unbound-slot () nil) - (simple-error () nil))) + (and (slot-boundp object 'destroyed-p) + (slot-value object 'destroyed-p))) From bknr at bknr.net Tue Jul 15 11:38:41 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 15 Jul 2008 13:38:41 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3444 Author: ksprotte URL: http://bknr.net/trac/changeset/3444 tsung config changed to host horst.headcraft.de U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-15 11:24:47 UTC (rev 3443) +++ trunk/projects/bos/test/tsung.xml 2008-07-15 11:38:41 UTC (rev 3444) @@ -9,7 +9,7 @@ - + + + +


[Special variable]
*allow-dotless-cookie-domains-p* +


+ +When this variable is not NIL, cookie domains containing +no dots are considered valid. The default is NIL, +meaning to disallow such domains except for "localhost". + +
+ + + +


[Special variable]
*ignore-unparseable-cookie-dates-p* Modified: trunk/thirdparty/drakma/packages.lisp =================================================================== --- trunk/thirdparty/drakma/packages.lisp 2008-07-16 08:59:09 UTC (rev 3453) +++ trunk/thirdparty/drakma/packages.lisp 2008-07-16 09:16:15 UTC (rev 3454) @@ -33,7 +33,8 @@ (:use :cl :puri :flexi-streams :chunga) ;; the variable defined in the ASDF system definition (:import-from :drakma-asd :*drakma-version-string*) - (:export :*body-format-function* + (:export :*allow-dotless-cookie-domains-p* + :*body-format-function* :*drakma-default-external-format* :*header-stream* :*ignore-unparseable-cookie-dates-p* Modified: trunk/thirdparty/drakma/specials.lisp =================================================================== --- trunk/thirdparty/drakma/specials.lisp 2008-07-16 08:59:09 UTC (rev 3453) +++ trunk/thirdparty/drakma/specials.lisp 2008-07-16 09:16:15 UTC (rev 3454) @@ -70,6 +70,11 @@ which incoming and outgoing headers will be written for debugging purposes.") +(defvar *allow-dotless-cookie-domains-p* nil + "When this variable is not NIL, cookie domains containing no dots +are considered valid. The default is NIL, meaning to disallow such +domains except for \"localhost\".") + (defvar *ignore-unparseable-cookie-dates-p* nil "Whether Drakma is allowed to treat `Expires' dates in cookie headers as non-existent if it can't parse them. If the value of this From bknr at bknr.net Wed Jul 16 09:53:09 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 11:53:09 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3455 Author: ksprotte URL: http://bknr.net/trac/changeset/3455 updated old tsung.xml with new, existing contract ids U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-16 09:16:15 UTC (rev 3454) +++ trunk/projects/bos/test/tsung.xml 2008-07-16 09:53:09 UTC (rev 3455) @@ -450,39 +450,39 @@ - + - + - + - + - + - + - + - + From bknr at bknr.net Wed Jul 16 10:20:49 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 12:20:49 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3456 Author: ksprotte URL: http://bknr.net/trac/changeset/3456 tsung.xml removed a few non-existing paths U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-16 09:53:09 UTC (rev 3455) +++ trunk/projects/bos/test/tsung.xml 2008-07-16 10:20:49 UTC (rev 3456) @@ -837,8 +837,7 @@ - - + @@ -932,8 +931,6 @@ - - @@ -1078,7 +1075,6 @@ - From bknr at bknr.net Wed Jul 16 11:59:12 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 13:59:12 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3457 Author: ksprotte URL: http://bknr.net/trac/changeset/3457 contract-tree new function (contract-tree-update-images-if-needed) that now is very fast in the case that there are no updates to be done U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-16 10:20:49 UTC (rev 3456) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-16 11:59:12 UTC (rev 3457) @@ -268,12 +268,26 @@ (delete-file (blob-pathname old-store-image)) (delete-object old-store-image))))))) +(defun contract-node-update-image-needed-p (node) + (or (null (image node)) + (> (timestamp node) (blob-timestamp (image node))))) + (defun contract-node-update-image-if-needed (node) - (when (or (null (image node)) - (not (probe-file (blob-pathname (image node)))) - (> (timestamp node) (blob-timestamp (image node)))) + (when (contract-node-update-image-needed-p node) (contract-node-update-image node))) +(defun contract-tree-update-images-if-needed () + ;; I did not see an easy way to avoid that + ;; CONTRACT-NODE-UPDATE-IMAGE-NEEDED-P is called twice for every + ;; node. Once inside CONTRACT-NODE-UPDATE-IMAGE-IF-NEEDED and once + ;; for the prune-test. + + ;; Let's hope we are lucky and there is nothing to do by inspecting + ;; *contract-tree* at first only once. + (when (contract-node-update-image-needed-p *contract-tree*) + (map-nodes #'contract-node-update-image-if-needed *contract-tree* + :prune-test (lambda (node) (not (contract-node-update-image-needed-p node)))))) + ;;; image handler (defclass contract-tree-image-handler (page-handler) ()) @@ -300,7 +314,7 @@ (when (contract-published-p contract) (insert-contract *contract-tree* contract))) (format t "~&rendering contract-tree images if needed...") (force-output) - (map-nodes #'contract-node-update-image-if-needed *contract-tree*) + (contract-tree-update-images-if-needed) (format t "done.~%") (force-output) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) From bknr at bknr.net Wed Jul 16 12:06:28 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 14:06:28 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3458 Author: ksprotte URL: http://bknr.net/trac/changeset/3458 added contract-tree image update daemon U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-16 11:59:12 UTC (rev 3457) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-16 12:06:28 UTC (rev 3458) @@ -303,6 +303,25 @@ :date (blob-timestamp image) :max-age 600))))) +;; contract-tree image update daemon +(defvar *contract-tree-image-update-daemon* nil) + +(defun contract-tree-image-update-daemon-loop () + (loop (contract-tree-update-images-if-needed) (sleep 10))) + +(defun contract-tree-image-update-daemon-running-p () + (and *contract-tree-image-update-daemon* + (bt:thread-alive-p *contract-tree-image-update-daemon*))) + +(defun start-contract-tree-image-update-daemon () + (unless (contract-tree-image-update-daemon-running-p) + (bt:make-thread #'contract-tree-image-update-daemon-loop :name "contract-tree-image-update-daemon"))) + +(defun stop-contract-tree-image-update-daemon () + (when *contract-tree-image-update-daemon* + (bt:destroy-thread *contract-tree-image-update-daemon*) + (setq *contract-tree-image-update-daemon* nil))) + ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () (setq *contract-tree* (make-instance 'contract-node @@ -314,7 +333,7 @@ (when (contract-published-p contract) (insert-contract *contract-tree* contract))) (format t "~&rendering contract-tree images if needed...") (force-output) - (contract-tree-update-images-if-needed) + (start-contract-tree-image-update-daemon) (format t "done.~%") (force-output) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) From bknr at bknr.net Wed Jul 16 12:18:57 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 14:18:57 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3459 Author: ksprotte URL: http://bknr.net/trac/changeset/3459 fixed *contract-tree-image-update-daemon* not to use destroy-thread U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-16 12:06:28 UTC (rev 3458) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-16 12:18:57 UTC (rev 3459) @@ -305,9 +305,12 @@ ;; contract-tree image update daemon (defvar *contract-tree-image-update-daemon* nil) +(defvar *contract-tree-image-update-daemon-halt*) (defun contract-tree-image-update-daemon-loop () - (loop (contract-tree-update-images-if-needed) (sleep 10))) + (loop (when *contract-tree-image-update-daemon-halt* (return)) + (contract-tree-update-images-if-needed) + (sleep 10))) (defun contract-tree-image-update-daemon-running-p () (and *contract-tree-image-update-daemon* @@ -315,12 +318,14 @@ (defun start-contract-tree-image-update-daemon () (unless (contract-tree-image-update-daemon-running-p) - (bt:make-thread #'contract-tree-image-update-daemon-loop :name "contract-tree-image-update-daemon"))) + (setq *contract-tree-image-update-daemon-halt* nil) + (bt:make-thread #'contract-tree-image-update-daemon-loop + :name "contract-tree-image-update-daemon"))) (defun stop-contract-tree-image-update-daemon () - (when *contract-tree-image-update-daemon* - (bt:destroy-thread *contract-tree-image-update-daemon*) - (setq *contract-tree-image-update-daemon* nil))) + (when (contract-tree-image-update-daemon-running-p) + (setq *contract-tree-image-update-daemon-halt* t) + (warn "contract-tree-image-update-daemon will stop soon"))) ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () From bknr at bknr.net Wed Jul 16 12:28:41 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 14:28:41 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/tsung.xml Message-ID: Revision: 3460 Author: ksprotte URL: http://bknr.net/trac/changeset/3460 tsung.xml edited for shorter arrivalphases U trunk/projects/bos/test/tsung.xml Modified: trunk/projects/bos/test/tsung.xml =================================================================== --- trunk/projects/bos/test/tsung.xml 2008-07-16 12:18:57 UTC (rev 3459) +++ trunk/projects/bos/test/tsung.xml 2008-07-16 12:28:41 UTC (rev 3460) @@ -23,34 +23,13 @@ duration --> - + - - - - - - - - + + - - - - - - - - - - - - - - - From bknr at bknr.net Wed Jul 16 12:49:49 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 14:49:49 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3461 Author: ksprotte URL: http://bknr.net/trac/changeset/3461 dont start contract-tree-image-update-daemon when testing U trunk/projects/bos/test/fixtures.lisp U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/test/fixtures.lisp =================================================================== --- trunk/projects/bos/test/fixtures.lisp 2008-07-16 12:28:41 UTC (rev 3460) +++ trunk/projects/bos/test/fixtures.lisp 2008-07-16 12:49:49 UTC (rev 3461) @@ -5,8 +5,9 @@ (when snapshot (format t "~&;; ++ taking snapshot~%") (snapshot)) - (bos.m2::reinit :directory (bknr.datastore::store-directory *store*) - :website-url bos.m2::*website-url*) + (let ((bos.web::*start-contract-tree-image-update-daemon* nil)) + (bos.m2::reinit :directory (bknr.datastore::store-directory *store*) + :website-url bos.m2::*website-url*)) (format t "~&;; ++ reopen-store done~%")) (defmacro reopen-store ((&key snapshot) &rest store-object-vars) @@ -50,7 +51,7 @@ (let ((store-path (parse-namestring (format nil "/tmp/test-store-~D.tmp/" (get-universal-time))))) (unwind-protect - (progn + (let ((bos.web::*start-contract-tree-image-update-daemon* nil)) (bos.m2::reinit :delete t :directory store-path :website-url bos.m2::*website-url*) Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-16 12:28:41 UTC (rev 3460) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-16 12:49:49 UTC (rev 3461) @@ -306,6 +306,7 @@ ;; contract-tree image update daemon (defvar *contract-tree-image-update-daemon* nil) (defvar *contract-tree-image-update-daemon-halt*) +(defvar *start-contract-tree-image-update-daemon* t) (defun contract-tree-image-update-daemon-loop () (loop (when *contract-tree-image-update-daemon-halt* (return)) @@ -322,10 +323,18 @@ (bt:make-thread #'contract-tree-image-update-daemon-loop :name "contract-tree-image-update-daemon"))) -(defun stop-contract-tree-image-update-daemon () +(defun stop-contract-tree-image-update-daemon (&key wait) (when (contract-tree-image-update-daemon-running-p) (setq *contract-tree-image-update-daemon-halt* t) - (warn "contract-tree-image-update-daemon will stop soon"))) + (warn "contract-tree-image-update-daemon will stop soon") + (when wait + (loop repeat 20 + do (progn (sleep 1) + (when (not (contract-tree-image-update-daemon-running-p)) + (return)))) + (if (contract-tree-image-update-daemon-running-p) + (error "Failed to stop contract-tree-image-update-daemon") + (warn "contract-tree-image-update-daemon stopped"))))) ;;; make-contract-tree-from-m2 (defun make-contract-tree-from-m2 () @@ -338,7 +347,8 @@ (when (contract-published-p contract) (insert-contract *contract-tree* contract))) (format t "~&rendering contract-tree images if needed...") (force-output) - (start-contract-tree-image-update-daemon) + (when *start-contract-tree-image-update-daemon* + (start-contract-tree-image-update-daemon)) (format t "done.~%") (force-output) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) From bknr at bknr.net Wed Jul 16 13:19:28 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:19:28 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3462 Author: ksprotte URL: http://bknr.net/trac/changeset/3462 equipped poi-javascript-handler with last-modified U trunk/projects/bos/web/poi-handlers.lisp Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 12:49:49 UTC (rev 3461) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 13:19:28 UTC (rev 3462) @@ -359,16 +359,21 @@ (length (contract-m2s contract)))) (defmethod handle ((handler poi-javascript-handler)) - (with-http-response (:content-type "text/html; charset=UTF-8") - (setf (hunchentoot:header-out :cache-control) "no-cache") - (setf (hunchentoot:header-out :pragma) "no-cache") - (setf (hunchentoot:header-out :expires) "-1") - (with-http-body () - (html - ((:script :language "JavaScript") - (:princ (make-poi-javascript (or (hunchentoot:session-value :language) *default-language*))) - (:princ "parent.poi_fertig(pois, anzahlSponsoren, anzahlVerkauft);") - (:princ (format nil "parent.last_sponsors([~{~A~^,~%~}]);" (mapcar #'contract-js (last-paid-contracts))))))))) + (let* ((last-paid-contracts (last-paid-contracts)) + (timestamp (max (reduce #'max (class-instances 'poi) + :key (lambda (poi) (store-object-last-change poi 1))) + (reduce #'max last-paid-contracts + :key (lambda (contract) (store-object-last-change contract 0)))))) + (hunchentoot:handle-if-modified-since timestamp) + (setf (hunchentoot:header-out :last-modified) + (hunchentoot:rfc-1123-date timestamp)) + (with-http-response (:content-type "text/html; charset=UTF-8") + (with-http-body () + (html + ((:script :language "JavaScript") + (:princ (make-poi-javascript (or (hunchentoot:session-value :language) *default-language*))) + (:princ "parent.poi_fertig(pois, anzahlSponsoren, anzahlVerkauft);") + (:princ (format nil "parent.last_sponsors([~{~A~^,~%~}]);" (mapcar #'contract-js last-paid-contracts))))))))) (defclass poi-image-handler (object-handler) () From bknr at bknr.net Wed Jul 16 13:20:44 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:20:44 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3463 Author: ksprotte URL: http://bknr.net/trac/changeset/3463 just indentation, sorry U trunk/projects/bos/web/poi-handlers.lisp Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 13:19:28 UTC (rev 3462) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 13:20:44 UTC (rev 3463) @@ -383,7 +383,8 @@ (error "poi not found")) (defmethod handle-object ((handler poi-image-handler) poi) - (destructuring-bind (poi-name image-index-string &rest imageproc-arguments) (multiple-value-list (parse-handler-url handler)) + (destructuring-bind (poi-name image-index-string &rest imageproc-arguments) + (multiple-value-list (parse-handler-url handler)) (declare (ignore poi-name)) (let ((image-index (1- (parse-integer image-index-string)))) (if (and (not (minusp image-index)) From bknr at bknr.net Wed Jul 16 13:24:40 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:24:40 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3464 Author: ksprotte URL: http://bknr.net/trac/changeset/3464 again whitespace... U trunk/projects/bos/web/poi-handlers.lisp Change set too large, please see URL above From bknr at bknr.net Wed Jul 16 13:30:21 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:30:21 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3465 Author: ksprotte URL: http://bknr.net/trac/changeset/3465 added timestamp for poi-xml-handler U trunk/projects/bos/web/poi-handlers.lisp Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 13:24:40 UTC (rev 3464) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-16 13:30:21 UTC (rev 3465) @@ -562,9 +562,13 @@ (defmethod handle-object ((handler poi-xml-handler) poi) - (with-query-params ((lang "en")) - (with-xml-response (:xsl-stylesheet-name "/static/poi.xsl") - (write-poi-xml poi lang)))) + (let ((timestamp (store-object-last-change poi 1))) + (hunchentoot:handle-if-modified-since timestamp) + (setf (hunchentoot:header-out :last-modified) + (hunchentoot:rfc-1123-date timestamp)) + (with-query-params ((lang "en")) + (with-xml-response (:xsl-stylesheet-name "/static/poi.xsl") + (write-poi-xml poi lang))))) (defclass poi-kml-handler (object-handler) () From bknr at bknr.net Wed Jul 16 13:38:42 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:38:42 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/kml-handlers.lisp Message-ID: Revision: 3466 Author: ksprotte URL: http://bknr.net/trac/changeset/3466 added timestamp to country-stats-handler U trunk/projects/bos/web/kml-handlers.lisp Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-16 13:30:21 UTC (rev 3465) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-16 13:38:42 UTC (rev 3466) @@ -129,7 +129,11 @@ ()) (defmethod handle ((handler country-stats-handler)) - (handle-every-n-seconds (60) + (let* ((paid-contracts (remove-if-not #'contract-paidp (class-instances 'contract))) + (timestamp (reduce #'max paid-contracts :key (lambda (contract) (store-object-last-change contract 0))))) + (hunchentoot:handle-if-modified-since timestamp) + (setf (hunchentoot:header-out :last-modified) + (hunchentoot:rfc-1123-date timestamp)) (with-xml-response (:content-type #+nil "text/xml" "application/vnd.google-earth.kml+xml; charset=utf-8" :root-element "kml") (with-query-params ((lang "en")) @@ -148,7 +152,7 @@ (with-element "Icon" ;; (with-element "href" (text "http://maps.google.com/mapfiles/kml/pal3/icon23.png")) (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) - (dolist (country-contracts (sort (group-on (all-contracts) + (dolist (country-contracts (sort (group-on paid-contracts :test #'equal :key (lambda (contract) (string-upcase (sponsor-country (contract-sponsor contract))))) From bknr at bknr.net Wed Jul 16 13:51:58 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 15:51:58 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/kml-handlers.lisp Message-ID: Revision: 3467 Author: ksprotte URL: http://bknr.net/trac/changeset/3467 compute timestamp with less consing in country-stats-handler U trunk/projects/bos/web/kml-handlers.lisp Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-16 13:38:42 UTC (rev 3466) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-16 13:51:58 UTC (rev 3467) @@ -129,8 +129,11 @@ ()) (defmethod handle ((handler country-stats-handler)) - (let* ((paid-contracts (remove-if-not #'contract-paidp (class-instances 'contract))) - (timestamp (reduce #'max paid-contracts :key (lambda (contract) (store-object-last-change contract 0))))) + (let* ((contracts (class-instances 'contract)) + (timestamp (reduce #'max contracts :key (lambda (contract) + (if (contract-paidp contract) + (store-object-last-change contract 0) + 0))))) (hunchentoot:handle-if-modified-since timestamp) (setf (hunchentoot:header-out :last-modified) (hunchentoot:rfc-1123-date timestamp)) @@ -152,7 +155,7 @@ (with-element "Icon" ;; (with-element "href" (text "http://maps.google.com/mapfiles/kml/pal3/icon23.png")) (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) - (dolist (country-contracts (sort (group-on paid-contracts + (dolist (country-contracts (sort (group-on (remove-if-not #'contract-paidp contracts) :test #'equal :key (lambda (contract) (string-upcase (sponsor-country (contract-sponsor contract))))) From bknr at bknr.net Wed Jul 16 14:41:37 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 16:41:37 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/test/allocation.lisp Message-ID: Revision: 3468 Author: ksprotte URL: http://bknr.net/trac/changeset/3468 new test: validate-allocation-cache U trunk/projects/bos/test/allocation.lisp Modified: trunk/projects/bos/test/allocation.lisp =================================================================== --- trunk/projects/bos/test/allocation.lisp 2008-07-16 13:51:58 UTC (rev 3467) +++ trunk/projects/bos/test/allocation.lisp 2008-07-16 14:41:37 UTC (rev 3468) @@ -208,3 +208,7 @@ (make-allocation-rectangle 0 0 8 8) (finishes (delete-object (make-contract (make-sponsor :login "test-sponsor") 1 :paidp nil)))) +(test validate-allocation-cache + (with-fixture initial-bos-store () + (let ((area1 (make-allocation-rectangle 0 0 8 8))) + (finishes (bos.m2::validate-allocation-cache))))) \ No newline at end of file From bknr at bknr.net Wed Jul 16 14:50:25 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 16:50:25 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/allocation.lisp Message-ID: Revision: 3469 Author: ksprotte URL: http://bknr.net/trac/changeset/3469 use with-transaction around setf allocation-area bounding-box U trunk/projects/bos/m2/allocation.lisp Modified: trunk/projects/bos/m2/allocation.lisp =================================================================== --- trunk/projects/bos/m2/allocation.lisp 2008-07-16 14:41:37 UTC (rev 3468) +++ trunk/projects/bos/m2/allocation.lisp 2008-07-16 14:50:25 UTC (rev 3469) @@ -164,11 +164,12 @@ (defmethod allocation-area-bounding-box ((allocation-area allocation-area)) (with-slots (left top width height bounding-box) allocation-area (unless (slot-boundp allocation-area 'bounding-box) - (setf bounding-box (coerce (list (cons left top) - (cons (+ left width) top) - (cons (+ left width) (+ top height)) - (cons left (+ top height))) - 'vector))) + (with-transaction ("setf allocation-area bounding-box") + (setf bounding-box (coerce (list (cons left top) + (cons (+ left width) top) + (cons (+ left width) (+ top height)) + (cons left (+ top height))) + 'vector)))) bounding-box)) (defmethod allocation-area-bounding-box2 ((allocation-area allocation-area)) From bknr at bknr.net Wed Jul 16 15:05:15 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 17:05:15 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3470 Author: ksprotte URL: http://bknr.net/trac/changeset/3470 renamed allocation-cache to allocation-area-inclusion-cache U trunk/projects/bos/m2/map.lisp U trunk/projects/bos/test/allocation.lisp Modified: trunk/projects/bos/m2/map.lisp =================================================================== --- trunk/projects/bos/m2/map.lisp 2008-07-16 14:50:25 UTC (rev 3469) +++ trunk/projects/bos/m2/map.lisp 2008-07-16 15:05:15 UTC (rev 3470) @@ -79,11 +79,12 @@ (setf (ldb (byte 8 0) pixel-rgb-value) blue) pixel-rgb-value)) -(defstruct (allocation-cache (:conc-name ac-)) +;;; allocation-area-inclusion-cache +(defstruct (allocation-area-inclusion-cache (:conc-name ac-)) x y width height array areas) -(defvar *allocation-cache* nil - "allocation-cache struct indicating whether a certain square meter is inside of an allocation area") +(defvar *allocation-area-inclusion-cache* nil + "allocation-area-inclusion-cache struct indicating whether a certain square meter is inside of an allocation area") (defun point-in-any-allocation-area-p% (x-coord y-coord) (find-if #'(lambda (allocation-area) @@ -92,13 +93,13 @@ (point-in-polygon-p x-coord y-coord (allocation-area-vertices allocation-area)))) (store-objects-with-class 'allocation-area))) -(defun initialize-allocation-cache () +(defun initialize-allocation-area-inclusion-cache () (destructuring-bind (x y width height) (allocation-areas-bounding-box) - (setf *allocation-cache* - (make-allocation-cache :x x :y y :width width :height height + (setf *allocation-area-inclusion-cache* + (make-allocation-area-inclusion-cache :x x :y y :width width :height height :array (make-array (list width height) :element-type '(unsigned-byte 1)) :areas (class-instances 'allocation-area)))) - (dolist (area (ac-areas *allocation-cache*)) + (dolist (area (ac-areas *allocation-area-inclusion-cache*)) (destructuring-bind (top-left-x top-left-y width height) (allocation-area-bounding-box2 area) (dotimes (x width) (dotimes (y height) @@ -106,26 +107,26 @@ (y-coord (+ y top-left-y))) (when (and (point-in-polygon-p x-coord y-coord (allocation-area-bounding-box area)) (point-in-polygon-p x-coord y-coord (allocation-area-vertices area))) - (setf (aref (ac-array *allocation-cache*) - (- x-coord (ac-x *allocation-cache*)) - (- y-coord (ac-y *allocation-cache*))) + (setf (aref (ac-array *allocation-area-inclusion-cache*) + (- x-coord (ac-x *allocation-area-inclusion-cache*)) + (- y-coord (ac-y *allocation-area-inclusion-cache*))) 1)))))))) -(defvar *allocation-cache-lock* (bt:make-lock "Area Cache Lock")) +(defvar *allocation-area-inclusion-cache-lock* (bt:make-lock "Area Cache Lock")) -(defun validate-allocation-cache () - (bt:with-lock-held (*allocation-cache-lock*) - (unless (and *allocation-cache* +(defun validate-allocation-area-inclusion-cache () + (bt:with-lock-held (*allocation-area-inclusion-cache-lock*) + (unless (and *allocation-area-inclusion-cache* (equal (class-instances 'allocation-area) - (ac-areas *allocation-cache*))) - (initialize-allocation-cache)))) + (ac-areas *allocation-area-inclusion-cache*))) + (initialize-allocation-area-inclusion-cache)))) (defun point-in-any-allocation-area-p (x-coord y-coord) - (and (< -1 (- x-coord (ac-x *allocation-cache*)) (ac-width *allocation-cache*)) - (< -1 (- y-coord (ac-y *allocation-cache*)) (ac-height *allocation-cache*)) - (plusp (aref (ac-array *allocation-cache*) - (- x-coord (ac-x *allocation-cache*)) - (- y-coord (ac-y *allocation-cache*)))))) + (and (< -1 (- x-coord (ac-x *allocation-area-inclusion-cache*)) (ac-width *allocation-area-inclusion-cache*)) + (< -1 (- y-coord (ac-y *allocation-area-inclusion-cache*)) (ac-height *allocation-area-inclusion-cache*)) + (plusp (aref (ac-array *allocation-area-inclusion-cache*) + (- x-coord (ac-x *allocation-area-inclusion-cache*)) + (- y-coord (ac-y *allocation-area-inclusion-cache*)))))) (defclass image-tile (tile) ((original-image :documentation "Original satellite image" @@ -152,7 +153,7 @@ (copy-image original-image *default-image* 0 0 0 0 (image-width) (image-height))))) (defmethod image-tile-process ((tile image-tile) (operation (eql :areas))) - (validate-allocation-cache) + (validate-allocation-area-inclusion-cache) (do-rows (y) (do-pixels-in-row (x) (when (point-in-any-allocation-area-p (tile-absolute-x tile x) Modified: trunk/projects/bos/test/allocation.lisp =================================================================== --- trunk/projects/bos/test/allocation.lisp 2008-07-16 14:50:25 UTC (rev 3469) +++ trunk/projects/bos/test/allocation.lisp 2008-07-16 15:05:15 UTC (rev 3470) @@ -208,7 +208,7 @@ (make-allocation-rectangle 0 0 8 8) (finishes (delete-object (make-contract (make-sponsor :login "test-sponsor") 1 :paidp nil)))) -(test validate-allocation-cache +(test validate-allocation-area-inclusion-cache (with-fixture initial-bos-store () (let ((area1 (make-allocation-rectangle 0 0 8 8))) - (finishes (bos.m2::validate-allocation-cache))))) \ No newline at end of file + (finishes (bos.m2::validate-allocation-area-inclusion-cache))))) \ No newline at end of file From bknr at bknr.net Wed Jul 16 15:14:37 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 17:14:37 +0200 Subject: [bknr-cvs] hans changed buildbot/master/Makefile Message-ID: Revision: 3471 Author: hans URL: http://bknr.net/trac/changeset/3471 dummy change to trigger update U buildbot/master/Makefile Modified: buildbot/master/Makefile =================================================================== --- buildbot/master/Makefile 2008-07-16 15:05:15 UTC (rev 3470) +++ buildbot/master/Makefile 2008-07-16 15:14:37 UTC (rev 3471) @@ -20,3 +20,4 @@ update: svn update + From bknr at bknr.net Wed Jul 16 15:17:06 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 17:17:06 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/LICENSE Message-ID: Revision: 3472 Author: hans URL: http://bknr.net/trac/changeset/3472 update LICENSE U trunk/bknr/LICENSE Modified: trunk/bknr/LICENSE =================================================================== --- trunk/bknr/LICENSE 2008-07-16 15:14:37 UTC (rev 3471) +++ trunk/bknr/LICENSE 2008-07-16 15:17:06 UTC (rev 3472) @@ -1,4 +1,5 @@ -Copyright (c) 2003,2004,2005, BKNR (Hans H?bner, Manuel Odendahl) +Copyright (c) 2003-2008 BKNR (Hans H?bner, Manuel Odendahl, +David Lichteblau, Kilian Sprotte) All rights reserved. Redistribution and use in source and binary forms, with or without From bknr at bknr.net Wed Jul 16 18:11:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Wed, 16 Jul 2008 20:11:24 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3473 Author: hans URL: http://bknr.net/trac/changeset/3473 Snapshot U trunk/projects/quickhoney/src/init.lisp A trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Overlay_01.png A trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Pixel_06_1_floating_flat.png A trunk/projects/quickhoney/upgrade-stuff/button-bottom.gif A trunk/projects/quickhoney/upgrade-stuff/buy.gif A trunk/projects/quickhoney/upgrade-stuff/hey.gif U trunk/projects/quickhoney/upgrade-stuff/import.lisp A trunk/projects/quickhoney/upgrade-stuff/overlay-close.gif U trunk/projects/quickhoney/website/static/javascript.js U trunk/projects/quickhoney/website/static/styles.css U trunk/projects/quickhoney/website/templates/index.xml Modified: trunk/projects/quickhoney/src/init.lisp =================================================================== --- trunk/projects/quickhoney/src/init.lisp 2008-07-16 15:17:06 UTC (rev 3472) +++ trunk/projects/quickhoney/src/init.lisp 2008-07-16 18:11:24 UTC (rev 3473) @@ -1,22 +1,33 @@ (in-package :quickhoney) +(defvar *dumped-image* nil) + +(defun dump-executable () + #+openmcl + (ccl:save-application "quickhoney" :prepend-kernel t)) + (defun startup () - (setq cxml::*default-catalog* '("/home/hans/share/xml/catalog")) - (setf *hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf)) - (close-store) - (make-instance 'store - :directory *store-directory* - :subsystems (list (make-instance 'store-object-subsystem) - (make-instance 'blob-subsystem - :n-blobs-per-directory 1000))) + (cond + (*dumped-image* + (asdf:oos 'asdf:load-op :quickhoney) + (format t "; starting from dumped image, skipping store initialization~%")) + (t + (setq cxml::*default-catalog* '("/home/hans/share/xml/catalog")) + (setf *hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf)) + (close-store) + (make-instance 'store + :directory *store-directory* + :subsystems (list (make-instance 'store-object-subsystem) + (make-instance 'blob-subsystem + :n-blobs-per-directory 1000))) - (unless (class-instances 'bknr.cron::cron-job) - (bknr.cron:make-cron-job "daily statistics" 'make-yesterdays-statistics 1 0 :every :every) - (bknr.cron:make-cron-job "snapshot" 'snapshot-store 0 5 :every :every)) - (unless (class-instances 'rss-channel) - (make-rss-channel "quickhoney" "QuickHoney" "QuickHoney Illustrations" "rss/quickhoney" - :items (class-instances 'quickhoney-image))) - (cl-gd::load-gd-glue) + (unless (class-instances 'bknr.cron::cron-job) + (bknr.cron:make-cron-job "daily statistics" 'make-yesterdays-statistics 1 0 :every :every) + (bknr.cron:make-cron-job "snapshot" 'snapshot-store 0 5 :every :every)) + (unless (class-instances 'rss-channel) + (make-rss-channel "quickhoney" "QuickHoney" "QuickHoney Illustrations" "rss/quickhoney" + :items (class-instances 'quickhoney-image))) + (cl-gd::load-gd-glue))) #+cmu (actor-start (make-instance 'cron-actor)) (publish-quickhoney) Added: trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Overlay_01.png =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Overlay_01.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Pixel_06_1_floating_flat.png =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/QH_Layout_Pixel_06_1_floating_flat.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/button-bottom.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/button-bottom.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/buy.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/buy.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/hey.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/hey.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-16 15:17:06 UTC (rev 3472) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-16 18:11:24 UTC (rev 3473) @@ -3,4 +3,7 @@ (dolist (name '(#p"type-news.png" #p"type-pixel.png" #p"type-shop.png" #p"type-vector.png")) (import-image name :keywords '(:type))) +(dolist (name '(#P"overlay-close.gif" #P"hey.gif" #P"buy.gif" #P"button-bottom.gif")) + (import-image name)) + (import-image #p"news-sep.png") \ No newline at end of file Added: trunk/projects/quickhoney/upgrade-stuff/overlay-close.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/overlay-close.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-16 15:17:06 UTC (rev 3472) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-16 18:11:24 UTC (rev 3473) @@ -49,7 +49,7 @@ for (var i = 0; i < arguments.length; i++) { message += arguments[i]; } - if (window.console.log) { + if (window.console && window.console.log) { window.console.log(message); } if (want_debugger) { @@ -869,10 +869,10 @@ footer_hide(); display_path(); make_images_navbar(); + make_image_action_buttons(); $("results").style.visibility = 'hidden'; $("browse").style.visibility = 'visible'; - $("digg_picture_name").innerHTML = current_image.name; var ratio = 1 / Math.max(current_image.width / 648, current_image.height / 648); var imageproc_ops = ""; @@ -972,13 +972,14 @@ } } -function digg_send() +function hey_send() { var d = doXHR("/digg-image/" + current_image.id, { method: 'POST', headers: {"Content-Type":"application/x-www-form-urlencoded"}, - sendContent: queryString({ from: $('digg_from').value, text: $('digg_text').value }) }) - .addCallback(function () { alert('sent'); }); + sendContent: queryString({ from: $('hey_from').value, text: $('hey_text').value }) }) + .addCallback(hide_overlay); + make_overlay('send-comment', 'Sending your comment', 300); return false; } @@ -1144,3 +1145,78 @@ { document.location.href = document.location.href.replace(/\/image-browse.*/, "index#"); } + +function hide_overlay() +{ + $('overlay').style.visibility = 'hidden'; + return false; +} + +/* make_overlay() opens an overlay window with the given title. + * Additional arguments passed are assumed to be DOM child nodes and + * are added to the overlay window. + */ + +function make_overlay(id, title, width) +{ + var overlay = $('overlay'); + overlay.className = current_directory; + replaceChildNodes(overlay, + H1(null, title), + IMG({ src: '/image/overlay-close/color,000000,' + pages[current_directory].colors[2], + id: 'close', width: 13, height: 13})); + overlay.style.width = width + 'px'; + $('close').style.left = (width - 23) + 'px'; + $('close').onclick = hide_overlay; + var elements = []; + for (var i = 3; i < arguments.length; i++) { + elements.push(arguments[i]); + } + appendChildNodes(overlay, DIV({id: id}, elements)); + overlay.style.visibility = 'inherit'; +} + +function make_hey_form() +{ + var subject = 'Comment on ' + current_image.name; + make_overlay('hey', 'Comment', 320, + FORM({ method: 'POST', action: '#' }, + 'email', + BR(), + INPUT({ type: 'text', id: 'hey_from', value: '' }), + BR(), + BR(), + 'comment', + BR(), + TEXTAREA({ name: 'text', id: 'hey_text', rows: 4, columns: 40 }, ''), + BR(), + INPUT({ type: 'submit', id: 'hey_send', value: 'Send' }))); + $('hey_send').onclick = hey_send; +} + +function make_buy_form() +{ +} + +function recolored_image_path(name) +{ + return '/image/' + name + '/color,000000,' + pages[current_directory].colors[2]; +} + +function make_image_action_button(name, action) +{ + var div = DIV(null, IMG({ src: recolored_image_path(name), width: 60, height: 23 })); + div.onclick = function() { action(); return false; }; + return div; +} + +function make_image_action_buttons() +{ + var buttons = []; + if (1 || current_image.download_product) { + buttons.push(make_image_action_button('buy', make_buy_form)); + } + buttons.push(make_image_action_button('hey', make_hey_form)); + buttons.push(DIV(null, IMG({ src: recolored_image_path('button-bottom'), width: 60, height: 1 }))); + replaceChildNodes('image_action_buttons', buttons); +} \ No newline at end of file Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-16 15:17:06 UTC (rev 3472) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-16 18:11:24 UTC (rev 3473) @@ -377,17 +377,6 @@ z-index: 1; } -/* digg form */ - -div#digg { - position: absolute; - left: 700px; - top: 500px; - z-index: 10; - background-color: #eee; - padding: 10px; -} - /* news styles */ div#news_page { @@ -495,3 +484,48 @@ #frontpage div p { margin: 2em; } + +#overlay { + z-index: 100; + position: absolute; + background: white; + border: 1px solid #000000; + margin: 0px; + padding: 0px; +} + +#overlay #close { + position: absolute; + top: 12px; +} + +#overlay h1 { + margin-left: 10px; +} + +#overlay.pixel h1, #overlay.pixel h2 { + color: #ff00ff; +} + +#overlay.vector h1, #overlay.vector h2 { + color: #00ccff; +} + +#image_action_buttons { + position: absolute; + left: 584px; + top: 32px; + z-index: 100; +} + +#overlay #hey { + padding: 10px 15px 10px 10px; +} + +#overlay #hey #hey_from, #overlay #hey textarea { + width: 100%; +} + +#overlay #hey #hey_send { + margin-top: 5px; +} \ No newline at end of file Modified: trunk/projects/quickhoney/website/templates/index.xml =================================================================== --- trunk/projects/quickhoney/website/templates/index.xml 2008-07-16 15:17:06 UTC (rev 3472) +++ trunk/projects/quickhoney/website/templates/index.xml 2008-07-16 18:11:24 UTC (rev 3473) @@ -24,6 +24,9 @@ +

+
+ -
-
- From: -
- Your comment on : -
- -
- - -
-
From bknr at bknr.net Thu Jul 17 06:09:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 08:09:01 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/datastore/src/data/object.lisp Message-ID: Revision: 3474 Author: hans URL: http://bknr.net/trac/changeset/3474 Only update LAST-CHANGE slot if another persistent slot is changed. U trunk/bknr/datastore/src/data/object.lisp Modified: trunk/bknr/datastore/src/data/object.lisp =================================================================== --- trunk/bknr/datastore/src/data/object.lisp 2008-07-16 18:11:24 UTC (rev 3473) +++ trunk/bknr/datastore/src/data/object.lisp 2008-07-17 06:09:00 UTC (rev 3474) @@ -89,8 +89,9 @@ (not (in-transaction-p))) (error "Attempt to set persistent slot ~A of ~A outside of a transaction" slot-name object)) - (unless (or (eq :restore (store-state *store*)) - (eq 'last-change slot-name)) + (when (and (persistent-slot-p slotd) + (not (eq :restore (store-state *store*))) + (not (eq 'last-change slot-name))) (setf (slot-value object 'last-change) (current-transaction-timestamp))))) (defmethod (setf slot-value-using-class) :after (newval (class persistent-class) object slotd) From bknr at bknr.net Thu Jul 17 06:11:30 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 08:11:30 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/m2/allocation.lisp Message-ID: Revision: 3475 Author: hans URL: http://bknr.net/trac/changeset/3475 updates to transient slots no longer update LAST-CHANGE, so revert 3469 U trunk/projects/bos/m2/allocation.lisp Modified: trunk/projects/bos/m2/allocation.lisp =================================================================== --- trunk/projects/bos/m2/allocation.lisp 2008-07-17 06:09:00 UTC (rev 3474) +++ trunk/projects/bos/m2/allocation.lisp 2008-07-17 06:11:30 UTC (rev 3475) @@ -164,12 +164,11 @@ (defmethod allocation-area-bounding-box ((allocation-area allocation-area)) (with-slots (left top width height bounding-box) allocation-area (unless (slot-boundp allocation-area 'bounding-box) - (with-transaction ("setf allocation-area bounding-box") - (setf bounding-box (coerce (list (cons left top) - (cons (+ left width) top) - (cons (+ left width) (+ top height)) - (cons left (+ top height))) - 'vector)))) + (setf bounding-box (coerce (list (cons left top) + (cons (+ left width) top) + (cons (+ left width) (+ top height)) + (cons left (+ top height))) + 'vector))) bounding-box)) (defmethod allocation-area-bounding-box2 ((allocation-area allocation-area)) From bknr at bknr.net Thu Jul 17 07:45:32 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 09:45:32 +0200 Subject: [bknr-cvs] ksprotte changed trunk/build.lisp Message-ID: Revision: 3476 Author: ksprotte URL: http://bknr.net/trac/changeset/3476 dont run :bos.test on darwin U trunk/build.lisp Modified: trunk/build.lisp =================================================================== --- trunk/build.lisp 2008-07-17 06:11:30 UTC (rev 3475) +++ trunk/build.lisp 2008-07-17 07:45:32 UTC (rev 3476) @@ -199,7 +199,7 @@ (unit-test:run-all-tests) (rt:do-tests) (fiveam-run-no-failures-p :bknr.datastore) - (fiveam-run-no-failures-p :bos.test) + #-darwin (fiveam-run-no-failures-p :bos.test) (progn #+(or) (fiveam-run-no-failures-p :it.bese.FiveAM) (warn "skipping :it.bese.FiveAM tests") t) From bknr at bknr.net Thu Jul 17 09:02:14 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 11:02:14 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3477 Author: ksprotte URL: http://bknr.net/trac/changeset/3477 renamed add-contract-to-cache -> add-to-last-contracts-cache U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 07:45:32 UTC (rev 3476) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 09:02:14 UTC (rev 3477) @@ -295,7 +295,7 @@ (deftransaction contract-set-paidp (contract newval) (setf (contract-paidp contract) newval) (publish-contract-change contract) - (add-contract-to-cache contract) + (add-to-last-contracts-cache contract) (bknr.rss::add-item "news" contract)) (defmethod contract-price ((contract contract)) @@ -591,7 +591,7 @@ 0 +last-contracts-cache-size+))) (remove-if #'object-destroyed-p *last-contracts-cache*)) -(defun add-contract-to-cache (contract) +(defun add-to-last-contracts-cache (contract) (last-paid-contracts) ; force cache initialization, should really be done by a eval-when (push contract *last-contracts-cache*) (setf (cdr (nthcdr (1- +last-contracts-cache-size+) *last-contracts-cache*)) nil)) From bknr at bknr.net Thu Jul 17 09:08:09 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 11:08:09 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/ Message-ID: Revision: 3478 Author: hans URL: http://bknr.net/trac/changeset/3478 Get PDF generation with M2 icon to work. U trunk/projects/bos/Makefile U trunk/projects/bos/m2/cert-daemon.lisp U trunk/projects/bos/m2/m2-pdf.lisp Modified: trunk/projects/bos/Makefile =================================================================== --- trunk/projects/bos/Makefile 2008-07-17 09:02:14 UTC (rev 3477) +++ trunk/projects/bos/Makefile 2008-07-17 09:08:08 UTC (rev 3478) @@ -2,7 +2,7 @@ .PHONY: all bos.core: build.lisp - sbcl --load build.lisp --eval '(sb-ext:save-lisp-and-die "bos.core")' + env LANG=en_US.UTF-8 sbcl --load build.lisp --eval '(sb-ext:save-lisp-and-die "bos.core")' # various cleaning stuff .PHONY: cleancore Modified: trunk/projects/bos/m2/cert-daemon.lisp =================================================================== --- trunk/projects/bos/m2/cert-daemon.lisp 2008-07-17 09:02:14 UTC (rev 3477) +++ trunk/projects/bos/m2/cert-daemon.lisp 2008-07-17 09:08:08 UTC (rev 3478) @@ -1,19 +1,13 @@ (in-package :bos.m2.cert-generator) -(defun run-tool (program &optional program-args &rest args) - (let* ((process (apply #'run-program program program-args :search t :output :stream args)) - (error-message (unless (zerop (process-exit-code process)) - (with-output-to-string (*standard-output*) - (with-open-stream (output-stream (process-output process)) - (princ (read-line output-stream nil))))))) - (process-close process) - (unless (zerop (process-exit-code process)) - (error "Error executing ~A - Exit code ~D~%Error message: ~A" - (format nil "\"~A~{ ~A~}\"" program program-args) (process-exit-code process) error-message)))) +(defun run-tool (program &rest args) + (let ((asdf::*verbose-out* t)) + (apply #'asdf:run-shell-command "~S ~{~S ~}" program args))) (defun fill-form (fdf-pathname pdf-pathname m2-pdf-pathname output-pathname) (handler-case - (with-temporary-file (temporary-pdf-pathname :defaults #P"/tmp/.pdf") + (with-temporary-file (temporary-pdf-pathname :defaults (make-pathname :directory '(:absolute "tmp") + :type "pdf")) (cond ((namestring pdf-pathname) (run-tool "pdftk" (list (namestring pdf-pathname) @@ -42,7 +36,7 @@ country)) template-pathname)) (m2-pdf-pathname (merge-pathnames - (make-pathname :name (format nil "~A-m2s" id)) + (make-pathname :name (format nil "~A-m2s" id) :type "pdf") fdf-pathname)) (output-pathname (merge-pathnames (make-pathname :name id :type "pdf") fdf-pathname))) (fill-form fdf-pathname Modified: trunk/projects/bos/m2/m2-pdf.lisp =================================================================== --- trunk/projects/bos/m2/m2-pdf.lisp 2008-07-17 09:02:14 UTC (rev 3477) +++ trunk/projects/bos/m2/m2-pdf.lisp 2008-07-17 09:08:08 UTC (rev 3478) @@ -58,7 +58,10 @@ (pdf:line-to x y) (pdf:close-fill-and-stroke))))))) - (with-open-file (f (contract-m2-pdf-pathname contract :print print) :direction :output :if-exists :supersede) + (with-open-file (f (contract-m2-pdf-pathname contract :print print) + :direction :output + :if-exists :supersede + :external-format :iso-8859-1) ;; cl-pdf does not really handle non-ascii characters in a very ;; usable manner. In order to avoid having to deal with ;; embedding fonts and encoding, just work around the issue: From bknr at bknr.net Thu Jul 17 11:42:34 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 13:42:34 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/ Message-ID: Revision: 3479 Author: ksprotte URL: http://bknr.net/trac/changeset/3479 added new cache contract-stats that allows for last-paid-contracts, but also new queries U trunk/projects/bos/m2/m2.lisp U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/m2/poi.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 09:08:08 UTC (rev 3478) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 11:42:34 UTC (rev 3479) @@ -295,7 +295,7 @@ (deftransaction contract-set-paidp (contract newval) (setf (contract-paidp contract) newval) (publish-contract-change contract) - (add-to-last-contracts-cache contract) + (add-to-contract-stats contract) (bknr.rss::add-item "news" contract)) (defmethod contract-price ((contract contract)) @@ -580,28 +580,67 @@ ;; use only CONTRACT-PAIDP, but mean CONTRACT-PUBLISHED-P (contract-paidp contract)) -(defvar *last-contracts-cache* nil) +;;; contract-stats (defconstant +last-contracts-cache-size+ 20) +(defvar *contract-stats*) -(defun last-paid-contracts () - (unless *last-contracts-cache* - (setf *last-contracts-cache* (subseq (append (sort (remove-if-not #'contract-paidp (class-instances 'contract)) - #'> :key #'contract-date) - (make-list +last-contracts-cache-size+)) - 0 +last-contracts-cache-size+))) - (remove-if #'object-destroyed-p *last-contracts-cache*)) +(defstruct country-stat + (sold-m2s 0) + (paying-sponsors 0)) -(defun add-to-last-contracts-cache (contract) - (last-paid-contracts) ; force cache initialization, should really be done by a eval-when - (push contract *last-contracts-cache*) - (setf (cdr (nthcdr (1- +last-contracts-cache-size+) *last-contracts-cache*)) nil)) +(defstruct contract-stats + (sold-m2s 0) + (paying-sponsors 0) + (country-sponsors (make-hash-table :test #'equal)) + (last-contracts (make-list +last-contracts-cache-size+))) +(defun initialize-contract-stats () + (setq *contract-stats* (make-contract-stats)) + (dolist (contract (class-instances 'contract)) + (add-to-contract-stats contract))) + +(defun add-to-contract-stats (contract) + (let* ((area (contract-area contract)) + (sponsor (contract-sponsor contract)) + (new-sponsor-p (alexandria:length= 1 (sponsor-contracts sponsor))) + (country (string-upcase (sponsor-country sponsor)))) + (with-slots (sold-m2s paying-sponsors country-sponsors last-contracts) + *contract-stats* + ;; sold-m2s + (incf sold-m2s area) + ;; paying-sponsors + (when new-sponsor-p + (incf paying-sponsors)) + ;; country-sponsors + (let ((country-stat (gethash country country-sponsors (make-country-stat)))) + (when new-sponsor-p + (incf (country-stat-paying-sponsors country-stat))) + (incf (country-stat-sold-m2s country-stat) area)) + ;; last-contracts + (setf last-contracts (nbutlast last-contracts)) + (push contract last-contracts)))) + (defun number-of-sold-sqm () - (let ((retval 0)) - (dolist (contract (remove-if-not #'contract-paidp (class-instances 'contract))) - (incf retval (length (contract-m2s contract)))) - retval)) + (contract-stats-sold-m2s *contract-stats*)) +(defun paying-sponsors () + (contract-stats-paying-sponsors *contract-stats*)) + +(defun contract-stats-for-country (country) + (let ((stat (gethash country (contract-stats-country-sponsors *contract-stats*)))) + (if stat + (values (country-stat-paying-sponsors stat) + (country-stat-sold-m2s stat)) + (values 0 0)))) + +(defun last-paid-contracts () + (remove-if (lambda (contract) + (or (null contract) + (object-destroyed-p contract))) + (contract-stats-last-contracts *contract-stats*))) + +(register-store-transient-init-function 'initialize-contract-stats) + (defun string-safe (string) (if string (escape-nl (arnesi:escape-as-html string)) Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-17 09:08:08 UTC (rev 3478) +++ trunk/projects/bos/m2/packages.lisp 2008-07-17 11:42:34 UTC (rev 3479) @@ -165,8 +165,13 @@ #:contract-pdf-pathname #:contract-pdf-url #:contract-download-only-p + ;; contract-stats + #:number-of-sold-sqm + #:paying-sponsors + #:contract-stats-for-country + #:last-paid-contracts + #:make-m2-javascript - #:last-paid-contracts #:recolorize-contracts #:contracts-well-colored-p #:contract-published-p Modified: trunk/projects/bos/m2/poi.lisp =================================================================== --- trunk/projects/bos/m2/poi.lisp 2008-07-17 09:08:08 UTC (rev 3478) +++ trunk/projects/bos/m2/poi.lisp 2008-07-17 11:42:34 UTC (rev 3479) @@ -127,8 +127,8 @@ (defun make-poi-javascript (language) "Erzeugt das POI-Javascript f??r das Infosystem" (with-output-to-string (*standard-output*) - (format t "var anzahlSponsoren = ~D;~%" (length (remove-if-not #'(lambda (sponsor) (some #'contract-paidp (sponsor-contracts sponsor))) - (class-instances 'sponsor)))) + (format t "var anzahlSponsoren = ~D;~%" (count-if (lambda (sponsor) (some #'contract-paidp (sponsor-contracts sponsor))) + (class-instances 'sponsor))) (format t "var anzahlVerkauft = ~D;~%" (bos.m2::number-of-sold-sqm)) (format t "var pois = new Array;~%") (dolist (poi (sort (remove-if #'(lambda (poi) (or (not (poi-complete poi language)) From bknr at bknr.net Thu Jul 17 12:06:29 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:06:29 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3480 Author: ksprotte URL: http://bknr.net/trac/changeset/3480 oops, there was a bug in add-to-contract-stats U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 11:42:34 UTC (rev 3479) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 12:06:29 UTC (rev 3480) @@ -612,7 +612,9 @@ (when new-sponsor-p (incf paying-sponsors)) ;; country-sponsors - (let ((country-stat (gethash country country-sponsors (make-country-stat)))) + (let ((country-stat (gethash country country-sponsors))) + (unless country-stat + (setq country-stat (setf (gethash country country-sponsors) (make-country-stat)))) (when new-sponsor-p (incf (country-stat-paying-sponsors country-stat))) (incf (country-stat-sold-m2s country-stat) area)) From bknr at bknr.net Thu Jul 17 12:10:43 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:10:43 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3481 Author: ksprotte URL: http://bknr.net/trac/changeset/3481 better name: number-of-paying-sponsors U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 12:06:29 UTC (rev 3480) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 12:10:43 UTC (rev 3481) @@ -625,7 +625,7 @@ (defun number-of-sold-sqm () (contract-stats-sold-m2s *contract-stats*)) -(defun paying-sponsors () +(defun number-of-paying-sponsors () (contract-stats-paying-sponsors *contract-stats*)) (defun contract-stats-for-country (country) From bknr at bknr.net Thu Jul 17 12:15:06 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:15:06 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3482 Author: ksprotte URL: http://bknr.net/trac/changeset/3482 just indentation, sorry U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 12:10:43 UTC (rev 3481) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 12:15:06 UTC (rev 3482) @@ -161,7 +161,7 @@ "Return a unique number to use when generating a sponsor. Uniqueness is guaranteed only across the running time of the process." (bknr.datastore::mp-with-lock-held (*sponsor-counter-lock*) - (incf *sponsor-counter*))) + (incf *sponsor-counter*))) (defun make-sponsor (&rest initargs &key login &allow-other-keys) (apply #'make-object 'sponsor @@ -398,37 +398,37 @@ (labels ( ;; to-orig (distance-to-orig (d) (when-scaling-needed d - (round (* d scaler)))) + (round (* d scaler)))) (x-coordinate-to-orig (x) (when-scaling-needed x - (+ left (round (* (- x left) scaler))))) + (+ left (round (* (- x left) scaler))))) (y-coordinate-to-orig (y) (when-scaling-needed y - (+ top (round (* (- y top) scaler))))) + (+ top (round (* (- y top) scaler))))) (rectangle-to-orig (r) (when-scaling-needed r - (geometry:with-rectangle r - (list (x-coordinate-to-orig left) - (y-coordinate-to-orig top) - (distance-to-orig width) - (distance-to-orig height))))) + (geometry:with-rectangle r + (list (x-coordinate-to-orig left) + (y-coordinate-to-orig top) + (distance-to-orig width) + (distance-to-orig height))))) ;; from-orig (distance-from-orig (d) (when-scaling-needed d - (floor d scaler))) + (floor d scaler))) (x-coordinate-from-orig (x) (when-scaling-needed x - (+ left (floor (- x left) scaler)))) + (+ left (floor (- x left) scaler)))) (y-coordinate-from-orig (y) (when-scaling-needed y - (+ top (floor (- y top) scaler)))) + (+ top (floor (- y top) scaler)))) (rectangle-from-orig (r) (when-scaling-needed r - (geometry:with-rectangle r - (list (x-coordinate-from-orig left) - (y-coordinate-from-orig top) - (distance-from-orig width) - (distance-from-orig height)))))) + (geometry:with-rectangle r + (list (x-coordinate-from-orig left) + (y-coordinate-from-orig top) + (distance-from-orig width) + (distance-from-orig height)))))) (rectangle-to-orig (screamer-user:largest-rectangle (rectangle-from-orig bounding-box) From bknr at bknr.net Thu Jul 17 12:18:34 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:18:34 +0200 Subject: [bknr-cvs] ksprotte changed trunk/bknr/datastore/src/utils/acl-mp-compat.lisp Message-ID: Revision: 3483 Author: ksprotte URL: http://bknr.net/trac/changeset/3483 better to use &body body (and not &rest) for two with-* macros U trunk/bknr/datastore/src/utils/acl-mp-compat.lisp Modified: trunk/bknr/datastore/src/utils/acl-mp-compat.lisp =================================================================== --- trunk/bknr/datastore/src/utils/acl-mp-compat.lisp 2008-07-17 12:15:06 UTC (rev 3482) +++ trunk/bknr/datastore/src/utils/acl-mp-compat.lisp 2008-07-17 12:18:34 UTC (rev 3483) @@ -17,7 +17,7 @@ #+lispworks (mp:make-lock :name name)) -(defmacro mp-with-lock-held ((lock) &rest body) +(defmacro mp-with-lock-held ((lock) &body body) #+allegro `(mp:with-process-lock (,lock) , at body) @@ -34,7 +34,7 @@ `(mp:with-lock (,lock) , at body)) -(defmacro mp-with-recursive-lock-held ((lock) &rest body) +(defmacro mp-with-recursive-lock-held ((lock) &body body) #+allegro `(mp:with-process-lock (,lock) , at body) From bknr at bknr.net Thu Jul 17 12:19:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:19:24 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3484 Author: ksprotte URL: http://bknr.net/trac/changeset/3484 again indentation U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 12:18:34 UTC (rev 3483) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 12:19:24 UTC (rev 3484) @@ -161,7 +161,7 @@ "Return a unique number to use when generating a sponsor. Uniqueness is guaranteed only across the running time of the process." (bknr.datastore::mp-with-lock-held (*sponsor-counter-lock*) - (incf *sponsor-counter*))) + (incf *sponsor-counter*))) (defun make-sponsor (&rest initargs &key login &allow-other-keys) (apply #'make-object 'sponsor From bknr at bknr.net Thu Jul 17 12:22:38 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:22:38 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/p Message-ID: Revision: 3485 Author: ksprotte URL: http://bknr.net/trac/changeset/3485 make-poi-javascript now uses faster queries from contract-stats U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/m2/poi.lisp Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-17 12:19:24 UTC (rev 3484) +++ trunk/projects/bos/m2/packages.lisp 2008-07-17 12:22:38 UTC (rev 3485) @@ -167,7 +167,7 @@ #:contract-download-only-p ;; contract-stats #:number-of-sold-sqm - #:paying-sponsors + #:number-of-paying-sponsors #:contract-stats-for-country #:last-paid-contracts Modified: trunk/projects/bos/m2/poi.lisp =================================================================== --- trunk/projects/bos/m2/poi.lisp 2008-07-17 12:19:24 UTC (rev 3484) +++ trunk/projects/bos/m2/poi.lisp 2008-07-17 12:22:38 UTC (rev 3485) @@ -127,9 +127,8 @@ (defun make-poi-javascript (language) "Erzeugt das POI-Javascript f??r das Infosystem" (with-output-to-string (*standard-output*) - (format t "var anzahlSponsoren = ~D;~%" (count-if (lambda (sponsor) (some #'contract-paidp (sponsor-contracts sponsor))) - (class-instances 'sponsor))) - (format t "var anzahlVerkauft = ~D;~%" (bos.m2::number-of-sold-sqm)) + (format t "var anzahlSponsoren = ~D;~%" (number-of-paying-sponsors)) + (format t "var anzahlVerkauft = ~D;~%" (number-of-sold-sqm)) (format t "var pois = new Array;~%") (dolist (poi (sort (remove-if #'(lambda (poi) (or (not (poi-complete poi language)) (not (poi-published poi)))) From bknr at bknr.net Thu Jul 17 12:50:50 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:50:50 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/ Message-ID: Revision: 3486 Author: ksprotte URL: http://bknr.net/trac/changeset/3486 new macro do-countries and some bugfixes to contract-stats U trunk/projects/bos/m2/m2.lisp U trunk/projects/bos/m2/packages.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 12:22:38 UTC (rev 3485) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 12:50:50 UTC (rev 3486) @@ -603,21 +603,23 @@ (let* ((area (contract-area contract)) (sponsor (contract-sponsor contract)) (new-sponsor-p (alexandria:length= 1 (sponsor-contracts sponsor))) - (country (string-upcase (sponsor-country sponsor)))) + (%country (sponsor-country sponsor)) + (country (and %country (string-upcase %country)))) (with-slots (sold-m2s paying-sponsors country-sponsors last-contracts) - *contract-stats* + *contract-stats* ;; sold-m2s (incf sold-m2s area) ;; paying-sponsors (when new-sponsor-p - (incf paying-sponsors)) + (incf paying-sponsors)) ;; country-sponsors - (let ((country-stat (gethash country country-sponsors))) - (unless country-stat - (setq country-stat (setf (gethash country country-sponsors) (make-country-stat)))) - (when new-sponsor-p - (incf (country-stat-paying-sponsors country-stat))) - (incf (country-stat-sold-m2s country-stat) area)) + (when country + (let ((country-stat (gethash country country-sponsors))) + (unless country-stat + (setq country-stat (setf (gethash country country-sponsors) (make-country-stat)))) + (when new-sponsor-p + (incf (country-stat-paying-sponsors country-stat))) + (incf (country-stat-sold-m2s country-stat) area))) ;; last-contracts (setf last-contracts (nbutlast last-contracts)) (push contract last-contracts)))) @@ -641,6 +643,17 @@ (object-destroyed-p contract))) (contract-stats-last-contracts *contract-stats*))) +(defun invoke-with-countries (function as-keyword) + (alexandria:maphash-keys + (if as-keyword + (lambda (country) (funcall function (make-keyword-from-string country))) + function) + (contract-stats-country-sponsors *contract-stats*))) + +(defmacro do-countries ((country &key as-keyword) &body body) + (check-type country symbol) + `(invoke-with-countries (lambda (,country) , at body) ,as-keyword)) + (register-store-transient-init-function 'initialize-contract-stats) (defun string-safe (string) Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-17 12:22:38 UTC (rev 3485) +++ trunk/projects/bos/m2/packages.lisp 2008-07-17 12:50:50 UTC (rev 3486) @@ -170,6 +170,7 @@ #:number-of-paying-sponsors #:contract-stats-for-country #:last-paid-contracts + #:do-countries #:make-m2-javascript #:recolorize-contracts From bknr at bknr.net Thu Jul 17 12:57:00 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 14:57:00 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/ Message-ID: Revision: 3487 Author: hans URL: http://bknr.net/trac/changeset/3487 Split up setting up the socket to listen for connections and accepting connections into two steps. The reason for this change is that listening is better done in the thread/process that invokes START-SERVER, as errors will then be reported directly (EADDRINUSE comes to mind) and that the caller of START-SERVER can be sure that the server will be ready enough to accept connections once START-SERVER returns. "listeners" are now called "acceptors" to reflect the new world. For Lispworks, the TCP server process will be stopped after it has been and then unstopped to actually begin serving requests. This is not strictly needed, but this way the behaviour of Lispworks and non-Lispworks is similar. U trunk/thirdparty/hunchentoot/connection-manager.lisp U trunk/thirdparty/hunchentoot/doc/index.xml U trunk/thirdparty/hunchentoot/packages.lisp U trunk/thirdparty/hunchentoot/server.lisp Modified: trunk/thirdparty/hunchentoot/connection-manager.lisp =================================================================== --- trunk/thirdparty/hunchentoot/connection-manager.lisp 2008-07-17 12:50:50 UTC (rev 3486) +++ trunk/thirdparty/hunchentoot/connection-manager.lisp 2008-07-17 12:57:00 UTC (rev 3487) @@ -40,11 +40,11 @@ (:documentation "Base class for all connection managers classes. Its purpose is to carry the back pointer to the server instance.")) -(defgeneric execute-listener (connection-manager) +(defgeneric execute-acceptor (connection-manager) (:documentation "This function is called once Hunchentoot has performed all initial processing to start listening for incoming connections. It does so by -calling the LISTEN-FOR-CONNECTIONS functions of the server, taken from +calling the ACCEPT-CONNECTIONS functions of the server, taken from the SERVER slot of the connection manager instance. In a multi-threaded environment, the connection manager starts a new @@ -70,7 +70,6 @@ (:documentation "Terminate all threads that are currently associated with the connection manager, if any.") (:method (manager) - (declare (ignore manager)) #+:lispworks (when-let (listener (server-listener (server manager))) ;; kill the main listener process, see LW documentation for @@ -82,28 +81,38 @@ (:documentation "Connection manager that runs synchronously in the thread that invoked the START-SERVER function.")) -(defmethod execute-listener ((manager single-threaded-connection-manager)) - (listen-for-connections (server manager))) +(defmethod execute-acceptor ((manager single-threaded-connection-manager)) + (accept-connections (server manager))) (defmethod handle-incoming-connection ((manager single-threaded-connection-manager) socket) (process-connection (server manager) socket)) (defclass one-thread-per-connection-manager (connection-manager) - () + ((acceptor-process :accessor acceptor-process + :documentation "Process that accepts incoming + connections and dispatches them to new processes + for request execution.")) (:documentation "Connection manager that starts one thread for listening to incoming requests and one thread for each incoming connection.")) -(defmethod execute-listener ((manager one-thread-per-connection-manager)) +(defmethod execute-acceptor ((manager one-thread-per-connection-manager)) #+:lispworks - (listen-for-connections (server manager)) + (accept-connections (server manager)) #-:lispworks - (bt:make-thread (lambda () - (listen-for-connections (server manager))) - :name (format nil "Hunchentoot listener \(~A:~A)" - (or (server-address (server manager)) "*") - (server-port (server manager))))) + (setf (acceptor-process manager) + (bt:make-thread (lambda () + (accept-connections (server manager))) + :name (format nil "Hunchentoot acceptor \(~A:~A)" + (or (server-address (server manager)) "*") + (server-port (server manager)))))) +#-:lispworks +(defmethod shutdown ((manager one-thread-per-connection-manager)) + (loop + while (bt:thread-alive-p (acceptor-process manager)) + do (sleep 1))) + #+:lispworks (defmethod handle-incoming-connection ((manager one-thread-per-connection-manager) handle) (incf *worker-counter*) Modified: trunk/thirdparty/hunchentoot/doc/index.xml =================================================================== --- trunk/thirdparty/hunchentoot/doc/index.xml 2008-07-17 12:50:50 UTC (rev 3486) +++ trunk/thirdparty/hunchentoot/doc/index.xml 2008-07-17 12:57:00 UTC (rev 3487) @@ -531,6 +531,7 @@ + (Lispworks only) Should be NIL or a positive integer. The system calls *CLEANUP-FUNCTION* whenever *CLEANUP-INTERVAL* new worker @@ -541,13 +542,13 @@ + (Lispworks only) The function (with no arguments) which is called if *CLEANUP-INTERVAL* is not NIL. The initial value is a function which calls (HCL: - MARK-AND-SWEEP ?2) on LispWorks and - does nothing on other Lisps. + MARK-AND-SWEEP ?2).

On LispWorks this is necessary because each worker (which is created to handle an incoming http request and Modified: trunk/thirdparty/hunchentoot/packages.lisp =================================================================== --- trunk/thirdparty/hunchentoot/packages.lisp 2008-07-17 12:50:50 UTC (rev 3486) +++ trunk/thirdparty/hunchentoot/packages.lisp 2008-07-17 12:57:00 UTC (rev 3487) @@ -40,7 +40,9 @@ (:import-from :lw "WITH-UNIQUE-NAMES" "WHEN-LET") (:export "*APPROVED-RETURN-CODES*" "*CATCH-ERRORS-P*" + #+:lispworks "*CLEANUP-FUNCTION*" + #+:lispworks "*CLEANUP-INTERVAL*" "*CONTENT-TYPES-FOR-URL-REWRITE*" "*DEFAULT-CONNECTION-TIMEOUT*" Modified: trunk/thirdparty/hunchentoot/server.lisp =================================================================== --- trunk/thirdparty/hunchentoot/server.lisp 2008-07-17 12:50:50 UTC (rev 3486) +++ trunk/thirdparty/hunchentoot/server.lisp 2008-07-17 12:57:00 UTC (rev 3487) @@ -81,9 +81,13 @@ responsible for listening to new connections and scheduling them for execution.") #+:lispworks - (listener :accessor server-listener - :documentation "The Lisp process which listens for -incoming requests.") + (acceptor :accessor server-acceptor + :documentation "The Lisp process which accepts incoming + requests.") + #-:lispworks + (listen-socket :accessor server-listen-socket + :documentation "The listen socket for incoming + connections.") (server-shutdown-p :initform nil :accessor server-shutdown-p :documentation "Flag that makes the server @@ -191,13 +195,16 @@ (:documentation "Start the SERVER so that it begins accepting connections.") (:method ((server server)) - (execute-listener (server-connection-manager server)))) + (start-listening server) + (execute-acceptor (server-connection-manager server)))) (defgeneric stop (server) (:documentation "Stop the SERVER so that it does no longer accept requests.") (:method ((server server)) (setf (server-shutdown-p server) t) - (shutdown (server-connection-manager server)))) + (shutdown (server-connection-manager server)) + #-:lispworks + (usocket:socket-close (server-listen-socket server)))) (defun start-server (&rest args &key port address dispatch-table name @@ -339,51 +346,66 @@ "Time in seconds to wait for a new connection to arrive before performing a cleanup run.") -(defgeneric listen-for-connections (server) +(defgeneric start-listening (server) (:documentation "Sets up a listen socket for the given SERVER and -listens for incoming connections. In a loop, accepts a connection and +enables it to listen for incoming connections. This function is +called from the thread that starts the server initially and may return +errors resulting from the listening operation. (like 'address in use' +or similar).") + (:method ((server server)) + #+:lispworks + (multiple-value-bind (listener-process startup-condition) + (comm:start-up-server :service (server-port server) + :address (server-address server) + :process-name (format nil "Hunchentoot listener \(~A:~A)" + (or (server-address server) "*") (server-port server)) + ;; this function is called once on startup - we + ;; use it to check for errors + :announce (lambda (socket &optional condition) + (declare (ignore socket)) + (when condition + (error condition))) + ;; this function is called whenever a connection + ;; is made + :function (lambda (handle) + (unless (server-shutdown-p server) + (handle-incoming-connection + (server-connection-manager server) handle))) + ;; wait until the server was successfully started + ;; or an error condition is returned + :wait t) + (when startup-condition + (error startup-condition)) + (process-stop listener-process) + (setf (server-acceptor server) listener-process)) + #-:lispworks + (setf (server-listen-socket server) + (usocket:socket-listen (or (server-address server) + usocket:*wildcard-host*) + (server-port server) + :reuseaddress t + :element-type '(unsigned-byte 8))))) + +(defgeneric accept-connections (server) + (:documentation "In a loop, accepts a connection and dispatches it to the server's connection manager object for processing using HANDLE-INCOMING-CONNECTION.") (:method ((server server)) - #+:lispworks - (setf (server-listener server) - (comm:start-up-server :service (server-port server) - :address (server-address server) - :process-name (format nil "Hunchentoot listener \(~A:~A)" - (or (server-address server) "*") (server-port server)) - ;; this function is called once on startup - we - ;; use it to check for errors - :announce (lambda (socket &optional condition) - (declare (ignore socket)) - (when condition - (error condition))) - ;; this function is called whenever a connection - ;; is made - :function (lambda (handle) - (unless (server-shutdown-p server) - (handle-incoming-connection - (server-connection-manager server) handle))) - ;; wait until the server was successfully started - ;; or an error condition is returned - :wait t)) - #-:lispworks - (usocket:with-socket-listener (listener - (or (server-address server) - usocket:*wildcard-host*) - (server-port server) - :reuseaddress t - :element-type '(unsigned-byte 8)) - (do ((new-connection-p (usocket:wait-for-input listener :timeout +new-connection-wait-time+) - (usocket:wait-for-input listener :timeout +new-connection-wait-time+))) - ((server-shutdown-p server)) - (when new-connection-p - (let ((client-connection (usocket:socket-accept listener))) - (when client-connection - (set-timeouts client-connection - (server-read-timeout server) - (server-write-timeout server)) - (handle-incoming-connection (server-connection-manager server) - client-connection)))))))) + #+:lispworks + (process-unstop (server-acceptor server)) + #-:lispworks + (usocket:with-server-socket (listener (server-listen-socket server)) + (do ((new-connection-p (usocket:wait-for-input listener :timeout +new-connection-wait-time+) + (usocket:wait-for-input listener :timeout +new-connection-wait-time+))) + ((server-shutdown-p server)) + (when new-connection-p + (let ((client-connection (usocket:socket-accept listener))) + (when client-connection + (set-timeouts client-connection + (server-read-timeout server) + (server-write-timeout server)) + (handle-incoming-connection (server-connection-manager server) + client-connection)))))))) (defgeneric initialize-connection-stream (server stream) (:documentation "Wraps the given STREAM with all the additional From bknr at bknr.net Thu Jul 17 13:06:23 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 15:06:23 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3488 Author: ksprotte URL: http://bknr.net/trac/changeset/3488 country-stats-handler now uses queries from contract-stats U trunk/projects/bos/m2/m2.lisp U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/web/kml-handlers.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-17 12:57:00 UTC (rev 3487) +++ trunk/projects/bos/m2/m2.lisp 2008-07-17 13:06:23 UTC (rev 3488) @@ -591,7 +591,7 @@ (defstruct contract-stats (sold-m2s 0) (paying-sponsors 0) - (country-sponsors (make-hash-table :test #'equal)) + (country-sponsors (make-hash-table)) (last-contracts (make-list +last-contracts-cache-size+))) (defun initialize-contract-stats () @@ -603,8 +603,7 @@ (let* ((area (contract-area contract)) (sponsor (contract-sponsor contract)) (new-sponsor-p (alexandria:length= 1 (sponsor-contracts sponsor))) - (%country (sponsor-country sponsor)) - (country (and %country (string-upcase %country)))) + (country (sponsor-country sponsor))) (with-slots (sold-m2s paying-sponsors country-sponsors last-contracts) *contract-stats* ;; sold-m2s @@ -631,6 +630,7 @@ (contract-stats-paying-sponsors *contract-stats*)) (defun contract-stats-for-country (country) + (assert (keywordp country)) (let ((stat (gethash country (contract-stats-country-sponsors *contract-stats*)))) (if stat (values (country-stat-paying-sponsors stat) @@ -643,16 +643,12 @@ (object-destroyed-p contract))) (contract-stats-last-contracts *contract-stats*))) -(defun invoke-with-countries (function as-keyword) - (alexandria:maphash-keys - (if as-keyword - (lambda (country) (funcall function (make-keyword-from-string country))) - function) - (contract-stats-country-sponsors *contract-stats*))) +(defun invoke-with-countries (function) + (alexandria:maphash-keys function (contract-stats-country-sponsors *contract-stats*))) -(defmacro do-countries ((country &key as-keyword) &body body) +(defmacro do-sponsor-countries ((country) &body body) (check-type country symbol) - `(invoke-with-countries (lambda (,country) , at body) ,as-keyword)) + `(invoke-with-countries (lambda (,country) , at body))) (register-store-transient-init-function 'initialize-contract-stats) Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-17 12:57:00 UTC (rev 3487) +++ trunk/projects/bos/m2/packages.lisp 2008-07-17 13:06:23 UTC (rev 3488) @@ -170,7 +170,7 @@ #:number-of-paying-sponsors #:contract-stats-for-country #:last-paid-contracts - #:do-countries + #:do-sponsor-countries #:make-m2-javascript #:recolorize-contracts Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-17 12:57:00 UTC (rev 3487) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-17 13:06:23 UTC (rev 3488) @@ -154,18 +154,14 @@ (with-element "IconStyle" (with-element "Icon" ;; (with-element "href" (text "http://maps.google.com/mapfiles/kml/pal3/icon23.png")) - (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) - (dolist (country-contracts (sort (group-on (remove-if-not #'contract-paidp contracts) - :test #'equal - :key (lambda (contract) - (string-upcase (sponsor-country (contract-sponsor contract))))) - #'> :key (lambda (entry) (length (cdr entry))))) - (let ((coords (cdr (assoc (make-keyword-from-string (car country-contracts)) *country-coords*)))) + (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) + (do-sponsor-countries (country) + (let ((coords (cdr (assoc country *country-coords*)))) (when coords (destructuring-bind (lon lat) coords - (let* ((contracts (cdr country-contracts)) - (number-contracts (length contracts))) + (multiple-value-bind (number-of-paying-sponsors number-of-sold-m2s) + (contract-stats-for-country country) (with-element "Placemark" ;; (with-element "name" (text (format nil "~a ~a" (car country-contracts) (length (cdr country-contracts))))) (with-element "styleUrl" (text "#countryStatsStyle")) @@ -174,13 +170,13 @@

~A:~D m??
" (dictionary-entry "BOS says thank you to all sponsors!" lang) (dictionary-entry - (second (assoc (make-keyword-from-string (car country-contracts)) *country-english-names*)) lang) - number-contracts - (if (= 1 number-contracts) + (second (assoc country *country-english-names*)) lang) + number-of-paying-sponsors + (if (= 1 number-of-paying-sponsors) (dictionary-entry "sponsor" lang) (dictionary-entry "sponsors" lang)) (dictionary-entry "total contribution" lang) - (reduce #'+ contracts :key #'contract-area)))) + number-of-sold-m2s))) (with-element "Point" (with-element "coordinates" (text (format nil "~,20F,~,20F,0" lat lon))))))))))))))) From bknr at bknr.net Thu Jul 17 13:59:39 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 15:59:39 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/ Message-ID: Revision: 3489 Author: ksprotte URL: http://bknr.net/trac/changeset/3489 a temporary fix to invoke-store-transient-init-functions before the transaction-log is forwarded U trunk/projects/bos/m2/allocation-cache.lisp U trunk/projects/bos/m2/m2-store.lisp Modified: trunk/projects/bos/m2/allocation-cache.lisp =================================================================== --- trunk/projects/bos/m2/allocation-cache.lisp 2008-07-17 13:06:23 UTC (rev 3488) +++ trunk/projects/bos/m2/allocation-cache.lisp 2008-07-17 13:59:38 UTC (rev 3489) @@ -260,7 +260,8 @@ (defmethod bknr.datastore::restore-subsystem (store (subsystem allocation-cache-subsystem) &key until) (declare (ignore until)) - (rebuild-cache)) + (rebuild-cache) + (bos.m2::invoke-store-transient-init-functions)) (defmethod bknr.datastore::snapshot-subsystem (store (subsystem allocation-cache-subsystem)) ) \ No newline at end of file Modified: trunk/projects/bos/m2/m2-store.lisp =================================================================== --- trunk/projects/bos/m2/m2-store.lisp 2008-07-17 13:06:23 UTC (rev 3488) +++ trunk/projects/bos/m2/m2-store.lisp 2008-07-17 13:59:38 UTC (rev 3489) @@ -64,8 +64,6 @@ *store-transient-init-constraints* new-store-transient-init-constraints)))) -(defmethod bknr.datastore::restore-store :after ((store m2-store) &key until) - (declare (ignore store until)) +(defun invoke-store-transient-init-functions () (dolist (function-name *store-transient-init-functions*) - (funcall function-name))) - + (funcall function-name))) \ No newline at end of file From bknr at bknr.net Thu Jul 17 14:11:47 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 16:11:47 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3490 Author: ksprotte URL: http://bknr.net/trac/changeset/3490 dont start-contract-tree-image-update-daemon make-contract-tree-from-m2 U trunk/projects/bos/build.lisp U trunk/projects/bos/test/fixtures.lisp U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/build.lisp =================================================================== --- trunk/projects/bos/build.lisp 2008-07-17 13:59:38 UTC (rev 3489) +++ trunk/projects/bos/build.lisp 2008-07-17 14:11:47 UTC (rev 3490) @@ -69,7 +69,8 @@ (swank:create-server :port ~D :dont-close t))" swank-port))) ;; start the bos server (apply #'bos.m2::reinit (read-configuration "m2.rc")) - (apply #'bos.web::init (read-configuration "web.rc")) + (apply #'bos.web::init (read-configuration "web.rc")) + (bos.web::start-contract-tree-image-update-daemon) (bknr.cron::start-cron)) (defun start-cert-daemon () Modified: trunk/projects/bos/test/fixtures.lisp =================================================================== --- trunk/projects/bos/test/fixtures.lisp 2008-07-17 13:59:38 UTC (rev 3489) +++ trunk/projects/bos/test/fixtures.lisp 2008-07-17 14:11:47 UTC (rev 3490) @@ -5,9 +5,8 @@ (when snapshot (format t "~&;; ++ taking snapshot~%") (snapshot)) - (let ((bos.web::*start-contract-tree-image-update-daemon* nil)) - (bos.m2::reinit :directory (bknr.datastore::store-directory *store*) - :website-url bos.m2::*website-url*)) + (bos.m2::reinit :directory (bknr.datastore::store-directory *store*) + :website-url bos.m2::*website-url*) (format t "~&;; ++ reopen-store done~%")) (defmacro reopen-store ((&key snapshot) &rest store-object-vars) @@ -51,7 +50,7 @@ (let ((store-path (parse-namestring (format nil "/tmp/test-store-~D.tmp/" (get-universal-time))))) (unwind-protect - (let ((bos.web::*start-contract-tree-image-update-daemon* nil)) + (progn (bos.m2::reinit :delete t :directory store-path :website-url bos.m2::*website-url*) Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-17 13:59:38 UTC (rev 3489) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-17 14:11:47 UTC (rev 3490) @@ -306,7 +306,6 @@ ;; contract-tree image update daemon (defvar *contract-tree-image-update-daemon* nil) (defvar *contract-tree-image-update-daemon-halt*) -(defvar *start-contract-tree-image-update-daemon* t) (defun contract-tree-image-update-daemon-loop () (loop (when *contract-tree-image-update-daemon-halt* (return)) @@ -346,9 +345,7 @@ (dolist (contract (class-instances 'contract)) (when (contract-published-p contract) (insert-contract *contract-tree* contract))) - (format t "~&rendering contract-tree images if needed...") (force-output) - (when *start-contract-tree-image-update-daemon* - (start-contract-tree-image-update-daemon)) + (format t "~&rendering contract-tree images if needed...") (force-output) (format t "done.~%") (force-output) (geometry:register-rect-subscriber geometry:*rect-publisher* *contract-tree* (list 0 0 +width+ +width+) From bknr at bknr.net Thu Jul 17 14:48:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 16:48:01 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/datastore/src/data/object.lisp Message-ID: Revision: 3491 Author: hans URL: http://bknr.net/trac/changeset/3491 Add option to ignore objects in a snapshot that are of now-nonexistant classes. U trunk/bknr/datastore/src/data/object.lisp Modified: trunk/bknr/datastore/src/data/object.lisp =================================================================== --- trunk/bknr/datastore/src/data/object.lisp 2008-07-17 14:11:47 UTC (rev 3490) +++ trunk/bknr/datastore/src/data/object.lisp 2008-07-17 14:48:01 UTC (rev 3491) @@ -353,15 +353,15 @@ (%encode-integer (store-object-id object) stream) (%encode-set-slots slots object stream))) -(defvar *class-rename-hash*) - (defun find-class-with-interactive-renaming (class-name) - (loop until (find-class class-name nil) + (loop until (or (null class-name) + (find-class class-name nil)) do (progn - (format *query-io* "Class ~A not found, enter new class: " class-name) + (format *query-io* "Class ~A not found, enter new class or enter NIL to ignore objects of this class: " class-name) (finish-output *query-io*) (setq class-name (read *query-io*)))) - (setf (gethash class-name *class-rename-hash*) (find-class class-name))) + (and class-name + (find-class class-name))) (defun find-slot-name-with-interactive-rename (class slot-name) (loop until (find slot-name (class-slots class) :key #'slot-definition-name) @@ -406,20 +406,24 @@ (class-name (%decode-symbol stream)) (nslots (%decode-integer stream)) (class (find-class-with-interactive-renaming class-name)) - (slots (find-class-slots-with-interactive-renaming class (loop - repeat nslots - collect (%decode-symbol stream))))) + (slot-names (loop repeat nslots collect (%decode-symbol stream))) + (slots (if class + (find-class-slots-with-interactive-renaming class slot-names) + slot-names))) (setf (gethash id layouts) (cons class slots)))) (defun %read-slots (stream object slots) + "Read the OBJECT from STREAM. The individual slots of the object +are expected in the order of the list SLOTS. If the OBJECT is NIL, +the slots are read from the snapshot and ignored." (declare (optimize (speed 3))) (dolist (slot-name slots) - (if slot-name ; NIL for slots which are not restored because of schema changes + (if slot-name ; NIL for slots which are not restored because of schema changes (restart-case (let ((*current-object-slot* (list object slot-name)) - (*current-slot-relaxed-p* - (store-object-relaxed-object-reference-p object slot-name))) + (*current-slot-relaxed-p* (or (null object) + (store-object-relaxed-object-reference-p object slot-name)))) (let ((value (decode stream))) (when object (let ((bknr.indices::*indices-remove-p* nil)) @@ -437,30 +441,25 @@ (defun snapshot-read-object (stream layouts) (declare (optimize (speed 3))) (with-simple-restart (skip-object "Skip the object.") - (let ((layout-id (%decode-integer stream)) - (object-id (%decode-integer stream))) - #+nil (format t "id: ~A~%" object-id) - (destructuring-bind (class &rest slots) (gethash layout-id layouts) - (declare (ignore slots)) - #+nil (format t "; class: ~A~%" class) - (let ((result (make-instance class :id object-id))) - result))))) + (let* ((layout-id (%decode-integer stream)) + (object-id (%decode-integer stream)) + (class (first (gethash layout-id layouts)))) + ;; If the class is NIL, it was not found in the currently + ;; running Lisp image and objects of this class will be ignored. + (when class + (make-instance class :id object-id))))) (defun snapshot-read-slots (stream layouts) (let* ((layout-id (%decode-integer stream)) (object-id (%decode-integer stream)) (object (store-object-with-id object-id))) (restart-case - (progn - #+nil (format t "read-slots for object ~A, id ~A~%" object object-id) - (unless object - (error "READ-SLOTS form for unexistent object with ID ~A~%" object-id)) - (%read-slots stream object (cdr (gethash layout-id layouts)))) - (skip-object-initialization () - :report "Skip object initialization.") - (delete-object () - :report "Delete the object." - (delete-object object))))) + (%read-slots stream object (cdr (gethash layout-id layouts))) + (skip-object-initialization () + :report "Skip object initialization.") + (delete-object () + :report "Delete the object." + (delete-object object))))) (defmethod encode-object ((object store-object) stream) (if (object-destroyed-p object) @@ -563,7 +562,6 @@ (created-objects 0) (read-slots 0) (error t) - (*class-rename-hash* (make-hash-table)) (*slot-name-map* nil)) (unwind-protect (progn @@ -584,8 +582,8 @@ (format t "unknown char ~A at offset ~A~%" char (file-position s))) (ecase char ((nil) (return)) - (#\O (snapshot-read-object s class-layouts) (incf created-objects)) (#\L (snapshot-read-layout s class-layouts)) + (#\O (snapshot-read-object s class-layouts) (incf created-objects)) (#\S (snapshot-read-slots s class-layouts) (incf read-slots)))))) (map-store-objects #'initialize-transient-instance) (setf error nil)) From bknr at bknr.net Thu Jul 17 15:17:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 17:17:01 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/ Message-ID: Revision: 3492 Author: ksprotte URL: http://bknr.net/trac/changeset/3492 removed obsolete image-tree from bos - step 1 U trunk/projects/bos/web/image-tree.lisp U trunk/projects/bos/web/kml-handlers.lisp U trunk/projects/bos/web/webserver.lisp Modified: trunk/projects/bos/web/image-tree.lisp =================================================================== --- trunk/projects/bos/web/image-tree.lisp 2008-07-17 14:48:01 UTC (rev 3491) +++ trunk/projects/bos/web/image-tree.lisp 2008-07-17 15:17:01 UTC (rev 3492) @@ -312,371 +312,3 @@ ;; end kml utils -(defvar *image-tree-node-counter*) - -(defmacro with-image-tree-node-counter (&body body) - "Allows to call IMAGE-TREE-NODE-UNIQUE-NAME in BODY." - `(let ((*image-tree-node-counter* -1)) - , at body)) - -(defun image-tree-node-unique-name () - "Generates a unique name for an image-tree-node." - (format nil "image-tree-~a-~a-~a" (get-universal-time) (random 10000) (incf *image-tree-node-counter*))) - -(defpersistent-class image-tree-node (store-image) - ((geo-x :initarg :geo-x :reader geo-x) - (geo-y :initarg :geo-y :reader geo-y) - (geo-width :initarg :geo-width :reader geo-width) - (geo-height :initarg :geo-height :reader geo-height) - (children :initarg :children :reader children) - (parent :reader parent) - (depth :accessor depth :initarg :depth)) - (:documentation "Derived from STORE-IMAGE, IMAGE-TREE-NODE is an -image itself, which has additional information, like its -geo-location. It also knows about its position in the tree; being at a -certain DEPTH and pointing to its PARENT and its CHILDREN.")) - -(defpersistent-class image-tree (image-tree-node) - ((parent :initform nil)) - (:documentation "IMAGE-TREE is the root node of IMAGE-TREE-NODEs.")) - -(defmethod print-object ((object image-tree-node) stream) - (print-unreadable-object (object stream :type t) - (format stream "ID: ~A (~A x ~A)" - (store-object-id object) - (store-image-width object) - (store-image-height object)))) - -(defmethod initialize-persistent-instance :after ((obj image-tree-node)) - ;; initialize the parent slot - (dolist (child (children obj)) - (setf (slot-value child 'parent) obj))) - -(defmethod geo-location ((obj image-tree-node)) - (list (geo-x obj) (geo-y obj) (geo-width obj) (geo-height obj))) - -(defun make-image-tree-node (image &key geo-rect children - (class-name 'image-tree-node) - depth) - (destructuring-bind (geo-x geo-y geo-width geo-height) - geo-rect - (make-store-image :image image - :name (image-tree-node-unique-name) - :class-name class-name - :initargs `(:geo-x ,geo-x - :geo-y ,geo-y - :geo-width ,geo-width - :geo-height ,geo-height - :children ,children - :depth ,depth)))) - -(defun image-tree-node-less (a b) - "Allows to give IMAGE-TREE-NODEs a canonical order according to -their geo-locations." - (cond - ((< (geo-x a) (geo-x b)) t) - ((= (geo-x a) (geo-x b)) - (< (geo-y a) (geo-y b))) - (t nil))) - -;; (defmethod lod-min ((obj image-tree-node)) -;; (/ (min (store-image-width obj) (store-image-height obj)) 2.0)) - -;; (defmethod lod-min ((obj image-tree)) -;; 900) - -;; (defmethod lod-max ((obj image-tree-node)) -;; (if (children obj) -;; (* (store-image-width obj) (store-image-height obj)) -;; -1)) - -(defmethod lod-min ((obj image-tree-node)) - "Initially intended to customize LOD-MIN according to the node's -context. It seems that a constant default value is sufficient here." - 256) - -(defmethod lod-min ((obj image-tree)) - 16) - -(defmethod lod-max ((obj image-tree-node)) - "See LOD-MIN." - -1) - -(defun children-sizes (width height &key (divisor 2)) - "Splits a rectangle of integer size WIDTH x HEIGHT into almost equal -parts that have again integer size. If the initial rectangle does not -have an extreme aspect ratio, the number of the resulting rectangles -will be (sqr divisor)." - ;; extreme aspect ratios are not implemented yet - (flet ((divide-almost-equally (x) - (multiple-value-bind (quotient remainder) - (floor x divisor) - (loop for i from 0 below divisor - if (zerop i) - collect (+ quotient remainder) - else - collect quotient)))) - (list (divide-almost-equally width) - (divide-almost-equally height)))) - -(defun map-children-rects (function left top width-heights depth) - "Calls FUNCTION with (x y width height depth) for each of the -sub-rectangles specified by the start point LEFT, TOP and -WIDTH-HEIGHTS of the sub-rectangles. Collects the results into an -array of dimensions corresponding to WIDTH-HEIGHTS." - (let (results) - (destructuring-bind (widths heights) - width-heights - (dolist (w widths (nreverse results)) - (let ((safe-top top)) ; pretty ugly, sorry - (dolist (h heights) - (push (funcall function left safe-top w h depth) results) - (incf safe-top h))) - (incf left w))))) - -(defun make-image-tree (source-image geo-location &key - (output-images-size 256)) - "Constructs an image-tree with the given SOURCE-IMAGE. The root -IMAGE-TREE-NODE will be at GEO-LOCATION. All images will be scaled to -OUTPUT-IMAGES-SIZE." - (destructuring-bind (geo-x geo-y geo-width geo-height) geo-location - (let* ((source-image-width (cl-gd:image-width source-image)) - (source-image-height (cl-gd:image-height source-image)) - (scaler-x (/ source-image-width geo-width)) - (scaler-y (/ source-image-height geo-height)) - (classes '(image-tree . #1=(image-tree-node . #1#)))) - (labels ((image-point2geo-point (x y) - (list (+ (/ x scaler-x) geo-x) - (+ (/ y scaler-y) geo-y))) - (image-rect2geo-rect (rect) - (destructuring-bind (x y width height) - rect - (let ((x2 (+ x width)) - (y2 (+ y height))) - (destructuring-bind (geo-x geo-y) - (image-point2geo-point x y) - (destructuring-bind (geo-x2 geo-y2) - (image-point2geo-point x2 y2) - (list geo-x geo-y (- geo-x2 geo-x) (- geo-y2 geo-y))))))) - (image-small-enough (image-width image-height) - (and (<= image-width output-images-size) - (<= image-height output-images-size))) - (%make-image-tree (image-x image-y image-width image-height depth) - (let ((class (pop classes)) - (children (unless (image-small-enough image-width image-height) - (sort - (map-children-rects #'%make-image-tree - image-x image-y - (children-sizes image-width image-height) - (1+ depth)) - #'image-tree-node-less)))) - (cl-gd:with-image (image output-images-size output-images-size t) - (cl-gd:copy-image source-image image - image-x image-y 0 0 - image-width image-height - :resample t - :resize t - :dest-width output-images-size - :dest-height output-images-size) - #+nil - (cl-gd:with-default-color ((cl-gd:allocate-color 255 0 0 :image image)) - ;; (cl-gd:draw-string 10 10 (format nil "~D,~D (~D x ~D)" image-x image-y image-width image-height) - ;; :font :medium :image image) - (cl-gd:draw-rectangle (list 10 10 (- output-images-size 10) (- output-images-size 10)) - :image image)) - (make-image-tree-node image - :geo-rect (image-rect2geo-rect - (list image-x image-y image-width image-height)) - :children children - :class-name class - :depth depth))))) - (with-image-tree-node-counter - (%make-image-tree 0 0 source-image-width source-image-height 0)))))) - -(defun matrix-from-list (list &key (x-key #'first) (y-key #'second)) - "Converts a flat LIST to a matrix, by using X-KEY and Y-KEY to -associate a position to each element of LIST. " - (let* ((matrix (mapcar #'cdr (sort (group-on (sort (copy-list list) #'< :key x-key) :key y-key) #'< :key #'first))) - (width (length (first matrix)))) - (assert (every #'(lambda (row) (= width (length row))) matrix) - nil "Cant make a proper matrix from list, cause its rows wont have the same length.") - matrix)) - -(defun setp (list &key (test #'eql) (key #'identity)) - "Checks if LIST is a set (using TEST and KEY)." - (= (length list) - (length (remove-duplicates list :test test :key key)))) - -(defun every-eql-first-p (list &key (test #'eql) (key #'identity)) - "Checks if LIST only contains elements that are eql to its first -element using TEST and KEY)." - (let ((first-key (funcall key (first list)))) - (every #'(lambda (elt) (funcall test first-key (funcall key elt))) (cdr list)))) - -(deftransaction combine-image-trees (image-trees) - "Creates a new image-tree object that contains IMAGE-TREES as -children. All necessary adoptions for the new structure are -performed." - (labels ((reduce-min (&rest args) - (apply #'reduce #'min args)) - (reduce-max (&rest args) - (apply #'reduce #'max args)) - (normalize-depths (node &optional (depth 0)) - (setf (depth node) depth) - (mapc #'(lambda (child) (normalize-depths child (1+ depth))) (children node)) - node)) - (assert (setp image-trees :key #'(lambda (tree) (list (geo-x tree) (geo-y tree))) :test #'equal) - nil "The given image-trees have at least one duplicate with respect to their left-top position.") - (assert (every-eql-first-p image-trees :key #'(lambda (tree) (list (store-image-width tree) - (store-image-height tree))) - :test #'equal) - nil "The given image-trees must have the same width and height.") - (let* ((geo-x (reduce-min image-trees :key #'geo-x)) - (geo-y (reduce-min image-trees :key #'geo-y)) - (geo-x-max (reduce-max image-trees :key #'(lambda (tree) (+ (geo-x tree) (geo-width tree))))) - (geo-y-max (reduce-max image-trees :key #'(lambda (tree) (+ (geo-y tree) (geo-height tree))))) - (first-image-tree (first image-trees)) - (children-matrix (matrix-from-list image-trees :x-key #'geo-x :y-key #'geo-y)) - (children-matrix-width (length (first children-matrix))) - (children-matrix-height (length children-matrix))) - (cl-gd:with-image (image (store-image-width first-image-tree) - (store-image-height first-image-tree) - t) - ;; copy images - (flet ((scaler-x (x) (round (/ x children-matrix-width))) - (scaler-y (y) (round (/ y children-matrix-height)))) - (loop with dest-y = 0 - for row in children-matrix - do (loop with dest-x = 0 - for tree in row - do (with-store-image (source-image tree) - (cl-gd:copy-image source-image image - 0 0 (scaler-x dest-x) (scaler-y dest-y) - (store-image-width tree) (store-image-height tree) - :resample t - :resize t - :dest-width (scaler-x (store-image-width first-image-tree)) - :dest-height (scaler-y (store-image-height first-image-tree)))) - do (incf dest-x (store-image-width tree))) - do (incf dest-y (store-image-height (first row))))) - (normalize-depths - (with-image-tree-node-counter - (make-image-tree-node image :geo-rect (list geo-x geo-y (- geo-x-max geo-x) (- geo-y-max geo-y)) - :children (mapcar (alexandria:rcurry #'persistent-change-class 'image-tree-node) - image-trees) - :class-name 'image-tree))))))) - - -;; (cl-gd:with-image-from-file (image "/tmp/115606" :jpeg) -;; (make-image-tree image nil)) - -;; (cl-gd:with-image-from-file (image "/tmp/115606" :jpeg) -;; (make-image-tree image '(0 0 10 10))) - -(defclass image-tree-handler (object-handler) - () - (:default-initargs :object-class 'image-tree-node) - (:documentation "A simple html inspector for image-trees. Mainly - used for debugging.")) - - -(defun img-image-tree (object) - (html - ((:a :href (format nil "http://~a/image-tree/~d" (website-host) (store-object-id object))) - ((:img :src (format nil "http://~a/image/~d" (website-host) (store-object-id object))))))) - -(defmethod handle-object ((image-tree-handler image-tree-handler) (object image-tree-node)) - (with-bknr-page (:title (prin1-to-string object)) - #+nil(:pre - (:princ - (arnesi:escape-as-html - (with-output-to-string (*standard-output*) - (describe object))))) - (img-image-tree object) - (when (parent object) - (html - (:p - ((:a :href (format nil "http://~a/image-tree/~d" (website-host) (store-object-id (parent object)))) - "go to parent")))) - (:p "depth: " (:princ (depth object)) "lod-min:" (:princ (lod-min object)) "lod-max:" (:princ (lod-max object))) - (:table - (dolist (row (group-on (children object) :key #'geo-y :include-key nil)) - (html (:tr - (dolist (child row) - (html (:td (img-image-tree child)))))))))) - - -(defclass image-tree-kml-handler (object-handler) - () - (:default-initargs :object-class 'image-tree-node) - (:documentation "Generates a kml representation of the queried -image-tree-node. If the node has children, corresponding network -links are created.")) - -(defmethod handle-object ((handler image-tree-kml-handler) (obj image-tree-node)) - (hunchentoot:handle-if-modified-since (blob-timestamp obj)) - (with-xml-response (:content-type "text/xml; charset=utf-8" #+nil"application/vnd.google-earth.kml+xml" - :root-element "kml") - (setf (hunchentoot:header-out :last-modified) - (hunchentoot:rfc-1123-date (blob-timestamp obj))) - (let ((lod `(:min ,(lod-min obj) :max ,(lod-max obj))) - (rect (make-rectangle2 (list (geo-x obj) (geo-y obj) (geo-width obj) (geo-height obj))))) - (with-element "Document" - (kml-region rect lod) - (kml-overlay (format nil "http://~a/image/~d" (website-host) (store-object-id obj)) - rect - :draw-order (depth obj) - ;; :absolute 0 - ) - (dolist (child (children obj)) - (kml-network-link (format nil "http://~a/image-tree-kml/~d" (website-host) (store-object-id child)) - :rect (make-rectangle2 (list (geo-x child) (geo-y child) - (geo-width child) (geo-height child))) - :lod `(:min ,(lod-min child) :max ,(lod-max child)))))))) - -(defclass image-tree-kml-latest-handler (page-handler) - () - (:documentation "A convenience handler that redirects to the - IMAGE-TREE-KML-HANDLER of the latest created image-tree.")) - -(defmethod handle ((page-handler image-tree-kml-latest-handler)) - (redirect (format nil "http://~a/image-tree-kml/~d" (website-host) (store-object-id (car (last (class-instances 'image-tree))))))) - -;;;; -(defun image-tree-import-satellitenbild () - "A simple importer for our standard image." - (labels ((2x2-indices (left top) - `((,left ,top)(,(1+ left) ,top)(,left ,(1+ top))(,(1+ left) ,(1+ top)))) - (aref-indices (array indices) - (mapcar #'(lambda (index-pair) (destructuring-bind (x y) index-pair (aref array x y))) indices))) - (let ((array (make-array (list 4 4)))) - (loop with *default-pathname-defaults* = (merge-pathnames #p"tiles-2700/" (user-homedir-pathname)) - for name in '("sl_utm50s_01.png" - "sl_utm50s_02.png" - "sl_utm50s_03.png" - "sl_utm50s_04.png" - "sl_utm50s_05.png" - "sl_utm50s_06.png" - "sl_utm50s_07.png" - "sl_utm50s_08.png" - "sl_utm50s_09.png" - "sl_utm50s_10.png" - "sl_utm50s_11.png" - "sl_utm50s_12.png" - "sl_utm50s_13.png" - "sl_utm50s_14.png" - "sl_utm50s_15.png" - "sl_utm50s_16.png") - for i upfrom 0 - for x = (mod i 4) - for y = (floor i 4) - do (print (list 'importing x y)) - do (setf (aref array x y) - (cl-gd:with-image-from-file (image (merge-pathnames name)) - (make-image-tree image (list (* (mod i 4) 2700) (* (floor i 4) 2700) - 2700 2700))))) - (combine-image-trees - (list (combine-image-trees (aref-indices array (2x2-indices 0 0))) - (combine-image-trees (aref-indices array (2x2-indices 0 2))) - (combine-image-trees (aref-indices array (2x2-indices 2 0))) - (combine-image-trees (aref-indices array (2x2-indices 2 2)))))))) Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-17 14:48:01 UTC (rev 3491) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-17 15:17:01 UTC (rev 3492) @@ -52,9 +52,6 @@ (when (sponsor-info-text sponsor) (text (sponsor-info-text sponsor)))))))) -(defun image-tree-root-id () - (store-object-id (first (class-instances 'image-tree)))) - (defclass kml-root-handler (object-handler) ((timestamp :accessor timestamp :initform (get-universal-time)))) @@ -85,14 +82,7 @@ (with-element "altitude" (text "0")) (with-element "range" (text "1134.262777389377")) (with-element "tilt" (text "0")) - (with-element "heading" (text "1.391362238653075"))) - (let ((image-tree (find-store-object (image-tree-root-id)))) - (assert (and image-tree (typep image-tree 'image-tree)) nil - "(find-store-object (image-tree-root-id)) gives ~s" image-tree) - (kml-network-link (format nil "http://~a/image-tree-kml/~d" (website-host) (image-tree-root-id)) - :rect (make-rectangle2 (geo-location image-tree)) - :lod `(:min ,(lod-min image-tree) :max ,(lod-max image-tree)) - :name "old-image-tree")) + (with-element "heading" (text "1.391362238653075"))) (dolist (sat-layer (class-instances 'sat-layer)) (kml-network-link (format nil "http://~a/sat-root-kml?name=~A" (website-host) (name sat-layer)) :rect (geo-box-rectangle *m2-geo-box*) Modified: trunk/projects/bos/web/webserver.lisp =================================================================== --- trunk/projects/bos/web/webserver.lisp 2008-07-17 14:48:01 UTC (rev 3491) +++ trunk/projects/bos/web/webserver.lisp 2008-07-17 15:17:01 UTC (rev 3492) @@ -199,10 +199,7 @@ :handler-definitions `(("/edit-poi" edit-poi-handler) ("/edit-poi-image" edit-poi-image-handler) ("/edit-sponsor" edit-sponsor-handler) - ("/kml-root" kml-root-handler) - ("/image-tree-kml-latest" image-tree-kml-latest-handler) - ("/image-tree-kml" image-tree-kml-handler) - ("/image-tree" image-tree-handler) + ("/kml-root" kml-root-handler) ("/country-stats" country-stats-handler) ("/contract-tree-kml" contract-tree-kml-handler) ("/contract-tree-image" contract-tree-image-handler) From bknr at bknr.net Thu Jul 17 15:18:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 17:18:01 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/ Message-ID: Revision: 3493 Author: ksprotte URL: http://bknr.net/trac/changeset/3493 removed obsolete image-tree from bos - step 2 U trunk/projects/bos/web/bos.web.asd D trunk/projects/bos/web/image-tree.lisp A trunk/projects/bos/web/kml-utils.lisp Change set too large, please see URL above From bknr at bknr.net Thu Jul 17 16:00:11 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 18:00:11 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/drakma/request.lisp Message-ID: Revision: 3494 Author: hans URL: http://bknr.net/trac/changeset/3494 Add :deadline keyword argument, available only on CCL 1.2+ U trunk/thirdparty/drakma/request.lisp Modified: trunk/thirdparty/drakma/request.lisp =================================================================== --- trunk/thirdparty/drakma/request.lisp 2008-07-17 15:18:01 UTC (rev 3493) +++ trunk/thirdparty/drakma/request.lisp 2008-07-17 16:00:11 UTC (rev 3494) @@ -201,7 +201,9 @@ #+:lispworks (connection-timeout 20) #+:lispworks (read-timeout 20) #+(and :lispworks (not :lw-does-not-have-write-timeout)) - (write-timeout 20 write-timeout-provided-p)) + (write-timeout 20 write-timeout-provided-p) + #+openmcl + deadline) "Sends an HTTP request to a web server and returns its reply. URI is where the request is sent to, and it is either a string denoting a uniform resource identifier or a PURI:URI object. The scheme of URI @@ -376,7 +378,14 @@ arguments can also be NIL \(meaning no timeout), and they don't apply if an existing stream is re-used. All timeout keyword arguments are only available for LispWorks, WRITE-TIMEOUT is only available for -LispWorks 5.0 or higher." +LispWorks 5.0 or higher. + +DEADLINE, a time in the future, specifies the time until which the +request should be finished. The DEADLINE is specified in internal +time units (see (GET-INTERNAL-TIME-UNITS) and +INTERNAL-TIME-UNITS-PER-SECOND). If the server fails to respond until +that time, a COMMUNICATION-DEADLINE-EXPIRED condition is signalled. +DEADLINE is available on CCL 1.2 and later." (unless (member protocol '(:http/1.0 :http/1.1) :test #'eq) (error "Don't know how to handle protocol ~S." protocol)) (setq uri (cond ((uri-p uri) (copy-uri uri)) @@ -445,7 +454,17 @@ :errorp t) #-:lispworks (usocket:socket-stream - (usocket:socket-connect host port :element-type 'octet)))) + (usocket:socket-connect host port + :element-type 'octet + #+openmcl #+openmcl + :deadline deadline + :nodelay t)))) + #+openmcl + (when deadline + ;; It is correct to set the deadline here even though it may have been initialized + ;; by SOCKET-CONNECT already: The stream may have been passed in by the user and + ;; the user may want to adjust the deadline for every request. + (setf (ccl:stream-deadline http-stream) deadline)) (when (and use-ssl ;; don't attach SSL to existing streams (not stream)) From bknr at bknr.net Thu Jul 17 16:06:40 2008 From: bknr at bknr.net (BKNR Commits) Date: Thu, 17 Jul 2008 18:06:40 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/usocket/backend/openmcl.lisp Message-ID: Revision: 3495 Author: hans URL: http://bknr.net/trac/changeset/3495 Add :NODELAY argument to SOCKET-CONNECT to disable TCP start-up delays. CCL only. U trunk/thirdparty/usocket/backend/openmcl.lisp Modified: trunk/thirdparty/usocket/backend/openmcl.lisp =================================================================== --- trunk/thirdparty/usocket/backend/openmcl.lisp 2008-07-17 16:00:11 UTC (rev 3494) +++ trunk/thirdparty/usocket/backend/openmcl.lisp 2008-07-17 16:06:40 UTC (rev 3495) @@ -72,13 +72,14 @@ :text :binary)) -(defun socket-connect (host port &key (element-type 'character) timeout deadline) +(defun socket-connect (host port &key (element-type 'character) timeout deadline nodelay) (with-mapped-conditions () (let ((mcl-sock (openmcl-socket:make-socket :remote-host (host-to-hostname host) :remote-port port :format (to-format element-type) :deadline deadline + :nodelay nodelay :connect-timeout (and timeout (* timeout internal-time-units-per-second))))) (openmcl-socket:socket-connect mcl-sock) From bknr at bknr.net Fri Jul 18 04:47:38 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 06:47:38 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/datastore/doc/indices.tex Message-ID: Revision: 3496 Author: hans URL: http://bknr.net/trac/changeset/3496 Correct typo, thanks to Stan Parman (?) for reporting. U trunk/bknr/datastore/doc/indices.tex Modified: trunk/bknr/datastore/doc/indices.tex =================================================================== --- trunk/bknr/datastore/doc/indices.tex 2008-07-17 16:06:40 UTC (rev 3495) +++ trunk/bknr/datastore/doc/indices.tex 2008-07-18 04:47:37 UTC (rev 3496) @@ -148,7 +148,7 @@ \begin{Verbatim}[fontsize=\small,frame=leftline,framerule=0.9mm,rulecolor=\color{gray},framesep=5.1mm,xleftmargin=5mm,fontfamily=cmtt] (make-instance 'gorilla :name "Lucy" :description :aggressive) (make-instance 'gorilla :name "Robert" :description :playful) -(make-instance 'gorilla :name "John" :description :aggressive))) +(make-instance 'gorilla :name "John" :description :aggressive) (all-gorillas) ; => (# # #) From bknr at bknr.net Fri Jul 18 05:03:18 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 07:03:18 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/usocket/backend/ Message-ID: Revision: 3497 Author: hans URL: http://bknr.net/trac/changeset/3497 add ignored nodelay argument to all backends U trunk/thirdparty/usocket/backend/allegro.lisp U trunk/thirdparty/usocket/backend/armedbear.lisp U trunk/thirdparty/usocket/backend/clisp.lisp U trunk/thirdparty/usocket/backend/cmucl.lisp U trunk/thirdparty/usocket/backend/lispworks.lisp U trunk/thirdparty/usocket/backend/sbcl.lisp U trunk/thirdparty/usocket/backend/scl.lisp Modified: trunk/thirdparty/usocket/backend/allegro.lisp =================================================================== --- trunk/thirdparty/usocket/backend/allegro.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/allegro.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -49,7 +49,8 @@ :text :binary)) -(defun socket-connect (host port &key (element-type 'character) timeout) +(defun socket-connect (host port &key (element-type 'character) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in Allegro CL")) (let ((socket)) Modified: trunk/thirdparty/usocket/backend/armedbear.lisp =================================================================== --- trunk/thirdparty/usocket/backend/armedbear.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/armedbear.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -185,7 +185,8 @@ (typecase condition (error (error 'unknown-error :socket socket :real-error condition)))) -(defun socket-connect (host port &key (element-type 'character) timeout) +(defun socket-connect (host port &key (element-type 'character) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in ABCL")) (let ((usock)) Modified: trunk/thirdparty/usocket/backend/clisp.lisp =================================================================== --- trunk/thirdparty/usocket/backend/clisp.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/clisp.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -55,7 +55,8 @@ (error usock-err :socket socket) (signal usock-err :socket socket))))))) -(defun socket-connect (host port &key (element-type 'character) timeout) +(defun socket-connect (host port &key (element-type 'character) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in CLISP")) (let ((socket) Modified: trunk/thirdparty/usocket/backend/cmucl.lisp =================================================================== --- trunk/thirdparty/usocket/backend/cmucl.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/cmucl.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -50,7 +50,8 @@ :socket socket :condition condition)))) -(defun socket-connect (host port &key (element-type 'character) timeout) +(defun socket-connect (host port &key (element-type 'character) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in CMUCL")) (let* ((socket)) Modified: trunk/thirdparty/usocket/backend/lispworks.lisp =================================================================== --- trunk/thirdparty/usocket/backend/lispworks.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/lispworks.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -73,7 +73,8 @@ (declare (ignore host port err-msg)) (raise-usock-err errno socket condition))))) -(defun socket-connect (host port &key (element-type 'base-char) timeout) +(defun socket-connect (host port &key (element-type 'base-char) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in Lispworks")) (let ((hostname (host-to-hostname host)) Modified: trunk/thirdparty/usocket/backend/sbcl.lisp =================================================================== --- trunk/thirdparty/usocket/backend/sbcl.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/sbcl.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -186,7 +186,8 @@ (signal usock-cond :socket socket)))))) -(defun socket-connect (host port &key (element-type 'character) timeout deadline) +(defun socket-connect (host port &key (element-type 'character) timeout deadline nodelay) + (declare (ignore nodelay)) (declare (ignore deadline)) (when timeout (warn "SOCKET-CONNECT timeout not supported in SBCL")) Modified: trunk/thirdparty/usocket/backend/scl.lisp =================================================================== --- trunk/thirdparty/usocket/backend/scl.lisp 2008-07-18 04:47:37 UTC (rev 3496) +++ trunk/thirdparty/usocket/backend/scl.lisp 2008-07-18 05:03:18 UTC (rev 3497) @@ -28,7 +28,8 @@ :socket socket :condition condition)))) -(defun socket-connect (host port &key (element-type 'character) timeout) +(defun socket-connect (host port &key (element-type 'character) timeout nodelay) + (declare (ignore nodelay)) (when timeout (warn "SOCKET-CONNECT timeout not supported in SCL")) (let* ((socket (with-mapped-conditions () From bknr at bknr.net Fri Jul 18 10:33:21 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 12:33:21 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3498 Author: ksprotte URL: http://bknr.net/trac/changeset/3498 fixes for contract-tree, especially contract-node-find-corresponding-store-image U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-18 05:03:18 UTC (rev 3497) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-18 10:33:20 UTC (rev 3498) @@ -20,9 +20,17 @@ (defun contract-node-find-corresponding-store-image (node) (let ((store-images (get-keyword-store-images (contract-node-keyword node)))) - (when (< 1 (length store-images)) - (warn "~D store-images for ~S" (length store-images) node)) - (first store-images))) + (if (alexandria:length= 1 store-images) + ;; good, there is only one + (first store-images) + ;; We will just return NIL, if we cannot find one. + ;; If there are too many, we will return the newest one and delete the rest. + (progn + (warn "~D store-images for ~S" (length store-images) node) + (let ((store-images-newest-first + (sort (copy-list store-images) #'> :key #'blob-timestamp))) + (mapc #'delete-object (rest store-images-newest-first)) + (first store-images-newest-first)))))) (defmethod initialize-instance :after ((node contract-node) &key args) (declare (ignore args)) @@ -34,9 +42,8 @@ (defvar *contract-tree* nil) (defparameter *contract-tree-images-size* 128) ; was 256 -;;; XXX soll spaeter von was anderem abhaengen (defmethod leaf-node-p ((node contract-node)) - (= 9 (depth node))) + (= 10 (depth node))) (defun contract-geo-box (contract) (destructuring-bind (x y width height) @@ -296,7 +303,8 @@ (with-query-params (path) (let* ((path (parse-path path)) (node (find-node-with-path *contract-tree* path)) - (image (image node))) + (image (image node))) + (assert image nil "contract-tree node ~{~D~} does not have an image" path) (hunchentoot:handle-if-modified-since (blob-timestamp image)) (with-store-image* (image) (emit-image-to-browser cl-gd:*default-image* :png From bknr at bknr.net Fri Jul 18 10:53:38 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 12:53:38 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3499 Author: ksprotte URL: http://bknr.net/trac/changeset/3499 added target POI-micro-site to learn-more link U trunk/projects/bos/web/poi-handlers.lisp Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-18 10:33:20 UTC (rev 3498) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-18 10:53:38 UTC (rev 3499) @@ -528,6 +528,7 @@ (attribute "align" "center") (with-element "a" (attribute "href" (poi-xml-path)) + (attribute "target" "POI-micro-site") (text (dictionary-entry "learn more" language))))) (with-element "tr" (with-element "td" From bknr at bknr.net Fri Jul 18 11:03:33 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 13:03:33 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3500 Author: ksprotte URL: http://bknr.net/trac/changeset/3500 contract-tree small change U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-18 10:53:38 UTC (rev 3499) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-18 11:03:33 UTC (rev 3500) @@ -247,6 +247,7 @@ (cl-gd:find-color r g b :alpha 40)))) (let ((box (geo-box node)) (image-size *contract-tree-images-size*)) + ;; (warn "will update image for ~a" node) (cl-gd:with-image (cl-gd:*default-image* image-size image-size t) (setf (cl-gd:save-alpha-p) t (cl-gd:alpha-blending-p) nil) From bknr at bknr.net Fri Jul 18 11:43:24 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 13:43:24 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2-store.lisp Message-ID: Revision: 3501 Author: ksprotte URL: http://bknr.net/trac/changeset/3501 added a restart that allows skipping of a transient init-function U trunk/projects/bos/m2/m2-store.lisp Modified: trunk/projects/bos/m2/m2-store.lisp =================================================================== --- trunk/projects/bos/m2/m2-store.lisp 2008-07-18 11:03:33 UTC (rev 3500) +++ trunk/projects/bos/m2/m2-store.lisp 2008-07-18 11:43:24 UTC (rev 3501) @@ -66,4 +66,6 @@ (defun invoke-store-transient-init-functions () (dolist (function-name *store-transient-init-functions*) - (funcall function-name))) \ No newline at end of file + (with-simple-restart (skip-init-function "Skip transient-init-function ~A" + function-name) + (funcall function-name)))) \ No newline at end of file From bknr at bknr.net Fri Jul 18 12:28:05 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 14:28:05 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/m2.lisp Message-ID: Revision: 3502 Author: ksprotte URL: http://bknr.net/trac/changeset/3502 optimized contract-compute-largest-rectangle that also helped to avoid a screamer fail on a certain contract U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-18 11:43:24 UTC (rev 3501) +++ trunk/projects/bos/m2/m2.lisp 2008-07-18 12:28:05 UTC (rev 3502) @@ -1,3 +1,4 @@ + (in-package :bos.m2) ;;; @@ -392,49 +393,55 @@ (let* ((m2s (contract-m2s contract)) (area (length m2s)) (scaler (ceiling area 1000.0)) - (bounding-box (contract-bounding-box contract))) - (geometry:with-rectangle bounding-box - (declare (ignore width height)) - (labels ( ;; to-orig - (distance-to-orig (d) - (when-scaling-needed d - (round (* d scaler)))) - (x-coordinate-to-orig (x) - (when-scaling-needed x - (+ left (round (* (- x left) scaler))))) - (y-coordinate-to-orig (y) - (when-scaling-needed y - (+ top (round (* (- y top) scaler))))) - (rectangle-to-orig (r) - (when-scaling-needed r - (geometry:with-rectangle r - (list (x-coordinate-to-orig left) - (y-coordinate-to-orig top) - (distance-to-orig width) - (distance-to-orig height))))) - ;; from-orig - (distance-from-orig (d) - (when-scaling-needed d - (floor d scaler))) - (x-coordinate-from-orig (x) - (when-scaling-needed x - (+ left (floor (- x left) scaler)))) - (y-coordinate-from-orig (y) - (when-scaling-needed y - (+ top (floor (- y top) scaler)))) - (rectangle-from-orig (r) - (when-scaling-needed r - (geometry:with-rectangle r - (list (x-coordinate-from-orig left) - (y-coordinate-from-orig top) - (distance-from-orig width) - (distance-from-orig height)))))) - (rectangle-to-orig - (screamer-user:largest-rectangle - (rectangle-from-orig bounding-box) - (lambda (x y) - (let ((m2 (get-m2 (x-coordinate-to-orig x) (y-coordinate-to-orig y)))) - (and m2 (eql contract (m2-contract m2)))))))))))) + (bounding-box (contract-bounding-box contract)) + (bounding-width (third bounding-box)) + (bounding-height (fourth bounding-box))) + (if (= area (* bounding-width bounding-height)) + ;; no need to run screamer here, since we already know the + ;; answer + bounding-box + (geometry:with-rectangle bounding-box + (declare (ignore width height)) + (labels ( ;; to-orig + (distance-to-orig (d) + (when-scaling-needed d + (round (* d scaler)))) + (x-coordinate-to-orig (x) + (when-scaling-needed x + (+ left (round (* (- x left) scaler))))) + (y-coordinate-to-orig (y) + (when-scaling-needed y + (+ top (round (* (- y top) scaler))))) + (rectangle-to-orig (r) + (when-scaling-needed r + (geometry:with-rectangle r + (list (x-coordinate-to-orig left) + (y-coordinate-to-orig top) + (distance-to-orig width) + (distance-to-orig height))))) + ;; from-orig + (distance-from-orig (d) + (when-scaling-needed d + (floor d scaler))) + (x-coordinate-from-orig (x) + (when-scaling-needed x + (+ left (floor (- x left) scaler)))) + (y-coordinate-from-orig (y) + (when-scaling-needed y + (+ top (floor (- y top) scaler)))) + (rectangle-from-orig (r) + (when-scaling-needed r + (geometry:with-rectangle r + (list (x-coordinate-from-orig left) + (y-coordinate-from-orig top) + (distance-from-orig width) + (distance-from-orig height)))))) + (rectangle-to-orig + (screamer-user:largest-rectangle + (rectangle-from-orig bounding-box) + (lambda (x y) + (let ((m2 (get-m2 (x-coordinate-to-orig x) (y-coordinate-to-orig y)))) + (and m2 (eql contract (m2-contract m2))))))))))))) (defun contract-neighbours (contract) "Return all contracts that have an adjacent m2 to one of CONTRACT's m2s. From bknr at bknr.net Fri Jul 18 13:29:12 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 15:29:12 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3503 Author: ksprotte URL: http://bknr.net/trac/changeset/3503 oops, stupid bugin start-contract-tree-image-update-daemon U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-18 12:28:05 UTC (rev 3502) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-18 13:29:12 UTC (rev 3503) @@ -296,6 +296,9 @@ (map-nodes #'contract-node-update-image-if-needed *contract-tree* :prune-test (lambda (node) (not (contract-node-update-image-needed-p node)))))) +(defun contract-tree-force-update-images () + (map-nodes #'contract-node-update-image *contract-tree*)) + ;;; image handler (defclass contract-tree-image-handler (page-handler) ()) @@ -328,8 +331,9 @@ (defun start-contract-tree-image-update-daemon () (unless (contract-tree-image-update-daemon-running-p) (setq *contract-tree-image-update-daemon-halt* nil) - (bt:make-thread #'contract-tree-image-update-daemon-loop - :name "contract-tree-image-update-daemon"))) + (setq *contract-tree-image-update-daemon* + (bt:make-thread #'contract-tree-image-update-daemon-loop + :name "contract-tree-image-update-daemon")))) (defun stop-contract-tree-image-update-daemon (&key wait) (when (contract-tree-image-update-daemon-running-p) From bknr at bknr.net Fri Jul 18 14:28:25 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 16:28:25 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/kml- Message-ID: Revision: 3504 Author: ksprotte URL: http://bknr.net/trac/changeset/3504 new style option for kml-network-links: :hide-children t U trunk/projects/bos/web/kml-handlers.lisp U trunk/projects/bos/web/kml-utils.lisp Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-18 13:29:12 UTC (rev 3503) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-18 14:28:25 UTC (rev 3504) @@ -83,11 +83,18 @@ (with-element "range" (text "1134.262777389377")) (with-element "tilt" (text "0")) (with-element "heading" (text "1.391362238653075"))) - (dolist (sat-layer (class-instances 'sat-layer)) - (kml-network-link (format nil "http://~a/sat-root-kml?name=~A" (website-host) (name sat-layer)) - :rect (geo-box-rectangle *m2-geo-box*) - :lod '(:min 0 :max -1) - :name (dictionary-entry (princ-to-string (name sat-layer)) lang))) + (with-element "Folder" + (attribute "name" "Sat-Images") + (attribute "open" "1") + (with-element "Style" + (with-element "ListStyle" + (with-element "listItemType" (text "radioFolder")))) + (dolist (sat-layer (class-instances 'sat-layer)) + (kml-network-link (format nil "http://~a/sat-root-kml?name=~A" (website-host) (name sat-layer)) + :rect (geo-box-rectangle *m2-geo-box*) + :lod '(:min 0 :max -1) + :name (dictionary-entry (princ-to-string (name sat-layer)) lang) + :hide-children t))) (let ((href (if (not contract) (format nil "http://~a/contract-tree-kml?lang=~A" (website-host) lang) (let* ((node (find-contract-node *contract-tree* contract)) @@ -98,13 +105,16 @@ (kml-network-link href :rect (geo-box-rectangle (geo-box *contract-tree*)) :lod (node-lod *contract-tree*) - :name (dictionary-entry "Squaremetre Area" lang))) + :name (dictionary-entry "Squaremetre Area" lang) + :hide-children t)) (kml-network-link (format nil "http://~a/poi-kml-all?lang=~A" (website-host) lang) :name (dictionary-entry "POIs" lang) :rect (make-rectangle :x 0 :y 0 :width +width+ :height +width+) - :lod '(:min 0 :max -1)) + :lod '(:min 0 :max -1) + :hide-children t) (kml-network-link (format nil "http://~a/country-stats?lang=~A" (website-host) lang) - :name (dictionary-entry "Country-Stats" lang))))))) + :name (dictionary-entry "Country-Stats" lang) + :hide-children t)))))) (defmethod handle-object ((handler kml-root-handler) (object sponsor)) (write-root-kml handler object)) Modified: trunk/projects/bos/web/kml-utils.lisp =================================================================== --- trunk/projects/bos/web/kml-utils.lisp 2008-07-18 13:29:12 UTC (rev 3503) +++ trunk/projects/bos/web/kml-utils.lisp 2008-07-18 14:28:25 UTC (rev 3504) @@ -267,11 +267,20 @@ ;; (puri:render-uri href out)))) ;; (kml-link string))) + +(defun kml-hide-children-style () + (with-element "Style" + (with-element "ListStyle" + (with-element "listItemType" (text "checkHideChildren")) + (with-element "bgColor" (text "00ffffff"))))) + (defun kml-network-link (href &key rect lod name http-query - fly-to-view) + fly-to-view hide-children) (with-element "NetworkLink" (when name (with-element "name" (text name))) (when rect (kml-region rect lod)) + (when hide-children + (kml-hide-children-style)) (when fly-to-view (with-element "flyToView" (text "1"))) (kml-link href))) From bknr at bknr.net Fri Jul 18 15:19:08 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 17:19:08 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3505 Author: ksprotte URL: http://bknr.net/trac/changeset/3505 removed kml-req-count that was used for debugging U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-18 14:28:25 UTC (rev 3504) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-18 15:19:08 UTC (rev 3505) @@ -5,9 +5,7 @@ ((name :allocation :class :initform 'contract-node) (timestamp :accessor timestamp :initform 0) ; timestamp initially "very old" (placemark-contracts :initform nil :accessor placemark-contracts) - (image :initform nil :accessor image) - (kml-req-count :initform 0 :accessor kml-req-count) - (image-req-count :initform 0 :accessor image-req-count))) + (image :initform nil :accessor image))) (defun contract-node-invalidate-timestamp (node) (let ((image (contract-node-find-corresponding-store-image node))) @@ -155,8 +153,7 @@ :root-element "kml") (with-query-params ((lang "en") (path) (rmcpath) (rmcid)) - (handle-if-node-modified - (incf (kml-req-count node)) + (handle-if-node-modified (setf (hunchentoot:header-out :last-modified) (hunchentoot:rfc-1123-date (timestamp node))) (let* ((lod (node-lod node)) From bknr at bknr.net Fri Jul 18 15:21:02 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 17:21:02 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/mochiweb/ Message-ID: Revision: 3506 Author: hans URL: http://bknr.net/trac/changeset/3506 import mochiweb A trunk/thirdparty/mochiweb/ A trunk/thirdparty/mochiweb/LICENSE A trunk/thirdparty/mochiweb/Makefile A trunk/thirdparty/mochiweb/README A trunk/thirdparty/mochiweb/deps/ A trunk/thirdparty/mochiweb/doc/ A trunk/thirdparty/mochiweb/ebin/ A trunk/thirdparty/mochiweb/include/ A trunk/thirdparty/mochiweb/priv/ A trunk/thirdparty/mochiweb/priv/skel/ A trunk/thirdparty/mochiweb/priv/skel/Makefile A trunk/thirdparty/mochiweb/priv/skel/deps/ A trunk/thirdparty/mochiweb/priv/skel/doc/ A trunk/thirdparty/mochiweb/priv/skel/ebin/ A trunk/thirdparty/mochiweb/priv/skel/include/ A trunk/thirdparty/mochiweb/priv/skel/priv/ A trunk/thirdparty/mochiweb/priv/skel/priv/www/ A trunk/thirdparty/mochiweb/priv/skel/priv/www/index.html A trunk/thirdparty/mochiweb/priv/skel/src/ A trunk/thirdparty/mochiweb/priv/skel/src/Makefile A trunk/thirdparty/mochiweb/priv/skel/src/skel.app A trunk/thirdparty/mochiweb/priv/skel/src/skel.erl A trunk/thirdparty/mochiweb/priv/skel/src/skel.hrl A trunk/thirdparty/mochiweb/priv/skel/src/skel_app.erl A trunk/thirdparty/mochiweb/priv/skel/src/skel_deps.erl A trunk/thirdparty/mochiweb/priv/skel/src/skel_sup.erl A trunk/thirdparty/mochiweb/priv/skel/src/skel_web.erl A trunk/thirdparty/mochiweb/priv/skel/start-dev.sh A trunk/thirdparty/mochiweb/priv/skel/start.sh A trunk/thirdparty/mochiweb/priv/skel/support/ A trunk/thirdparty/mochiweb/priv/skel/support/include.mk A trunk/thirdparty/mochiweb/scripts/ A trunk/thirdparty/mochiweb/scripts/new_mochiweb.erl A trunk/thirdparty/mochiweb/src/ A trunk/thirdparty/mochiweb/src/Makefile A trunk/thirdparty/mochiweb/src/mochifmt.erl A trunk/thirdparty/mochiweb/src/mochifmt_records.erl A trunk/thirdparty/mochiweb/src/mochifmt_std.erl A trunk/thirdparty/mochiweb/src/mochihex.erl A trunk/thirdparty/mochiweb/src/mochijson.erl A trunk/thirdparty/mochiweb/src/mochijson2.erl A trunk/thirdparty/mochiweb/src/mochinum.erl A trunk/thirdparty/mochiweb/src/mochiweb.app A trunk/thirdparty/mochiweb/src/mochiweb.erl A trunk/thirdparty/mochiweb/src/mochiweb_app.erl A trunk/thirdparty/mochiweb/src/mochiweb_charref.erl A trunk/thirdparty/mochiweb/src/mochiweb_cookies.erl A trunk/thirdparty/mochiweb/src/mochiweb_echo.erl A trunk/thirdparty/mochiweb/src/mochiweb_headers.erl A trunk/thirdparty/mochiweb/src/mochiweb_html.erl A trunk/thirdparty/mochiweb/src/mochiweb_http.erl A trunk/thirdparty/mochiweb/src/mochiweb_multipart.erl A trunk/thirdparty/mochiweb/src/mochiweb_request.erl A trunk/thirdparty/mochiweb/src/mochiweb_response.erl A trunk/thirdparty/mochiweb/src/mochiweb_skel.erl A trunk/thirdparty/mochiweb/src/mochiweb_socket_server.erl A trunk/thirdparty/mochiweb/src/mochiweb_sup.erl A trunk/thirdparty/mochiweb/src/mochiweb_util.erl A trunk/thirdparty/mochiweb/src/reloader.erl A trunk/thirdparty/mochiweb/support/ A trunk/thirdparty/mochiweb/support/include.mk Change set too large, please see URL above From bknr at bknr.net Fri Jul 18 16:08:27 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 18:08:27 +0200 Subject: [bknr-cvs] hans changed trunk/projects/pch/ Message-ID: Revision: 3507 Author: hans URL: http://bknr.net/trac/changeset/3507 Create new frontend project: Pontificia Cohors Helvetica A trunk/projects/pch/ A trunk/projects/pch/src/ A trunk/projects/pch/src/pch.erl Added: trunk/projects/pch/src/pch.erl =================================================================== --- trunk/projects/pch/src/pch.erl (rev 0) +++ trunk/projects/pch/src/pch.erl 2008-07-18 16:08:27 UTC (rev 3507) @@ -0,0 +1,45 @@ +%%% from +%%% http://www.rsaccon.com/2007/09/mochiweb-erlang-based-webserver-toolkit.html + +-module(pch). +-export([start/0, loop/2, stop/0]). +-define(DEFAULTS, [{name, ?MODULE}, + {port, 9952}]). + +start() -> + DocRoot = filename:dirname(filename:dirname(code:which(?MODULE))), + code:add_patha(filename:join([DocRoot, "mochiweb-c4", "ebin"])), + Loop = fun (Req) -> ?MODULE:loop(Req, DocRoot) end, + mochiweb_http:start([{loop, Loop} | ?DEFAULTS]). + +stop() -> + mochiweb_http:stop(?MODULE). + +loop(Req, DocRoot) -> + "/" ++ Path = Req:get(path), + case Req:get(method) of + M when M =:= 'GET'; M =:= 'HEAD' -> + case Path of + "timer" -> + Response = Req:ok({"text/plain", chunked}), + timer(Response); + "static" -> + Req:ok({"text/plain", "static response"}); + "nodes" -> + Req:ok({"text/plain", + io_lib:format("~p~n", [nodes()])}); + "dump" -> + Req:ok({"text/plain", + io_lib:format("~p~n", [Req:dump()])}); + _ -> + Req:serve_file(Path, DocRoot) + end; + _ -> + Req:respond({501, [], ""}) + end. + +timer(Req) -> + Req:write_chunk(io_lib:format("The time is: ~p~n", + [calendar:local_time()])), + timer:sleep(1000), + timer(Req). From bknr at bknr.net Fri Jul 18 16:11:06 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 18:11:06 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3508 Author: ksprotte URL: http://bknr.net/trac/changeset/3508 contract-tree nodes are no more transparent if there are on the last layer U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-18 16:08:27 UTC (rev 3507) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-18 16:11:06 UTC (rev 3508) @@ -241,7 +241,9 @@ (labels ((find-contract-color (contract) (destructuring-bind (r g b) (contract-color contract) - (cl-gd:find-color r g b :alpha 40)))) + (cl-gd:find-color r g b :alpha (if (node-has-children-p node) + 40 + 0))))) (let ((box (geo-box node)) (image-size *contract-tree-images-size*)) ;; (warn "will update image for ~a" node) From bknr at bknr.net Fri Jul 18 16:29:16 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 18:29:16 +0200 Subject: [bknr-cvs] hans changed trunk/ Message-ID: Revision: 3509 Author: hans URL: http://bknr.net/trac/changeset/3509 Already works a little. U trunk/projects/pch/src/pch.erl _U trunk/thirdparty/mochiweb/doc/ _U trunk/thirdparty/mochiweb/ebin/ Modified: trunk/projects/pch/src/pch.erl =================================================================== --- trunk/projects/pch/src/pch.erl 2008-07-18 16:11:06 UTC (rev 3508) +++ trunk/projects/pch/src/pch.erl 2008-07-18 16:29:16 UTC (rev 3509) @@ -2,20 +2,23 @@ %%% http://www.rsaccon.com/2007/09/mochiweb-erlang-based-webserver-toolkit.html -module(pch). --export([start/0, loop/2, stop/0]). +-export([start/0, loop/1, stop/0]). -define(DEFAULTS, [{name, ?MODULE}, - {port, 9952}]). + {port, 9888}]). start() -> - DocRoot = filename:dirname(filename:dirname(code:which(?MODULE))), - code:add_patha(filename:join([DocRoot, "mochiweb-c4", "ebin"])), - Loop = fun (Req) -> ?MODULE:loop(Req, DocRoot) end, + Loop = fun (Req) -> ?MODULE:loop(Req) end, mochiweb_http:start([{loop, Loop} | ?DEFAULTS]). stop() -> mochiweb_http:stop(?MODULE). -loop(Req, DocRoot) -> +backend_request(Req) -> + {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = + http:request("http://test.createrainforest.org" ++ Req:get(path)), + Req:respond({200, Headers, Body}). + +loop(Req) -> "/" ++ Path = Req:get(path), case Req:get(method) of M when M =:= 'GET'; M =:= 'HEAD' -> @@ -31,8 +34,10 @@ "dump" -> Req:ok({"text/plain", io_lib:format("~p~n", [Req:dump()])}); +%% _ -> +%% Req:serve_file(Path) _ -> - Req:serve_file(Path, DocRoot) + backend_request(Req) end; _ -> Req:respond({501, [], ""}) Property changes on: trunk/thirdparty/mochiweb/doc ___________________________________________________________________ Name: svn:ignore + *.html Property changes on: trunk/thirdparty/mochiweb/ebin ___________________________________________________________________ Name: svn:ignore + *.beam *.app From bknr at bknr.net Fri Jul 18 21:34:47 2008 From: bknr at bknr.net (BKNR Commits) Date: Fri, 18 Jul 2008 23:34:47 +0200 Subject: [bknr-cvs] hans changed trunk/projects/pch/src/pch.erl Message-ID: Revision: 3510 Author: hans URL: http://bknr.net/trac/changeset/3510 Simple in-memory cache implemented. U trunk/projects/pch/src/pch.erl Modified: trunk/projects/pch/src/pch.erl =================================================================== --- trunk/projects/pch/src/pch.erl 2008-07-18 16:29:16 UTC (rev 3509) +++ trunk/projects/pch/src/pch.erl 2008-07-18 21:34:47 UTC (rev 3510) @@ -2,49 +2,40 @@ %%% http://www.rsaccon.com/2007/09/mochiweb-erlang-based-webserver-toolkit.html -module(pch). --export([start/0, loop/1, stop/0]). +-export([start/0, loop/2, stop/0]). -define(DEFAULTS, [{name, ?MODULE}, {port, 9888}]). start() -> - Loop = fun (Req) -> ?MODULE:loop(Req) end, + Cache = ets:new(table, [set, public]), + Loop = fun (Req) -> ?MODULE:loop(Req, Cache) end, mochiweb_http:start([{loop, Loop} | ?DEFAULTS]). stop() -> mochiweb_http:stop(?MODULE). -backend_request(Req) -> +fetch_from_backend(Path) -> {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = - http:request("http://test.createrainforest.org" ++ Req:get(path)), - Req:respond({200, Headers, Body}). + http:request("http://test.createrainforest.org" ++ Path), + {ok, Headers, Body}. -loop(Req) -> - "/" ++ Path = Req:get(path), +backend_request(Req, Cache) -> + Path = Req:get(path), + case ets:lookup(Cache, Path) of + [{Path, Headers, Body}] -> + io:format("cache HIT for ~p~n", [Path]), + Req:respond({200, Headers, Body}); + _ -> + io:format("cache MISS for ~p~n", [Path]), + {ok, Headers, Body} = fetch_from_backend(Path), + ets:insert(Cache, {Path, Headers, Body}), + Req:respond({200, Headers, Body}) + end. + +loop(Req, Cache) -> case Req:get(method) of - M when M =:= 'GET'; M =:= 'HEAD' -> - case Path of - "timer" -> - Response = Req:ok({"text/plain", chunked}), - timer(Response); - "static" -> - Req:ok({"text/plain", "static response"}); - "nodes" -> - Req:ok({"text/plain", - io_lib:format("~p~n", [nodes()])}); - "dump" -> - Req:ok({"text/plain", - io_lib:format("~p~n", [Req:dump()])}); -%% _ -> -%% Req:serve_file(Path) - _ -> - backend_request(Req) - end; + M when M =:= 'GET' -> + backend_request(Req, Cache); _ -> Req:respond({501, [], ""}) end. - -timer(Req) -> - Req:write_chunk(io_lib:format("The time is: ~p~n", - [calendar:local_time()])), - timer:sleep(1000), - timer(Req). From bknr at bknr.net Sat Jul 19 06:05:57 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:05:57 +0200 Subject: [bknr-cvs] hans changed trunk/bknr/web/src/ Message-ID: Revision: 3511 Author: hans URL: http://bknr.net/trac/changeset/3511 Tweaks to make RSS channel controllable by query parameters. U trunk/bknr/web/src/packages.lisp U trunk/bknr/web/src/rss/rss.lisp Modified: trunk/bknr/web/src/packages.lisp =================================================================== --- trunk/bknr/web/src/packages.lisp 2008-07-18 21:34:47 UTC (rev 3510) +++ trunk/bknr/web/src/packages.lisp 2008-07-19 06:05:56 UTC (rev 3511) @@ -19,7 +19,7 @@ #:start-cron)) (defpackage :bknr.rss - (:use :cl :cl-user :cl-ppcre :bknr.utils :bknr.xml :puri :cxml-xmls :bknr.datastore :bknr.indices :cxml) + (:use :cl :cl-user :cl-ppcre :bknr.utils :bknr.xml :puri :hunchentoot :bknr.datastore :bknr.indices :cxml) (:export ;; channel #:rss-channel Modified: trunk/bknr/web/src/rss/rss.lisp =================================================================== --- trunk/bknr/web/src/rss/rss.lisp 2008-07-18 21:34:47 UTC (rev 3510) +++ trunk/bknr/web/src/rss/rss.lisp 2008-07-19 06:05:56 UTC (rev 3511) @@ -111,11 +111,14 @@ (defgeneric rss-channel-items (channel) (:documentation "Return all non-expired items in channel.") (:method ((channel rss-channel)) - (let ((expiry-time (- (get-universal-time) (rss-channel-max-item-age channel)))) - (remove-if (lambda (item) (or (object-destroyed-p item) - (< (rss-item-pub-date item) expiry-time))) - (slot-value channel 'items))))) - + (let ((days (when (boundp 'hunchentoot:*request*) (bknr.web:query-param "days")))) + (let ((expiry-time (- (get-universal-time) (if days + (* 60 60 25 (parse-integer days)) + (rss-channel-max-item-age channel))))) + (remove-if (lambda (item) (or (object-destroyed-p item) + (< (rss-item-pub-date item) expiry-time))) + (slot-value channel 'items)))))) + (deftransaction rss-channel-cleanup (channel) "Remove expired items from the items list. Can be used to reduce the memory footprint of very high volume channels." From bknr at bknr.net Sat Jul 19 06:08:15 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:08:15 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3512 Author: hans URL: http://bknr.net/trac/changeset/3512 Cut corners transparently instead of requiring a background color. U trunk/projects/quickhoney/src/imageproc.lisp U trunk/projects/quickhoney/website/static/javascript.js Modified: trunk/projects/quickhoney/src/imageproc.lisp =================================================================== --- trunk/projects/quickhoney/src/imageproc.lisp 2008-07-19 06:05:56 UTC (rev 3511) +++ trunk/projects/quickhoney/src/imageproc.lisp 2008-07-19 06:08:15 UTC (rev 3512) @@ -3,26 +3,55 @@ (defparameter *button-size* 208) (defparameter *big-button-size* 318) -(defun corner-image (color &key (image *default-image*) - (radius (/ (max (image-width image) (image-height image)) 40))) - (let* ((radius (floor radius)) - (diameter (+ 1 radius radius)) - (other-color (destructuring-bind (red green blue alpha) (color-components color :image image) - (declare (ignore alpha)) - (logxor #xffffff (+ red (ash green 8) (ash blue 16)))))) - (assert (and (>= (image-width image) diameter) - (>= (image-height image) diameter))) - (with-image (circle diameter diameter t) - (fill-image 0 0 :color color :image circle) - (draw-filled-circle radius radius radius :color other-color :image circle) - (do-rows (y circle) - (do-pixels-in-row (x) - (when (eql (raw-pixel) color) - (set-pixel (if (< x radius) x (+ (- (image-width image) diameter) x)) - (if (< y radius) y (+ (- (image-height image) diameter) y)) - :image image :color color))))))) +(defun corner-cutout-coords (image-width image-height radius) + "Return a list of coordinates that need to be made transparent or + colored in background color to get a rounded corner effect. + IMAGE-WIDTH and IMAGE-HEIGHT are the dimensions of the image, RADIUS + is the desired corner rounding radius. The list of coordinates that + is returned is ordered by row and column so that DO-ROWS and + DO-PIXELS-IN-ROW can be used to iterate over the image and pop + coordinate pairs off the front of the list at the same time." + (let ((radius (floor radius)) + (diameter (+ 1 radius radius)) + coords) + (assert (and (>= image-width diameter) + (>= image-height diameter))) + (with-image (circle diameter diameter) + (let ((white (allocate-color 255 255 255 :image circle)) + (black (allocate-color 0 0 0 :image circle))) + (fill-image 0 0 :color white :image circle) + (draw-filled-circle radius radius radius :color black :image circle) + (do-rows (y circle) + (do-pixels-in-row (x) + (when (eql (raw-pixel) white) + (push (list (if (< x radius) x (+ (- image-width diameter) x)) + (if (< y radius) y (+ (- image-height diameter) y))) + coords)))))) + (nreverse coords))) +(defun corner-image (&key (image *default-image*) + (radius (/ (max (image-width image) (image-height image)) 40))) + (with-default-image (image) + (setf (save-alpha-p) t) + (let ((transparent-color (if (true-color-p) #x7f000000 + (or (transparent-color) + (allocate-color 255 255 255 :alpha 127) + (error "can't allocate transparent color for button"))))) + (setf (transparent-color) transparent-color) + (let ((coords (corner-cutout-coords (image-width) (image-height) radius))) + (destructuring-bind (x-tx y-tx) (car coords) + (do-rows (y) + (do-pixels-in-row (x) + (when (and (eql x x-tx) + (eql y y-tx)) + (setf (raw-pixel) transparent-color) + (when (cdr coords) + (setf coords (cdr coords) + x-tx (caar coords) + y-tx (cadar coords))))))))))) + (define-imageproc-handler cutout-button (input-image &optional keyword (background-color "ffffff") (button-size "208") (radius "8")) + (declare (ignore background-color)) (let* ((button-size (parse-integer button-size)) (button-image (create-image button-size button-size t)) (square-size (min (image-width input-image) (image-height input-image))) @@ -44,7 +73,7 @@ 0 0 0 0 (image-width type-image) (image-height type-image))))) - (corner-image (parse-color background-color :image button-image) :image button-image :radius (parse-integer radius)) + (corner-image :image button-image :radius (parse-integer radius)) button-image)) (define-imageproc-handler center-thumbnail (input-image width height) Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 06:05:56 UTC (rev 3511) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 06:08:15 UTC (rev 3512) @@ -207,6 +207,47 @@ $("edit_client_select").innerHTML = make_clients_selector('edit_client'); } +/* news */ + +function loadXMLDoc(fname) +{ + var xmlDoc; + + // code for IE + if (window.ActiveXObject) { + xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + } + else if (document.implementation + && document.implementation.createDocument) { + // code for Mozilla, Firefox, Opera, etc. + xmlDoc = document.implementation.createDocument("","",null); + } else { + alert('Your browser cannot handle this script'); + } + xmlDoc.async = false; + xmlDoc.load(fname); + + return xmlDoc; +} + +function xstlTransformDocumentToElement(document, stylesheet, elementId) +{ + xml = loadXMLDoc(document); + xsl = loadXMLDoc(stylesheet); + if (window.ActiveXObject) { + // code for IE + ex = xml.transformNode(xsl); + document.getElementById(elementId).innerHTML = ex; + } else if (document.implementation + && document.implementation.createDocument) { + // code for Mozilla, Firefox, Opera, etc. + xsltProcessor = new XSLTProcessor(); + xsltProcessor.importStylesheet(xsl); + resultDocument = xsltProcessor.transformToFragment(xml,document); + document.getElementById(elementId).appendChild(resultDocument); + } +} + /* image database */ var current_directory; From bknr at bknr.net Sat Jul 19 06:09:45 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:09:45 +0200 Subject: [bknr-cvs] hans changed trunk/clixdoc/clixdoc.xsl Message-ID: Revision: 3513 Author: hans URL: http://bknr.net/trac/changeset/3513 Insert title and short-description into HTML. U trunk/clixdoc/clixdoc.xsl Modified: trunk/clixdoc/clixdoc.xsl =================================================================== --- trunk/clixdoc/clixdoc.xsl 2008-07-19 06:08:15 UTC (rev 3512) +++ trunk/clixdoc/clixdoc.xsl 2008-07-19 06:09:45 UTC (rev 3513) @@ -42,6 +42,9 @@ + + +

From bknr at bknr.net Sat Jul 19 06:10:25 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:10:25 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bknr-website/website/templates/documentation.xml Message-ID: Revision: 3514 Author: hans URL: http://bknr.net/trac/changeset/3514 Minor text update. U trunk/projects/bknr-website/website/templates/documentation.xml Modified: trunk/projects/bknr-website/website/templates/documentation.xml =================================================================== --- trunk/projects/bknr-website/website/templates/documentation.xml 2008-07-19 06:09:45 UTC (rev 3513) +++ trunk/projects/bknr-website/website/templates/documentation.xml 2008-07-19 06:10:25 UTC (rev 3514) @@ -16,7 +16,8 @@ tutorial and the datastore tutorial contain easy to follow (and execute) material that - describes what the BKNR datastore is about. + describes what the BKNR datastore is about. The datastore manual + is partly generated from these files.

  • From bknr at bknr.net Sat Jul 19 06:10:54 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:10:54 +0200 Subject: [bknr-cvs] hans changed trunk/projects/album-maker/src/make-album.lisp Message-ID: Revision: 3515 Author: hans URL: http://bknr.net/trac/changeset/3515 Save intermediate state. U trunk/projects/album-maker/src/make-album.lisp Modified: trunk/projects/album-maker/src/make-album.lisp =================================================================== --- trunk/projects/album-maker/src/make-album.lisp 2008-07-19 06:10:25 UTC (rev 3514) +++ trunk/projects/album-maker/src/make-album.lisp 2008-07-19 06:10:53 UTC (rev 3515) @@ -2,73 +2,87 @@ (defclass picasa-image (store-image) ((description :initarg :description - :initform "")) + :reader description + :initform "") + (source-url :initarg :source-url + :reader source-url + :initform nil)) (:metaclass persistent-class)) +(defclass picasa-album (store-object) + ((name :initarg :name + :reader name) + (source-url :initarg :source-url + :reader source-url) + (description :initarg :description + :accessor description + :initform "") + (cover-image :initarg :cover-image + :accessor cover-image + :initform nil) + (images :initarg :images + :accessor images + :initform nil)) + (:metaclass persistent-class)) + (defun entity-resolver (pubid sysid) (declare (ignore pubid sysid)) (flexi-streams:make-in-memory-input-stream nil)) -(defun analyze-picasa-album-feed (source) +(defmacro with-feed-items (source &body body) + `(with-xspam-source ,source + (element "rss" + (element "channel" + (one-or-more + (element "item" + , at body)))))) + +(defun synchronize-picasa-album (source) "Return the list of pictures referenced in the Picasa RSS SOURCE, which can be either a URL or another object accepted by WITH-XSPAM-SOURCE. Returns a list of plists with picture descriptions." - (let (items item) - (with-xspam-source - (if (stringp source) - (drakma:http-request source) - source) - (element "rss" - (element "channel" - (one-or-more - (element "item" - (setf item nil) - (optional - (element "group" - (element "description" - (optional - (text (push :description item) - (push _ item)))) - (one-or-more - (element "content" - (macrolet - ((collect-attribute (attribute-name &optional (parser #'identity)) - "Collect an attribute to the current ITEM + (with-feed-items (if (stringp source) + (drakma:http-request source) + source) + (let (item) + (element "group" ; really media:group + (element "description" + (optional + (text (push :description item) + (push _ item)))) + (one-or-more + (element "content" + (macrolet + ((collect-attribute (attribute-name &optional (parser #'identity)) + "Collect an attribute to the current ITEM plist. Need MACROLET as ATTRIBUTE accepts only literal attribute names." - `(progn - (push ,(intern (string-upcase attribute-name) :keyword) item) - (push (funcall ,parser (attribute ,attribute-name _)) item)))) - (collect-attribute "url") - (collect-attribute "type") - (collect-attribute "width" #'parse-integer) - (collect-attribute "height" #'parse-integer)))))) - (push (nreverse item) items)))))) - (nreverse items))) + `(progn + (push ,(intern (string-upcase attribute-name) :keyword) item) + (push (funcall ,parser (attribute ,attribute-name _)) item)))) + (collect-attribute "url") + (collect-attribute "type") + (collect-attribute "width" #'parse-integer) + (collect-attribute "height" #'parse-integer))))) + (print item)))) (defun picasa-albums (user-name) "Given a Google user name, look up which Albums this user has. Returns a list plists with album information." - (let (items item) - (with-xspam-source (drakma:http-request - (format nil "http://picasaweb.google.com/data/feed/base/user/~A?kind=album&alt=rss&access=public" - user-name)) - (element "rss" - (element "channel" - (one-or-more - (element "item" - (setf item nil) - (element "guid" - (text (push :link item) - (push (cl-ppcre:regex-replace "/entry/" _ "/feed/") item))) - (element "group" - (element "title" - (optional - (text (push :title item) - (push _ item))))) - (push (nreverse item) items)))))) - (nreverse items))) + (with-feed-items (drakma:http-request + (format nil "http://picasaweb.google.com/data/feed/base/user/~A?kind=album&alt=rss&access=public" + user-name)) + (let (item) + (element "guid" + (text (push :link item) + (push (cl-ppcre:regex-replace "/entry/" _ "/feed/") item))) + (element "group" + (element "title" + (optional + (text (push :title item) + (push _ item))))) + (print item)))) (defun import-images-from-picasa (analyze-results) (dolist (image-args analyze-results) From bknr at bknr.net Sat Jul 19 06:17:47 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:17:47 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/ Message-ID: Revision: 3516 Author: hans URL: http://bknr.net/trac/changeset/3516 add layouts A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/ A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Floating Remote_02_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_CommentWindow_01_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Contact_02_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Home_01_0_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_News_02_2_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_06_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_Buttons_1_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_04_1_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_chart_1_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_1_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_2_flat.psd A trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_buyTeeWindow_01_flat.psd Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Floating Remote_02_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Floating Remote_02_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_CommentWindow_01_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_CommentWindow_01_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Contact_02_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Contact_02_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Home_01_0_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Home_01_0_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_News_02_2_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_News_02_2_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_06_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_06_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_Buttons_1_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Pixel_Buttons_1_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_04_1_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_04_1_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_chart_1_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_chart_1_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_1_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_1_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_2_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_Shop_page2_2_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_buyTeeWindow_01_flat.psd =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/Layout Flats V1.3/QH_Layout_buyTeeWindow_01_flat.psd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream From bknr at bknr.net Sat Jul 19 06:23:13 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 08:23:13 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/upgrade-stuff/news-sep.gif Message-ID: Revision: 3517 Author: hans URL: http://bknr.net/trac/changeset/3517 Add separator for news items. A trunk/projects/quickhoney/upgrade-stuff/news-sep.gif Added: trunk/projects/quickhoney/upgrade-stuff/news-sep.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/news-sep.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream From bknr at bknr.net Sat Jul 19 07:47:57 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 09:47:57 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3518 Author: hans URL: http://bknr.net/trac/changeset/3518 Pick new colors for pages, add buttons for buy widgets. A trunk/projects/quickhoney/upgrade-stuff/buy-file.gif A trunk/projects/quickhoney/upgrade-stuff/buy-print.gif A trunk/projects/quickhoney/upgrade-stuff/buy-t-shirt.gif U trunk/projects/quickhoney/upgrade-stuff/hey.gif U trunk/projects/quickhoney/website/static/javascript.js Added: trunk/projects/quickhoney/upgrade-stuff/buy-file.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/buy-file.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/buy-print.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/buy-print.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/buy-t-shirt.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/buy-t-shirt.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/upgrade-stuff/hey.gif =================================================================== (Binary files differ) Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 06:23:13 UTC (rev 3517) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 07:47:57 UTC (rev 3518) @@ -383,7 +383,7 @@ pages['home'] = new Page(['home_page'], - ['000000', 'ffffff', '9900ff'], + ['000000', 'ffffff', '953cfd'], function() { footer_down(); @@ -415,21 +415,21 @@ pages['news'] = new Page(['news_page'], - ['000000', 'ffffff', '00ccff'], + ['000000', 'ffffff', '30be01'], function() { footer_hide(); }); pages['shop'] = new Page(['clients_page'], - ['000000', 'ffffff', 'ff0000'], + ['000000', 'ffffff', '0054ff'], function() { footer_hide(); }); pages['contact'] = new Page(['contact_page'], - ['000000', 'ffffff', '9900ff'], + ['000000', 'ffffff', 'ffa200'], function() { footer_hide(); From bknr at bknr.net Sat Jul 19 10:00:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 12:00:01 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/distel/ Message-ID: Revision: 3519 Author: hans URL: http://bknr.net/trac/changeset/3519 Import distel from upstream using piston. A trunk/thirdparty/distel/ A trunk/thirdparty/distel/AUTHORS A trunk/thirdparty/distel/ChangeLog A trunk/thirdparty/distel/INSTALL A trunk/thirdparty/distel/INSTALL.WIN32 A trunk/thirdparty/distel/Makefile A trunk/thirdparty/distel/Makefile.in A trunk/thirdparty/distel/NEWS A trunk/thirdparty/distel/README A trunk/thirdparty/distel/README.ie-session A trunk/thirdparty/distel/config/ A trunk/thirdparty/distel/doc/ A trunk/thirdparty/distel/doc/Makefile A trunk/thirdparty/distel/doc/dbg.eps A trunk/thirdparty/distel/doc/distel/ A trunk/thirdparty/distel/doc/distel/Applications.html A trunk/thirdparty/distel/doc/distel/Attach-Buffer.html A trunk/thirdparty/distel/doc/distel/Basic-Commands.html A trunk/thirdparty/distel/doc/distel/Completion.html A trunk/thirdparty/distel/doc/distel/Conventions.html A trunk/thirdparty/distel/doc/distel/Debugger.html A trunk/thirdparty/distel/doc/distel/Documentation.html A trunk/thirdparty/distel/doc/distel/Evaluation.html A trunk/thirdparty/distel/doc/distel/Interactive-Sessions.html A trunk/thirdparty/distel/doc/distel/Introduction.html A trunk/thirdparty/distel/doc/distel/Monitor-Buffer.html A trunk/thirdparty/distel/doc/distel/Principles.html A trunk/thirdparty/distel/doc/distel/Process-Manager.html A trunk/thirdparty/distel/doc/distel/Profiler.html A trunk/thirdparty/distel/doc/distel/Programming-Aids.html A trunk/thirdparty/distel/doc/distel/Refactoring.html A trunk/thirdparty/distel/doc/distel/Saving-and-Restoring.html A trunk/thirdparty/distel/doc/distel/Synchronising-Breakpoints.html A trunk/thirdparty/distel/doc/distel/Tags.html A trunk/thirdparty/distel/doc/distel/index.html A trunk/thirdparty/distel/doc/distel.texi A trunk/thirdparty/distel/doc/gorrie02distel.pdf A trunk/thirdparty/distel/doc/short-desc A trunk/thirdparty/distel/ebin/ A trunk/thirdparty/distel/ebin/.cvsignore A trunk/thirdparty/distel/elisp/ A trunk/thirdparty/distel/elisp/derl.el A trunk/thirdparty/distel/elisp/distel-ie.el A trunk/thirdparty/distel/elisp/distel.el A trunk/thirdparty/distel/elisp/edb.el A trunk/thirdparty/distel/elisp/epmd.el A trunk/thirdparty/distel/elisp/erl-example.el A trunk/thirdparty/distel/elisp/erl-service.el A trunk/thirdparty/distel/elisp/erl-test.el A trunk/thirdparty/distel/elisp/erl.el A trunk/thirdparty/distel/elisp/erlext.el A trunk/thirdparty/distel/elisp/net-fsm.el A trunk/thirdparty/distel/elisp/patmatch.el A trunk/thirdparty/distel/src/ A trunk/thirdparty/distel/src/distel.erl A trunk/thirdparty/distel/src/distel_ie.erl A trunk/thirdparty/distel/src/fdoc.erl A trunk/thirdparty/distel/src/otp_doc.erl Change set too large, please see URL above From bknr at bknr.net Sat Jul 19 11:42:25 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 13:42:25 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/yui/ Message-ID: Revision: 3520 Author: hans URL: http://bknr.net/trac/changeset/3520 update yui to 2.5.2 U trunk/thirdparty/yui/README A trunk/thirdparty/yui/as-docs/ A trunk/thirdparty/yui/as-docs/Charts.html A trunk/thirdparty/yui/as-docs/Uploader.html A trunk/thirdparty/yui/as-docs/all-classes.html A trunk/thirdparty/yui/as-docs/all-index-A.html A trunk/thirdparty/yui/as-docs/all-index-B.html A trunk/thirdparty/yui/as-docs/all-index-C.html A trunk/thirdparty/yui/as-docs/all-index-D.html A trunk/thirdparty/yui/as-docs/all-index-E.html A trunk/thirdparty/yui/as-docs/all-index-F.html A trunk/thirdparty/yui/as-docs/all-index-G.html A trunk/thirdparty/yui/as-docs/all-index-H.html A trunk/thirdparty/yui/as-docs/all-index-I.html A trunk/thirdparty/yui/as-docs/all-index-J.html A trunk/thirdparty/yui/as-docs/all-index-K.html A trunk/thirdparty/yui/as-docs/all-index-L.html A trunk/thirdparty/yui/as-docs/all-index-M.html A trunk/thirdparty/yui/as-docs/all-index-N.html A trunk/thirdparty/yui/as-docs/all-index-O.html A trunk/thirdparty/yui/as-docs/all-index-P.html A trunk/thirdparty/yui/as-docs/all-index-Q.html A trunk/thirdparty/yui/as-docs/all-index-R.html A trunk/thirdparty/yui/as-docs/all-index-S.html A trunk/thirdparty/yui/as-docs/all-index-T.html A trunk/thirdparty/yui/as-docs/all-index-U.html A trunk/thirdparty/yui/as-docs/all-index-V.html A trunk/thirdparty/yui/as-docs/all-index-W.html A trunk/thirdparty/yui/as-docs/all-index-X.html A trunk/thirdparty/yui/as-docs/all-index-Y.html A trunk/thirdparty/yui/as-docs/all-index-Z.html A trunk/thirdparty/yui/as-docs/appendixes.html A trunk/thirdparty/yui/as-docs/asdoc.js A trunk/thirdparty/yui/as-docs/class-list.html A trunk/thirdparty/yui/as-docs/class-summary.html A trunk/thirdparty/yui/as-docs/com/ A trunk/thirdparty/yui/as-docs/com/adobe/ A trunk/thirdparty/yui/as-docs/com/adobe/serialization/ A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/ A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSON.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONDecoder.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONEncoder.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONParseError.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONToken.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONTokenType.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/JSONTokenizer.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/class-list.html A trunk/thirdparty/yui/as-docs/com/adobe/serialization/json/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/animation/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/animation/Animation.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/animation/AnimationEvent.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/animation/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/animation/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/Axis.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/AxisOrientation.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/BarChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/CartesianChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/CategoryAxis.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/Chart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/ColumnChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/DataTipRenderer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/IAxis.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/ICategoryChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/IDataTipRenderer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/IPlotArea.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/LineChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/NumericAxis.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/PieChart.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/ScaleType.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/TickPosition.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/TimeAxis.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/events/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/events/ChartEvent.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/events/LegendEvent.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/events/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/events/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/ILegend.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/Legend.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/LegendItem.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/LegendItemData.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/legend/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/BarSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/CartesianSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ColumnSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ICategorySeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ILegendItemSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ISeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/ISeriesItemRenderer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/LineSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/PieSeries.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/Series.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/SeriesItemRenderer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/series/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/CircleSkin.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/DiamondSkin.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/IProgrammaticSkin.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/RectangleSkin.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/TriangleSkin.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/charts/skins/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/utils/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/utils/UIComponentUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/utils/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/fl/utils/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/ILayoutContainer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/LayoutContainer.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/LayoutManager.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/events/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/events/LayoutEvent.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/events/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/events/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/BaseLayoutMode.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/BorderConstraints.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/BorderLayout.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/BoxLayout.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/FlowLayout.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/HorizontalAlignment.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/IAdvancedLayoutMode.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/ILayoutMode.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/LayoutModeUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/PercentageSizeUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/TileLayout.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/VerticalAlignment.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/modes/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/layout/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/ A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/DateUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/DisplayObjectUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/GraphicsUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/InstanceFactory.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/JavaScriptUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/NumberUtil.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/TimeUnit.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/astra/utils/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/ A trunk/thirdparty/yui/as-docs/com/yahoo/yui/LoggerCategory.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/YUIAdapter.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/YUILogger.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/ A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/AxisSerializer.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/BackgroundAndBorder.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/BackgroundImageMode.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/ChartSerializer.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/SeriesSerializer.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/TextFormatSerializer.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/charts/package-detail.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/class-list.html A trunk/thirdparty/yui/as-docs/com/yahoo/yui/package-detail.html A trunk/thirdparty/yui/as-docs/cookies.js A trunk/thirdparty/yui/as-docs/images/ A trunk/thirdparty/yui/as-docs/images/collapsed.gif A trunk/thirdparty/yui/as-docs/images/detailHeaderRule.jpg A trunk/thirdparty/yui/as-docs/images/detailSectionHeader.jpg A trunk/thirdparty/yui/as-docs/images/expanded.gif A trunk/thirdparty/yui/as-docs/images/inherit-arrow.gif A trunk/thirdparty/yui/as-docs/images/inheritedSummary.gif A trunk/thirdparty/yui/as-docs/images/logo.jpg A trunk/thirdparty/yui/as-docs/images/titleTableBottom.jpg A trunk/thirdparty/yui/as-docs/images/titleTableMiddle.jpg A trunk/thirdparty/yui/as-docs/images/titleTableTop.jpg A trunk/thirdparty/yui/as-docs/index-list.html A trunk/thirdparty/yui/as-docs/index.html A trunk/thirdparty/yui/as-docs/mxml-tags.html A trunk/thirdparty/yui/as-docs/package-detail.html A trunk/thirdparty/yui/as-docs/package-frame.html A trunk/thirdparty/yui/as-docs/package-list.html A trunk/thirdparty/yui/as-docs/package-summary.html A trunk/thirdparty/yui/as-docs/print.css A trunk/thirdparty/yui/as-docs/style.css A trunk/thirdparty/yui/as-docs/title-bar.html A trunk/thirdparty/yui/as-src/ A trunk/thirdparty/yui/as-src/charts/ A trunk/thirdparty/yui/as-src/charts/Charts.as A trunk/thirdparty/yui/as-src/charts/build.xml A trunk/thirdparty/yui/as-src/charts/charts.swc A trunk/thirdparty/yui/as-src/charts/com/ A trunk/thirdparty/yui/as-src/charts/com/adobe/ A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/ A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/ A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSON.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONDecoder.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONEncoder.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONParseError.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONToken.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONTokenType.as A trunk/thirdparty/yui/as-src/charts/com/adobe/serialization/json/JSONTokenizer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/animation/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/animation/Animation.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/animation/AnimationEvent.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/Axis.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/AxisOrientation.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/BarChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/CartesianChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/CategoryAxis.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/Chart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/ColumnChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/DataTipRenderer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/IAxis.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/ICategoryChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/IDataTipRenderer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/IPlotArea.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/LineChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/NumericAxis.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/PieChart.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/ScaleType.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/TickPosition.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/TimeAxis.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/events/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/events/ChartEvent.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/events/LegendEvent.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/legend/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/legend/ILegend.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/legend/Legend.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/legend/LegendItem.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/legend/LegendItemData.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/BarSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/CartesianSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ColumnSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ICategorySeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ILegendItemSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ISeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/ISeriesItemRenderer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/LineSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/PieSeries.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/Series.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/series/SeriesItemRenderer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/CircleSkin.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/DiamondSkin.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/IProgrammaticSkin.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/RectangleSkin.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/charts/skins/TriangleSkin.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/utils/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/fl/utils/UIComponentUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/ILayoutContainer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/LayoutContainer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/LayoutManager.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/events/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/events/LayoutEvent.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/BaseLayoutMode.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/BorderConstraints.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/BorderLayout.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/BoxLayout.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/FlowLayout.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/HorizontalAlignment.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/IAdvancedLayoutMode.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/ILayoutMode.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/LayoutModeUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/PercentageSizeUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/TileLayout.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/layout/modes/VerticalAlignment.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/DateUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/DisplayObjectUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/GraphicsUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/InstanceFactory.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/JavaScriptUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/NumberUtil.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/astra/utils/TimeUnit.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/LoggerCategory.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/YUIAdapter.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/YUILogger.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/ A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/AxisSerializer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/BackgroundAndBorder.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/BackgroundImageMode.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/ChartSerializer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/SeriesSerializer.as A trunk/thirdparty/yui/as-src/charts/com/yahoo/yui/charts/TextFormatSerializer.as A trunk/thirdparty/yui/as-src/uploader/ A trunk/thirdparty/yui/as-src/uploader/Uploader.as U trunk/thirdparty/yui/assets/YUIexamples.js U trunk/thirdparty/yui/assets/yui.css U trunk/thirdparty/yui/build/animation/README U trunk/thirdparty/yui/build/animation/animation-debug.js U trunk/thirdparty/yui/build/animation/animation-min.js U trunk/thirdparty/yui/build/animation/animation.js A trunk/thirdparty/yui/build/assets/skins/sam/asc.gif U trunk/thirdparty/yui/build/assets/skins/sam/autocomplete.css U trunk/thirdparty/yui/build/assets/skins/sam/button.css U trunk/thirdparty/yui/build/assets/skins/sam/calendar.css U trunk/thirdparty/yui/build/assets/skins/sam/colorpicker.css U trunk/thirdparty/yui/build/assets/skins/sam/container.css U trunk/thirdparty/yui/build/assets/skins/sam/datatable.css A trunk/thirdparty/yui/build/assets/skins/sam/desc.gif U trunk/thirdparty/yui/build/assets/skins/sam/dt-arrow-dn.png U trunk/thirdparty/yui/build/assets/skins/sam/dt-arrow-up.png U trunk/thirdparty/yui/build/assets/skins/sam/editor.css A trunk/thirdparty/yui/build/assets/skins/sam/header_background.png A trunk/thirdparty/yui/build/assets/skins/sam/imagecropper.css A trunk/thirdparty/yui/build/assets/skins/sam/layout.css A trunk/thirdparty/yui/build/assets/skins/sam/layout_sprite.png U trunk/thirdparty/yui/build/assets/skins/sam/logger.css U trunk/thirdparty/yui/build/assets/skins/sam/menu.css A trunk/thirdparty/yui/build/assets/skins/sam/menubaritem_submenuindicator.png A trunk/thirdparty/yui/build/assets/skins/sam/menubaritem_submenuindicator_disabled.png A trunk/thirdparty/yui/build/assets/skins/sam/menuitem_checkbox.png A trunk/thirdparty/yui/build/assets/skins/sam/menuitem_checkbox_disabled.png A trunk/thirdparty/yui/build/assets/skins/sam/menuitem_submenuindicator.png A trunk/thirdparty/yui/build/assets/skins/sam/menuitem_submenuindicator_disabled.png A trunk/thirdparty/yui/build/assets/skins/sam/profilerviewer.css A trunk/thirdparty/yui/build/assets/skins/sam/resize.css A trunk/thirdparty/yui/build/assets/skins/sam/simpleeditor.css U trunk/thirdparty/yui/build/assets/skins/sam/skin.css U trunk/thirdparty/yui/build/assets/skins/sam/tabview.css A trunk/thirdparty/yui/build/assets/skins/sam/transparent.gif U trunk/thirdparty/yui/build/assets/skins/sam/treeview.css A trunk/thirdparty/yui/build/assets/skins/sam/wait.gif U trunk/thirdparty/yui/build/assets/skins/sam/yuitest.css U trunk/thirdparty/yui/build/autocomplete/README U trunk/thirdparty/yui/build/autocomplete/assets/autocomplete-core.css U trunk/thirdparty/yui/build/autocomplete/assets/skins/sam/autocomplete-skin.css U trunk/thirdparty/yui/build/autocomplete/assets/skins/sam/autocomplete.css U trunk/thirdparty/yui/build/autocomplete/autocomplete-debug.js U trunk/thirdparty/yui/build/autocomplete/autocomplete-min.js U trunk/thirdparty/yui/build/autocomplete/autocomplete.js U trunk/thirdparty/yui/build/base/README U trunk/thirdparty/yui/build/base/base-min.css U trunk/thirdparty/yui/build/base/base.css U trunk/thirdparty/yui/build/button/README U trunk/thirdparty/yui/build/button/assets/button-core.css U trunk/thirdparty/yui/build/button/assets/skins/sam/button-skin.css U trunk/thirdparty/yui/build/button/assets/skins/sam/button.css D trunk/thirdparty/yui/build/button/button-beta-debug.js D trunk/thirdparty/yui/build/button/button-beta-min.js D trunk/thirdparty/yui/build/button/button-beta.js A trunk/thirdparty/yui/build/button/button-debug.js A trunk/thirdparty/yui/build/button/button-min.js A trunk/thirdparty/yui/build/button/button.js U trunk/thirdparty/yui/build/calendar/README U trunk/thirdparty/yui/build/calendar/assets/calendar-core.css U trunk/thirdparty/yui/build/calendar/assets/calendar.css A trunk/thirdparty/yui/build/calendar/assets/calgrad.png U trunk/thirdparty/yui/build/calendar/assets/skins/sam/calendar-skin.css U trunk/thirdparty/yui/build/calendar/assets/skins/sam/calendar.css U trunk/thirdparty/yui/build/calendar/calendar-debug.js U trunk/thirdparty/yui/build/calendar/calendar-min.js U trunk/thirdparty/yui/build/calendar/calendar.js A trunk/thirdparty/yui/build/charts/ A trunk/thirdparty/yui/build/charts/README A trunk/thirdparty/yui/build/charts/assets/ A trunk/thirdparty/yui/build/charts/assets/charts.swf A trunk/thirdparty/yui/build/charts/charts-experimental-debug.js A trunk/thirdparty/yui/build/charts/charts-experimental-min.js A trunk/thirdparty/yui/build/charts/charts-experimental.js U trunk/thirdparty/yui/build/colorpicker/README U trunk/thirdparty/yui/build/colorpicker/assets/colorpicker_core.css U trunk/thirdparty/yui/build/colorpicker/assets/skins/sam/colorpicker-skin.css U trunk/thirdparty/yui/build/colorpicker/assets/skins/sam/colorpicker.css D trunk/thirdparty/yui/build/colorpicker/colorpicker-beta-debug.js D trunk/thirdparty/yui/build/colorpicker/colorpicker-beta-min.js D trunk/thirdparty/yui/build/colorpicker/colorpicker-beta.js A trunk/thirdparty/yui/build/colorpicker/colorpicker-debug.js A trunk/thirdparty/yui/build/colorpicker/colorpicker-min.js A trunk/thirdparty/yui/build/colorpicker/colorpicker.js U trunk/thirdparty/yui/build/connection/README U trunk/thirdparty/yui/build/connection/connection-debug.js U trunk/thirdparty/yui/build/connection/connection-min.js U trunk/thirdparty/yui/build/connection/connection.js U trunk/thirdparty/yui/build/container/README U trunk/thirdparty/yui/build/container/assets/container-core.css U trunk/thirdparty/yui/build/container/assets/container.css U trunk/thirdparty/yui/build/container/assets/skins/sam/container-skin.css U trunk/thirdparty/yui/build/container/assets/skins/sam/container.css U trunk/thirdparty/yui/build/container/container-debug.js U trunk/thirdparty/yui/build/container/container-min.js U trunk/thirdparty/yui/build/container/container.js U trunk/thirdparty/yui/build/container/container_core-debug.js U trunk/thirdparty/yui/build/container/container_core-min.js U trunk/thirdparty/yui/build/container/container_core.js A trunk/thirdparty/yui/build/cookie/ A trunk/thirdparty/yui/build/cookie/README A trunk/thirdparty/yui/build/cookie/cookie-beta-debug.js A trunk/thirdparty/yui/build/cookie/cookie-beta-min.js A trunk/thirdparty/yui/build/cookie/cookie-beta.js U trunk/thirdparty/yui/build/datasource/README U trunk/thirdparty/yui/build/datasource/datasource-beta-debug.js U trunk/thirdparty/yui/build/datasource/datasource-beta-min.js U trunk/thirdparty/yui/build/datasource/datasource-beta.js U trunk/thirdparty/yui/build/datatable/README U trunk/thirdparty/yui/build/datatable/assets/datatable-core.css U trunk/thirdparty/yui/build/datatable/assets/datatable.css U trunk/thirdparty/yui/build/datatable/assets/skins/sam/datatable-skin.css U trunk/thirdparty/yui/build/datatable/assets/skins/sam/datatable.css U trunk/thirdparty/yui/build/datatable/assets/skins/sam/dt-arrow-dn.png U trunk/thirdparty/yui/build/datatable/assets/skins/sam/dt-arrow-up.png A trunk/thirdparty/yui/build/datatable/assets/skins/sam/transparent.gif U trunk/thirdparty/yui/build/datatable/datatable-beta-debug.js U trunk/thirdparty/yui/build/datatable/datatable-beta-min.js U trunk/thirdparty/yui/build/datatable/datatable-beta.js U trunk/thirdparty/yui/build/dom/README U trunk/thirdparty/yui/build/dom/dom-debug.js U trunk/thirdparty/yui/build/dom/dom-min.js U trunk/thirdparty/yui/build/dom/dom.js U trunk/thirdparty/yui/build/dragdrop/README U trunk/thirdparty/yui/build/dragdrop/dragdrop-debug.js U trunk/thirdparty/yui/build/dragdrop/dragdrop-min.js U trunk/thirdparty/yui/build/dragdrop/dragdrop.js U trunk/thirdparty/yui/build/editor/README U trunk/thirdparty/yui/build/editor/assets/editor-core.css A trunk/thirdparty/yui/build/editor/assets/simpleeditor-core.css U trunk/thirdparty/yui/build/editor/assets/skins/sam/editor-skin.css U trunk/thirdparty/yui/build/editor/assets/skins/sam/editor.css A trunk/thirdparty/yui/build/editor/assets/skins/sam/simpleeditor-skin.css A trunk/thirdparty/yui/build/editor/assets/skins/sam/simpleeditor.css U trunk/thirdparty/yui/build/editor/editor-beta-debug.js U trunk/thirdparty/yui/build/editor/editor-beta-min.js U trunk/thirdparty/yui/build/editor/editor-beta.js A trunk/thirdparty/yui/build/editor/simpleeditor-beta-debug.js A trunk/thirdparty/yui/build/editor/simpleeditor-beta-min.js A trunk/thirdparty/yui/build/editor/simpleeditor-beta.js U trunk/thirdparty/yui/build/element/README U trunk/thirdparty/yui/build/element/element-beta-debug.js U trunk/thirdparty/yui/build/element/element-beta-min.js U trunk/thirdparty/yui/build/element/element-beta.js U trunk/thirdparty/yui/build/event/README U trunk/thirdparty/yui/build/event/event-debug.js U trunk/thirdparty/yui/build/event/event-min.js U trunk/thirdparty/yui/build/event/event.js U trunk/thirdparty/yui/build/fonts/README U trunk/thirdparty/yui/build/fonts/fonts-min.css U trunk/thirdparty/yui/build/fonts/fonts.css A trunk/thirdparty/yui/build/get/ A trunk/thirdparty/yui/build/get/README A trunk/thirdparty/yui/build/get/get-debug.js A trunk/thirdparty/yui/build/get/get-min.js A trunk/thirdparty/yui/build/get/get.js U trunk/thirdparty/yui/build/grids/README U trunk/thirdparty/yui/build/grids/grids-min.css U trunk/thirdparty/yui/build/grids/grids.css U trunk/thirdparty/yui/build/history/README D trunk/thirdparty/yui/build/history/history-beta-debug.js D trunk/thirdparty/yui/build/history/history-beta-min.js D trunk/thirdparty/yui/build/history/history-beta.js A trunk/thirdparty/yui/build/history/history-debug.js A trunk/thirdparty/yui/build/history/history-min.js A trunk/thirdparty/yui/build/history/history.js A trunk/thirdparty/yui/build/imagecropper/ A trunk/thirdparty/yui/build/imagecropper/README A trunk/thirdparty/yui/build/imagecropper/assets/ A trunk/thirdparty/yui/build/imagecropper/assets/imagecropper-core.css A trunk/thirdparty/yui/build/imagecropper/assets/skins/ A trunk/thirdparty/yui/build/imagecropper/assets/skins/sam/ A trunk/thirdparty/yui/build/imagecropper/assets/skins/sam/imagecropper-skin.css A trunk/thirdparty/yui/build/imagecropper/assets/skins/sam/imagecropper.css A trunk/thirdparty/yui/build/imagecropper/imagecropper-beta-debug.js A trunk/thirdparty/yui/build/imagecropper/imagecropper-beta-min.js A trunk/thirdparty/yui/build/imagecropper/imagecropper-beta.js U trunk/thirdparty/yui/build/imageloader/README A trunk/thirdparty/yui/build/imageloader/imageloader-debug.js D trunk/thirdparty/yui/build/imageloader/imageloader-experimental-debug.js D trunk/thirdparty/yui/build/imageloader/imageloader-experimental-min.js D trunk/thirdparty/yui/build/imageloader/imageloader-experimental.js A trunk/thirdparty/yui/build/imageloader/imageloader-min.js A trunk/thirdparty/yui/build/imageloader/imageloader.js A trunk/thirdparty/yui/build/json/ A trunk/thirdparty/yui/build/json/README A trunk/thirdparty/yui/build/json/json-debug.js A trunk/thirdparty/yui/build/json/json-min.js A trunk/thirdparty/yui/build/json/json.js A trunk/thirdparty/yui/build/layout/ A trunk/thirdparty/yui/build/layout/README A trunk/thirdparty/yui/build/layout/assets/ A trunk/thirdparty/yui/build/layout/assets/layout-core.css A trunk/thirdparty/yui/build/layout/assets/skins/ A trunk/thirdparty/yui/build/layout/assets/skins/sam/ A trunk/thirdparty/yui/build/layout/assets/skins/sam/layout-skin.css A trunk/thirdparty/yui/build/layout/assets/skins/sam/layout.css A trunk/thirdparty/yui/build/layout/assets/skins/sam/layout_sprite.png A trunk/thirdparty/yui/build/layout/layout-beta-debug.js A trunk/thirdparty/yui/build/layout/layout-beta-min.js A trunk/thirdparty/yui/build/layout/layout-beta.js U trunk/thirdparty/yui/build/logger/README U trunk/thirdparty/yui/build/logger/assets/logger-core.css U trunk/thirdparty/yui/build/logger/assets/logger.css U trunk/thirdparty/yui/build/logger/assets/skins/sam/logger-skin.css U trunk/thirdparty/yui/build/logger/assets/skins/sam/logger.css U trunk/thirdparty/yui/build/logger/logger-debug.js U trunk/thirdparty/yui/build/logger/logger-min.js U trunk/thirdparty/yui/build/logger/logger.js U trunk/thirdparty/yui/build/menu/README D trunk/thirdparty/yui/build/menu/assets/map.gif U trunk/thirdparty/yui/build/menu/assets/menu-core.css U trunk/thirdparty/yui/build/menu/assets/menu.css A trunk/thirdparty/yui/build/menu/assets/menu_down_arrow.png A trunk/thirdparty/yui/build/menu/assets/menu_down_arrow_disabled.png A trunk/thirdparty/yui/build/menu/assets/menu_up_arrow.png A trunk/thirdparty/yui/build/menu/assets/menu_up_arrow_disabled.png A trunk/thirdparty/yui/build/menu/assets/menubaritem_submenuindicator.png A trunk/thirdparty/yui/build/menu/assets/menubaritem_submenuindicator_disabled.png A trunk/thirdparty/yui/build/menu/assets/menubaritem_submenuindicator_selected.png A trunk/thirdparty/yui/build/menu/assets/menuitem_checkbox.png A trunk/thirdparty/yui/build/menu/assets/menuitem_checkbox_disabled.png A trunk/thirdparty/yui/build/menu/assets/menuitem_checkbox_selected.png A trunk/thirdparty/yui/build/menu/assets/menuitem_submenuindicator.png A trunk/thirdparty/yui/build/menu/assets/menuitem_submenuindicator_disabled.png A trunk/thirdparty/yui/build/menu/assets/menuitem_submenuindicator_selected.png U trunk/thirdparty/yui/build/menu/assets/skins/sam/menu-skin.css U trunk/thirdparty/yui/build/menu/assets/skins/sam/menu.css A trunk/thirdparty/yui/build/menu/assets/skins/sam/menubaritem_submenuindicator.png A trunk/thirdparty/yui/build/menu/assets/skins/sam/menubaritem_submenuindicator_disabled.png A trunk/thirdparty/yui/build/menu/assets/skins/sam/menuitem_checkbox.png A trunk/thirdparty/yui/build/menu/assets/skins/sam/menuitem_checkbox_disabled.png A trunk/thirdparty/yui/build/menu/assets/skins/sam/menuitem_submenuindicator.png A trunk/thirdparty/yui/build/menu/assets/skins/sam/menuitem_submenuindicator_disabled.png U trunk/thirdparty/yui/build/menu/menu-debug.js U trunk/thirdparty/yui/build/menu/menu-min.js U trunk/thirdparty/yui/build/menu/menu.js A trunk/thirdparty/yui/build/profiler/ A trunk/thirdparty/yui/build/profiler/README A trunk/thirdparty/yui/build/profiler/profiler-beta-debug.js A trunk/thirdparty/yui/build/profiler/profiler-beta-min.js A trunk/thirdparty/yui/build/profiler/profiler-beta.js A trunk/thirdparty/yui/build/profilerviewer/ A trunk/thirdparty/yui/build/profilerviewer/README A trunk/thirdparty/yui/build/profilerviewer/assets/ A trunk/thirdparty/yui/build/profilerviewer/assets/skins/ A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/ A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/asc.gif A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/desc.gif A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/header_background.png A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/profilerviewer.css A trunk/thirdparty/yui/build/profilerviewer/assets/skins/sam/wait.gif A trunk/thirdparty/yui/build/profilerviewer/profilerviewer-beta-debug.js A trunk/thirdparty/yui/build/profilerviewer/profilerviewer-beta-min.js A trunk/thirdparty/yui/build/profilerviewer/profilerviewer-beta.js U trunk/thirdparty/yui/build/reset/README U trunk/thirdparty/yui/build/reset/reset-min.css U trunk/thirdparty/yui/build/reset/reset.css A trunk/thirdparty/yui/build/reset-fonts/ A trunk/thirdparty/yui/build/reset-fonts/README A trunk/thirdparty/yui/build/reset-fonts/reset-fonts.css U trunk/thirdparty/yui/build/reset-fonts-grids/reset-fonts-grids.css A trunk/thirdparty/yui/build/resize/ A trunk/thirdparty/yui/build/resize/README A trunk/thirdparty/yui/build/resize/assets/ A trunk/thirdparty/yui/build/resize/assets/resize-core.css A trunk/thirdparty/yui/build/resize/assets/skins/ A trunk/thirdparty/yui/build/resize/assets/skins/sam/ A trunk/thirdparty/yui/build/resize/assets/skins/sam/layout_sprite.png A trunk/thirdparty/yui/build/resize/assets/skins/sam/resize-skin.css A trunk/thirdparty/yui/build/resize/assets/skins/sam/resize.css A trunk/thirdparty/yui/build/resize/resize-beta-debug.js A trunk/thirdparty/yui/build/resize/resize-beta-min.js A trunk/thirdparty/yui/build/resize/resize-beta.js A trunk/thirdparty/yui/build/selector/ A trunk/thirdparty/yui/build/selector/README A trunk/thirdparty/yui/build/selector/selector-beta-debug.js A trunk/thirdparty/yui/build/selector/selector-beta-min.js A trunk/thirdparty/yui/build/selector/selector-beta.js U trunk/thirdparty/yui/build/slider/README U trunk/thirdparty/yui/build/slider/slider-debug.js U trunk/thirdparty/yui/build/slider/slider-min.js U trunk/thirdparty/yui/build/slider/slider.js U trunk/thirdparty/yui/build/tabview/README U trunk/thirdparty/yui/build/tabview/assets/border_tabs.css U trunk/thirdparty/yui/build/tabview/assets/skin-sam.css U trunk/thirdparty/yui/build/tabview/assets/skins/sam/tabview-skin.css U trunk/thirdparty/yui/build/tabview/assets/skins/sam/tabview.css U trunk/thirdparty/yui/build/tabview/assets/tabview-core.css U trunk/thirdparty/yui/build/tabview/assets/tabview.css U trunk/thirdparty/yui/build/tabview/tabview-debug.js U trunk/thirdparty/yui/build/tabview/tabview-min.js U trunk/thirdparty/yui/build/tabview/tabview.js U trunk/thirdparty/yui/build/treeview/README U trunk/thirdparty/yui/build/treeview/assets/skins/sam/treeview-skin.css U trunk/thirdparty/yui/build/treeview/assets/skins/sam/treeview.css U trunk/thirdparty/yui/build/treeview/assets/treeview-core.css U trunk/thirdparty/yui/build/treeview/assets/treeview-menu.css U trunk/thirdparty/yui/build/treeview/assets/treeview.css U trunk/thirdparty/yui/build/treeview/treeview-debug.js U trunk/thirdparty/yui/build/treeview/treeview-min.js U trunk/thirdparty/yui/build/treeview/treeview.js A trunk/thirdparty/yui/build/uploader/ A trunk/thirdparty/yui/build/uploader/README A trunk/thirdparty/yui/build/uploader/assets/ A trunk/thirdparty/yui/build/uploader/assets/uploader.swf A trunk/thirdparty/yui/build/uploader/uploader-experimental-debug.js A trunk/thirdparty/yui/build/uploader/uploader-experimental-min.js A trunk/thirdparty/yui/build/uploader/uploader-experimental.js U trunk/thirdparty/yui/build/utilities/README U trunk/thirdparty/yui/build/utilities/utilities.js U trunk/thirdparty/yui/build/yahoo/README U trunk/thirdparty/yui/build/yahoo/yahoo-debug.js U trunk/thirdparty/yui/build/yahoo/yahoo-min.js U trunk/thirdparty/yui/build/yahoo/yahoo.js U trunk/thirdparty/yui/build/yahoo-dom-event/yahoo-dom-event.js U trunk/thirdparty/yui/build/yuiloader/README U trunk/thirdparty/yui/build/yuiloader/yuiloader-beta-debug.js U trunk/thirdparty/yui/build/yuiloader/yuiloader-beta-min.js U trunk/thirdparty/yui/build/yuiloader/yuiloader-beta.js A trunk/thirdparty/yui/build/yuiloader-dom-event/ A trunk/thirdparty/yui/build/yuiloader-dom-event/README A trunk/thirdparty/yui/build/yuiloader-dom-event/yuiloader-dom-event.js U trunk/thirdparty/yui/build/yuitest/README U trunk/thirdparty/yui/build/yuitest/assets/skins/sam/yuitest-skin.css U trunk/thirdparty/yui/build/yuitest/assets/skins/sam/yuitest.css U trunk/thirdparty/yui/build/yuitest/assets/testlogger.css U trunk/thirdparty/yui/build/yuitest/assets/yuitest-core.css D trunk/thirdparty/yui/build/yuitest/yuitest-beta-debug.js D trunk/thirdparty/yui/build/yuitest/yuitest-beta-min.js D trunk/thirdparty/yui/build/yuitest/yuitest-beta.js A trunk/thirdparty/yui/build/yuitest/yuitest-debug.js A trunk/thirdparty/yui/build/yuitest/yuitest-min.js A trunk/thirdparty/yui/build/yuitest/yuitest.js A trunk/thirdparty/yui/build/yuitest/yuitest_core-debug.js A trunk/thirdparty/yui/build/yuitest/yuitest_core-min.js A trunk/thirdparty/yui/build/yuitest/yuitest_core.js U trunk/thirdparty/yui/docs/Anim.js.html U trunk/thirdparty/yui/docs/AnimMgr.js.html U trunk/thirdparty/yui/docs/ArrayAssert.js.html U trunk/thirdparty/yui/docs/Assert.js.html U trunk/thirdparty/yui/docs/Attribute.js.html U trunk/thirdparty/yui/docs/AttributeProvider.js.html U trunk/thirdparty/yui/docs/AutoComplete.js.html A trunk/thirdparty/yui/docs/Axis.js.html U trunk/thirdparty/yui/docs/Bezier.js.html U trunk/thirdparty/yui/docs/Calendar.js.html U trunk/thirdparty/yui/docs/CalendarGroup.js.html A trunk/thirdparty/yui/docs/CalendarNavigator.js.html A trunk/thirdparty/yui/docs/CartesianChart.js.html A trunk/thirdparty/yui/docs/CategoryAxis.js.html A trunk/thirdparty/yui/docs/Chain.js.html A trunk/thirdparty/yui/docs/Chart.js.html A trunk/thirdparty/yui/docs/ChartTypes.js.html U trunk/thirdparty/yui/docs/Color.js.html U trunk/thirdparty/yui/docs/ColorAnim.js.html U trunk/thirdparty/yui/docs/ColorPicker.js.html U trunk/thirdparty/yui/docs/ColumnSet.js.html U trunk/thirdparty/yui/docs/Config.js.html U trunk/thirdparty/yui/docs/ContainerEffect.js.html A trunk/thirdparty/yui/docs/Cookie.js.html U trunk/thirdparty/yui/docs/CustomEvent.js.html U trunk/thirdparty/yui/docs/DD.js.html U trunk/thirdparty/yui/docs/DDProxy.js.html U trunk/thirdparty/yui/docs/DDTarget.js.html U trunk/thirdparty/yui/docs/DataSource.js.html U trunk/thirdparty/yui/docs/DataTable.js.html U trunk/thirdparty/yui/docs/DateAssert.js.html U trunk/thirdparty/yui/docs/DateMath.js.html U trunk/thirdparty/yui/docs/Dialog.js.html U trunk/thirdparty/yui/docs/Dom.js.html U trunk/thirdparty/yui/docs/DragDrop.js.html U trunk/thirdparty/yui/docs/DragDropMgr.js.html A trunk/thirdparty/yui/docs/DualSlider.js.html U trunk/thirdparty/yui/docs/Easing.js.html U trunk/thirdparty/yui/docs/Element.js.html U trunk/thirdparty/yui/docs/Env.js.html U trunk/thirdparty/yui/docs/Event.js.html U trunk/thirdparty/yui/docs/EventProvider.js.html A trunk/thirdparty/yui/docs/FlashAdapter.js.html A trunk/thirdparty/yui/docs/Get.js.html U trunk/thirdparty/yui/docs/HTMLNode.js.html U trunk/thirdparty/yui/docs/ImageLoader.js.html A trunk/thirdparty/yui/docs/JSON.js.html U trunk/thirdparty/yui/docs/KeyListener.js.html U trunk/thirdparty/yui/docs/Lang.js.html U trunk/thirdparty/yui/docs/LogMsg.js.html U trunk/thirdparty/yui/docs/LogReader.js.html U trunk/thirdparty/yui/docs/LogWriter.js.html U trunk/thirdparty/yui/docs/Logger.js.html U trunk/thirdparty/yui/docs/MenuNode.js.html U trunk/thirdparty/yui/docs/Module.js.html U trunk/thirdparty/yui/docs/Motion.js.html U trunk/thirdparty/yui/docs/Node.js.html A trunk/thirdparty/yui/docs/NumericAxis.js.html U trunk/thirdparty/yui/docs/ObjectAssert.js.html U trunk/thirdparty/yui/docs/Overlay.js.html U trunk/thirdparty/yui/docs/OverlayManager.js.html A trunk/thirdparty/yui/docs/Paginator.js.html U trunk/thirdparty/yui/docs/Panel.js.html A trunk/thirdparty/yui/docs/PieChart.js.html A trunk/thirdparty/yui/docs/Profiler.js.html U trunk/thirdparty/yui/docs/RecordSet.js.html U trunk/thirdparty/yui/docs/Region.js.html U trunk/thirdparty/yui/docs/RootNode.js.html U trunk/thirdparty/yui/docs/Scroll.js.html A trunk/thirdparty/yui/docs/Selector.js.html A trunk/thirdparty/yui/docs/Series.js.html U trunk/thirdparty/yui/docs/SimpleDialog.js.html U trunk/thirdparty/yui/docs/Slider.js.html U trunk/thirdparty/yui/docs/SliderThumb.js.html U trunk/thirdparty/yui/docs/TVAnim.js.html U trunk/thirdparty/yui/docs/TVFadeIn.js.html U trunk/thirdparty/yui/docs/TVFadeOut.js.html U trunk/thirdparty/yui/docs/Tab.js.html U trunk/thirdparty/yui/docs/TabView.js.html U trunk/thirdparty/yui/docs/TestCase.js.html A trunk/thirdparty/yui/docs/TestFormat.js.html U trunk/thirdparty/yui/docs/TestLogger.js.html U trunk/thirdparty/yui/docs/TestManager.js.html A trunk/thirdparty/yui/docs/TestReporter.js.html U trunk/thirdparty/yui/docs/TestRunner.js.html U trunk/thirdparty/yui/docs/TestSuite.js.html U trunk/thirdparty/yui/docs/TextNode.js.html A trunk/thirdparty/yui/docs/TimeAxis.js.html U trunk/thirdparty/yui/docs/Tooltip.js.html U trunk/thirdparty/yui/docs/TreeView.js.html A trunk/thirdparty/yui/docs/Uploader.js.html U trunk/thirdparty/yui/docs/UserAction.js.html U trunk/thirdparty/yui/docs/YAHOO.env.html U trunk/thirdparty/yui/docs/YAHOO.env.ua.html U trunk/thirdparty/yui/docs/YAHOO.html U trunk/thirdparty/yui/docs/YAHOO.js.html A trunk/thirdparty/yui/docs/YAHOO.lang.JSON.html U trunk/thirdparty/yui/docs/YAHOO.lang.html A trunk/thirdparty/yui/docs/YAHOO.tool.Profiler.html A trunk/thirdparty/yui/docs/YAHOO.tool.TestCase.Wait.html U trunk/thirdparty/yui/docs/YAHOO.tool.TestCase.html U trunk/thirdparty/yui/docs/YAHOO.tool.TestLogger.html U trunk/thirdparty/yui/docs/YAHOO.tool.TestManager.html A trunk/thirdparty/yui/docs/YAHOO.tool.TestNode.html A trunk/thirdparty/yui/docs/YAHOO.tool.TestReporter.html U trunk/thirdparty/yui/docs/YAHOO.tool.TestRunner.html U trunk/thirdparty/yui/docs/YAHOO.tool.TestSuite.html U trunk/thirdparty/yui/docs/YAHOO.util.Anim.html U trunk/thirdparty/yui/docs/YAHOO.util.AnimMgr.html U trunk/thirdparty/yui/docs/YAHOO.util.ArrayAssert.html U trunk/thirdparty/yui/docs/YAHOO.util.Assert.html U trunk/thirdparty/yui/docs/YAHOO.util.AssertionError.html U trunk/thirdparty/yui/docs/YAHOO.util.Attribute.html U trunk/thirdparty/yui/docs/YAHOO.util.AttributeProvider.html U trunk/thirdparty/yui/docs/YAHOO.util.Bezier.html A trunk/thirdparty/yui/docs/YAHOO.util.Chain.html U trunk/thirdparty/yui/docs/YAHOO.util.Color.html U trunk/thirdparty/yui/docs/YAHOO.util.ColorAnim.html A trunk/thirdparty/yui/docs/YAHOO.util.ColumnDD.html U trunk/thirdparty/yui/docs/YAHOO.util.ColumnResizer.html U trunk/thirdparty/yui/docs/YAHOO.util.ComparisonFailure.html U trunk/thirdparty/yui/docs/YAHOO.util.Config.html U trunk/thirdparty/yui/docs/YAHOO.util.Connect.html A trunk/thirdparty/yui/docs/YAHOO.util.Cookie.html U trunk/thirdparty/yui/docs/YAHOO.util.CustomEvent.html U trunk/thirdparty/yui/docs/YAHOO.util.DD.html U trunk/thirdparty/yui/docs/YAHOO.util.DDProxy.html U trunk/thirdparty/yui/docs/YAHOO.util.DDTarget.html U trunk/thirdparty/yui/docs/YAHOO.util.DataSource.html A trunk/thirdparty/yui/docs/YAHOO.util.Date.html U trunk/thirdparty/yui/docs/YAHOO.util.DateAssert.html U trunk/thirdparty/yui/docs/YAHOO.util.Dom.html U trunk/thirdparty/yui/docs/YAHOO.util.DragDrop.html U trunk/thirdparty/yui/docs/YAHOO.util.DragDropMgr.ElementWrapper.html U trunk/thirdparty/yui/docs/YAHOO.util.DragDropMgr.html U trunk/thirdparty/yui/docs/YAHOO.util.Easing.html U trunk/thirdparty/yui/docs/YAHOO.util.Element.html U trunk/thirdparty/yui/docs/YAHOO.util.Event.html U trunk/thirdparty/yui/docs/YAHOO.util.EventProvider.html A trunk/thirdparty/yui/docs/YAHOO.util.Get.html U trunk/thirdparty/yui/docs/YAHOO.util.History.html U trunk/thirdparty/yui/docs/YAHOO.util.ImageLoader.bgImgObj.html U trunk/thirdparty/yui/docs/YAHOO.util.ImageLoader.group.html U trunk/thirdparty/yui/docs/YAHOO.util.ImageLoader.imgObj.html U trunk/thirdparty/yui/docs/YAHOO.util.ImageLoader.pngBgImgObj.html U trunk/thirdparty/yui/docs/YAHOO.util.ImageLoader.srcImgObj.html U trunk/thirdparty/yui/docs/YAHOO.util.KeyListener.html U trunk/thirdparty/yui/docs/YAHOO.util.Motion.html A trunk/thirdparty/yui/docs/YAHOO.util.Number.html U trunk/thirdparty/yui/docs/YAHOO.util.ObjectAssert.html U trunk/thirdparty/yui/docs/YAHOO.util.Point.html U trunk/thirdparty/yui/docs/YAHOO.util.Region.html A trunk/thirdparty/yui/docs/YAHOO.util.Resize.html U trunk/thirdparty/yui/docs/YAHOO.util.Scroll.html A trunk/thirdparty/yui/docs/YAHOO.util.Selector.html U trunk/thirdparty/yui/docs/YAHOO.util.ShouldError.html U trunk/thirdparty/yui/docs/YAHOO.util.ShouldFail.html U trunk/thirdparty/yui/docs/YAHOO.util.Sort.html U trunk/thirdparty/yui/docs/YAHOO.util.Subscriber.html U trunk/thirdparty/yui/docs/YAHOO.util.UnexpectedError.html U trunk/thirdparty/yui/docs/YAHOO.util.UnexpectedValue.html U trunk/thirdparty/yui/docs/YAHOO.util.UserAction.html U trunk/thirdparty/yui/docs/YAHOO.util.YUILoader.html U trunk/thirdparty/yui/docs/YAHOO.widget.AutoComplete.html A trunk/thirdparty/yui/docs/YAHOO.widget.Axis.html A trunk/thirdparty/yui/docs/YAHOO.widget.BarChart.html A trunk/thirdparty/yui/docs/YAHOO.widget.BarSeries.html U trunk/thirdparty/yui/docs/YAHOO.widget.Button.html U trunk/thirdparty/yui/docs/YAHOO.widget.ButtonGroup.html U trunk/thirdparty/yui/docs/YAHOO.widget.Calendar.html U trunk/thirdparty/yui/docs/YAHOO.widget.Calendar2up.html U trunk/thirdparty/yui/docs/YAHOO.widget.CalendarGroup.html A trunk/thirdparty/yui/docs/YAHOO.widget.CalendarNavigator.html U trunk/thirdparty/yui/docs/YAHOO.widget.Calendar_Core.html A trunk/thirdparty/yui/docs/YAHOO.widget.CartesianChart.html A trunk/thirdparty/yui/docs/YAHOO.widget.CartesianSeries.html A trunk/thirdparty/yui/docs/YAHOO.widget.CategoryAxis.html A trunk/thirdparty/yui/docs/YAHOO.widget.Chart.html U trunk/thirdparty/yui/docs/YAHOO.widget.ColorPicker.html U trunk/thirdparty/yui/docs/YAHOO.widget.Column.html A trunk/thirdparty/yui/docs/YAHOO.widget.ColumnChart.html A trunk/thirdparty/yui/docs/YAHOO.widget.ColumnSeries.html U trunk/thirdparty/yui/docs/YAHOO.widget.ColumnSet.html U trunk/thirdparty/yui/docs/YAHOO.widget.ContainerEffect.html U trunk/thirdparty/yui/docs/YAHOO.widget.ContextMenu.html U trunk/thirdparty/yui/docs/YAHOO.widget.ContextMenuItem.html U trunk/thirdparty/yui/docs/YAHOO.widget.DS_JSArray.html U trunk/thirdparty/yui/docs/YAHOO.widget.DS_JSFunction.html A trunk/thirdparty/yui/docs/YAHOO.widget.DS_ScriptNode.html U trunk/thirdparty/yui/docs/YAHOO.widget.DS_XHR.html U trunk/thirdparty/yui/docs/YAHOO.widget.DataSource.html U trunk/thirdparty/yui/docs/YAHOO.widget.DataTable.html U trunk/thirdparty/yui/docs/YAHOO.widget.DateMath.html U trunk/thirdparty/yui/docs/YAHOO.widget.Dialog.html A trunk/thirdparty/yui/docs/YAHOO.widget.DualSlider.html U trunk/thirdparty/yui/docs/YAHOO.widget.Editor.html U trunk/thirdparty/yui/docs/YAHOO.widget.EditorInfo.html U trunk/thirdparty/yui/docs/YAHOO.widget.EditorWindow.html A trunk/thirdparty/yui/docs/YAHOO.widget.FlashAdapter.html U trunk/thirdparty/yui/docs/YAHOO.widget.HTMLNode.html A trunk/thirdparty/yui/docs/YAHOO.widget.ImageCropper.html A trunk/thirdparty/yui/docs/YAHOO.widget.Layout.html A trunk/thirdparty/yui/docs/YAHOO.widget.LayoutUnit.html A trunk/thirdparty/yui/docs/YAHOO.widget.LineChart.html A trunk/thirdparty/yui/docs/YAHOO.widget.LineSeries.html U trunk/thirdparty/yui/docs/YAHOO.widget.LogMsg.html U trunk/thirdparty/yui/docs/YAHOO.widget.LogReader.html U trunk/thirdparty/yui/docs/YAHOO.widget.LogWriter.html U trunk/thirdparty/yui/docs/YAHOO.widget.Logger.html U trunk/thirdparty/yui/docs/YAHOO.widget.Menu.html U trunk/thirdparty/yui/docs/YAHOO.widget.MenuBar.html U trunk/thirdparty/yui/docs/YAHOO.widget.MenuBarItem.html U trunk/thirdparty/yui/docs/YAHOO.widget.MenuItem.html U trunk/thirdparty/yui/docs/YAHOO.widget.MenuManager.html U trunk/thirdparty/yui/docs/YAHOO.widget.MenuNode.html U trunk/thirdparty/yui/docs/YAHOO.widget.Module.html U trunk/thirdparty/yui/docs/YAHOO.widget.Node.html A trunk/thirdparty/yui/docs/YAHOO.widget.NumericAxis.html U trunk/thirdparty/yui/docs/YAHOO.widget.Overlay.html U trunk/thirdparty/yui/docs/YAHOO.widget.OverlayManager.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.CurrentPageReport.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.FirstPageLink.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.LastPageLink.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.NextPageLink.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.PageLinks.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.PreviousPageLink.html A trunk/thirdparty/yui/docs/YAHOO.widget.Paginator.ui.RowsPerPageDropdown.html U trunk/thirdparty/yui/docs/YAHOO.widget.Panel.html A trunk/thirdparty/yui/docs/YAHOO.widget.PieChart.html A trunk/thirdparty/yui/docs/YAHOO.widget.PieSeries.html A trunk/thirdparty/yui/docs/YAHOO.widget.ProfilerViewer.html U trunk/thirdparty/yui/docs/YAHOO.widget.Record.html U trunk/thirdparty/yui/docs/YAHOO.widget.RecordSet.html U trunk/thirdparty/yui/docs/YAHOO.widget.RootNode.html A trunk/thirdparty/yui/docs/YAHOO.widget.Series.html U trunk/thirdparty/yui/docs/YAHOO.widget.SimpleDialog.html A trunk/thirdparty/yui/docs/YAHOO.widget.SimpleEditor.html U trunk/thirdparty/yui/docs/YAHOO.widget.Slider.html U trunk/thirdparty/yui/docs/YAHOO.widget.SliderThumb.html U trunk/thirdparty/yui/docs/YAHOO.widget.TVAnim.html U trunk/thirdparty/yui/docs/YAHOO.widget.TVFadeIn.html U trunk/thirdparty/yui/docs/YAHOO.widget.TVFadeOut.html U trunk/thirdparty/yui/docs/YAHOO.widget.Tab.html U trunk/thirdparty/yui/docs/YAHOO.widget.TabView.html U trunk/thirdparty/yui/docs/YAHOO.widget.TextNode.html A trunk/thirdparty/yui/docs/YAHOO.widget.TimeAxis.html U trunk/thirdparty/yui/docs/YAHOO.widget.Toolbar.html A trunk/thirdparty/yui/docs/YAHOO.widget.ToolbarButton.html A trunk/thirdparty/yui/docs/YAHOO.widget.ToolbarButtonAdvanced.html U trunk/thirdparty/yui/docs/YAHOO.widget.Tooltip.html U trunk/thirdparty/yui/docs/YAHOO.widget.TreeView.html A trunk/thirdparty/yui/docs/YAHOO.widget.Uploader.html U trunk/thirdparty/yui/docs/YAHOO_config.html U trunk/thirdparty/yui/docs/assets/api.css U trunk/thirdparty/yui/docs/button.js.html U trunk/thirdparty/yui/docs/buttongroup.js.html A trunk/thirdparty/yui/docs/classmap.js U trunk/thirdparty/yui/docs/connection.js.html U trunk/thirdparty/yui/docs/contextmenu.js.html U trunk/thirdparty/yui/docs/contextmenuitem.js.html A trunk/thirdparty/yui/docs/crop.js.html U trunk/thirdparty/yui/docs/editor.js.html U trunk/thirdparty/yui/docs/history.js.html U trunk/thirdparty/yui/docs/index.html U trunk/thirdparty/yui/docs/index.json A trunk/thirdparty/yui/docs/layout.js.html A trunk/thirdparty/yui/docs/layoutunit.js.html U trunk/thirdparty/yui/docs/menu.js.html U trunk/thirdparty/yui/docs/menubar.js.html U trunk/thirdparty/yui/docs/menubaritem.js.html U trunk/thirdparty/yui/docs/menuitem.js.html U trunk/thirdparty/yui/docs/menumanager.js.html U trunk/thirdparty/yui/docs/module_animation.html U trunk/thirdparty/yui/docs/module_autocomplete.html U trunk/thirdparty/yui/docs/module_button.html U trunk/thirdparty/yui/docs/module_calendar.html A trunk/thirdparty/yui/docs/module_charts.html U trunk/thirdparty/yui/docs/module_colorpicker.html U trunk/thirdparty/yui/docs/module_connection.html U trunk/thirdparty/yui/docs/module_container.html A trunk/thirdparty/yui/docs/module_cookie.html U trunk/thirdparty/yui/docs/module_datasource.html U trunk/thirdparty/yui/docs/module_datatable.html U trunk/thirdparty/yui/docs/module_dom.html U trunk/thirdparty/yui/docs/module_dragdrop.html U trunk/thirdparty/yui/docs/module_editor.html U trunk/thirdparty/yui/docs/module_element.html U trunk/thirdparty/yui/docs/module_event.html A trunk/thirdparty/yui/docs/module_get.html U trunk/thirdparty/yui/docs/module_history.html A trunk/thirdparty/yui/docs/module_imagecropper.html U trunk/thirdparty/yui/docs/module_imageloader.html A trunk/thirdparty/yui/docs/module_json.html A trunk/thirdparty/yui/docs/module_layout.html U trunk/thirdparty/yui/docs/module_logger.html U trunk/thirdparty/yui/docs/module_menu.html A trunk/thirdparty/yui/docs/module_profiler.html A trunk/thirdparty/yui/docs/module_profilerviewer.html A trunk/thirdparty/yui/docs/module_resize.html A trunk/thirdparty/yui/docs/module_selector.html U trunk/thirdparty/yui/docs/module_slider.html U trunk/thirdparty/yui/docs/module_tabview.html U trunk/thirdparty/yui/docs/module_treeview.html A trunk/thirdparty/yui/docs/module_uploader.html U trunk/thirdparty/yui/docs/module_yahoo.html U trunk/thirdparty/yui/docs/module_yuiloader.html U trunk/thirdparty/yui/docs/module_yuitest.html A trunk/thirdparty/yui/docs/profilerviewer.js.html U trunk/thirdparty/yui/docs/raw.json A trunk/thirdparty/yui/docs/resize.js.html A trunk/thirdparty/yui/docs/simple-editor.js.html A trunk/thirdparty/yui/docs/swfobject.js.html A trunk/thirdparty/yui/docs/toolbar-button.js.html U trunk/thirdparty/yui/docs/toolbar.js.html U trunk/thirdparty/yui/docs/yuiloader.js.html A trunk/thirdparty/yui/examples/animation/anim-chaining.html A trunk/thirdparty/yui/examples/animation/anim-chaining_clean.html A trunk/thirdparty/yui/examples/animation/anim-chaining_log.html U trunk/thirdparty/yui/examples/animation/attributes.html U trunk/thirdparty/yui/examples/animation/attributes_clean.html U trunk/thirdparty/yui/examples/animation/basic.html U trunk/thirdparty/yui/examples/animation/basic_clean.html U trunk/thirdparty/yui/examples/animation/colors.html U trunk/thirdparty/yui/examples/animation/colors_clean.html U trunk/thirdparty/yui/examples/animation/control.html U trunk/thirdparty/yui/examples/animation/control_clean.html U trunk/thirdparty/yui/examples/animation/easing.html U trunk/thirdparty/yui/examples/animation/easing_clean.html U trunk/thirdparty/yui/examples/animation/from.html U trunk/thirdparty/yui/examples/animation/from_clean.html U trunk/thirdparty/yui/examples/animation/index.html U trunk/thirdparty/yui/examples/animation/motion.html U trunk/thirdparty/yui/examples/animation/motion_clean.html U trunk/thirdparty/yui/examples/animation/scroll.html U trunk/thirdparty/yui/examples/animation/scroll_clean.html U trunk/thirdparty/yui/examples/animation/units.html U trunk/thirdparty/yui/examples/animation/units_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_customize.html U trunk/thirdparty/yui/examples/autocomplete/ac_customize_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_customize_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_flickr_xml.html U trunk/thirdparty/yui/examples/autocomplete/ac_flickr_xml_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_flickr_xml_log.html A trunk/thirdparty/yui/examples/autocomplete/ac_proxyless.html A trunk/thirdparty/yui/examples/autocomplete/ac_proxyless_clean.html A trunk/thirdparty/yui/examples/autocomplete/ac_proxyless_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_skinning.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsarray.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsarray_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsarray_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsfunction.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsfunction_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_states_jsfunction_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_flat.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_flat_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_flat_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_json.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_json_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_json_log.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_xml.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_xml_clean.html U trunk/thirdparty/yui/examples/autocomplete/ac_ysearch_xml_log.html D trunk/thirdparty/yui/examples/autocomplete/assets/js/json.js U trunk/thirdparty/yui/examples/autocomplete/assets/js/states_jsfunction.js U trunk/thirdparty/yui/examples/autocomplete/assets/php/flickr_proxy.php U trunk/thirdparty/yui/examples/autocomplete/assets/php/ysearch_flat.php U trunk/thirdparty/yui/examples/autocomplete/assets/php/ysearch_proxy.php U trunk/thirdparty/yui/examples/autocomplete/index.html U trunk/thirdparty/yui/examples/base/base-in-doc.html U trunk/thirdparty/yui/examples/base/base-in-doc2.html U trunk/thirdparty/yui/examples/base/base-in-doc3.html U trunk/thirdparty/yui/examples/base/base-in-doc4.html U trunk/thirdparty/yui/examples/base/base-simple.html U trunk/thirdparty/yui/examples/base/index.html A trunk/thirdparty/yui/examples/button/assets/bg-fader.gif A trunk/thirdparty/yui/examples/button/assets/calendar_icon.gif A trunk/thirdparty/yui/examples/button/assets/ella.jpg A trunk/thirdparty/yui/examples/button/assets/ggbridge.png A trunk/thirdparty/yui/examples/button/assets/gloss.png A trunk/thirdparty/yui/examples/button/assets/thumb-n.gif U trunk/thirdparty/yui/examples/button/btn_example01.html U trunk/thirdparty/yui/examples/button/btn_example01_clean.html U trunk/thirdparty/yui/examples/button/btn_example01_log.html U trunk/thirdparty/yui/examples/button/btn_example02.html U trunk/thirdparty/yui/examples/button/btn_example02_clean.html U trunk/thirdparty/yui/examples/button/btn_example02_log.html U trunk/thirdparty/yui/examples/button/btn_example03.html U trunk/thirdparty/yui/examples/button/btn_example03_clean.html U trunk/thirdparty/yui/examples/button/btn_example03_log.html U trunk/thirdparty/yui/examples/button/btn_example04.html U trunk/thirdparty/yui/examples/button/btn_example04_clean.html U trunk/thirdparty/yui/examples/button/btn_example04_log.html U trunk/thirdparty/yui/examples/button/btn_example05.html U trunk/thirdparty/yui/examples/button/btn_example05_clean.html U trunk/thirdparty/yui/examples/button/btn_example05_log.html U trunk/thirdparty/yui/examples/button/btn_example06.html U trunk/thirdparty/yui/examples/button/btn_example06_clean.html U trunk/thirdparty/yui/examples/button/btn_example06_log.html U trunk/thirdparty/yui/examples/button/btn_example07.html U trunk/thirdparty/yui/examples/button/btn_example07_clean.html U trunk/thirdparty/yui/examples/button/btn_example07_log.html U trunk/thirdparty/yui/examples/button/btn_example08.html U trunk/thirdparty/yui/examples/button/btn_example08_clean.html U trunk/thirdparty/yui/examples/button/btn_example08_log.html A trunk/thirdparty/yui/examples/button/btn_example09.html A trunk/thirdparty/yui/examples/button/btn_example09_clean.html A trunk/thirdparty/yui/examples/button/btn_example09_log.html A trunk/thirdparty/yui/examples/button/btn_example10.html A trunk/thirdparty/yui/examples/button/btn_example10_clean.html A trunk/thirdparty/yui/examples/button/btn_example10_log.html A trunk/thirdparty/yui/examples/button/btn_example11.html A trunk/thirdparty/yui/examples/button/btn_example11_clean.html A trunk/thirdparty/yui/examples/button/btn_example11_log.html A trunk/thirdparty/yui/examples/button/btn_example12.html A trunk/thirdparty/yui/examples/button/btn_example12_clean.html A trunk/thirdparty/yui/examples/button/btn_example12_log.html A trunk/thirdparty/yui/examples/button/btn_example13.html A trunk/thirdparty/yui/examples/button/btn_example13_clean.html A trunk/thirdparty/yui/examples/button/btn_example13_log.html A trunk/thirdparty/yui/examples/button/btn_example14.html A trunk/thirdparty/yui/examples/button/btn_example14_clean.html A trunk/thirdparty/yui/examples/button/btn_example14_log.html U trunk/thirdparty/yui/examples/button/index.html A trunk/thirdparty/yui/examples/calendar/assets/ A trunk/thirdparty/yui/examples/calendar/assets/calbtn.gif A trunk/thirdparty/yui/examples/calendar/calcontainer.html A trunk/thirdparty/yui/examples/calendar/calcontainer_clean.html U trunk/thirdparty/yui/examples/calendar/calgrp.html U trunk/thirdparty/yui/examples/calendar/calgrp_clean.html D trunk/thirdparty/yui/examples/calendar/calgrp_log.html A trunk/thirdparty/yui/examples/calendar/calnavigator.html A trunk/thirdparty/yui/examples/calendar/calnavigator_clean.html U trunk/thirdparty/yui/examples/calendar/calskin.html U trunk/thirdparty/yui/examples/calendar/events.html U trunk/thirdparty/yui/examples/calendar/events_clean.html U trunk/thirdparty/yui/examples/calendar/events_log.html U trunk/thirdparty/yui/examples/calendar/formsel.html U trunk/thirdparty/yui/examples/calendar/formsel_clean.html U trunk/thirdparty/yui/examples/calendar/formsel_log.html U trunk/thirdparty/yui/examples/calendar/formtxt.html U trunk/thirdparty/yui/examples/calendar/formtxt_clean.html U trunk/thirdparty/yui/examples/calendar/formtxt_log.html U trunk/thirdparty/yui/examples/calendar/germany.html U trunk/thirdparty/yui/examples/calendar/germany_clean.html D trunk/thirdparty/yui/examples/calendar/germany_log.html U trunk/thirdparty/yui/examples/calendar/index.html U trunk/thirdparty/yui/examples/calendar/japan.html U trunk/thirdparty/yui/examples/calendar/japan_clean.html D trunk/thirdparty/yui/examples/calendar/japan_log.html U trunk/thirdparty/yui/examples/calendar/minmax.html U trunk/thirdparty/yui/examples/calendar/minmax_clean.html D trunk/thirdparty/yui/examples/calendar/minmax_log.html U trunk/thirdparty/yui/examples/calendar/multi.html U trunk/thirdparty/yui/examples/calendar/multi_clean.html D trunk/thirdparty/yui/examples/calendar/multi_log.html U trunk/thirdparty/yui/examples/calendar/popup.html U trunk/thirdparty/yui/examples/calendar/popup_clean.html D trunk/thirdparty/yui/examples/calendar/popup_log.html U trunk/thirdparty/yui/examples/calendar/quickstart.html U trunk/thirdparty/yui/examples/calendar/quickstart_clean.html D trunk/thirdparty/yui/examples/calendar/quickstart_log.html U trunk/thirdparty/yui/examples/calendar/render.html U trunk/thirdparty/yui/examples/calendar/render_clean.html U trunk/thirdparty/yui/examples/calendar/render_log.html A trunk/thirdparty/yui/examples/charts/ A trunk/thirdparty/yui/examples/charts/assets/ A trunk/thirdparty/yui/examples/charts/assets/expressinstall.swf A trunk/thirdparty/yui/examples/charts/assets/generatedata.php A trunk/thirdparty/yui/examples/charts/assets/tube.png A trunk/thirdparty/yui/examples/charts/charts-datatable.html A trunk/thirdparty/yui/examples/charts/charts-datatable_clean.html A trunk/thirdparty/yui/examples/charts/charts-datatable_log.html A trunk/thirdparty/yui/examples/charts/charts-legend.html A trunk/thirdparty/yui/examples/charts/charts-legend_clean.html A trunk/thirdparty/yui/examples/charts/charts-legend_log.html A trunk/thirdparty/yui/examples/charts/charts-quickstart.html A trunk/thirdparty/yui/examples/charts/charts-quickstart_clean.html A trunk/thirdparty/yui/examples/charts/charts-quickstart_log.html A trunk/thirdparty/yui/examples/charts/charts-skins.html A trunk/thirdparty/yui/examples/charts/charts-skins_clean.html A trunk/thirdparty/yui/examples/charts/charts-skins_log.html A trunk/thirdparty/yui/examples/charts/charts-xhr-polling.html A trunk/thirdparty/yui/examples/charts/charts-xhr-polling_clean.html A trunk/thirdparty/yui/examples/charts/charts-xhr-polling_log.html A trunk/thirdparty/yui/examples/charts/index.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-custom.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-custom_clean.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-markup.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-markup_clean.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-markup_log.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-script.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-script_clean.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-dialog-from-script_log.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-fromscript.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-fromscript_clean.html U trunk/thirdparty/yui/examples/colorpicker/colorpicker-skinning.html U trunk/thirdparty/yui/examples/colorpicker/index.html U trunk/thirdparty/yui/examples/connection/abort.html U trunk/thirdparty/yui/examples/connection/abort_clean.html U trunk/thirdparty/yui/examples/connection/abort_log.html U trunk/thirdparty/yui/examples/connection/callback_customevents.html U trunk/thirdparty/yui/examples/connection/callback_customevents_clean.html U trunk/thirdparty/yui/examples/connection/callback_customevents_log.html U trunk/thirdparty/yui/examples/connection/get.html U trunk/thirdparty/yui/examples/connection/get_clean.html U trunk/thirdparty/yui/examples/connection/get_log.html U trunk/thirdparty/yui/examples/connection/global_customevents.html U trunk/thirdparty/yui/examples/connection/global_customevents_clean.html U trunk/thirdparty/yui/examples/connection/global_customevents_log.html U trunk/thirdparty/yui/examples/connection/index.html U trunk/thirdparty/yui/examples/connection/post.html U trunk/thirdparty/yui/examples/connection/post_clean.html U trunk/thirdparty/yui/examples/connection/post_log.html U trunk/thirdparty/yui/examples/connection/weather.html U trunk/thirdparty/yui/examples/connection/weather_clean.html U trunk/thirdparty/yui/examples/connection/weather_log.html U trunk/thirdparty/yui/examples/container/assets/img/skin-chart.gif U trunk/thirdparty/yui/examples/container/assets/img/skin-close.gif U trunk/thirdparty/yui/examples/container/assets/img/skin-corners.gif U trunk/thirdparty/yui/examples/container/assets/img/skin-final.gif U trunk/thirdparty/yui/examples/container/assets/img/skin-module.gif U trunk/thirdparty/yui/examples/container/container-effect.html U trunk/thirdparty/yui/examples/container/container-effect_clean.html U trunk/thirdparty/yui/examples/container/container-effect_log.html U trunk/thirdparty/yui/examples/container/dialog-quickstart.html U trunk/thirdparty/yui/examples/container/dialog-quickstart_clean.html U trunk/thirdparty/yui/examples/container/dialog-quickstart_log.html U trunk/thirdparty/yui/examples/container/index.html U trunk/thirdparty/yui/examples/container/keylistener.html U trunk/thirdparty/yui/examples/container/keylistener_clean.html U trunk/thirdparty/yui/examples/container/keylistener_log.html U trunk/thirdparty/yui/examples/container/module.html U trunk/thirdparty/yui/examples/container/module_clean.html U trunk/thirdparty/yui/examples/container/module_log.html U trunk/thirdparty/yui/examples/container/overlay.html U trunk/thirdparty/yui/examples/container/overlay_clean.html U trunk/thirdparty/yui/examples/container/overlay_log.html U trunk/thirdparty/yui/examples/container/overlaymanager.html U trunk/thirdparty/yui/examples/container/overlaymanager_clean.html U trunk/thirdparty/yui/examples/container/overlaymanager_log.html U trunk/thirdparty/yui/examples/container/panel-loading.html U trunk/thirdparty/yui/examples/container/panel-loading_clean.html U trunk/thirdparty/yui/examples/container/panel-loading_log.html U trunk/thirdparty/yui/examples/container/panel-resize.html D trunk/thirdparty/yui/examples/container/panel-resize_clean.html D trunk/thirdparty/yui/examples/container/panel-resize_log.html A trunk/thirdparty/yui/examples/container/panel-resize_source.html U trunk/thirdparty/yui/examples/container/panel.html U trunk/thirdparty/yui/examples/container/panel_clean.html U trunk/thirdparty/yui/examples/container/panel_log.html U trunk/thirdparty/yui/examples/container/panelskin1.html D trunk/thirdparty/yui/examples/container/panelskin1_clean.html D trunk/thirdparty/yui/examples/container/panelskin1_log.html A trunk/thirdparty/yui/examples/container/panelskin1_source.html U trunk/thirdparty/yui/examples/container/panelskin2.html D trunk/thirdparty/yui/examples/container/panelskin2_clean.html D trunk/thirdparty/yui/examples/container/panelskin2_log.html A trunk/thirdparty/yui/examples/container/panelskin2_source.html U trunk/thirdparty/yui/examples/container/simpledialog-quickstart.html U trunk/thirdparty/yui/examples/container/simpledialog-quickstart_clean.html U trunk/thirdparty/yui/examples/container/simpledialog-quickstart_log.html U trunk/thirdparty/yui/examples/container/tooltip-multi.html U trunk/thirdparty/yui/examples/container/tooltip-multi_clean.html U trunk/thirdparty/yui/examples/container/tooltip-multi_log.html U trunk/thirdparty/yui/examples/container/tooltip.html U trunk/thirdparty/yui/examples/container/tooltip_clean.html U trunk/thirdparty/yui/examples/container/tooltip_log.html A trunk/thirdparty/yui/examples/cookie/ A trunk/thirdparty/yui/examples/cookie/cookie-advanced-example.html A trunk/thirdparty/yui/examples/cookie/cookie-advanced-example_log.html A trunk/thirdparty/yui/examples/cookie/cookie-simple-example.html A trunk/thirdparty/yui/examples/cookie/cookie-subcookie-example.html A trunk/thirdparty/yui/examples/cookie/index.html A trunk/thirdparty/yui/examples/datatable/assets/html/ A trunk/thirdparty/yui/examples/datatable/assets/html/blank.html A trunk/thirdparty/yui/examples/datatable/assets/images/ A trunk/thirdparty/yui/examples/datatable/assets/images/dt_history_flow.png A trunk/thirdparty/yui/examples/datatable/assets/img/bl.gif A trunk/thirdparty/yui/examples/datatable/assets/img/br.gif A trunk/thirdparty/yui/examples/datatable/assets/img/tl.gif A trunk/thirdparty/yui/examples/datatable/assets/img/tr.gif U trunk/thirdparty/yui/examples/datatable/assets/js/data.js D trunk/thirdparty/yui/examples/datatable/assets/js/json.js U trunk/thirdparty/yui/examples/datatable/assets/php/json_proxy.php U trunk/thirdparty/yui/examples/datatable/assets/php/text_with_headers_proxy.txt U trunk/thirdparty/yui/examples/datatable/dt_autocomplete.html U trunk/thirdparty/yui/examples/datatable/dt_autocomplete_clean.html U trunk/thirdparty/yui/examples/datatable/dt_autocomplete_log.html U trunk/thirdparty/yui/examples/datatable/dt_basic.html U trunk/thirdparty/yui/examples/datatable/dt_basic_clean.html U trunk/thirdparty/yui/examples/datatable/dt_basic_log.html U trunk/thirdparty/yui/examples/datatable/dt_cellediting.html U trunk/thirdparty/yui/examples/datatable/dt_cellediting_clean.html U trunk/thirdparty/yui/examples/datatable/dt_cellediting_log.html U trunk/thirdparty/yui/examples/datatable/dt_cellselect.html U trunk/thirdparty/yui/examples/datatable/dt_cellselect_clean.html U trunk/thirdparty/yui/examples/datatable/dt_cellselect_log.html U trunk/thirdparty/yui/examples/datatable/dt_clientpagination.html A trunk/thirdparty/yui/examples/datatable/dt_clientpagination_clean.html U trunk/thirdparty/yui/examples/datatable/dt_clientpagination_log.html D trunk/thirdparty/yui/examples/datatable/dt_clientpagination_source.html U trunk/thirdparty/yui/examples/datatable/dt_clientsorting.html U trunk/thirdparty/yui/examples/datatable/dt_clientsorting_clean.html U trunk/thirdparty/yui/examples/datatable/dt_clientsorting_log.html A trunk/thirdparty/yui/examples/datatable/dt_colshowhide.html A trunk/thirdparty/yui/examples/datatable/dt_colshowhide_log.html A trunk/thirdparty/yui/examples/datatable/dt_colshowhide_source.html U trunk/thirdparty/yui/examples/datatable/dt_complex.html U trunk/thirdparty/yui/examples/datatable/dt_complex_clean.html U trunk/thirdparty/yui/examples/datatable/dt_complex_log.html U trunk/thirdparty/yui/examples/datatable/dt_contextmenu.html U trunk/thirdparty/yui/examples/datatable/dt_contextmenu_clean.html U trunk/thirdparty/yui/examples/datatable/dt_contextmenu_log.html U trunk/thirdparty/yui/examples/datatable/dt_enhanced.html U trunk/thirdparty/yui/examples/datatable/dt_enhanced_clean.html U trunk/thirdparty/yui/examples/datatable/dt_enhanced_log.html U trunk/thirdparty/yui/examples/datatable/dt_fixedscroll.html U trunk/thirdparty/yui/examples/datatable/dt_fixedscroll_clean.html U trunk/thirdparty/yui/examples/datatable/dt_fixedscroll_log.html U trunk/thirdparty/yui/examples/datatable/dt_formatting.html U trunk/thirdparty/yui/examples/datatable/dt_formatting_log.html U trunk/thirdparty/yui/examples/datatable/dt_formatting_source.html A trunk/thirdparty/yui/examples/datatable/dt_highlighting.html A trunk/thirdparty/yui/examples/datatable/dt_highlighting_clean.html A trunk/thirdparty/yui/examples/datatable/dt_highlighting_log.html U trunk/thirdparty/yui/examples/datatable/dt_nestedheaders.html U trunk/thirdparty/yui/examples/datatable/dt_nestedheaders_clean.html U trunk/thirdparty/yui/examples/datatable/dt_nestedheaders_log.html A trunk/thirdparty/yui/examples/datatable/dt_row_coloring.html A trunk/thirdparty/yui/examples/datatable/dt_row_coloring_clean.html A trunk/thirdparty/yui/examples/datatable/dt_row_coloring_log.html A trunk/thirdparty/yui/examples/datatable/dt_rowadddelete.html A trunk/thirdparty/yui/examples/datatable/dt_rowadddelete_clean.html A trunk/thirdparty/yui/examples/datatable/dt_rowadddelete_log.html U trunk/thirdparty/yui/examples/datatable/dt_rowselect.html U trunk/thirdparty/yui/examples/datatable/dt_rowselect_clean.html U trunk/thirdparty/yui/examples/datatable/dt_rowselect_log.html U trunk/thirdparty/yui/examples/datatable/dt_server_pag_sort.html U trunk/thirdparty/yui/examples/datatable/dt_server_pag_sort_clean.html U trunk/thirdparty/yui/examples/datatable/dt_server_pag_sort_log.html D trunk/thirdparty/yui/examples/datatable/dt_serverpagination.html D trunk/thirdparty/yui/examples/datatable/dt_serverpagination_log.html D trunk/thirdparty/yui/examples/datatable/dt_serverpagination_source.html U trunk/thirdparty/yui/examples/datatable/dt_serversorting.html U trunk/thirdparty/yui/examples/datatable/dt_serversorting_log.html U trunk/thirdparty/yui/examples/datatable/dt_serversorting_source.html U trunk/thirdparty/yui/examples/datatable/dt_skinning.html U trunk/thirdparty/yui/examples/datatable/dt_xhrjson.html U trunk/thirdparty/yui/examples/datatable/dt_xhrjson_clean.html U trunk/thirdparty/yui/examples/datatable/dt_xhrjson_log.html U trunk/thirdparty/yui/examples/datatable/dt_xhrlocalxml.html U trunk/thirdparty/yui/examples/datatable/dt_xhrlocalxml_clean.html U trunk/thirdparty/yui/examples/datatable/dt_xhrlocalxml_log.html U trunk/thirdparty/yui/examples/datatable/dt_xhrpostxml.html U trunk/thirdparty/yui/examples/datatable/dt_xhrpostxml_clean.html U trunk/thirdparty/yui/examples/datatable/dt_xhrpostxml_log.html U trunk/thirdparty/yui/examples/datatable/dt_xhrtext.html U trunk/thirdparty/yui/examples/datatable/dt_xhrtext_clean.html U trunk/thirdparty/yui/examples/datatable/dt_xhrtext_log.html U trunk/thirdparty/yui/examples/datatable/index.html A trunk/thirdparty/yui/examples/datatable/paginator_datatable_serverpaging.html A trunk/thirdparty/yui/examples/datatable/paginator_datatable_serverpaging_clean.html A trunk/thirdparty/yui/examples/datatable/paginator_datatable_serverpaging_log.html A trunk/thirdparty/yui/examples/datatable/pg_paginator_exhibition.html A trunk/thirdparty/yui/examples/datatable/pg_paginator_exhibition_clean.html A trunk/thirdparty/yui/examples/datatable/pg_paginator_exhibition_log.html U trunk/thirdparty/yui/examples/dom/addclass.html U trunk/thirdparty/yui/examples/dom/addclass_clean.html U trunk/thirdparty/yui/examples/dom/addclass_log.html U trunk/thirdparty/yui/examples/dom/getelementsbyclassname.html U trunk/thirdparty/yui/examples/dom/getelementsbyclassname_clean.html U trunk/thirdparty/yui/examples/dom/getelementsbyclassname_log.html U trunk/thirdparty/yui/examples/dom/getstyle.html U trunk/thirdparty/yui/examples/dom/getstyle_clean.html U trunk/thirdparty/yui/examples/dom/getstyle_log.html U trunk/thirdparty/yui/examples/dom/getxy.html U trunk/thirdparty/yui/examples/dom/getxy_clean.html U trunk/thirdparty/yui/examples/dom/getxy_log.html U trunk/thirdparty/yui/examples/dom/hasclass.html U trunk/thirdparty/yui/examples/dom/hasclass_clean.html U trunk/thirdparty/yui/examples/dom/hasclass_log.html U trunk/thirdparty/yui/examples/dom/index.html U trunk/thirdparty/yui/examples/dom/removeclass.html U trunk/thirdparty/yui/examples/dom/removeclass_clean.html U trunk/thirdparty/yui/examples/dom/removeclass_log.html U trunk/thirdparty/yui/examples/dom/setstyle.html U trunk/thirdparty/yui/examples/dom/setstyle_clean.html U trunk/thirdparty/yui/examples/dom/setstyle_log.html U trunk/thirdparty/yui/examples/dom/setxy.html U trunk/thirdparty/yui/examples/dom/setxy_clean.html U trunk/thirdparty/yui/examples/dom/setxy_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-basic.html U trunk/thirdparty/yui/examples/dragdrop/dd-basic_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-basic_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-circle.html U trunk/thirdparty/yui/examples/dragdrop/dd-circle_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-circle_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-groups.html U trunk/thirdparty/yui/examples/dragdrop/dd-groups_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-groups_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-handles.html U trunk/thirdparty/yui/examples/dragdrop/dd-handles_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-handles_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-ontop.html U trunk/thirdparty/yui/examples/dragdrop/dd-ontop_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-proxy.html U trunk/thirdparty/yui/examples/dragdrop/dd-proxy_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-proxy_log.html A trunk/thirdparty/yui/examples/dragdrop/dd-region.html A trunk/thirdparty/yui/examples/dragdrop/dd-region_clean.html A trunk/thirdparty/yui/examples/dragdrop/dd-region_log.html U trunk/thirdparty/yui/examples/dragdrop/dd-reorder.html U trunk/thirdparty/yui/examples/dragdrop/dd-reorder_clean.html U trunk/thirdparty/yui/examples/dragdrop/dd-reorder_log.html D trunk/thirdparty/yui/examples/dragdrop/dd-resize.html D trunk/thirdparty/yui/examples/dragdrop/dd-resize_clean.html D trunk/thirdparty/yui/examples/dragdrop/dd-resize_log.html U trunk/thirdparty/yui/examples/dragdrop/index.html A trunk/thirdparty/yui/examples/editor/assets/browser.php U trunk/thirdparty/yui/examples/editor/assets/exampleslib.inc A trunk/thirdparty/yui/examples/editor/assets/html_editor.gif U trunk/thirdparty/yui/examples/editor/assets/post.php A trunk/thirdparty/yui/examples/editor/autoheight_editor.html A trunk/thirdparty/yui/examples/editor/autoheight_editor_clean.html A trunk/thirdparty/yui/examples/editor/autoheight_editor_log.html U trunk/thirdparty/yui/examples/editor/cal_editor.html U trunk/thirdparty/yui/examples/editor/cal_editor_clean.html U trunk/thirdparty/yui/examples/editor/cal_editor_log.html A trunk/thirdparty/yui/examples/editor/code_editor.html A trunk/thirdparty/yui/examples/editor/code_editor_clean.html A trunk/thirdparty/yui/examples/editor/code_editor_log.html A trunk/thirdparty/yui/examples/editor/editor_adv_editor.html A trunk/thirdparty/yui/examples/editor/editor_adv_editor_clean.html A trunk/thirdparty/yui/examples/editor/editor_adv_editor_log.html U trunk/thirdparty/yui/examples/editor/flickr_editor.html U trunk/thirdparty/yui/examples/editor/flickr_editor_clean.html U trunk/thirdparty/yui/examples/editor/flickr_editor_log.html U trunk/thirdparty/yui/examples/editor/icon_editor.html U trunk/thirdparty/yui/examples/editor/icon_editor_clean.html U trunk/thirdparty/yui/examples/editor/icon_editor_log.html A trunk/thirdparty/yui/examples/editor/imagebrowser_editor.html A trunk/thirdparty/yui/examples/editor/imagebrowser_editor_clean.html A trunk/thirdparty/yui/examples/editor/imagebrowser_editor_log.html U trunk/thirdparty/yui/examples/editor/index.html U trunk/thirdparty/yui/examples/editor/multi_editor.html U trunk/thirdparty/yui/examples/editor/multi_editor_log.html U trunk/thirdparty/yui/examples/editor/multi_editor_source.html U trunk/thirdparty/yui/examples/editor/post_editor.html U trunk/thirdparty/yui/examples/editor/post_editor_clean.html U trunk/thirdparty/yui/examples/editor/post_editor_log.html A trunk/thirdparty/yui/examples/editor/simple_adv_editor.html A trunk/thirdparty/yui/examples/editor/simple_adv_editor_clean.html A trunk/thirdparty/yui/examples/editor/simple_adv_editor_log.html A trunk/thirdparty/yui/examples/editor/simple_editor.html A trunk/thirdparty/yui/examples/editor/simple_editor_clean.html A trunk/thirdparty/yui/examples/editor/simple_editor_log.html U trunk/thirdparty/yui/examples/editor/skinning_editor.html U trunk/thirdparty/yui/examples/editor/switch_editor.html U trunk/thirdparty/yui/examples/editor/switch_editor_clean.html U trunk/thirdparty/yui/examples/editor/switch_editor_log.html U trunk/thirdparty/yui/examples/editor/tabview_editor.html U trunk/thirdparty/yui/examples/editor/tabview_editor_clean.html U trunk/thirdparty/yui/examples/editor/tabview_editor_log.html U trunk/thirdparty/yui/examples/editor/toolbar_editor.html U trunk/thirdparty/yui/examples/event/custom-event.html U trunk/thirdparty/yui/examples/event/custom-event_clean.html U trunk/thirdparty/yui/examples/event/custom-event_log.html U trunk/thirdparty/yui/examples/event/event-delegation.html U trunk/thirdparty/yui/examples/event/event-timing.html U trunk/thirdparty/yui/examples/event/eventsimple.html U trunk/thirdparty/yui/examples/event/eventsimple_clean.html U trunk/thirdparty/yui/examples/event/eventsimple_log.html U trunk/thirdparty/yui/examples/event/index.html U trunk/thirdparty/yui/examples/fonts/fonts-family.html U trunk/thirdparty/yui/examples/fonts/fonts-family_source.html U trunk/thirdparty/yui/examples/fonts/fonts-simple.html U trunk/thirdparty/yui/examples/fonts/fonts-size.html U trunk/thirdparty/yui/examples/fonts/index.html A trunk/thirdparty/yui/examples/get/ A trunk/thirdparty/yui/examples/get/assets/ A trunk/thirdparty/yui/examples/get/assets/background.css A trunk/thirdparty/yui/examples/get/assets/border.css A trunk/thirdparty/yui/examples/get/assets/getNews.js A trunk/thirdparty/yui/examples/get/assets/neutral.css A trunk/thirdparty/yui/examples/get/assets/text.css A trunk/thirdparty/yui/examples/get/get-css-basic.html A trunk/thirdparty/yui/examples/get/get-css-basic_clean.html A trunk/thirdparty/yui/examples/get/get-script-basic.html A trunk/thirdparty/yui/examples/get/get-script-basic_clean.html A trunk/thirdparty/yui/examples/get/index.html U trunk/thirdparty/yui/examples/grids/grids-doc-custom.html U trunk/thirdparty/yui/examples/grids/grids-doc-custom_source.html U trunk/thirdparty/yui/examples/grids/grids-doc.html U trunk/thirdparty/yui/examples/grids/grids-doc2.html U trunk/thirdparty/yui/examples/grids/grids-doc2_source.html U trunk/thirdparty/yui/examples/grids/grids-doc3.html U trunk/thirdparty/yui/examples/grids/grids-doc3_source.html U trunk/thirdparty/yui/examples/grids/grids-doc4.html U trunk/thirdparty/yui/examples/grids/grids-doc4_source.html U trunk/thirdparty/yui/examples/grids/grids-doc_source.html U trunk/thirdparty/yui/examples/grids/grids-g.html U trunk/thirdparty/yui/examples/grids/grids-g_source.html U trunk/thirdparty/yui/examples/grids/grids-gb.html U trunk/thirdparty/yui/examples/grids/grids-gb_source.html U trunk/thirdparty/yui/examples/grids/grids-gc.html U trunk/thirdparty/yui/examples/grids/grids-gc_source.html U trunk/thirdparty/yui/examples/grids/grids-gd.html U trunk/thirdparty/yui/examples/grids/grids-gd_source.html U trunk/thirdparty/yui/examples/grids/grids-ge.html U trunk/thirdparty/yui/examples/grids/grids-ge_source.html U trunk/thirdparty/yui/examples/grids/grids-gf.html U trunk/thirdparty/yui/examples/grids/grids-gf_source.html U trunk/thirdparty/yui/examples/grids/grids-gg.html U trunk/thirdparty/yui/examples/grids/grids-gg_source.html U trunk/thirdparty/yui/examples/grids/grids-t1.html U trunk/thirdparty/yui/examples/grids/grids-t1_source.html U trunk/thirdparty/yui/examples/grids/grids-t2.html U trunk/thirdparty/yui/examples/grids/grids-t2_source.html U trunk/thirdparty/yui/examples/grids/grids-t3.html U trunk/thirdparty/yui/examples/grids/grids-t3_source.html U trunk/thirdparty/yui/examples/grids/grids-t4.html U trunk/thirdparty/yui/examples/grids/grids-t4_source.html U trunk/thirdparty/yui/examples/grids/grids-t5.html U trunk/thirdparty/yui/examples/grids/grids-t5_source.html U trunk/thirdparty/yui/examples/grids/grids-t6.html U trunk/thirdparty/yui/examples/grids/grids-t6_source.html U trunk/thirdparty/yui/examples/grids/index.html A trunk/thirdparty/yui/examples/history/assets/blank.html U trunk/thirdparty/yui/examples/history/assets/yui-bhm-navbar-demo.css U trunk/thirdparty/yui/examples/history/history-calendar.html U trunk/thirdparty/yui/examples/history/history-calendar_clean.html A trunk/thirdparty/yui/examples/history/history-multiple.html A trunk/thirdparty/yui/examples/history/history-multiple_clean.html U trunk/thirdparty/yui/examples/history/history-navbar.html U trunk/thirdparty/yui/examples/history/history-navbar_source.html A trunk/thirdparty/yui/examples/history/history-tabview.html A trunk/thirdparty/yui/examples/history/history-tabview_clean.html U trunk/thirdparty/yui/examples/history/index.html A trunk/thirdparty/yui/examples/imagecropper/ A trunk/thirdparty/yui/examples/imagecropper/adv_crop.html A trunk/thirdparty/yui/examples/imagecropper/adv_crop_clean.html A trunk/thirdparty/yui/examples/imagecropper/adv_crop_log.html A trunk/thirdparty/yui/examples/imagecropper/assets/ A trunk/thirdparty/yui/examples/imagecropper/assets/JSON.php A trunk/thirdparty/yui/examples/imagecropper/assets/crop.php A trunk/thirdparty/yui/examples/imagecropper/assets/exampleslib.inc A trunk/thirdparty/yui/examples/imagecropper/assets/yui.jpg A trunk/thirdparty/yui/examples/imagecropper/conn_crop.html A trunk/thirdparty/yui/examples/imagecropper/conn_crop_clean.html A trunk/thirdparty/yui/examples/imagecropper/conn_crop_log.html A trunk/thirdparty/yui/examples/imagecropper/feedback_crop.html A trunk/thirdparty/yui/examples/imagecropper/feedback_crop_clean.html A trunk/thirdparty/yui/examples/imagecropper/feedback_crop_log.html A trunk/thirdparty/yui/examples/imagecropper/index.html A trunk/thirdparty/yui/examples/imagecropper/simple_crop.html A trunk/thirdparty/yui/examples/imagecropper/simple_crop_clean.html A trunk/thirdparty/yui/examples/imagecropper/simple_crop_log.html A trunk/thirdparty/yui/examples/imagecropper/skinning_crop.html U trunk/thirdparty/yui/examples/imageloader/imgloadbasics.html U trunk/thirdparty/yui/examples/imageloader/imgloadbasics_clean.html U trunk/thirdparty/yui/examples/imageloader/imgloadclass.html U trunk/thirdparty/yui/examples/imageloader/imgloadclass_clean.html U trunk/thirdparty/yui/examples/imageloader/imgloadfold.html U trunk/thirdparty/yui/examples/imageloader/imgloadfold_clean.html U trunk/thirdparty/yui/examples/imageloader/imgloadtabs.html U trunk/thirdparty/yui/examples/imageloader/imgloadtabs_clean.html U trunk/thirdparty/yui/examples/imageloader/index.html U trunk/thirdparty/yui/examples/index.html A trunk/thirdparty/yui/examples/json/ A trunk/thirdparty/yui/examples/json/assets/ A trunk/thirdparty/yui/examples/json/assets/jsonConnect.php A trunk/thirdparty/yui/examples/json/index.html A trunk/thirdparty/yui/examples/json/json_connect.html A trunk/thirdparty/yui/examples/json/json_connect_clean.html A trunk/thirdparty/yui/examples/layout/ A trunk/thirdparty/yui/examples/layout/adv_layout.html A trunk/thirdparty/yui/examples/layout/adv_layout_source.html A trunk/thirdparty/yui/examples/layout/assets/ A trunk/thirdparty/yui/examples/layout/assets/css/ A trunk/thirdparty/yui/examples/layout/assets/css/bg-fader.gif A trunk/thirdparty/yui/examples/layout/assets/css/editor-sprite-active.gif A trunk/thirdparty/yui/examples/layout/assets/css/editor-sprite.gif A trunk/thirdparty/yui/examples/layout/assets/css/example.png A trunk/thirdparty/yui/examples/layout/assets/css/example1.css A trunk/thirdparty/yui/examples/layout/assets/css/logo.png A trunk/thirdparty/yui/examples/layout/assets/css/sprite.png A trunk/thirdparty/yui/examples/layout/assets/css/thumb-n.gif A trunk/thirdparty/yui/examples/layout/assets/js/ A trunk/thirdparty/yui/examples/layout/assets/js/buttons.js A trunk/thirdparty/yui/examples/layout/assets/js/calendar.js A trunk/thirdparty/yui/examples/layout/assets/js/editor.js A trunk/thirdparty/yui/examples/layout/assets/js/inbox.js A trunk/thirdparty/yui/examples/layout/assets/js/logger.js A trunk/thirdparty/yui/examples/layout/assets/js/main.js A trunk/thirdparty/yui/examples/layout/assets/js/news.js A trunk/thirdparty/yui/examples/layout/assets/js/tabview.js A trunk/thirdparty/yui/examples/layout/assets/post4.php A trunk/thirdparty/yui/examples/layout/assets/progress.gif A trunk/thirdparty/yui/examples/layout/calrte_layout.html A trunk/thirdparty/yui/examples/layout/calrte_layout_source.html A trunk/thirdparty/yui/examples/layout/grids_layout.html A trunk/thirdparty/yui/examples/layout/grids_layout_log.html A trunk/thirdparty/yui/examples/layout/grids_layout_source.html A trunk/thirdparty/yui/examples/layout/index.html A trunk/thirdparty/yui/examples/layout/nested_layout.html A trunk/thirdparty/yui/examples/layout/nested_layout_source.html A trunk/thirdparty/yui/examples/layout/page_layout.html A trunk/thirdparty/yui/examples/layout/page_layout_log.html A trunk/thirdparty/yui/examples/layout/page_layout_source.html A trunk/thirdparty/yui/examples/layout/panel_layout.html A trunk/thirdparty/yui/examples/layout/panel_layout_log.html A trunk/thirdparty/yui/examples/layout/panel_layout_source.html A trunk/thirdparty/yui/examples/layout/skinning_layout.html U trunk/thirdparty/yui/examples/logger/index.html U trunk/thirdparty/yui/examples/logger/log_autocomplete.html U trunk/thirdparty/yui/examples/logger/log_autocomplete_source.html U trunk/thirdparty/yui/examples/logger/log_basic.html U trunk/thirdparty/yui/examples/logger/log_basic_source.html U trunk/thirdparty/yui/examples/logger/log_reading.html U trunk/thirdparty/yui/examples/logger/log_skinning.html U trunk/thirdparty/yui/examples/logger/log_writing.html U trunk/thirdparty/yui/examples/menu/applicationmenubar.html U trunk/thirdparty/yui/examples/menu/applicationmenubar_source.html U trunk/thirdparty/yui/examples/menu/contextmenu.html U trunk/thirdparty/yui/examples/menu/contextmenu_source.html U trunk/thirdparty/yui/examples/menu/example01.html U trunk/thirdparty/yui/examples/menu/example01_clean.html U trunk/thirdparty/yui/examples/menu/example02.html U trunk/thirdparty/yui/examples/menu/example02_clean.html U trunk/thirdparty/yui/examples/menu/example03.html U trunk/thirdparty/yui/examples/menu/example03_clean.html U trunk/thirdparty/yui/examples/menu/example04.html U trunk/thirdparty/yui/examples/menu/example04_clean.html U trunk/thirdparty/yui/examples/menu/example05.html U trunk/thirdparty/yui/examples/menu/example05_clean.html U trunk/thirdparty/yui/examples/menu/example06.html U trunk/thirdparty/yui/examples/menu/example06_clean.html U trunk/thirdparty/yui/examples/menu/example07.html U trunk/thirdparty/yui/examples/menu/example07_clean.html U trunk/thirdparty/yui/examples/menu/example08.html U trunk/thirdparty/yui/examples/menu/example08_clean.html U trunk/thirdparty/yui/examples/menu/example09.html U trunk/thirdparty/yui/examples/menu/example09_clean.html U trunk/thirdparty/yui/examples/menu/example10.html U trunk/thirdparty/yui/examples/menu/example10_clean.html U trunk/thirdparty/yui/examples/menu/example11.html U trunk/thirdparty/yui/examples/menu/example11_clean.html U trunk/thirdparty/yui/examples/menu/example12.html U trunk/thirdparty/yui/examples/menu/example12_clean.html U trunk/thirdparty/yui/examples/menu/index.html U trunk/thirdparty/yui/examples/menu/leftnavfromjs.html U trunk/thirdparty/yui/examples/menu/leftnavfromjs_source.html U trunk/thirdparty/yui/examples/menu/leftnavfromjswithanim.html U trunk/thirdparty/yui/examples/menu/leftnavfromjswithanim_source.html U trunk/thirdparty/yui/examples/menu/leftnavfrommarkup.html U trunk/thirdparty/yui/examples/menu/leftnavfrommarkup_source.html U trunk/thirdparty/yui/examples/menu/leftnavfrommarkupwithanim.html U trunk/thirdparty/yui/examples/menu/leftnavfrommarkupwithanim_source.html A trunk/thirdparty/yui/examples/menu/menuwaiaria.html A trunk/thirdparty/yui/examples/menu/menuwaiaria_source.html U trunk/thirdparty/yui/examples/menu/programsmenu.html U trunk/thirdparty/yui/examples/menu/programsmenu_source.html U trunk/thirdparty/yui/examples/menu/tablecontextmenu.html U trunk/thirdparty/yui/examples/menu/tablecontextmenu_source.html U trunk/thirdparty/yui/examples/menu/topnavfromjs.html U trunk/thirdparty/yui/examples/menu/topnavfromjs_source.html U trunk/thirdparty/yui/examples/menu/topnavfromjswithanim.html U trunk/thirdparty/yui/examples/menu/topnavfromjswithanim_source.html U trunk/thirdparty/yui/examples/menu/topnavfrommarkup.html U trunk/thirdparty/yui/examples/menu/topnavfrommarkup_source.html U trunk/thirdparty/yui/examples/menu/topnavfrommarkupwithanim.html U trunk/thirdparty/yui/examples/menu/topnavfrommarkupwithanim_source.html U trunk/thirdparty/yui/examples/menu/treeviewcontextmenu.html U trunk/thirdparty/yui/examples/menu/treeviewcontextmenu_source.html A trunk/thirdparty/yui/examples/profiler/ A trunk/thirdparty/yui/examples/profiler/index.html A trunk/thirdparty/yui/examples/profiler/profiler-object-example.html A trunk/thirdparty/yui/examples/profiler/profiler-simple-example.html A trunk/thirdparty/yui/examples/profilerviewer/ A trunk/thirdparty/yui/examples/profilerviewer/assets/ A trunk/thirdparty/yui/examples/profilerviewer/assets/dpSyntaxHighlighter.css A trunk/thirdparty/yui/examples/profilerviewer/assets/dpSyntaxHighlighter.js A trunk/thirdparty/yui/examples/profilerviewer/assets/profilerviewer.png A trunk/thirdparty/yui/examples/profilerviewer/index.html A trunk/thirdparty/yui/examples/profilerviewer/pv-api.html A trunk/thirdparty/yui/examples/profilerviewer/pv-api_source.html A trunk/thirdparty/yui/examples/profilerviewer/pv-basic.html A trunk/thirdparty/yui/examples/profilerviewer/pv-basic_source.html A trunk/thirdparty/yui/examples/profilerviewer/pv-bootstrap.html A trunk/thirdparty/yui/examples/profilerviewer/pv-bootstrap_source.html A trunk/thirdparty/yui/examples/profilerviewer/pv-german.html A trunk/thirdparty/yui/examples/profilerviewer/pv-german_source.html A trunk/thirdparty/yui/examples/profilerviewer/pv-skin.html A trunk/thirdparty/yui/examples/profilerviewer/pv-spanish.html A trunk/thirdparty/yui/examples/profilerviewer/pv-spanish_source.html U trunk/thirdparty/yui/examples/reset/index.html U trunk/thirdparty/yui/examples/reset/reset-simple.html A trunk/thirdparty/yui/examples/resize/ A trunk/thirdparty/yui/examples/resize/anim_resize.html A trunk/thirdparty/yui/examples/resize/anim_resize_clean.html A trunk/thirdparty/yui/examples/resize/assets/ A trunk/thirdparty/yui/examples/resize/assets/yui.jpg A trunk/thirdparty/yui/examples/resize/eightway_resize.html A trunk/thirdparty/yui/examples/resize/eightway_resize_clean.html A trunk/thirdparty/yui/examples/resize/ghost_resize.html A trunk/thirdparty/yui/examples/resize/ghost_resize_clean.html A trunk/thirdparty/yui/examples/resize/grids_resize.html A trunk/thirdparty/yui/examples/resize/grids_resize_clean.html A trunk/thirdparty/yui/examples/resize/index.html A trunk/thirdparty/yui/examples/resize/proxy_resize.html A trunk/thirdparty/yui/examples/resize/proxy_resize_clean.html A trunk/thirdparty/yui/examples/resize/rte_resize.html A trunk/thirdparty/yui/examples/resize/rte_resize_clean.html A trunk/thirdparty/yui/examples/resize/simple_resize.html A trunk/thirdparty/yui/examples/resize/simple_resize_clean.html A trunk/thirdparty/yui/examples/resize/skinning_resize.html A trunk/thirdparty/yui/examples/selector/ A trunk/thirdparty/yui/examples/selector/filter.html A trunk/thirdparty/yui/examples/selector/filter_clean.html A trunk/thirdparty/yui/examples/selector/filter_log.html A trunk/thirdparty/yui/examples/selector/index.html A trunk/thirdparty/yui/examples/selector/query.html A trunk/thirdparty/yui/examples/selector/query_clean.html A trunk/thirdparty/yui/examples/selector/query_log.html A trunk/thirdparty/yui/examples/slider/assets/dual_thumb_bg.gif A trunk/thirdparty/yui/examples/slider/assets/dual_thumb_highlight.gif A trunk/thirdparty/yui/examples/slider/assets/l-thumb-round.gif A trunk/thirdparty/yui/examples/slider/assets/left-thumb.png A trunk/thirdparty/yui/examples/slider/assets/r-thumb-round.gif A trunk/thirdparty/yui/examples/slider/assets/right-thumb.png U trunk/thirdparty/yui/examples/slider/index.html U trunk/thirdparty/yui/examples/slider/slider-rgb.html U trunk/thirdparty/yui/examples/slider/slider-rgb_clean.html U trunk/thirdparty/yui/examples/slider/slider-rgb_log.html U trunk/thirdparty/yui/examples/slider/slider-simple.html U trunk/thirdparty/yui/examples/slider/slider-simple_clean.html U trunk/thirdparty/yui/examples/slider/slider-simple_log.html U trunk/thirdparty/yui/examples/slider/slider-ticks.html U trunk/thirdparty/yui/examples/slider/slider-ticks_clean.html U trunk/thirdparty/yui/examples/slider/slider-ticks_log.html A trunk/thirdparty/yui/examples/slider/slider_dual_thumb.html A trunk/thirdparty/yui/examples/slider/slider_dual_thumb_clean.html A trunk/thirdparty/yui/examples/slider/slider_dual_thumb_log.html A trunk/thirdparty/yui/examples/slider/slider_dual_with_highlight.html A trunk/thirdparty/yui/examples/slider/slider_dual_with_highlight_clean.html A trunk/thirdparty/yui/examples/slider/slider_dual_with_highlight_log.html A trunk/thirdparty/yui/examples/slider/slider_vert_swapped.html A trunk/thirdparty/yui/examples/slider/slider_vert_swapped_clean.html A trunk/thirdparty/yui/examples/slider/slider_vert_swapped_log.html U trunk/thirdparty/yui/examples/tabview/addtab.html U trunk/thirdparty/yui/examples/tabview/addtab_clean.html U trunk/thirdparty/yui/examples/tabview/addtab_log.html U trunk/thirdparty/yui/examples/tabview/datasrc.html U trunk/thirdparty/yui/examples/tabview/datasrc_clean.html U trunk/thirdparty/yui/examples/tabview/datasrc_log.html U trunk/thirdparty/yui/examples/tabview/frommarkup.html U trunk/thirdparty/yui/examples/tabview/frommarkup_clean.html U trunk/thirdparty/yui/examples/tabview/frommarkup_log.html U trunk/thirdparty/yui/examples/tabview/fromscript.html U trunk/thirdparty/yui/examples/tabview/fromscript_clean.html U trunk/thirdparty/yui/examples/tabview/fromscript_log.html U trunk/thirdparty/yui/examples/tabview/index.html U trunk/thirdparty/yui/examples/tabview/removetab.html U trunk/thirdparty/yui/examples/tabview/removetab_clean.html U trunk/thirdparty/yui/examples/tabview/removetab_log.html U trunk/thirdparty/yui/examples/tabview/skinning.html U trunk/thirdparty/yui/examples/tabview/skinning_clean.html U trunk/thirdparty/yui/examples/tabview/skinning_log.html A trunk/thirdparty/yui/examples/treeview/assets/css/default/tree.css.orig U trunk/thirdparty/yui/examples/treeview/assets/css/folders/tree.css U trunk/thirdparty/yui/examples/treeview/assets/css/multi/tree.css U trunk/thirdparty/yui/examples/treeview/assets/js/TaskNode.js U trunk/thirdparty/yui/examples/treeview/customicons.html U trunk/thirdparty/yui/examples/treeview/customicons_clean.html U trunk/thirdparty/yui/examples/treeview/customicons_log.html U trunk/thirdparty/yui/examples/treeview/default_tree.html U trunk/thirdparty/yui/examples/treeview/default_tree_clean.html U trunk/thirdparty/yui/examples/treeview/default_tree_log.html U trunk/thirdparty/yui/examples/treeview/dynamic_tree.html U trunk/thirdparty/yui/examples/treeview/dynamic_tree_clean.html U trunk/thirdparty/yui/examples/treeview/dynamic_tree_log.html U trunk/thirdparty/yui/examples/treeview/folder_style.html U trunk/thirdparty/yui/examples/treeview/folder_style_clean.html U trunk/thirdparty/yui/examples/treeview/folder_style_log.html U trunk/thirdparty/yui/examples/treeview/index.html U trunk/thirdparty/yui/examples/treeview/menu_style.html U trunk/thirdparty/yui/examples/treeview/menu_style_clean.html U trunk/thirdparty/yui/examples/treeview/menu_style_log.html A trunk/thirdparty/yui/examples/treeview/tasklist.html A trunk/thirdparty/yui/examples/treeview/tv_tooltip.html A trunk/thirdparty/yui/examples/treeview/tv_tooltip_clean.html A trunk/thirdparty/yui/examples/treeview/tv_tooltip_log.html A trunk/thirdparty/yui/examples/uploader/ A trunk/thirdparty/yui/examples/uploader/assets/ A trunk/thirdparty/yui/examples/uploader/assets/uploader-advanced.jpg A trunk/thirdparty/yui/examples/uploader/assets/uploader-advanced.zip A trunk/thirdparty/yui/examples/uploader/assets/uploader-simple.jpg A trunk/thirdparty/yui/examples/uploader/assets/uploader-simple.zip A trunk/thirdparty/yui/examples/uploader/index.html A trunk/thirdparty/yui/examples/uploader/uploader-advanced.html A trunk/thirdparty/yui/examples/uploader/uploader-simple.html A trunk/thirdparty/yui/examples/yahoo/ A trunk/thirdparty/yui/examples/yahoo/assets/ A trunk/thirdparty/yui/examples/yahoo/assets/composition_diagram.png A trunk/thirdparty/yui/examples/yahoo/assets/needs_shim.png A trunk/thirdparty/yui/examples/yahoo/index.html A trunk/thirdparty/yui/examples/yahoo/yahoo_augment_object.html A trunk/thirdparty/yui/examples/yahoo/yahoo_augment_proto.html A trunk/thirdparty/yui/examples/yahoo/yahoo_extend.html A trunk/thirdparty/yui/examples/yahoo/yahoo_merge.html A trunk/thirdparty/yui/examples/yahoo/yahoo_type_checking.html A trunk/thirdparty/yui/examples/yahoo/yahoo_type_checking_clean.html A trunk/thirdparty/yui/examples/yahoo/yahoo_ua_detection.html A trunk/thirdparty/yui/examples/yahoo/yahoo_ua_detection_clean.html A trunk/thirdparty/yui/examples/yahoo/yahoo_ua_detection_log.html U trunk/thirdparty/yui/examples/yuiloader/index.html U trunk/thirdparty/yui/examples/yuiloader/yl-addmodule.html U trunk/thirdparty/yui/examples/yuiloader/yl-basic.html U trunk/thirdparty/yui/examples/yuiloader/yl-basic_source.html U trunk/thirdparty/yui/examples/yuiloader/yl-insert.html A trunk/thirdparty/yui/examples/yuiloader/yl-list.html U trunk/thirdparty/yui/examples/yuitest/index.html U trunk/thirdparty/yui/examples/yuitest/yt-advanced-test-options.html U trunk/thirdparty/yui/examples/yuitest/yt-advanced-test-options_clean.html U trunk/thirdparty/yui/examples/yuitest/yt-array-tests.html U trunk/thirdparty/yui/examples/yuitest/yt-array-tests_clean.html A trunk/thirdparty/yui/examples/yuitest/yt-async-event-tests.html A trunk/thirdparty/yui/examples/yuitest/yt-async-event-tests_clean.html A trunk/thirdparty/yui/examples/yuitest/yt-async-test.html A trunk/thirdparty/yui/examples/yuitest/yt-async-test_clean.html U trunk/thirdparty/yui/examples/yuitest/yt-simple-example.html U trunk/thirdparty/yui/examples/yuitest/yt-simple-example_clean.html U trunk/thirdparty/yui/index.html U trunk/thirdparty/yui/tests/YUI.html U trunk/thirdparty/yui/tests/animation.html U trunk/thirdparty/yui/tests/autocomplete.html U trunk/thirdparty/yui/tests/calendar.html U trunk/thirdparty/yui/tests/colorpicker.html U trunk/thirdparty/yui/tests/config.html A trunk/thirdparty/yui/tests/cookie.html U trunk/thirdparty/yui/tests/datasource.html U trunk/thirdparty/yui/tests/datatable.html U trunk/thirdparty/yui/tests/datemath.html U trunk/thirdparty/yui/tests/dom.html U trunk/thirdparty/yui/tests/dragdrop.html U trunk/thirdparty/yui/tests/editor.html U trunk/thirdparty/yui/tests/element.html U trunk/thirdparty/yui/tests/imageloader.html U trunk/thirdparty/yui/tests/logger.html A trunk/thirdparty/yui/tests/menu.html U trunk/thirdparty/yui/tests/module.html A trunk/thirdparty/yui/tests/profiler.html A trunk/thirdparty/yui/tests/selector.html U trunk/thirdparty/yui/tests/tabview.html U trunk/thirdparty/yui/tests/yahoo.html U trunk/thirdparty/yui/tests/yuiloader.html U trunk/thirdparty/yui/tests/yuiloader_config.html U trunk/thirdparty/yui/tests/yuiloader_rollup.html U trunk/thirdparty/yui/tests/yuitest.html Change set too large, please see URL above From bknr at bknr.net Sat Jul 19 14:16:31 2008 From: bknr at bknr.net (BKNR Commits) Date: Sat, 19 Jul 2008 16:16:31 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3521 Author: hans URL: http://bknr.net/trac/changeset/3521 Checkpoint. U trunk/projects/quickhoney/src/handlers.lisp U trunk/projects/quickhoney/src/image.lisp A trunk/projects/quickhoney/upgrade-stuff/add-to-cart.gif A trunk/projects/quickhoney/upgrade-stuff/checkout.gif U trunk/projects/quickhoney/upgrade-stuff/import.lisp U trunk/projects/quickhoney/website/static/javascript.js U trunk/projects/quickhoney/website/static/styles.css U trunk/projects/quickhoney/website/templates/index.xml Modified: trunk/projects/quickhoney/src/handlers.lisp =================================================================== --- trunk/projects/quickhoney/src/handlers.lisp 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/src/handlers.lisp 2008-07-19 14:16:31 UTC (rev 3521) @@ -38,32 +38,30 @@ (defclass image-query-js-handler (javascript-handler object-handler) ()) +(defparameter *editable-keywords* '(:explicit :buy-file :buy-print :buy-t-shirt) + "List of keywords that are image keywords which can be edited through the CMS") + (defmethod object-handler-get-object ((handler image-query-js-handler)) (sort (remove-if-not #'(lambda (object) (subtypep (type-of object) 'quickhoney-image)) (get-keywords-intersection-store-images (mapcar #'make-keyword-from-string (decoded-handler-path handler)))) #'< :key #'blob-timestamp)) (defmethod image-to-javascript ((image quickhoney-image)) - (format nil " new parent.ServerImage(~S, ~D, ~S, ~D, ~D, ~S, ~S, ~A)" + (format nil " new parent.ServerImage(~S, ~D, ~S, ~D, ~D, ~S, ~S, ~S, {~{~A~^,~}})" (store-image-name image) (store-object-id image) (image-content-type (blob-mime-type image)) (store-image-width image) (store-image-height image) (or (quickhoney-image-client image) "") + (if (typep image 'quickhoney-animation-image) + (image-content-type (blob-mime-type (quickhoney-animation-image-animation image))) + "") (or (quickhoney-image-spider-keywords image) "") - (if (quickhoney-image-explicit image) "true" "false"))) + (mapcar (lambda (keyword) + (format nil "~(~A~):true" (substitute #\_ #\- (symbol-name keyword)))) + (intersection *editable-keywords* (store-image-keywords image))))) -(defmethod image-to-javascript ((image quickhoney-animation-image)) - (format nil " new parent.ServerImage(~S, ~D, ~S, ~D, ~D, ~S, ~S)" - (store-image-name image) - (store-object-id image) - (image-content-type (blob-mime-type image)) - (store-image-width image) - (store-image-height image) - (or (quickhoney-image-client image) "") - (image-content-type (blob-mime-type (quickhoney-animation-image-animation image))))) - (defmethod layout-to-javascript ((layout layout)) (with-output-to-string (*standard-output*) (format t "[~%") @@ -110,12 +108,20 @@ (defmethod handle-object-form ((handler edit-image-js-handler) action image) (format t "; invalid action ~A or invalid object ~A~%" action image)) +(defun set-image-keywords-from-request-parameters (image) + (setf (store-image-keywords image) + (set-difference (store-image-keywords image) *editable-keywords*)) + (dolist (keyword *editable-keywords*) + (when (query-param (string-downcase (symbol-name keyword))) + (push keyword (store-image-keywords image)))) + (store-image-keywords image)) + (defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :edit)) image) - (with-query-params (client spider-keywords explicit) + (with-query-params (client spider-keywords) (with-transaction (:edit-image) (setf (quickhoney-image-client image) client - (quickhoney-image-spider-keywords image) spider-keywords - (quickhoney-image-explicit image) (when explicit t))) + (quickhoney-image-spider-keywords image) spider-keywords) + (set-image-keywords-from-request-parameters image)) (format *js-stream* "parent.image_edited()~%"))) (defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :delete)) (image quickhoney-image)) Modified: trunk/projects/quickhoney/src/image.lisp =================================================================== --- trunk/projects/quickhoney/src/image.lisp 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/src/image.lisp 2008-07-19 14:16:31 UTC (rev 3521) @@ -6,12 +6,14 @@ :index-reader images-for-client :index-keys all-clients) (spider-keywords :update :initform nil) - (products :update :initform nil) - (explicit :update :initform nil))) + (products :update :initform nil))) (defmethod rss-item-pub-date ((item quickhoney-image)) (blob-timestamp item)) +(defmethod quickhoney-image-explicit ((image quickhoney-image)) + (member :explicit (store-image-keywords image))) + (defmethod rss-item-encoded-content ((image quickhoney-image)) (let* ((category (first (intersection (store-image-keywords image) '(:vector :pixel)))) (is-vector (eq category :vector))) Added: trunk/projects/quickhoney/upgrade-stuff/add-to-cart.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/add-to-cart.gif ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/projects/quickhoney/upgrade-stuff/checkout.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/checkout.gif ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-19 14:16:31 UTC (rev 3521) @@ -3,7 +3,12 @@ (dolist (name '(#p"type-news.png" #p"type-pixel.png" #p"type-shop.png" #p"type-vector.png")) (import-image name :keywords '(:type))) -(dolist (name '(#P"overlay-close.gif" #P"hey.gif" #P"buy.gif" #P"button-bottom.gif")) - (import-image name)) +(dolist (name '(#P"overlay-close.gif" + #P"hey.gif" #P"buy-print.gif" #P"buy-file.gif" #P"buy-t-shirt.gif" + #P"button-bottom.gif" #P"add-to-cart.gif" #P"checkout.gif")) + (handler-case + (import-image name) + (error (e) + (format t "~&; error importing ~S: ~A~%" name e)))) -(import-image #p"news-sep.png") \ No newline at end of file +(import-image #p"news-sep.gif") \ No newline at end of file Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 14:16:31 UTC (rev 3521) @@ -148,7 +148,7 @@ function do_edit() { current_image.client = $("edit_client").value; current_image.spider_keywords = $("edit_keywords").value; - current_image.explicit = $("edit_explicit").checked ? true : false; + current_image.keywords.explicit = $("edit_explicit").checked ? true : false; show_cms_window('saving_edits_form'); // hide edit window until server replies } @@ -254,7 +254,8 @@ var current_subdirectory; var current_image; -function ServerImage(name, id, type, width, height, client, animation_type, spider_keywords, explicit) { +function ServerImage(name, id, type, width, height, client, animation_type, spider_keywords, + keywords) { this.name = name; this.id = id; this.type = type; @@ -263,7 +264,7 @@ this.client = client; this.animation_type = animation_type; this.spider_keywords = spider_keywords; - this.explicit = explicit; + this.keywords = keywords || {}; return this; } @@ -475,33 +476,18 @@ var rules = document.styleSheets[i][document.all ? 'rules' : 'cssRules']; for (var j = 0; j < rules.length; j++) { var rule = rules[j]; - if (rule.selectorText.toLowerCase() == 'a') { + var selectorText = rule.selectorText.toLowerCase(); + if (selectorText == 'a') { rule.style['color'] = '#' + link_color; rule.style['backgroundColor'] = '#' + background_color; - } else if (rule.selectorText == '.text') { + } else if (selectorText == '.text') { rule.style['color'] = '#' + foreground_color; rule.style['backgroundColor'] = '#' + background_color; - } else if (rule.selectorText == 'img.menu') { + } else if (selectorText == 'img.menu') { rule.style['backgroundColor'] = '#' + link_color; } } } - /* - // change menu images - for (var menuname in pages) { - if (menuname == 'home') { - $("m_" + menuname).src = "/image/quickhoney/color,000000," + link_color; - } else { - if (pagename == 'home') { - $("m_" + menuname).src = "/image/" + menuname + "/color,000000,ffffff,ffffff," + link_color; - } else if (pagename == menuname) { - $("m_" + menuname).src = "/image/" + menuname + "/color,000000," + link_color; - } else { - $("m_" + menuname).src = "/image/" + menuname + "/color,000000,ffffff,ffffff," + link_color; - } - } - } - */ } function display_cms_window() { @@ -1008,7 +994,7 @@ $("edit_form_element").setAttribute("action", "/edit-image-js/" + current_image.id); $("edit_client").value = current_image.client; $("edit_keywords").value = current_image.spider_keywords; - $("edit_explicit").checked = current_image.explicit ? "checked" : null; + $("edit_explicit").checked = current_image.keywords.explicit ? "checked" : null; show_cms_window("edit_form"); } } @@ -1102,22 +1088,6 @@ } } -function initEditor() -{ - tinyMCE.init({ - mode: 'textareas', - editor_selector: 'mce_editor', - theme: "advanced", - theme_advanced_buttons1: "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink", - theme_advanced_buttons2: "", - theme_advanced_buttons3: "", - theme_advanced_toolbar_location: "top", - theme_advanced_toolbar_align: "left", - theme_advanced_statusbar_location: "bottom", - extended_valid_elements: "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]" - }); -} - function enable_debuger() { want_debugger = true; @@ -1164,8 +1134,6 @@ safari_compatibility_hack(); } - initEditor(); - debug('init - done'); // setTimeout("preload_menu_images();", 100); @@ -1241,12 +1209,12 @@ function recolored_image_path(name) { - return '/image/' + name + '/color,000000,' + pages[current_directory].colors[2]; + return '/image/' + name + '/color,ff00ff,' + pages[current_directory].colors[2]; } -function make_image_action_button(name, action) +function make_image_action_button(name, action, height) { - var div = DIV(null, IMG({ src: recolored_image_path(name), width: 60, height: 23 })); + var div = DIV(null, IMG({ src: recolored_image_path(name), width: 126, height: height })); div.onclick = function() { action(); return false; }; return div; } @@ -1255,9 +1223,18 @@ { var buttons = []; if (1 || current_image.download_product) { - buttons.push(make_image_action_button('buy', make_buy_form)); + buttons.push(make_image_action_button('buy-file', make_buy_form, 22)); } - buttons.push(make_image_action_button('hey', make_hey_form)); - buttons.push(DIV(null, IMG({ src: recolored_image_path('button-bottom'), width: 60, height: 1 }))); + buttons.push(make_image_action_button('hey', make_hey_form, 23)); replaceChildNodes('image_action_buttons', buttons); + $('image_action_buttons').onmouseover = function () { + var e = $('image_action_buttons'); + e.style.left = '518px'; + e.style.width = '126px'; + } + $('image_action_buttons').onmouseout = function () { + var e = $('image_action_buttons'); + e.style.left = '584px'; + e.style.width = '60px'; + } } \ No newline at end of file Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-19 14:16:31 UTC (rev 3521) @@ -515,6 +515,8 @@ position: absolute; left: 584px; top: 32px; + width: 60px; + overflow: hidden; z-index: 100; } Modified: trunk/projects/quickhoney/website/templates/index.xml =================================================================== --- trunk/projects/quickhoney/website/templates/index.xml 2008-07-19 11:42:24 UTC (rev 3520) +++ trunk/projects/quickhoney/website/templates/index.xml 2008-07-19 14:16:31 UTC (rev 3521) @@ -13,8 +13,6 @@ - - - - + + + + + + QuickHoney From bknr at bknr.net Sun Jul 20 07:35:09 2008 From: bknr at bknr.net (BKNR Commits) Date: Sun, 20 Jul 2008 09:35:09 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/src/handlers.lisp Message-ID: Revision: 3527 Author: hans URL: http://bknr.net/trac/changeset/3527 Remove cruft U trunk/projects/quickhoney/src/handlers.lisp Modified: trunk/projects/quickhoney/src/handlers.lisp =================================================================== --- trunk/projects/quickhoney/src/handlers.lisp 2008-07-20 06:57:11 UTC (rev 3526) +++ trunk/projects/quickhoney/src/handlers.lisp 2008-07-20 07:35:09 UTC (rev 3527) @@ -119,10 +119,8 @@ (with-transaction (:edit-image) (setf (quickhoney-image-client image) client (quickhoney-image-spider-keywords image) spider-keywords - (store-image-keywords image) - (append (set-difference (store-image-keywords image) *editable-keywords*) - (image-keywords-from-request-parameters))) - (set-image-keywords-from-request-parameters image)) + (store-image-keywords image) (append (set-difference (store-image-keywords image) *editable-keywords*) + (image-keywords-from-request-parameters)))) (format *js-stream* "parent.image_edited()~%"))) (defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :delete)) (image quickhoney-image)) From bknr at bknr.net Sun Jul 20 12:06:10 2008 From: bknr at bknr.net (BKNR Commits) Date: Sun, 20 Jul 2008 14:06:10 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3528 Author: hans URL: http://bknr.net/trac/changeset/3528 checkpoint once more A trunk/projects/quickhoney/upgrade-stuff/buy-right-line.gif U trunk/projects/quickhoney/upgrade-stuff/import.lisp U trunk/projects/quickhoney/website/static/javascript.js U trunk/projects/quickhoney/website/static/styles.css Added: trunk/projects/quickhoney/upgrade-stuff/buy-right-line.gif =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/buy-right-line.gif ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 07:35:09 UTC (rev 3527) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 12:06:10 UTC (rev 3528) @@ -6,6 +6,7 @@ (dolist (name '(#P"overlay-close.gif" #P"hey.gif" #P"buy.gif" #P"buy_print.gif" #P"buy_file.gif" #P"buy_t_shirt.gif" + #P"buy-right-line.gif" #P"button-bottom.gif" #P"add-to-cart.gif" #P"checkout.gif")) (handler-case (import-image name) Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 07:35:09 UTC (rev 3527) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 12:06:10 UTC (rev 3528) @@ -1231,9 +1231,11 @@ { var buttons = []; var buyable = false; + var height = 23; map(function (keyword) { if (current_image.keywords[keyword]) { buyable = true; + height += 22; buttons.push(make_image_action_button(keyword, make_buy_form, 22)); } }, ['buy_file', 'buy_print', 'buy_t_shirt']); @@ -1242,6 +1244,7 @@ if (buyable) { appendChildNodes('image_action_buttons', IMG({ id: 'buy', src: recolored_image_path('buy'), width: 127, height: 22})); } + appendChildNodes('image_action_buttons', IMG({ id: 'buy-right-line', src: recolored_image_path('buy-right-line'), width: 1, height: height})); $('image_action_buttons').onmouseover = function () { (new YAHOO.util.Anim('image_action_buttons', { left: { to: 518 }, width: { to: 127 } }, .3, YAHOO.util.Easing.easeBoth)) Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-20 07:35:09 UTC (rev 3527) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-20 12:06:10 UTC (rev 3528) @@ -527,6 +527,14 @@ top: 0px; } +#image_action_buttons #buy-right-line { + z-index: 200; + position: absolute; + left: 60px; + top: 0px; +} + + #overlay #hey { padding: 10px 15px 10px 10px; } From bknr at bknr.net Sun Jul 20 15:10:00 2008 From: bknr at bknr.net (BKNR Commits) Date: Sun, 20 Jul 2008 17:10:00 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3529 Author: hans URL: http://bknr.net/trac/changeset/3529 Checkpoint hey/buy box, working mostly U trunk/projects/quickhoney/src/handlers.lisp A trunk/projects/quickhoney/upgrade-stuff/buy-file.gif A trunk/projects/quickhoney/upgrade-stuff/buy-print.gif U trunk/projects/quickhoney/upgrade-stuff/buy-right-line.gif A trunk/projects/quickhoney/upgrade-stuff/buy-t-shirt.gif D trunk/projects/quickhoney/upgrade-stuff/buy_file.gif D trunk/projects/quickhoney/upgrade-stuff/buy_print.gif D trunk/projects/quickhoney/upgrade-stuff/buy_t_shirt.gif U trunk/projects/quickhoney/upgrade-stuff/import.lisp U trunk/projects/quickhoney/website/static/javascript.js U trunk/projects/quickhoney/website/static/styles.css U trunk/projects/quickhoney/website/templates/index.xml Modified: trunk/projects/quickhoney/src/handlers.lisp =================================================================== --- trunk/projects/quickhoney/src/handlers.lisp 2008-07-20 12:06:10 UTC (rev 3528) +++ trunk/projects/quickhoney/src/handlers.lisp 2008-07-20 15:10:00 UTC (rev 3529) @@ -59,7 +59,7 @@ "") (or (quickhoney-image-spider-keywords image) "") (mapcar (lambda (keyword) - (format nil "~(~A~):true" (substitute #\_ #\- (symbol-name keyword)))) + (format nil "'~(~A~)':true" (symbol-name keyword))) (intersection *editable-keywords* (store-image-keywords image))))) (defmethod layout-to-javascript ((layout layout)) Copied: trunk/projects/quickhoney/upgrade-stuff/buy-file.gif (from rev 3527, trunk/projects/quickhoney/upgrade-stuff/buy_file.gif) =================================================================== (Binary files differ) Copied: trunk/projects/quickhoney/upgrade-stuff/buy-print.gif (from rev 3527, trunk/projects/quickhoney/upgrade-stuff/buy_print.gif) =================================================================== (Binary files differ) Modified: trunk/projects/quickhoney/upgrade-stuff/buy-right-line.gif =================================================================== (Binary files differ) Copied: trunk/projects/quickhoney/upgrade-stuff/buy-t-shirt.gif (from rev 3527, trunk/projects/quickhoney/upgrade-stuff/buy_t_shirt.gif) =================================================================== (Binary files differ) Deleted: trunk/projects/quickhoney/upgrade-stuff/buy_file.gif =================================================================== (Binary files differ) Deleted: trunk/projects/quickhoney/upgrade-stuff/buy_print.gif =================================================================== (Binary files differ) Deleted: trunk/projects/quickhoney/upgrade-stuff/buy_t_shirt.gif =================================================================== (Binary files differ) Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 12:06:10 UTC (rev 3528) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 15:10:00 UTC (rev 3529) @@ -5,7 +5,7 @@ (dolist (name '(#P"overlay-close.gif" #P"hey.gif" - #P"buy.gif" #P"buy_print.gif" #P"buy_file.gif" #P"buy_t_shirt.gif" + #P"buy.gif" #P"buy-print.gif" #P"buy-file.gif" #P"buy-t-shirt.gif" #P"buy-right-line.gif" #P"button-bottom.gif" #P"add-to-cart.gif" #P"checkout.gif")) (handler-case Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 12:06:10 UTC (rev 3528) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 15:10:00 UTC (rev 3529) @@ -633,7 +633,6 @@ function set_button_images(_button_images) { - debug('set_button_images'); button_images = _button_images; if (current_directory == 'home' @@ -1002,7 +1001,7 @@ $("edit_keywords").value = current_image.spider_keywords; map(function(keyword) { $('edit_' + keyword).checked = current_image.keywords[keyword] ? true : false; - }, ['explicit', 'buy_file', 'buy_print', 'buy_t_shirt']); + }, ['explicit', 'buy-file', 'buy-print', 'buy-t-shirt']); show_cms_window("edit_form"); } } @@ -1238,21 +1237,21 @@ height += 22; buttons.push(make_image_action_button(keyword, make_buy_form, 22)); } - }, ['buy_file', 'buy_print', 'buy_t_shirt']); + }, ['buy-file', 'buy-print', 'buy-t-shirt']); buttons.push(make_image_action_button('hey', make_hey_form, 23)); replaceChildNodes('image_action_buttons', buttons); if (buyable) { appendChildNodes('image_action_buttons', IMG({ id: 'buy', src: recolored_image_path('buy'), width: 127, height: 22})); } appendChildNodes('image_action_buttons', IMG({ id: 'buy-right-line', src: recolored_image_path('buy-right-line'), width: 1, height: height})); + var animator = new YAHOO.util.Anim('image_action_buttons', {}, .3, + YAHOO.util.Easing.easeBoth); $('image_action_buttons').onmouseover = function () { - (new YAHOO.util.Anim('image_action_buttons', { left: { to: 518 }, width: { to: 127 } }, .3, - YAHOO.util.Easing.easeBoth)) - .animate(); + animator.attributes = { width: { to: 127 }, left: { to: 518 } }; + animator.animate(); } $('image_action_buttons').onmouseout = function () { - (new YAHOO.util.Anim('image_action_buttons', { left: { to: 584 }, width: { to: 60 } }, .3, - YAHOO.util.Easing.easeBoth)) - .animate(); + animator.attributes = { width: { to: 60 }, left: { to: 584 } }; + animator.animate(); } } \ No newline at end of file Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-20 12:06:10 UTC (rev 3528) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-20 15:10:00 UTC (rev 3529) @@ -487,6 +487,8 @@ #overlay { z-index: 100; + top: 144px; + left: 36px; position: absolute; background: white; border: 1px solid #000000; @@ -514,7 +516,7 @@ #image_action_buttons { position: absolute; left: 584px; - top: 32px; + top: 28px; width: 60px; overflow: hidden; z-index: 100; @@ -528,9 +530,9 @@ } #image_action_buttons #buy-right-line { - z-index: 200; + z-index: 100; position: absolute; - left: 60px; + right: 0px; top: 0px; } Modified: trunk/projects/quickhoney/website/templates/index.xml =================================================================== --- trunk/projects/quickhoney/website/templates/index.xml 2008-07-20 12:06:10 UTC (rev 3528) +++ trunk/projects/quickhoney/website/templates/index.xml 2008-07-20 15:10:00 UTC (rev 3529) @@ -50,16 +50,20 @@
    From bknr at bknr.net Sun Jul 20 23:07:22 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 01:07:22 +0200 Subject: [bknr-cvs] hans changed trunk/projects/quickhoney/ Message-ID: Revision: 3530 Author: hans URL: http://bknr.net/trac/changeset/3530 Checkpoint sale overlay windows. U trunk/projects/quickhoney/upgrade-stuff/import.lisp A trunk/projects/quickhoney/upgrade-stuff/print-sample.jpg U trunk/projects/quickhoney/website/static/javascript.js U trunk/projects/quickhoney/website/static/styles.css A trunk/projects/quickhoney/website/static/user-agreement.html U trunk/projects/quickhoney/website/templates/index.xml Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 15:10:00 UTC (rev 3529) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-20 23:07:21 UTC (rev 3530) @@ -7,6 +7,7 @@ #P"hey.gif" #P"buy.gif" #P"buy-print.gif" #P"buy-file.gif" #P"buy-t-shirt.gif" #P"buy-right-line.gif" + #P"print-sample.jpg" #P"button-bottom.gif" #P"add-to-cart.gif" #P"checkout.gif")) (handler-case (import-image name) Added: trunk/projects/quickhoney/upgrade-stuff/print-sample.jpg =================================================================== (Binary files differ) Property changes on: trunk/projects/quickhoney/upgrade-stuff/print-sample.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 15:10:00 UTC (rev 3529) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-20 23:07:21 UTC (rev 3530) @@ -1175,6 +1175,7 @@ function make_overlay(id, title, width) { + log('make_overlay ' + id); var overlay = $('overlay'); overlay.className = current_directory; replaceChildNodes(overlay, @@ -1210,8 +1211,67 @@ $('hey_send').onclick = hey_send; } -function make_buy_form() +NOTICE = partial(SPAN, { class: 'notice' }); +PRICE = partial(SPAN, { class: 'price' }); +SPACER = partial(DIV, { class: 'spacer' }); +ARTWORK_NAME = partial(SPAN, { class: 'artwork-name' }); + +var make_buy_forms = { + 'buy-file' : function () { + make_overlay('buy-file', 'Buy Art as Vector PDF File', 426, + FORM({ method: 'POST', action: '#' }, + SPACER("Download Artwork ", ARTWORK_NAME(current_image.name), " for one-time private use only. ", + "Please read our ", + A({ href: '/static/user-agreement.html', target: 'user-agreement' }, "User Agreement"), + " and tick the box below to indicate that you agree to be bound to it.", + BR(), BR(), + INPUT({ type: 'checkbox', name: 'agree-to-license'}), + " I have read and understood the 'User Agreement' and agree to be bound to the terms set forth in it", + BR(), BR(), + PRICE('45 ???'), NOTICE(' (inside EU, incl. tax)*'), BR(), + PRICE('37.82 ???'), NOTICE(' (outside EU, tax free)*'), BR(), + BUTTON(null, IMG({ src: '/image/add-to-cart', width: 102, height: 40 })), + BR(), BR(), + NOTICE("Please note: Our shop is operating from Germany, that's why there is a sales tax within Europe and none outside")))); + }, + 'buy-print' : function () { + make_overlay('buy-print', 'Buy Art Floating Gallery Plexiglas', 426, + FORM({ method: 'POST', action: '#' }, + SPACER("Fineart print mounted behind plexiglas on aluminium board with a 3/4'' wood brace.", + NOTICE('Please allow 4-6 days for production in addition to the shipping time')), + IMG({ src: '/image/print-sample', width: 426, height: 428 }), + SPACER(ARTWORK_NAME(current_image.name), + TABLE(null, + TBODY(null, + TR(null, + TD(null, INPUT({ type: "radio", name: "size", value: "small"})), + TD(null, + "Small 20cm x 30cm (7.8'' x 11.8'')", BR(), + PRICE('150 ???'), NOTICE(' (inside EU, incl. tax)*'), BR(), + PRICE('128.32 ???'), NOTICE(' (outside EU, tax free)*'), BR())), + TR(null, + TD(null, INPUT({ type: "radio", name: "size", value: "large"})), + TD(null, + "Small 33cm x 50cm (13'' x 19.7'')", BR(), + PRICE('190 ???'), NOTICE('(inside EU, incl. tax)*'), BR(), + PRICE('159.66 ???'), NOTICE('(outside EU, tax free)*'), BR())))), + BUTTON(null, IMG({ src: '/image/add-to-cart', width: 102, height: 40 })), + BR(), BR(), + NOTICE("Please note: We are shipping from Germany, that's why there is a sales tax within Europe and none outside")))); + }, + 'buy-t-shirt' : function () { + } +}; + +function make_buy_form(keyword) { + log('make_buy_form: ' + keyword); + try { + make_buy_forms[keyword](); + } + catch (e) { + log("error caught while creating buy form: " + e); + } } function recolored_image_path(name) @@ -1235,7 +1295,7 @@ if (current_image.keywords[keyword]) { buyable = true; height += 22; - buttons.push(make_image_action_button(keyword, make_buy_form, 22)); + buttons.push(make_image_action_button(keyword, partial(make_buy_form, keyword), 22)); } }, ['buy-file', 'buy-print', 'buy-t-shirt']); buttons.push(make_image_action_button('hey', make_hey_form, 23)); Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-20 15:10:00 UTC (rev 3529) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-20 23:07:21 UTC (rev 3530) @@ -547,4 +547,16 @@ #overlay #hey #hey_send { margin-top: 5px; +} + +#overlay span.notice { + color: #999999; +} + +#overlay span.price { + color: #33cc00; +} + +#overlay div.spacer { + padding: 12px; } \ No newline at end of file Added: trunk/projects/quickhoney/website/static/user-agreement.html =================================================================== --- trunk/projects/quickhoney/website/static/user-agreement.html (rev 0) +++ trunk/projects/quickhoney/website/static/user-agreement.html 2008-07-20 23:07:21 UTC (rev 3530) @@ -0,0 +1,176 @@ + + + QuickHoney End User License Agreement + + +

    End User License Agreement

    +

    + Christart, Inc. +

    +

    + End User License Agreement +

    +

    + We are willing to license this Product to you on the condition + that you accept all of the terms of this License Agreement. +

    +

    + Read This Agreement Carefully +

    +

    + This is a license not a sale. We continue to own the stock files + and/or other content provided to you on this website. This + product is provided under the terms of the following license + agreement which states what you may and may not do with the + product and contains limitations on warranties and remedies. +

    +

    + Permitted Uses +

    +

    + We, Christart, Inc., hereby grant to you, the customer, a + non-exclusive License to use this Product on the terms and + conditions of this License agreement. Unless the activity is + expressly permitted, you cannot do it. +

    +

    + Stock File Product +

    +

    + 'Stock File' means any illustration, photograph, digital + animation, video, or other visual representation recorded in any + digital format that is included in any Stock File Product. You + may: +

    +

    + * Make modifications or derivative works of any Stock Files + ('Derivative Works'); +

    +

    + * Use the Stock File(s) or Derivative Work(s) in any + advertising, promotional material, broadcast media (video, + television, motion picture), web site, and for-sale products in + any quantity, provided the finished product(s) is designed for + viewing purposes only and is not designed or intended for re-use + in any on-line distribution system (including your web page); +

    +

    + * Provide a temporary copy to others of those Stock Files and + Derivative Works which are an integral part of your work product + and reasonably required to produce a finished product in the + normal course of your workflow; and +

    +

    + * Make one copy of the Stock File Product for backup or archival + purposes. +

    +

    + Prohibited Uses +

    +

    + You may not do anything with this Product that is not expressly + permitted. In addition, you may not: +

    +

    + * Use any backup or archival copy for any purpose other than to + replace an original copy if it is destroyed or becomes + defective; +

    +

    + * Use or permit the use of the Product, or any part thereof, in + or in association with fraudulent, pornographic, defamatory, + immoral, infringing or illegal material; +

    +

    + * Use or permit the use of the Product, or any part thereof, as + a trademark or service mark, or claim any proprietary rights of + any sort in the Product, or any part thereof; +

    +

    + * Sell, sublicense, distribute or otherwise grant rights or make + available for use by others all or a portion of the Product or + Derivative Work(s) in form or formats designed or intended for + re-use of the Stock File(s) or Derivative Work(s); and +

    +

    + * Make some or all of the Product available on your web page as + a separate or downloadable reusable file, or disassemble, + decompile or 'unlock', reverse engineer, translate or otherwise + decode the Product for any reason. +

    +

    + Copyright +

    +

    + CHRISTART, INC. and its suppliers own the Product, and its + structure, organization and code are the valuable trade secrets + of CHRISTART, INC. and its suppliers. Copyright also protects + the Product. You must treat the Product just as you would any + other copyrighted material, such as a book. Trademarks shall be + used in accordance with accepted trademark practice, including + identification of trademark owner's name. Trademarks can only be + used to identify printed or electronic output produced by the + Product. Such use of any trademark does not give you any rights + of ownership in that trademark. Except as stated above, this + License does not grant you any intellectual property rights in + the Product. Unpublished rights are reserved. Transfer +

    +

    + You may not rent, lease, sublicense or lend the Product, or a + copy thereof, to another person or legal entity that is not also + a licensee. You may, however, transfer all your rights to use + the Product to another person or legal entity, provided that (i) + you transfer all components of the Product and this License, + including all copies, updates and prior versions, (except work + Product incorporated into finished Product as permitted under + this License), to such person or entity, (ii) that you retain no + copies, including copies stored on a computer or other storage + device, and (iii) the receiving party agrees to be bound by the + terms and conditions of this License. +

    +

    + Governing Law and General Provisions +

    +

    + This License will be governed by the laws in force in the State + of Florida, USA, excluding the application of its conflicts of + law rules. This License will not be governed by the United + Nations Convention on Contracts for the International Sale of + Goods, the application of which is expressly excluded. If any + part of this License is found void and unenforceable, it will + not affect the validity of the balance of the License, which + shall remain valid and enforceable according to its terms. You + agree that the Product will not be shipped, transferred or + exported into any country or used in any manner prohibited by + the United States Export Administration Act or any other + applicable export laws, restrictions or regulations. This + License shall automatically terminate upon failure by you to + comply with its terms. This License may only be modified in + writing signed by an authorized officer of CHRISTART, INC. +

    +

    + Notice to U.S. Government End Users +

    +

    + The Product and all its components are 'Commercial Items,' as + that term is defined at 48 C.F.R. S2.101, consisting of + 'Commercial Computer Software' and 'Commercial Computer Software + Documentation,' as such terms are used in 48 C.F.R. S12.212 or + 48 C.F.R. S227.7202, as applicable. Consistent with 48 + C.F.R. S12.212 or 48 C.F.R. SS227.7202-1 through 227.7202-4, as + applicable, the Commercial Computer Software and Commercial + Computer Software Documentation are being Licensed to + U.S. Government end users (A) only as Commercial Items and (B) + with only those rights as are granted to all other end users + pursuant to the terms and conditions herein. +

    +

    + CHRISTART, INC. +

    +

    + ? 2008 Christart, Inc. +

    +

    + Christian Clipart +

    + Modified: trunk/projects/quickhoney/website/templates/index.xml =================================================================== --- trunk/projects/quickhoney/website/templates/index.xml 2008-07-20 15:10:00 UTC (rev 3529) +++ trunk/projects/quickhoney/website/templates/index.xml 2008-07-20 23:07:21 UTC (rev 3530) @@ -9,12 +9,12 @@ - - - - - - + + + + + + QuickHoney From bknr at bknr.net Mon Jul 21 08:40:18 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 10:40:18 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3531 Author: ksprotte URL: http://bknr.net/trac/changeset/3531 more dictionary entries for Satellite Images U trunk/projects/bos/payment-website/templates/da/dictionary.xml U trunk/projects/bos/payment-website/templates/de/dictionary.xml U trunk/projects/bos/payment-website/templates/en/dictionary.xml U trunk/projects/bos/web/kml-handlers.lisp Modified: trunk/projects/bos/payment-website/templates/da/dictionary.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/dictionary.xml 2008-07-20 23:07:21 UTC (rev 3530) +++ trunk/projects/bos/payment-website/templates/da/dictionary.xml 2008-07-21 08:40:18 UTC (rev 3531) @@ -7,6 +7,9 @@ Squaremetre Area + Sat-ImagesSatellitenbilder + sat-oldSatellitenbild von 2000 + sat-2002Satellitenbild von 2002 sat-2007Satellitenbild von 2007 POIsPoints of Interest Modified: trunk/projects/bos/payment-website/templates/de/dictionary.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/dictionary.xml 2008-07-20 23:07:21 UTC (rev 3530) +++ trunk/projects/bos/payment-website/templates/de/dictionary.xml 2008-07-21 08:40:18 UTC (rev 3531) @@ -8,6 +8,9 @@ Squaremetre AreaQuadratmetergebiet + Sat-ImagesSatellitenbilder + sat-oldSatellitenbild von 2000 + sat-2002Satellitenbild von 2002 sat-2007Satellitenbild von 2007 POIsInteressante Orte Modified: trunk/projects/bos/payment-website/templates/en/dictionary.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/dictionary.xml 2008-07-20 23:07:21 UTC (rev 3530) +++ trunk/projects/bos/payment-website/templates/en/dictionary.xml 2008-07-21 08:40:18 UTC (rev 3531) @@ -1,5 +1,8 @@ + Sat-ImagesSatellite Images + sat-oldSatellite Image 2000 + sat-2002Satellite Image 2002 sat-2007Satellite Image 2007 POIsPoints of Interest Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-20 23:07:21 UTC (rev 3530) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-21 08:40:18 UTC (rev 3531) @@ -84,7 +84,7 @@ (with-element "tilt" (text "0")) (with-element "heading" (text "1.391362238653075"))) (with-element "Folder" - (attribute "name" "Sat-Images") + (attribute "name" (dictionary-entry "Sat-Images" lang)) (attribute "open" "1") (with-element "Style" (with-element "ListStyle" From bknr at bknr.net Mon Jul 21 08:51:47 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 10:51:47 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/ Message-ID: Revision: 3532 Author: ksprotte URL: http://bknr.net/trac/changeset/3532 sat-images are now sorted by year in GE menu U trunk/projects/bos/web/kml-handlers.lisp U trunk/projects/bos/web/sat-tree.lisp Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-21 08:40:18 UTC (rev 3531) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-21 08:51:47 UTC (rev 3532) @@ -89,7 +89,8 @@ (with-element "Style" (with-element "ListStyle" (with-element "listItemType" (text "radioFolder")))) - (dolist (sat-layer (class-instances 'sat-layer)) + (dolist (sat-layer (sort (copy-list (class-instances 'sat-layer)) + #'< :key #'year)) (kml-network-link (format nil "http://~a/sat-root-kml?name=~A" (website-host) (name sat-layer)) :rect (geo-box-rectangle *m2-geo-box*) :lod '(:min 0 :max -1) Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-21 08:40:18 UTC (rev 3531) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-21 08:51:47 UTC (rev 3532) @@ -7,6 +7,7 @@ ((name :reader name :initarg :name :index-type unique-index :index-reader find-sat-layer) + (year :accessor year :initarg :year :initform 2000) (geo-box :reader geo-box :initarg :geo-box) (local-draw-order :reader local-draw-order :initarg :local-draw-order))) From bknr at bknr.net Mon Jul 21 09:18:46 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 11:18:46 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/static/kml-root- Message-ID: Revision: 3533 Author: ksprotte URL: http://bknr.net/trac/changeset/3533 added kml-root-*.kml in 3 languages to static A trunk/projects/bos/payment-website/static/kml-root-da.kml A trunk/projects/bos/payment-website/static/kml-root-de.kml A trunk/projects/bos/payment-website/static/kml-root-en.kml Added: trunk/projects/bos/payment-website/static/kml-root-da.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-da.kml (rev 0) +++ trunk/projects/bos/payment-website/static/kml-root-da.kml 2008-07-21 09:18:46 UTC (rev 3533) @@ -0,0 +1,159 @@ + + + + BOS [da] + + 116.988156014724 + -1.045791509671129 + 0 + 1134.262777389377 + 0 + 1.391362238653075 + + + + + Satellitenbild von 2000 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-old + onRegion + + + + Satellitenbild von 2002 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2002 + onRegion + + + + Satellitenbild von 2007 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2007 + onRegion + + + + + Squaremetre Area + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 16 + -1 + + + + + http://test.createrainforest.org/contract-tree-kml?lang=da + onRegion + + + + Points of Interest + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/poi-kml-all?lang=da + onRegion + + + + Country-Stats + + + http://test.createrainforest.org/country-stats?lang=da + onRegion + + + + Added: trunk/projects/bos/payment-website/static/kml-root-de.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-de.kml (rev 0) +++ trunk/projects/bos/payment-website/static/kml-root-de.kml 2008-07-21 09:18:46 UTC (rev 3533) @@ -0,0 +1,159 @@ + + + + BOS [de] + + 116.988156014724 + -1.045791509671129 + 0 + 1134.262777389377 + 0 + 1.391362238653075 + + + + + Satellitenbild von 2000 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-old + onRegion + + + + Satellitenbild von 2002 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2002 + onRegion + + + + Satellitenbild von 2007 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2007 + onRegion + + + + + Quadratmetergebiet + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 16 + -1 + + + + + http://test.createrainforest.org/contract-tree-kml?lang=de + onRegion + + + + Interessante Orte + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/poi-kml-all?lang=de + onRegion + + + + L??nderstatistik + + + http://test.createrainforest.org/country-stats?lang=de + onRegion + + + + Added: trunk/projects/bos/payment-website/static/kml-root-en.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-en.kml (rev 0) +++ trunk/projects/bos/payment-website/static/kml-root-en.kml 2008-07-21 09:18:46 UTC (rev 3533) @@ -0,0 +1,159 @@ + + + + BOS [en] + + 116.988156014724 + -1.045791509671129 + 0 + 1134.262777389377 + 0 + 1.391362238653075 + + + + + Satellite Image 2000 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-old + onRegion + + + + Satellite Image 2002 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2002 + onRegion + + + + Satellite Image 2007 + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/sat-root-kml?name=sat-2007 + onRegion + + + + + Squaremetre Area + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 16 + -1 + + + + + http://test.createrainforest.org/contract-tree-kml?lang=en + onRegion + + + + Points of Interest + + + -0.99429530972988680000 + -1.09200673645699940000 + 117.02245623511905000000 + 116.92538417241805000000 + + + 0 + -1 + + + + + http://test.createrainforest.org/poi-kml-all?lang=en + onRegion + + + + Country-Stats + + + http://test.createrainforest.org/country-stats?lang=en + onRegion + + + + From bknr at bknr.net Mon Jul 21 09:20:25 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 11:20:25 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/cl-qprint/base.lisp Message-ID: Revision: 3534 Author: hans URL: http://bknr.net/trac/changeset/3534 update cl-qprint to version 0.2.1 U trunk/thirdparty/cl-qprint/base.lisp Modified: trunk/thirdparty/cl-qprint/base.lisp =================================================================== --- trunk/thirdparty/cl-qprint/base.lisp 2008-07-21 09:18:46 UTC (rev 3533) +++ trunk/thirdparty/cl-qprint/base.lisp 2008-07-21 09:20:25 UTC (rev 3534) @@ -68,7 +68,7 @@ (princ #\linefeed stream)) -(defun encode (input &key encode-newlines) +(defun encode (input &key columns encode-newlines) "INPUT must be either a string or a stream. Reads from INPUT and produces a quoted-printable encoded string" (let ((out-stream (make-string-output-stream)) @@ -86,7 +86,8 @@ (get-output-stream-string out-stream)) ;; Put in a soft line break if the line's gotten too long - (when (>= (- position last-line-break) 74) + (when (and columns + (>= (- position last-line-break) (1- columns))) (princ #\= out-stream) (cr-lf out-stream) (setf last-line-break position)) From bknr at bknr.net Mon Jul 21 14:58:36 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 16:58:36 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/Makefile Message-ID: Revision: 3535 Author: ksprotte URL: http://bknr.net/trac/changeset/3535 added Makefile 'start' target for bos U trunk/projects/bos/Makefile Modified: trunk/projects/bos/Makefile =================================================================== --- trunk/projects/bos/Makefile 2008-07-21 09:20:25 UTC (rev 3534) +++ trunk/projects/bos/Makefile 2008-07-21 14:58:36 UTC (rev 3535) @@ -19,6 +19,10 @@ .PHONY: clean clean: cleancore +.PHONY: start +start: bos.core + sbcl --core bos.core --eval '(start)' + # TAGS TAGS: find . -name '*.lisp' | xargs etags -a From bknr at bknr.net Mon Jul 21 15:08:54 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 17:08:54 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/allocation-cache.lisp Message-ID: Revision: 3536 Author: ksprotte URL: http://bknr.net/trac/changeset/3536 small indentation fix U trunk/projects/bos/m2/allocation-cache.lisp Modified: trunk/projects/bos/m2/allocation-cache.lisp =================================================================== --- trunk/projects/bos/m2/allocation-cache.lisp 2008-07-21 14:58:36 UTC (rev 3535) +++ trunk/projects/bos/m2/allocation-cache.lisp 2008-07-21 15:08:54 UTC (rev 3536) @@ -257,8 +257,8 @@ (defclass allocation-cache-subsystem () ()) -(defmethod bknr.datastore::restore-subsystem - (store (subsystem allocation-cache-subsystem) &key until) +(defmethod bknr.datastore::restore-subsystem (store (subsystem allocation-cache-subsystem) + &key until) (declare (ignore until)) (rebuild-cache) (bos.m2::invoke-store-transient-init-functions)) From bknr at bknr.net Mon Jul 21 15:14:13 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 17:14:13 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/ Message-ID: Revision: 3537 Author: ksprotte URL: http://bknr.net/trac/changeset/3537 bos: created new subsystem: initialization-subsystem U trunk/projects/bos/m2/bos.m2.asd A trunk/projects/bos/m2/initialization-subsystem.lisp U trunk/projects/bos/m2/m2-store.lisp U trunk/projects/bos/m2/m2.lisp Modified: trunk/projects/bos/m2/bos.m2.asd =================================================================== --- trunk/projects/bos/m2/bos.m2.asd 2008-07-21 15:08:54 UTC (rev 3536) +++ trunk/projects/bos/m2/bos.m2.asd 2008-07-21 15:14:13 UTC (rev 3537) @@ -13,7 +13,8 @@ (:file "tiled-index" :depends-on ("config")) (:file "mail-generator" :depends-on ("config")) (:file "make-certificate" :depends-on ("config")) - (:file "m2-store" :depends-on ("packages" "utils")) + (:file "initialization-subsystem" :depends-on ("packages")) + (:file "m2-store" :depends-on ("packages" "utils")) (:file "m2" :depends-on ("tiled-index" "utils" "make-certificate" Added: trunk/projects/bos/m2/initialization-subsystem.lisp =================================================================== --- trunk/projects/bos/m2/initialization-subsystem.lisp (rev 0) +++ trunk/projects/bos/m2/initialization-subsystem.lisp 2008-07-21 15:14:13 UTC (rev 3537) @@ -0,0 +1,70 @@ +(in-package :bos.m2) + +;;; store-transient-init-functions +;;; +;;; Allows for registering transient init functions that +;;; will be called after each restore of m2-store + +(defvar *store-transient-init-functions* nil) +(defvar *store-transient-init-constraints* nil) + +(defun register-store-transient-init-function (init-function &rest dependencies) + "Register INIT-FUNCTION (a function-name) to be called after +each restore of m2-store. Optionally, names of other +init-functions can be specified as DEPENDENCIES. The specified +INIT-FUNCTION will only be called after all of its DEPENDENCIES +have been called." + (labels ((ignorant-tie-breaker (choices reverse-partial-solution) + (declare (ignore reverse-partial-solution)) + ;; we dont care about making any particular choice here - + ;; this would be different for computing the class + ;; precedence list, for which the topological-sort used here + ;; was originally intended + (first choices)) + (build-constraints () + (loop for dependency in dependencies + collect (cons dependency init-function)))) + (check-type init-function symbol) + (dolist (dependency dependencies) + (check-type dependency symbol)) + (let (new-store-transient-init-functions + new-store-transient-init-constraints) + (let ((constraints (build-constraints)) + ;; dont know yet whether we have a circular dependency - so + ;; we want to be able to abort without changes + (*store-transient-init-functions* *store-transient-init-functions*) + (*store-transient-init-constraints* *store-transient-init-constraints*)) + (pushnew init-function *store-transient-init-functions*) + (dolist (dependency dependencies) + (pushnew dependency *store-transient-init-functions*)) + (dolist (constraint constraints) + (pushnew constraint *store-transient-init-constraints* :test #'equal)) + (setq new-store-transient-init-functions + (topological-sort *store-transient-init-functions* + *store-transient-init-constraints* + #'ignorant-tie-breaker) + new-store-transient-init-constraints + *store-transient-init-constraints*)) + (setq *store-transient-init-functions* + new-store-transient-init-functions + *store-transient-init-constraints* + new-store-transient-init-constraints)))) + +(defun invoke-store-transient-init-functions () + (dolist (function-name *store-transient-init-functions*) + (with-simple-restart (skip-init-function "Skip transient-init-function ~A" + function-name) + (funcall function-name)))) + +;;; initialization-subsystem +(defclass initialization-subsystem () + ()) + +(defmethod bknr.datastore::restore-subsystem (store (subsystem initialization-subsystem) + &key until) + (declare (ignore until)) + (bos.m2::invoke-store-transient-init-functions)) + +(defmethod bknr.datastore::snapshot-subsystem (store (subsystem initialization-subsystem)) + ) + Modified: trunk/projects/bos/m2/m2-store.lisp =================================================================== --- trunk/projects/bos/m2/m2-store.lisp 2008-07-21 15:08:54 UTC (rev 3536) +++ trunk/projects/bos/m2/m2-store.lisp 2008-07-21 15:14:13 UTC (rev 3537) @@ -14,58 +14,3 @@ (setf (slot-value store 'tile-index) (indexed-class-index-named (find-class 'm2) 'm2-index))) -;;; store-transient-init-functions -;;; -;;; Allows for registering transient init functions that -;;; will be called after each restore of m2-store - -(defvar *store-transient-init-functions* nil) -(defvar *store-transient-init-constraints* nil) - -(defun register-store-transient-init-function (init-function &rest dependencies) - "Register INIT-FUNCTION (a function-name) to be called after -each restore of m2-store. Optionally, names of other -init-functions can be specified as DEPENDENCIES. The specified -INIT-FUNCTION will only be called after all of its DEPENDENCIES -have been called." - (labels ((ignorant-tie-breaker (choices reverse-partial-solution) - (declare (ignore reverse-partial-solution)) - ;; we dont care about making any particular choice here - - ;; this would be different for computing the class - ;; precedence list, for which the topological-sort used here - ;; was originally intended - (first choices)) - (build-constraints () - (loop for dependency in dependencies - collect (cons dependency init-function)))) - (check-type init-function symbol) - (dolist (dependency dependencies) - (check-type dependency symbol)) - (let (new-store-transient-init-functions - new-store-transient-init-constraints) - (let ((constraints (build-constraints)) - ;; dont know yet whether we have a circular dependency - so - ;; we want to be able to abort without changes - (*store-transient-init-functions* *store-transient-init-functions*) - (*store-transient-init-constraints* *store-transient-init-constraints*)) - (pushnew init-function *store-transient-init-functions*) - (dolist (dependency dependencies) - (pushnew dependency *store-transient-init-functions*)) - (dolist (constraint constraints) - (pushnew constraint *store-transient-init-constraints* :test #'equal)) - (setq new-store-transient-init-functions - (topological-sort *store-transient-init-functions* - *store-transient-init-constraints* - #'ignorant-tie-breaker) - new-store-transient-init-constraints - *store-transient-init-constraints*)) - (setq *store-transient-init-functions* - new-store-transient-init-functions - *store-transient-init-constraints* - new-store-transient-init-constraints)))) - -(defun invoke-store-transient-init-functions () - (dolist (function-name *store-transient-init-functions*) - (with-simple-restart (skip-init-function "Skip transient-init-function ~A" - function-name) - (funcall function-name)))) \ No newline at end of file Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-21 15:08:54 UTC (rev 3536) +++ trunk/projects/bos/m2/m2.lisp 2008-07-21 15:14:13 UTC (rev 3537) @@ -706,7 +706,8 @@ :subsystems (list (make-instance 'store-object-subsystem) (make-instance 'blob-subsystem :n-blobs-per-directory 1000) - (make-instance 'bos.m2.allocation-cache:allocation-cache-subsystem))) + (make-instance 'bos.m2.allocation-cache:allocation-cache-subsystem) + (make-instance 'initialization-subsystem))) (format t "~&; Startup der Quadratmeterdatenbank done.~%") (force-output)) From bknr at bknr.net Mon Jul 21 15:25:37 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 17:25:37 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/initialization-subsystem.lisp Message-ID: Revision: 3538 Author: ksprotte URL: http://bknr.net/trac/changeset/3538 call invoke-store-transient-init-functions also in snapshot-subsystem U trunk/projects/bos/m2/initialization-subsystem.lisp Modified: trunk/projects/bos/m2/initialization-subsystem.lisp =================================================================== --- trunk/projects/bos/m2/initialization-subsystem.lisp 2008-07-21 15:14:13 UTC (rev 3537) +++ trunk/projects/bos/m2/initialization-subsystem.lisp 2008-07-21 15:25:37 UTC (rev 3538) @@ -1,14 +1,14 @@ (in-package :bos.m2) -;;; store-transient-init-functions +;;; transient-init-functions ;;; ;;; Allows for registering transient init functions that ;;; will be called after each restore of m2-store -(defvar *store-transient-init-functions* nil) -(defvar *store-transient-init-constraints* nil) +(defvar *transient-init-functions* nil) +(defvar *transient-init-constraints* nil) -(defun register-store-transient-init-function (init-function &rest dependencies) +(defun register-transient-init-function (init-function &rest dependencies) "Register INIT-FUNCTION (a function-name) to be called after each restore of m2-store. Optionally, names of other init-functions can be specified as DEPENDENCIES. The specified @@ -27,31 +27,31 @@ (check-type init-function symbol) (dolist (dependency dependencies) (check-type dependency symbol)) - (let (new-store-transient-init-functions - new-store-transient-init-constraints) + (let (new-transient-init-functions + new-transient-init-constraints) (let ((constraints (build-constraints)) ;; dont know yet whether we have a circular dependency - so ;; we want to be able to abort without changes - (*store-transient-init-functions* *store-transient-init-functions*) - (*store-transient-init-constraints* *store-transient-init-constraints*)) - (pushnew init-function *store-transient-init-functions*) + (*transient-init-functions* *transient-init-functions*) + (*transient-init-constraints* *transient-init-constraints*)) + (pushnew init-function *transient-init-functions*) (dolist (dependency dependencies) - (pushnew dependency *store-transient-init-functions*)) + (pushnew dependency *transient-init-functions*)) (dolist (constraint constraints) - (pushnew constraint *store-transient-init-constraints* :test #'equal)) - (setq new-store-transient-init-functions - (topological-sort *store-transient-init-functions* - *store-transient-init-constraints* + (pushnew constraint *transient-init-constraints* :test #'equal)) + (setq new-transient-init-functions + (topological-sort *transient-init-functions* + *transient-init-constraints* #'ignorant-tie-breaker) - new-store-transient-init-constraints - *store-transient-init-constraints*)) - (setq *store-transient-init-functions* - new-store-transient-init-functions - *store-transient-init-constraints* - new-store-transient-init-constraints)))) + new-transient-init-constraints + *transient-init-constraints*)) + (setq *transient-init-functions* + new-transient-init-functions + *transient-init-constraints* + new-transient-init-constraints)))) -(defun invoke-store-transient-init-functions () - (dolist (function-name *store-transient-init-functions*) +(defun invoke-transient-init-functions () + (dolist (function-name *transient-init-functions*) (with-simple-restart (skip-init-function "Skip transient-init-function ~A" function-name) (funcall function-name)))) @@ -63,8 +63,12 @@ (defmethod bknr.datastore::restore-subsystem (store (subsystem initialization-subsystem) &key until) (declare (ignore until)) - (bos.m2::invoke-store-transient-init-functions)) + (invoke-transient-init-functions)) (defmethod bknr.datastore::snapshot-subsystem (store (subsystem initialization-subsystem)) - ) + ;; We are calling the initialization functions also here, because + ;; for transactions that follow the current snapshot we want to be + ;; in the same initial state as if the store had been freshly + ;; restored. + (invoke-transient-init-functions)) From bknr at bknr.net Mon Jul 21 15:38:26 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 17:38:26 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3539 Author: ksprotte URL: http://bknr.net/trac/changeset/3539 fixed some typos from last commit U trunk/projects/bos/m2/allocation-cache.lisp U trunk/projects/bos/m2/bos.m2.asd U trunk/projects/bos/m2/m2.lisp U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/web/contract-tree.lisp U trunk/projects/bos/web/quad-tree.lisp U trunk/projects/bos/web/sat-tree.lisp Modified: trunk/projects/bos/m2/allocation-cache.lisp =================================================================== --- trunk/projects/bos/m2/allocation-cache.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/m2/allocation-cache.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -260,8 +260,7 @@ (defmethod bknr.datastore::restore-subsystem (store (subsystem allocation-cache-subsystem) &key until) (declare (ignore until)) - (rebuild-cache) - (bos.m2::invoke-store-transient-init-functions)) + (rebuild-cache)) (defmethod bknr.datastore::snapshot-subsystem (store (subsystem allocation-cache-subsystem)) ) \ No newline at end of file Modified: trunk/projects/bos/m2/bos.m2.asd =================================================================== --- trunk/projects/bos/m2/bos.m2.asd 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/m2/bos.m2.asd 2008-07-21 15:38:26 UTC (rev 3539) @@ -15,7 +15,8 @@ (:file "make-certificate" :depends-on ("config")) (:file "initialization-subsystem" :depends-on ("packages")) (:file "m2-store" :depends-on ("packages" "utils")) - (:file "m2" :depends-on ("tiled-index" + (:file "m2" :depends-on ("initialization-subsystem" + "tiled-index" "utils" "make-certificate" "mail-generator" Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/m2/m2.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -657,7 +657,7 @@ (check-type country symbol) `(invoke-with-countries (lambda (,country) , at body))) -(register-store-transient-init-function 'initialize-contract-stats) +(register-transient-init-function 'initialize-contract-stats) (defun string-safe (string) (if string Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/m2/packages.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -78,7 +78,7 @@ (:shadowing-import-from :cl-interpol #:quote-meta-chars) (:export #:m2-store #:*m2-store* - #:register-store-transient-init-function + #:register-transient-init-function #:get-tile #:ensure-tile Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -363,7 +363,7 @@ (list 0 0 +width+ +width+) #'contract-tree-changed)) -(register-store-transient-init-function 'make-contract-tree-from-m2 +(register-transient-init-function 'make-contract-tree-from-m2 'make-quad-tree 'geometry:make-rect-publisher) Modified: trunk/projects/bos/web/quad-tree.lisp =================================================================== --- trunk/projects/bos/web/quad-tree.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/web/quad-tree.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -409,5 +409,5 @@ (+ local-draw-order (* (depth node) +max-num-of-local-draw-order-levels+))) -(register-store-transient-init-function 'make-quad-tree) +(register-transient-init-function 'make-quad-tree) Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-21 15:25:37 UTC (rev 3538) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-21 15:38:26 UTC (rev 3539) @@ -80,7 +80,7 @@ (defun quad-tree-insert-sat-images () (mapc #'quad-tree-insert-sat-image (class-instances 'sat-image))) -(register-store-transient-init-function 'quad-tree-insert-sat-images +(register-transient-init-function 'quad-tree-insert-sat-images 'make-quad-tree) (defmethod name ((obj sat-image)) From bknr at bknr.net Mon Jul 21 15:40:49 2008 From: bknr at bknr.net (BKNR Commits) Date: Mon, 21 Jul 2008 17:40:49 +0200 Subject: [bknr-cvs] ksprotte changed branches/bos/projects/bos/m2/allocation-cache.lisp Message-ID: Revision: 3540 Author: ksprotte URL: http://bknr.net/trac/changeset/3540 fix for allocation-cache-subsystem; call (rebuild-cache) on snapshot-subsystem U branches/bos/projects/bos/m2/allocation-cache.lisp Modified: branches/bos/projects/bos/m2/allocation-cache.lisp =================================================================== --- branches/bos/projects/bos/m2/allocation-cache.lisp 2008-07-21 15:38:26 UTC (rev 3539) +++ branches/bos/projects/bos/m2/allocation-cache.lisp 2008-07-21 15:40:49 UTC (rev 3540) @@ -263,4 +263,5 @@ (rebuild-cache)) (defmethod bknr.datastore::snapshot-subsystem (store (subsystem allocation-cache-subsystem)) - ) \ No newline at end of file + (rebuild-cache)) + From bknr at bknr.net Tue Jul 22 05:40:56 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 07:40:56 +0200 Subject: [bknr-cvs] hans changed trunk/projects/pch/src/pch Message-ID: Revision: 3541 Author: hans URL: http://bknr.net/trac/changeset/3541 snapshot intermediate state U trunk/projects/pch/src/pch.erl A trunk/projects/pch/src/pch_cache_mgr.erl A trunk/projects/pch/src/pch_front.erl Modified: trunk/projects/pch/src/pch.erl =================================================================== --- trunk/projects/pch/src/pch.erl 2008-07-21 15:40:49 UTC (rev 3540) +++ trunk/projects/pch/src/pch.erl 2008-07-22 05:40:55 UTC (rev 3541) @@ -3,39 +3,15 @@ -module(pch). -export([start/0, loop/2, stop/0]). --define(DEFAULTS, [{name, ?MODULE}, - {port, 9888}]). +-define(HTTP_PORT, 9888). +-define(MANAGEMENT_PORT, 9889). start() -> Cache = ets:new(table, [set, public]), - Loop = fun (Req) -> ?MODULE:loop(Req, Cache) end, - mochiweb_http:start([{loop, Loop} | ?DEFAULTS]). + pch_cache_mgr:start(?MANAGEMENT_PORT, Cache), + pch_front:start(?HTTP_PORT, Cache). stop() -> - mochiweb_http:stop(?MODULE). + pch_front:stop(), + pch_cache_mgr:stop(). -fetch_from_backend(Path) -> - {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = - http:request("http://test.createrainforest.org" ++ Path), - {ok, Headers, Body}. - -backend_request(Req, Cache) -> - Path = Req:get(path), - case ets:lookup(Cache, Path) of - [{Path, Headers, Body}] -> - io:format("cache HIT for ~p~n", [Path]), - Req:respond({200, Headers, Body}); - _ -> - io:format("cache MISS for ~p~n", [Path]), - {ok, Headers, Body} = fetch_from_backend(Path), - ets:insert(Cache, {Path, Headers, Body}), - Req:respond({200, Headers, Body}) - end. - -loop(Req, Cache) -> - case Req:get(method) of - M when M =:= 'GET' -> - backend_request(Req, Cache); - _ -> - Req:respond({501, [], ""}) - end. Added: trunk/projects/pch/src/pch_cache_mgr.erl =================================================================== --- trunk/projects/pch/src/pch_cache_mgr.erl (rev 0) +++ trunk/projects/pch/src/pch_cache_mgr.erl 2008-07-22 05:40:55 UTC (rev 3541) @@ -0,0 +1,19 @@ +-module(pch_cache_mgr). +-export([start/1, loop/2, stop/0]). + +start(Port, Cache) -> + mochiweb_http:start([{loop, fun (Req) -> + ?MODULE:loop(Req, Cache) end}, + {port, Port}, + {name, ?MODULE}]). + +stop() -> + mochiweb_http:stop(?MODULE). + +loop(Req, Cache) -> + case Req:get(method) of + M when M =:= 'GET' -> + backend_request(Req, Cache); + _ -> + Req:respond({501, [], ""}) + end. Added: trunk/projects/pch/src/pch_front.erl =================================================================== --- trunk/projects/pch/src/pch_front.erl (rev 0) +++ trunk/projects/pch/src/pch_front.erl 2008-07-22 05:40:55 UTC (rev 3541) @@ -0,0 +1,37 @@ +-module(pch_front). +-export([start/0, loop/2, stop/0]). + +start(Port, Cache) -> + mochiweb_http:start([{loop, fun (Req) -> + ?MODULE:loop(Req, Cache) end}, + {port, Port}, + {name, ?MODULE}]). + +stop() -> + mochiweb_http:stop(?MODULE), + +fetch_from_backend(Path) -> + {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = + http:request("http://test.createrainforest.org" ++ Path), + {ok, Headers, Body}. + +backend_request(Req, Cache) -> + Path = Req:get(path), + case ets:lookup(Cache, Path) of + [{Path, Headers, Body}] -> + io:format("cache HIT for ~p~n", [Path]), + Req:respond({200, Headers, Body}); + _ -> + io:format("cache MISS for ~p~n", [Path]), + {ok, Headers, Body} = fetch_from_backend(Path), + ets:insert(Cache, {Path, Headers, Body}), + Req:respond({200, Headers, Body}) + end. + +loop(Req, Cache) -> + case Req:get(method) of + M when M =:= 'GET' -> + backend_request(Req, Cache); + _ -> + Req:respond({501, [], ""}) + end. From bknr at bknr.net Tue Jul 22 08:32:05 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 10:32:05 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3542 Author: ksprotte URL: http://bknr.net/trac/changeset/3542 removed (bos.m2.allocation-cache:rebuild-cache) from daily job, cause it is done in snapshot (and wrong to do there anyway - because rebuild-cache is not a transaction, but would need to be logged) U trunk/projects/bos/m2/allocation-cache.lisp U trunk/projects/bos/web/daily.lisp Modified: trunk/projects/bos/m2/allocation-cache.lisp =================================================================== --- trunk/projects/bos/m2/allocation-cache.lisp 2008-07-22 05:40:55 UTC (rev 3541) +++ trunk/projects/bos/m2/allocation-cache.lisp 2008-07-22 08:32:05 UTC (rev 3542) @@ -232,6 +232,7 @@ (format t "~5D~10T~5D~%" size count)))))) (defun rebuild-cache () + "" (unless *allocation-cache* (setq *allocation-cache* (make-allocation-cache))) (clear-cache) Modified: trunk/projects/bos/web/daily.lisp =================================================================== --- trunk/projects/bos/web/daily.lisp 2008-07-22 05:40:55 UTC (rev 3541) +++ trunk/projects/bos/web/daily.lisp 2008-07-22 08:32:05 UTC (rev 3542) @@ -7,8 +7,6 @@ (bknr.stats::make-yesterdays-stats :delete-events t) (format t "; snapshotting datastore~%") (snapshot) - (format t "; rebuilding allocation-cache~%") - (bos.m2.allocation-cache:rebuild-cache) (format t "; running check (consistent-p)~%") (flet ((consistent-p-report () (let (consistent-p) From bknr at bknr.net Tue Jul 22 08:35:04 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 10:35:04 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/allocation-cache.lisp Message-ID: Revision: 3543 Author: ksprotte URL: http://bknr.net/trac/changeset/3543 rebuild-cache: assert (in-transaction-p) U trunk/projects/bos/m2/allocation-cache.lisp Modified: trunk/projects/bos/m2/allocation-cache.lisp =================================================================== --- trunk/projects/bos/m2/allocation-cache.lisp 2008-07-22 08:32:05 UTC (rev 3542) +++ trunk/projects/bos/m2/allocation-cache.lisp 2008-07-22 08:35:04 UTC (rev 3543) @@ -232,7 +232,8 @@ (format t "~5D~10T~5D~%" size count)))))) (defun rebuild-cache () - "" + (assert (in-transaction-p) nil + "rebuild-cache may only be called in a transaction context") (unless *allocation-cache* (setq *allocation-cache* (make-allocation-cache))) (clear-cache) From bknr at bknr.net Tue Jul 22 08:45:49 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 10:45:49 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3544 Author: ksprotte URL: http://bknr.net/trac/changeset/3544 rebuild-cache should not be exported; fix for test ALLOCATION-AREA.TWO-AREAS U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/test/allocation.lisp Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-22 08:35:04 UTC (rev 3543) +++ trunk/projects/bos/m2/packages.lisp 2008-07-22 08:45:49 UTC (rev 3544) @@ -289,7 +289,6 @@ (:export #:find-exact-match #:add-area #:count-cache-entries - #:pprint-cache - #:rebuild-cache + #:pprint-cache #:allocation-cache-subsystem)) Modified: trunk/projects/bos/test/allocation.lisp =================================================================== --- trunk/projects/bos/test/allocation.lisp 2008-07-22 08:35:04 UTC (rev 3543) +++ trunk/projects/bos/test/allocation.lisp 2008-07-22 08:45:49 UTC (rev 3544) @@ -76,8 +76,7 @@ (sponsor (make-sponsor :login "test-sponsor")) (total-free (+ 64 64))) (progn - (iter (while (> total-free 20)) - (bos.m2.allocation-cache:rebuild-cache) + (iter (while (> total-free 20)) (for size = (1+ (random 3))) (is (= total-free (+ (allocation-area-free-m2s area1) (allocation-area-free-m2s area2)))) From bknr at bknr.net Tue Jul 22 08:50:30 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 10:50:30 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/allocation.lisp Message-ID: Revision: 3545 Author: ksprotte URL: http://bknr.net/trac/changeset/3545 need to write now bos.m2.allocation-cache::rebuild-cache in two exceptional places U trunk/projects/bos/m2/allocation.lisp Modified: trunk/projects/bos/m2/allocation.lisp =================================================================== --- trunk/projects/bos/m2/allocation.lisp 2008-07-22 08:45:49 UTC (rev 3544) +++ trunk/projects/bos/m2/allocation.lisp 2008-07-22 08:50:30 UTC (rev 3545) @@ -220,13 +220,13 @@ (deftransaction activate-allocation-area (area) (warn "activating ~S" area) (setf (slot-value area 'active-p) t) - (bos.m2.allocation-cache:rebuild-cache) + (bos.m2.allocation-cache::rebuild-cache) area) (deftransaction deactivate-allocation-area (area) (warn "deactivating ~S" area) (setf (slot-value area 'active-p) nil) - (bos.m2.allocation-cache:rebuild-cache) + (bos.m2.allocation-cache::rebuild-cache) area) ;;; FIXME can be optimized From bknr at bknr.net Tue Jul 22 08:56:46 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 10:56:46 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/sat-tree.lisp Message-ID: Revision: 3546 Author: ksprotte URL: http://bknr.net/trac/changeset/3546 small fix for an assertion in make-sat-layer highest local-draw-order is reserved for the contract-tree, so make-sat-layer checks that this last level is not used for the sat-layer U trunk/projects/bos/web/sat-tree.lisp Modified: trunk/projects/bos/web/sat-tree.lisp =================================================================== --- trunk/projects/bos/web/sat-tree.lisp 2008-07-22 08:50:30 UTC (rev 3545) +++ trunk/projects/bos/web/sat-tree.lisp 2008-07-22 08:56:46 UTC (rev 3546) @@ -185,7 +185,8 @@ (assert (geo-box-encloses-p *m2-geo-box* geo-box)) (check-type start-depth (integer 0)) (check-type local-draw-order (integer 0)) - (assert (< local-draw-order +max-num-of-local-draw-order-levels+)) + ;; highest local-draw-order is reserved for the contract-tree + (assert (< local-draw-order (1- +max-num-of-local-draw-order-levels+))) (when (find local-draw-order (class-instances 'sat-layer) :key #'local-draw-order) (cerror "create the new layer anyway" "There is already a sat-layer with the same local-draw-order '~A'." local-draw-order)) (let ((layer (make-object 'sat-layer :name name :geo-box geo-box :local-draw-order local-draw-order))) From bknr at bknr.net Tue Jul 22 09:35:08 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 11:35:08 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/m2/mail-generator.lisp Message-ID: Revision: 3547 Author: ksprotte URL: http://bknr.net/trac/changeset/3547 fixed bug reported by vivian. "fehler bei ueberweisung ohne email Mir ist im Laufe der Tage folgendes aufgefallen: wenn ueberweiser keine emailadresse angeben und dann ueber den link aktiviert werden kommt eine Fehlermeldung die besag could not be proceeded, must contain domain bla.... Der Sponsor wird aber dann trotzdem als bezahlt eingerichtet und sein Profil erstellt. Diese Fehlermeldung muss heissen: "Sponsor processed, but not informed because no mail address" oder so was....." U trunk/projects/bos/m2/mail-generator.lisp Modified: trunk/projects/bos/m2/mail-generator.lisp =================================================================== --- trunk/projects/bos/m2/mail-generator.lisp 2008-07-22 08:56:46 UTC (rev 3546) +++ trunk/projects/bos/m2/mail-generator.lisp 2008-07-22 09:35:08 UTC (rev 3547) @@ -327,7 +327,7 @@ vorname name strasse plz ort email telefon (if want-print "yes" "no") (if donationcert-yearly "yes" "no") - *website-url* contract-id email)) + *website-url* contract-id (or email ""))) (make-contract-xml-part contract-id (all-request-params)) (make-vcard-part contract-id (make-vcard :sponsor-id sponsor-id :note (format nil "Paid-by: Manual money transfer From bknr at bknr.net Tue Jul 22 09:48:51 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 11:48:51 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp Message-ID: Revision: 3548 Author: ksprotte URL: http://bknr.net/trac/changeset/3548 WRITE-POI-XML now uses LANGUAGE and presents a correct Spenden link U trunk/projects/bos/web/poi-handlers.lisp Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-22 09:35:08 UTC (rev 3547) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-22 09:48:51 UTC (rev 3548) @@ -431,8 +431,10 @@ (attribute "title" (poi-string 'title)) (attribute "subtitle" (poi-string 'subtitle)) (with-element "menu" - (with-element "entry" (attribute "title" "Impressum") (attribute "href" "/de/impressum")) - (with-element "entry" (attribute "title" "Spenden") (attribute "href" "/de/spenden"))) + (with-element "entry" (attribute "title" "Impressum") + (attribute "href" (format nil "/~A/impressum" language))) + (with-element "entry" (attribute "title" "Spenden") + (attribute "href" (format nil "/~A/bestellung" language)))) (with-element "description" (text (poi-string 'description))) (with-media ("image_gallery" "Bildergalerie") (mapc #'format-image images)) From bknr at bknr.net Tue Jul 22 10:42:59 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 12:42:59 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3549 Author: ksprotte URL: http://bknr.net/trac/changeset/3549 added CONTRACT-TREE-NEEDS-UPDATE-P U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-22 09:48:51 UTC (rev 3548) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-22 10:42:59 UTC (rev 3549) @@ -298,6 +298,13 @@ (defun contract-tree-force-update-images () (map-nodes #'contract-node-update-image *contract-tree*)) +(defun contract-tree-needs-update-p () + (map-nodes (lambda (node) (when (contract-node-update-image-needed-p node) + (return-from contract-tree-needs-update-p t))) + *contract-tree* + :order :breadth-first) + nil) + ;;; image handler (defclass contract-tree-image-handler (page-handler) ()) From bknr at bknr.net Tue Jul 22 10:51:32 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 12:51:32 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3550 Author: ksprotte URL: http://bknr.net/trac/changeset/3550 better implementation for contract-tree-needs-update-p U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-22 10:42:59 UTC (rev 3549) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-22 10:51:32 UTC (rev 3550) @@ -299,11 +299,7 @@ (map-nodes #'contract-node-update-image *contract-tree*)) (defun contract-tree-needs-update-p () - (map-nodes (lambda (node) (when (contract-node-update-image-needed-p node) - (return-from contract-tree-needs-update-p t))) - *contract-tree* - :order :breadth-first) - nil) + (contract-node-update-image-needed-p *contract-tree*)) ;;; image handler (defclass contract-tree-image-handler (page-handler) From bknr at bknr.net Tue Jul 22 11:07:19 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 13:07:19 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/web/contract-tree.lisp Message-ID: Revision: 3551 Author: ksprotte URL: http://bknr.net/trac/changeset/3551 contract-tree: removed annoying warning message that showed up, when contract-tree images were not yet rendered U trunk/projects/bos/web/contract-tree.lisp Modified: trunk/projects/bos/web/contract-tree.lisp =================================================================== --- trunk/projects/bos/web/contract-tree.lisp 2008-07-22 10:51:32 UTC (rev 3550) +++ trunk/projects/bos/web/contract-tree.lisp 2008-07-22 11:07:19 UTC (rev 3551) @@ -23,12 +23,10 @@ (first store-images) ;; We will just return NIL, if we cannot find one. ;; If there are too many, we will return the newest one and delete the rest. - (progn - (warn "~D store-images for ~S" (length store-images) node) - (let ((store-images-newest-first - (sort (copy-list store-images) #'> :key #'blob-timestamp))) - (mapc #'delete-object (rest store-images-newest-first)) - (first store-images-newest-first)))))) + (let ((store-images-newest-first + (sort (copy-list store-images) #'> :key #'blob-timestamp))) + (mapc #'delete-object (rest store-images-newest-first)) + (first store-images-newest-first))))) (defmethod initialize-instance :after ((node contract-node) &key args) (declare (ignore args)) From bknr at bknr.net Tue Jul 22 11:39:17 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 13:39:17 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/templates/ Message-ID: Revision: 3552 Author: ksprotte URL: http://bknr.net/trac/changeset/3552 added satmap.xml to templates A trunk/projects/bos/payment-website/templates/da/satmap.xml A trunk/projects/bos/payment-website/templates/de/satmap.xml A trunk/projects/bos/payment-website/templates/en/satmap.xml Added: trunk/projects/bos/payment-website/templates/da/satmap.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/satmap.xml (rev 0) +++ trunk/projects/bos/payment-website/templates/da/satmap.xml 2008-07-22 11:39:17 UTC (rev 3552) @@ -0,0 +1,88 @@ + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Satellitenkarte + + + + + zur??ck + +
    +
    + Verschaffen Sie sich einen ??berblick auf unserer + + Satellitenkarte. +
    +
    + + Besuchen Sie Samboja Lestari in Google Earth + +
    +
    + Wenn die Google Earth Software + auf Ihrem Computer installiert ist, k??nnen Sie sich das Projektgebiet mit einer Auswahl verschiedener + Satelliten Bilder (aus dem Zeitraum 2000 - 2007) und vielen weiteren Informationen anschauen. +
    +
    + ??ber diesen Link wird sich direkt Ihre Google Earth Applikation ??ffnen: +
    +
    + + + zu Google Earth + +
    +
    +
    +
    Added: trunk/projects/bos/payment-website/templates/de/satmap.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/satmap.xml (rev 0) +++ trunk/projects/bos/payment-website/templates/de/satmap.xml 2008-07-22 11:39:17 UTC (rev 3552) @@ -0,0 +1,88 @@ + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Satellitenkarte + + + + + zur??ck + +
    +
    + Verschaffen Sie sich einen ??berblick auf unserer + + Satellitenkarte. +
    +
    + + Besuchen Sie Samboja Lestari in Google Earth + +
    +
    + Wenn die Google Earth Software + auf Ihrem Computer installiert ist, k??nnen Sie sich das Projektgebiet mit einer Auswahl verschiedener + Satelliten Bilder (aus dem Zeitraum 2000 - 2007) und vielen weiteren Informationen anschauen. +
    +
    + ??ber diesen Link wird sich direkt Ihre Google Earth Applikation ??ffnen: +
    +
    + + + zu Google Earth + +
    +
    +
    +
    Added: trunk/projects/bos/payment-website/templates/en/satmap.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/satmap.xml (rev 0) +++ trunk/projects/bos/payment-website/templates/en/satmap.xml 2008-07-22 11:39:17 UTC (rev 3552) @@ -0,0 +1,88 @@ + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Satellitenkarte + + + + + zur??ck + +
    +
    + Verschaffen Sie sich einen ??berblick auf unserer + + Satellitenkarte. +
    +
    + + Besuchen Sie Samboja Lestari in Google Earth + +
    +
    + Wenn die Google Earth Software + auf Ihrem Computer installiert ist, k??nnen Sie sich das Projektgebiet mit einer Auswahl verschiedener + Satelliten Bilder (aus dem Zeitraum 2000 - 2007) und vielen weiteren Informationen anschauen. +
    +
    + ??ber diesen Link wird sich direkt Ihre Google Earth Applikation ??ffnen: +
    +
    + + + zu Google Earth + +
    +
    +
    +
    From bknr at bknr.net Tue Jul 22 11:48:19 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 13:48:19 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/templates/ Message-ID: Revision: 3553 Author: ksprotte URL: http://bknr.net/trac/changeset/3553 updated links to new satmap.xml in templates U trunk/projects/bos/payment-website/templates/da/idea.xml U trunk/projects/bos/payment-website/templates/da/toplevel.xml U trunk/projects/bos/payment-website/templates/da/toplevel_main.xml U trunk/projects/bos/payment-website/templates/de/idea.xml U trunk/projects/bos/payment-website/templates/de/toplevel.xml U trunk/projects/bos/payment-website/templates/de/toplevel_main.xml U trunk/projects/bos/payment-website/templates/de/toplevel_news.xml U trunk/projects/bos/payment-website/templates/en/idea.xml U trunk/projects/bos/payment-website/templates/en/toplevel.xml U trunk/projects/bos/payment-website/templates/en/toplevel_main.xml Modified: trunk/projects/bos/payment-website/templates/da/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/idea.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/da/idea.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -32,7 +32,7 @@ Satellit fotos her p?? internettet g??r det muligt at observere programmets fremgang.



    I l??bet af de sidste ??rtier er den engang s?? artsrige regnskov i - + Samboja Lestari blevet n??desl??st f??ldet og nedbr??ndt. N??ringsopslugende elefantgr??s tog over, og hvad der blev tilbage var en ??kologisk ??demark. I dag er det dog allerede tydeligt, at dette ikke beh??ver forts??tte - siden 2001 har BOS skabt ny regnskov. Modified: trunk/projects/bos/payment-website/templates/da/toplevel.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/toplevel.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/da/toplevel.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -48,7 +48,7 @@
    l
    Modified: trunk/projects/bos/payment-website/templates/da/toplevel_main.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/toplevel_main.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/da/toplevel_main.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -44,7 +44,7 @@
  • l
    @@ -122,7 +122,7 @@ - + Det handler om m??.



    @@ -130,7 +130,7 @@ - + Modified: trunk/projects/bos/payment-website/templates/de/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/idea.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/de/idea.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -39,7 +39,7 @@ im Internet beobachten.

    Der ehemals artenreiche Regenwald von - + Samboja Lestari wurde in den letzten Jahrzehnten r??cksichtslos gerodet und abgebrannt. N??hrstoffzehrendes Alang-Alang-Gras breitete Modified: trunk/projects/bos/payment-website/templates/de/toplevel.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/toplevel.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/de/toplevel.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -54,7 +54,7 @@
    l
    - Satellitenkarte Modified: trunk/projects/bos/payment-website/templates/de/toplevel_main.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/toplevel_main.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/de/toplevel_main.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -54,7 +54,7 @@
    l
    - Satellitenkarte @@ -135,7 +135,7 @@ - Es dreht sich um m??. @@ -144,7 +144,7 @@ - + Modified: trunk/projects/bos/payment-website/templates/de/toplevel_news.xml =================================================================== --- trunk/projects/bos/payment-website/templates/de/toplevel_news.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/de/toplevel_news.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -51,7 +51,7 @@
    l
    - Satellitenkarte @@ -132,7 +132,7 @@ - Es dreht sich um m??. @@ -141,7 +141,7 @@ - + Modified: trunk/projects/bos/payment-website/templates/en/idea.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/idea.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/en/idea.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -39,7 +39,7 @@ Satellite pictures here on the internet make it possible to observe the progress of this concept.

    During the last decades the once species-rich rainforest of - + Samboja Lestari was cleared and burnt down relentlessly. Modified: trunk/projects/bos/payment-website/templates/en/toplevel.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/toplevel.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/en/toplevel.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -56,7 +56,7 @@
    l
    - satellite map Modified: trunk/projects/bos/payment-website/templates/en/toplevel_main.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/toplevel_main.xml 2008-07-22 11:39:17 UTC (rev 3552) +++ trunk/projects/bos/payment-website/templates/en/toplevel_main.xml 2008-07-22 11:48:19 UTC (rev 3553) @@ -52,7 +52,7 @@
    l
    - satellite map @@ -133,7 +133,7 @@ - It's all about m??.

    @@ -142,7 +142,7 @@ - + From bknr at bknr.net Tue Jul 22 12:02:48 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 14:02:48 +0200 Subject: [bknr-cvs] hans changed trunk/ Message-ID: Revision: 3554 Author: hans URL: http://bknr.net/trac/changeset/3554 Never block in contract-issue-cert. In the frontend, the user will always spend enough time on the following pages so that the certificate will be generated. In order to support the CMS workflow, the /certificate handler now waits until the certificates have been generated before serving the PDF. U trunk/bknr/datastore/src/data/object.lisp U trunk/projects/bos/m2/m2.lisp U trunk/projects/bos/m2/packages.lisp U trunk/projects/bos/web/contract-handlers.lisp U trunk/projects/bos/web/kml-handlers.lisp U trunk/projects/bos/web/webserver.lisp Modified: trunk/bknr/datastore/src/data/object.lisp =================================================================== --- trunk/bknr/datastore/src/data/object.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/bknr/datastore/src/data/object.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -41,7 +41,7 @@ (let ((instance-count (length (class-instances class)))) (when (plusp instance-count) (unless *suppress-schema-warnings* - (warn "updating ~A instances of ~A for class changes" instance-count class)) + (format *trace-output* "~&; updating ~A instances of ~A for class changes~%" instance-count class)) (mapc #'reinitialize-instance (class-instances class))))) (defmethod instance :after ((class persistent-class) &rest args) Modified: trunk/projects/bos/m2/m2.lisp =================================================================== --- trunk/projects/bos/m2/m2.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/projects/bos/m2/m2.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -342,15 +342,6 @@ (delete-file (contract-pdf-pathname contract)) (delete-file (contract-pdf-pathname contract :print t)))) -(defun wait-for-certificates (contract) - "Wait until the PDF generating process has generated the certificates" - (dotimes (i 10) - (when (contract-certificates-generated-p contract) - (return)) - (sleep 1)) - (unless (contract-certificates-generated-p contract) - (error "Cannot generate certificate"))) - (defmethod contract-issue-cert ((contract contract) name &key address language) (when (contract-cert-issued contract) (warn "re-issuing cert for ~A" contract)) @@ -358,7 +349,6 @@ (make-certificate contract name :address address :language language) (unless (contract-download-only-p contract) (make-certificate contract name :address address :language language :print t)) - (wait-for-certificates contract) (change-slot-values contract 'cert-issued t)) (defmethod contract-image-tiles ((contract contract)) Modified: trunk/projects/bos/m2/packages.lisp =================================================================== --- trunk/projects/bos/m2/packages.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/projects/bos/m2/packages.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -161,6 +161,7 @@ #:contract-set-download-only-p #:contract-price #:contract-issue-cert + #:contract-certificates-generated-p #:contract-worldpay-trans-id #:contract-pdf-pathname #:contract-pdf-url Modified: trunk/projects/bos/web/contract-handlers.lisp =================================================================== --- trunk/projects/bos/web/contract-handlers.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/projects/bos/web/contract-handlers.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -32,4 +32,5 @@ (:td (:princ-safe (contract-color contract)))) #+(or) (:tr (:td "cert issued?") - (:td (:princ-safe (if (contract-cert-issued contract) "yes" "no"))))))) \ No newline at end of file + (:td (:princ-safe (if (contract-cert-issued contract) "yes" "no"))))))) + Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -138,7 +138,7 @@ (hunchentoot:handle-if-modified-since timestamp) (setf (hunchentoot:header-out :last-modified) (hunchentoot:rfc-1123-date timestamp)) - (with-xml-response (:content-type #+nil "text/xml" "application/vnd.google-earth.kml+xml; charset=utf-8" + (with-xml-response (:content-type "application/vnd.google-earth.kml+xml; charset=utf-8" :root-element "kml") (with-query-params ((lang "en")) (with-element "Document" Modified: trunk/projects/bos/web/webserver.lisp =================================================================== --- trunk/projects/bos/web/webserver.lisp 2008-07-22 11:48:19 UTC (rev 3553) +++ trunk/projects/bos/web/webserver.lisp 2008-07-22 12:02:48 UTC (rev 3554) @@ -122,7 +122,17 @@ (defmethod handle-object ((handler certificate-handler) contract) (unless contract (setf contract (find-if #'contract-pdf-pathname (sponsor-contracts (bknr.web:bknr-session-user))))) - (redirect (format nil "/certificates/~D.pdf" (store-object-id contract)))) + (if (contract-certificates-generated-p contract) + (redirect (format nil "/certificates/~D.pdf" (store-object-id contract))) + (with-http-response (:content-type "text/html; charset=UTF-8") + (with-http-body () + (html + (:html + (:head + (:title "Waiting for certificate generation...") + ((:meta :http-equiv "Refresh" :content (format nil "3; ~A" (hunchentoot:script-name*))))) + (:body + "Please wait, certificate is being generated"))))))) (defclass statistics-handler (editor-only-handler prefix-handler) ()) From bknr at bknr.net Tue Jul 22 12:03:12 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 14:03:12 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/payment-website/templates/ Message-ID: Revision: 3555 Author: ksprotte URL: http://bknr.net/trac/changeset/3555 although satmap does only exist in german, changed GE links to be language dependent U trunk/projects/bos/payment-website/templates/da/satmap.xml U trunk/projects/bos/payment-website/templates/en/satmap.xml Modified: trunk/projects/bos/payment-website/templates/da/satmap.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/satmap.xml 2008-07-22 12:02:48 UTC (rev 3554) +++ trunk/projects/bos/payment-website/templates/da/satmap.xml 2008-07-22 12:03:12 UTC (rev 3555) @@ -77,7 +77,7 @@ - + zu Google Earth Modified: trunk/projects/bos/payment-website/templates/en/satmap.xml =================================================================== --- trunk/projects/bos/payment-website/templates/en/satmap.xml 2008-07-22 12:02:48 UTC (rev 3554) +++ trunk/projects/bos/payment-website/templates/en/satmap.xml 2008-07-22 12:03:12 UTC (rev 3555) @@ -77,7 +77,7 @@ - + zu Google Earth From bknr at bknr.net Tue Jul 22 12:39:27 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 14:39:27 +0200 Subject: [bknr-cvs] ksprotte changed trunk/projects/bos/ Message-ID: Revision: 3556 Author: ksprotte URL: http://bknr.net/trac/changeset/3556 content of root kml document in GE is now opened by default U trunk/projects/bos/payment-website/static/kml-root-da.kml U trunk/projects/bos/payment-website/static/kml-root-de.kml U trunk/projects/bos/payment-website/static/kml-root-en.kml U trunk/projects/bos/web/kml-handlers.lisp Modified: trunk/projects/bos/payment-website/static/kml-root-da.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-da.kml 2008-07-22 12:03:12 UTC (rev 3555) +++ trunk/projects/bos/payment-website/static/kml-root-da.kml 2008-07-22 12:39:27 UTC (rev 3556) @@ -1,7 +1,8 @@ - BOS [da] + BOS + 1 116.988156014724 -1.045791509671129 Modified: trunk/projects/bos/payment-website/static/kml-root-de.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-de.kml 2008-07-22 12:03:12 UTC (rev 3555) +++ trunk/projects/bos/payment-website/static/kml-root-de.kml 2008-07-22 12:39:27 UTC (rev 3556) @@ -1,7 +1,8 @@ - BOS [de] + BOS + 1 116.988156014724 -1.045791509671129 Modified: trunk/projects/bos/payment-website/static/kml-root-en.kml =================================================================== --- trunk/projects/bos/payment-website/static/kml-root-en.kml 2008-07-22 12:03:12 UTC (rev 3555) +++ trunk/projects/bos/payment-website/static/kml-root-en.kml 2008-07-22 12:39:27 UTC (rev 3556) @@ -1,7 +1,8 @@ - BOS [en] + BOS + 1 116.988156014724 -1.045791509671129 Modified: trunk/projects/bos/web/kml-handlers.lisp =================================================================== --- trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 12:03:12 UTC (rev 3555) +++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 12:39:27 UTC (rev 3556) @@ -66,7 +66,8 @@ (hunchentoot:rfc-1123-date (timestamp handler))) (with-query-params ((lang "en")) (with-element "Document" - (with-element "name" (text (format nil "BOS [~A]" lang))) + (with-element "name" (text "BOS")) + (with-element "open" (text "1")) (when contract (with-element "Style" (attribute "id" "contractPlacemarkIcon") From bknr at bknr.net Tue Jul 22 14:08:27 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 16:08:27 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/web/ Message-ID: Revision: 3557 Author: hans URL: http://bknr.net/trac/changeset/3557 Sessionless request language handling. U trunk/projects/bos/web/contract-rss.lisp U trunk/projects/bos/web/news-handlers.lisp U trunk/projects/bos/web/news-rss.lisp U trunk/projects/bos/web/news-tags.lisp U trunk/projects/bos/web/poi-handlers.lisp U trunk/projects/bos/web/rss.lisp U trunk/projects/bos/web/startup.lisp U trunk/projects/bos/web/tags.lisp U trunk/projects/bos/web/web-utils.lisp U trunk/projects/bos/web/webserver.lisp Modified: trunk/projects/bos/web/contract-rss.lisp =================================================================== --- trunk/projects/bos/web/contract-rss.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/contract-rss.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -7,7 +7,7 @@ (contract-paidp contract)) (defmethod rss-item-title ((contract contract)) - (format nil (case (intern (bos.web::current-website-language)) + (format nil (case (intern (bos.web::request-language)) (de "~A Quadratmeter wurden ~@[von ~A ~]gekauft") (t "~A square meters bought~@[ by ~A~]")) (length (contract-m2s contract)) @@ -18,11 +18,11 @@ (defmethod rss-item-link ((contract contract)) #+(or) - (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::request-language) (store-object-id item))) (defmethod rss-item-guid ((item contract)) #+(or) - (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::request-language) (store-object-id item))) (defmethod rss-item-pub-date ((contract contract)) (contract-date contract)) Modified: trunk/projects/bos/web/news-handlers.lisp =================================================================== --- trunk/projects/bos/web/news-handlers.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/news-handlers.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -10,7 +10,7 @@ ()) (defmethod handle-object-form ((handler edit-news-handler) action (news-item (eql nil))) - (let ((language (hunchentoot:session-value :language))) + (let ((language (request-language))) (with-bos-cms-page (:title "Edit news items") (content-language-chooser) (:h2 "Create new item") @@ -33,7 +33,7 @@ (redirect (format nil "/edit-news/~D" (store-object-id (make-news-item))))) (defmethod handle-object-form ((handler edit-news-handler) action news-item) - (let ((language (hunchentoot:session-value :language))) + (let ((language (request-language))) (with-bos-cms-page (:title "Edit news item") (content-language-chooser) ((:script :type "text/javascript") @@ -49,7 +49,7 @@ (:tr (:td (submit-button "save" "save") (submit-button "delete" "delete" :confirm "Really delete the news item?")))))))) (defmethod handle-object-form ((handler edit-news-handler) (action (eql :save)) news-item) - (let ((language (hunchentoot:session-value :language))) + (let ((language (request-language))) (with-query-params (title text) (update-news-item news-item language :title title :text text) (with-bos-cms-page (:title "News item updated") Modified: trunk/projects/bos/web/news-rss.lisp =================================================================== --- trunk/projects/bos/web/news-rss.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/news-rss.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -4,19 +4,19 @@ "news") (defmethod rss-item-published ((item news-item)) - (news-item-published item (bos.web::current-website-language))) + (news-item-published item (bos.web::request-language))) (defmethod rss-item-title ((item news-item)) - (news-item-title item (bos.web::current-website-language))) + (news-item-title item (bos.web::request-language))) (defmethod rss-item-description ((item news-item)) - (news-item-text item (bos.web::current-website-language))) + (news-item-text item (bos.web::request-language))) (defmethod rss-item-link ((item news-item)) - (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::request-language) (store-object-id item))) (defmethod rss-item-guid ((item news-item)) - (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (bos.web::request-language) (store-object-id item))) (defmethod rss-item-pub-date ((item news-item)) (news-item-time item)) Modified: trunk/projects/bos/web/news-tags.lisp =================================================================== --- trunk/projects/bos/web/news-tags.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/news-tags.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -7,7 +7,7 @@ do (html (:princ-safe line) :br))) (define-bknr-tag news-headlines (&key archive) - (let ((language (hunchentoot:session-value :language))) + (let ((language (request-language))) (let* ((now (get-universal-time)) (news-items (if archive (all-news-items language) @@ -34,7 +34,7 @@ (define-bknr-tag news-item () (let ((news-item (find-store-object (parse-integer (nth-value 1 (parse-url))))) - (language (hunchentoot:session-value :language))) + (language (request-language))) (html ((:h1 :class "extra") (:princ-safe (format-date-time (news-item-time news-item) :show-time nil)) ", " Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -18,7 +18,7 @@ (html (:h2 "Bad technical name") "Please use only alphanumerical characters, - and _ for technical POI names"))) (t - (redirect (edit-object-url (make-poi (hunchentoot:session-value :language) name))))))) + (redirect (edit-object-url (make-poi (request-language) name))))))) (defclass edit-poi-handler (editor-only-handler edit-object-handler) () @@ -34,7 +34,7 @@ do (html (:li (cmslink (edit-object-url poi) (:princ-safe (poi-name poi)) " - " - (:princ-safe (slot-string poi 'title (hunchentoot:session-value :language))))))))) + (:princ-safe (slot-string poi 'title (request-language))))))))) (html (:h2 "No POIs created yet"))) ((:form :method "post" :action "/make-poi") "Make new POI named " @@ -52,7 +52,7 @@ (defmethod handle-object-form ((handler edit-poi-handler) action (poi poi)) (with-query-params (language shift shift-by) - (unless language (setq language (hunchentoot:session-value :language))) + (unless language (setq language (request-language))) (when shift ;; change image order (setq shift (find-store-object (parse-integer shift))) @@ -65,7 +65,6 @@ (setf (nth old-position new-images) (nth (+ shift-by old-position) new-images)) (setf (nth (+ shift-by old-position) new-images) tmp) (change-slot-values poi 'bos.m2::images new-images))) - (setf (hunchentoot:session-value :language) language) (with-bos-cms-page (:title "Edit POI") (content-language-chooser) (unless (poi-complete poi language) @@ -169,7 +168,7 @@ (defmethod handle-object-form ((handler edit-poi-handler) (action (eql :save)) (poi poi)) (with-query-params (published title subtitle description language x y icon movie) - (unless language (setq language (hunchentoot:session-value :language))) + (unless language (setq language (request-language))) (let ((args (list :title title :published published :subtitle subtitle @@ -301,7 +300,7 @@ (defmethod handle-object-form ((handler edit-poi-image-handler) action poi-image) (with-query-params (language poi) - (unless language (setq language (hunchentoot:session-value :language))) + (unless language (setq language (request-language))) (with-bos-cms-page (:title "Edit POI Image") (html (cmslink (edit-object-url (poi-image-poi poi-image)) "Back to POI") @@ -331,7 +330,7 @@ (defmethod handle-object-form ((handler edit-poi-image-handler) (action (eql :save)) poi-image) (with-query-params (title subtitle description language) - (unless language (setq language (hunchentoot:session-value :language))) + (unless language (setq language (request-language))) (update-poi-image poi-image language :title title :subtitle subtitle @@ -371,7 +370,7 @@ (with-http-body () (html ((:script :language "JavaScript") - (:princ (make-poi-javascript (or (hunchentoot:session-value :language) *default-language*))) + (:princ (make-poi-javascript (request-language))) (:princ "parent.poi_fertig(pois, anzahlSponsoren, anzahlVerkauft);") (:princ (format nil "parent.last_sponsors([~{~A~^,~%~}]);" (mapcar #'contract-js last-paid-contracts))))))))) Modified: trunk/projects/bos/web/rss.lisp =================================================================== --- trunk/projects/bos/web/rss.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/rss.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -6,18 +6,18 @@ "news") (defmethod rss-item-published ((item news-item)) - (format t "Language: ~A~%" (current-website-language)) + (format t "Language: ~A~%" (request-language)) t) (defmethod rss-item-title ((item news-item)) - (news-item-title item (current-website-language))) + (news-item-title item (request-language))) (defmethod rss-item-description ((item news-item)) - (news-item-text item (current-website-language))) + (news-item-text item (request-language))) (defmethod rss-item-link ((item news-item)) - (format nil "http://createrainforest.org/~A/news-extern/~A" (current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (request-language) (store-object-id item))) (defmethod rss-item-guid ((item news-item)) - (format nil "http://createrainforest.org/~A/news-extern/~A" (current-website-language) (store-object-id item))) + (format nil "http://createrainforest.org/~A/news-extern/~A" (request-language) (store-object-id item))) Modified: trunk/projects/bos/web/startup.lisp =================================================================== --- trunk/projects/bos/web/startup.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/startup.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -41,12 +41,11 @@ :worldpay-test-mode *worldpay-test-mode*) (format t "~&; Starting hunchentoot~@[ in debug mode~].~%" debug) (force-output) - (setq hunchentoot:*catch-errors-p* (not debug)) (when *webserver* (hunchentoot:stop-server *webserver*)) - (setf *hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf) + (setf hunchentoot:*hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf) hunchentoot:*rewrite-for-session-urls* nil) - (setq *webserver* (hunchentoot:start-server :port *port* #+not-yet :threaded #+not-yet (not debug) + (setq *webserver* (hunchentoot:start-server :port *port* (not debug) :persistent-connections-p nil)) (if start-frontend (start-frontend :host host :backend-port port :port frontend-port) Modified: trunk/projects/bos/web/tags.lisp =================================================================== --- trunk/projects/bos/web/tags.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/tags.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -15,10 +15,10 @@ (define-bknr-tag language-chooser (name) (html ((:select :name name) - (language-options-1 (current-website-language))))) + (language-options-1 (request-language))))) (define-bknr-tag language-options () - (language-options-1 (current-website-language))) + (language-options-1 (request-language))) (define-bknr-tag worldpay-receipt () (emit-without-quoting "")) @@ -41,7 +41,7 @@ (let ((contract (find-store-object (parse-integer (get-template-var :contract-id))))) (when (equal want-print "no") (contract-set-download-only-p contract t)) - (contract-issue-cert contract name :address address :language (hunchentoot:session-value :language)) + (contract-issue-cert contract name :address address :language (request-language)) (mail-worldpay-sponsor-data) (bknr.web::redirect-request :target (if gift "index" (format nil "profil_setup?name=~A&email=~A&sponsor-id=~A" @@ -78,7 +78,7 @@ (manual-transfer (or (scan #?r"rweisen" action) (scan #?r"rweisung" action) (scan #?r"verf" action))) - (language (hunchentoot:session-value :language)) + (language (request-language)) (sponsor (make-sponsor :language language)) (contract (make-contract sponsor numsqm :download-only download-only @@ -133,7 +133,7 @@ vorname name strasse plz ort) - :language (hunchentoot:session-value :language)) + :language (request-language)) (mail-manual-sponsor-data)))) (define-bknr-tag when-certificate () Modified: trunk/projects/bos/web/web-utils.lisp =================================================================== --- trunk/projects/bos/web/web-utils.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/web-utils.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -30,19 +30,14 @@ (html "not logged in")) " - current content language is " (cmslink "change-language" - (:princ-safe (current-website-language)) + (:princ-safe (request-language)) " (" - (:princ-safe (language-name (current-website-language))) + (:princ-safe (language-name (request-language))) ")")))) (defun language-name (language-short-name) (cadr (assoc language-short-name (website-languages) :test #'equal))) -(defun current-website-language () - (unless (hunchentoot:session-value :language) - (setf (hunchentoot:session-value :language) *default-language*)) - (hunchentoot:session-value :language)) - (defun content-language-chooser () (html ((:p :class "languages") @@ -51,7 +46,7 @@ do (labels ((show-language-link () (html (cmslink (format nil "~A?language=~A" (hunchentoot:request-uri*) language-symbol) (:princ-safe language-name))))) - (if (equal (hunchentoot:session-value :language) language-symbol) + (if (equal (request-language) language-symbol) (html "[" (show-language-link) "]") (html (show-language-link))) (html " ")))))) Modified: trunk/projects/bos/web/webserver.lisp =================================================================== --- trunk/projects/bos/web/webserver.lisp 2008-07-22 12:39:27 UTC (rev 3556) +++ trunk/projects/bos/web/webserver.lisp 2008-07-22 14:08:27 UTC (rev 3557) @@ -112,7 +112,7 @@ (with-query-params (logout) (when logout (hunchentoot:remove-session hunchentoot:*session*))) - (let ((language (hunchentoot:session-value :language))) + (let ((language (request-language))) (redirect #?"/infosystem/$(language)/satellitenkarte.htm"))) (defclass certificate-handler (object-handler) @@ -178,18 +178,19 @@ (call-next-method))) (call-next-method)))) -(defmethod authorize :after ((authorizer bos-authorizer)) - (let ((new-language (or (language-from-url (hunchentoot:request-uri*)) - (query-param "language"))) - (current-language (hunchentoot:session-value :language))) - (when (or (not current-language) - (and new-language - (not (equal new-language current-language)))) - (setf (hunchentoot:session-value :language) - (or new-language - (find-browser-prefered-language) - *default-language*))))) +(defun request-language () + (or (hunchentoot:aux-request-value :language) + *default-language*)) +(defmethod handle :before ((handler page-handler)) + (setf (hunchentoot:aux-request-value :language) + (or (query-param "language") + (query-param "lang") + (language-from-url (hunchentoot:request-uri*)) + (hunchentoot:session-value :language) + (find-browser-prefered-language) + *default-language*))) + ;;; TODOreorg (defun publish-directory (&key prefix destination) (push (hunchentoot:create-folder-dispatcher-and-handler prefix destination) hunchentoot:*dispatch-table*)) @@ -212,7 +213,7 @@ ("/kml-root" kml-root-handler) ("/country-stats" country-stats-handler) ("/contract-tree-kml" contract-tree-kml-handler) - ("/contract-tree-image" contract-tree-image-handler) + ("/contract-tree-image" contract-tree-image-handler) ("/contract-image" contract-image-handler) ("/contract" contract-handler) ("/sat-tree-kml" sat-tree-kml-handler) From bknr at bknr.net Tue Jul 22 14:41:01 2008 From: bknr at bknr.net (BKNR Commits) Date: Tue, 22 Jul 2008 16:41:01 +0200 Subject: [bknr-cvs] hans changed trunk/projects/bos/ Message-ID: Revision: 3558 Author: hans URL: http://bknr.net/trac/changeset/3558 Language related fixes. U trunk/projects/bos/payment-website/infosystem/javascript.js U trunk/projects/bos/payment-website/static/bos.js U trunk/projects/bos/payment-website/templates/da/infosystem.xml U trunk/projects/bos/payment-website/templates/da/quittung.xml U trunk/projects/bos/payment-website/templates/da/ring-detail.xml U trunk/projects/bos/payment-website/templates/da/sponsor_canceled.xml U trunk/projects/bos/payment-website/templates/da/toplevel.xml U trunk/projects/bos/payment-website/templates/da/toplevel_extra.xml U trunk/projects/bos/payment-website/templates/da/toplevel_main.xml U trunk/projects/bos/payment-website/templates/da/versand_geschenk.xml U trunk/projects/bos/payment-website/templates/da/versand_info.xml U trunk/projects/bos/payment-website/templates/de/infosystem.xml U trunk/projects/bos/payment-website/templates/de/quittung.xml U trunk/projects/bos/payment-website/templates/de/ring-detail.xml U trunk/projects/bos/payment-website/templates/de/sponsor_canceled.xml U trunk/projects/bos/payment-website/templates/de/toplevel.xml U trunk/projects/bos/payment-website/templates/de/toplevel_extra.xml U trunk/projects/bos/payment-website/templates/de/toplevel_main.xml U trunk/projects/bos/payment-website/templates/de/toplevel_news.xml U trunk/projects/bos/payment-website/templates/de/versand_geschenk.xml U trunk/projects/bos/payment-website/templates/en/infosystem.xml U trunk/projects/bos/payment-website/templates/en/quittung.xml U trunk/projects/bos/payment-website/templates/en/ring-detail.xml U trunk/projects/bos/payment-website/templates/en/sponsor_canceled.xml U trunk/projects/bos/payment-website/templates/en/toplevel.xml U trunk/projects/bos/payment-website/templates/en/toplevel_extra.xml U trunk/projects/bos/payment-website/templates/en/toplevel_main.xml U trunk/projects/bos/payment-website/templates/en/versand_geschenk.xml U trunk/projects/bos/payment-website/templates/en/versand_info.xml U trunk/projects/bos/web/webserver.lisp Modified: trunk/projects/bos/payment-website/infosystem/javascript.js =================================================================== --- trunk/projects/bos/payment-website/infosystem/javascript.js 2008-07-22 14:08:27 UTC (rev 3557) +++ trunk/projects/bos/payment-website/infosystem/javascript.js 2008-07-22 14:41:01 UTC (rev 3558) @@ -158,7 +158,7 @@ dbg("
    -> lade POI"); poicomplete = false; - window.frames['data'].window.location.replace(http_pfad + "/poi-javascript"); + window.frames['data'].window.location.replace(http_pfad + "/poi-javascript?lang=" + document.language); poi_warten(); // starten der Wartenfunktion return true; Modified: trunk/projects/bos/payment-website/static/bos.js =================================================================== --- trunk/projects/bos/payment-website/static/bos.js 2008-07-22 14:08:27 UTC (rev 3557) +++ trunk/projects/bos/payment-website/static/bos.js 2008-07-22 14:41:01 UTC (rev 3558) @@ -22,7 +22,7 @@ // *** extrafenster fuer satellitenkarte *** // function window_infosys() { - var url = "/infosystem"; + var url = "/infosystem/" + document.body.lang + "/satellitenkarte.htm"; var sponsorid_input = document.getElementById('sponsorid-input'); var password_input = document.getElementById('password-input'); Modified: trunk/projects/bos/payment-website/templates/da/infosystem.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/infosystem.xml 2008-07-22 14:08:27 UTC (rev 3557) +++ trunk/projects/bos/payment-website/templates/da/infosystem.xml 2008-07-22 14:41:01 UTC (rev 3558) @@ -11,7 +11,7 @@ Regnskov i SAMBOJA LESTARI - Infosystem - +
    Modified: trunk/projects/bos/payment-website/templates/da/quittung.xml =================================================================== --- trunk/projects/bos/payment-website/templates/da/quittung.xml 2008-07-22 14:08:27 UTC (rev 3557) +++ trunk/projects/bos/payment-website/templates/da/quittung.xml 2008-07-22 14:41:01 UTC (rev 3558) @@ -10,7 +10,7 @@ Regnskov i SAMBOJA LESTARI - +