Author: hhubner Date: Fri Feb 15 11:33:56 2008 New Revision: 2504
Modified: branches/trunk-reorg/projects/quickhoney/src/handlers.lisp branches/trunk-reorg/projects/quickhoney/src/tags.lisp branches/trunk-reorg/projects/quickhoney/website/static/javascript.js branches/trunk-reorg/projects/quickhoney/website/templates/index.xml Log: Fix Javascript handling so that it works with current CXML. Fix direct navigation to category page. Reformats.
Modified: branches/trunk-reorg/projects/quickhoney/src/handlers.lisp ============================================================================== --- branches/trunk-reorg/projects/quickhoney/src/handlers.lisp (original) +++ branches/trunk-reorg/projects/quickhoney/src/handlers.lisp Fri Feb 15 11:33:56 2008 @@ -5,13 +5,17 @@ (defclass javascript-handler () ())
+(defvar *js-stream*) + (defmethod handle :around ((handler javascript-handler)) (with-http-response (:content-type "text/html; charset=UTF-8") (no-cache) (with-http-body () - (format *html-stream* "<script language="JavaScript">~%") - (call-next-method) - (format *html-stream* "~%</script>~%")))) + (html + ((:script :language "JavaScript") + (:princ + (with-output-to-string (*js-stream*) + (call-next-method))))))))
(defclass random-image-handler (object-handler) ()) @@ -29,7 +33,7 @@ (let ((content-type (blob-type (quickhoney-animation-image-animation animation)))) (with-http-response (:content-type content-type) (with-http-body () - (blob-to-stream (quickhoney-animation-image-animation animation) *html-stream*))))) + (blob-to-stream (quickhoney-animation-image-animation animation) *js-stream*)))))
(defclass image-query-js-handler (javascript-handler object-handler) ()) @@ -62,19 +66,19 @@ (format t "]~%")))
(defmethod handle-object ((handler image-query-js-handler) images) - (format *html-stream* "parent.process_query_result(~%") + (format *js-stream* "parent.process_query_result(~%") (with-query-params (layout) (princ (layout-to-javascript (make-instance (case (make-keyword-from-string layout) (:smallworld 'quickhoney-name-layout) (t 'quickhoney-standard-layout)) - :objects images)) *html-stream*)) - (format *html-stream* ");~%")) + :objects images)) *js-stream*)) + (format *js-stream* ");~%"))
(defclass login-js-handler (javascript-handler page-handler) ())
(defmethod handle ((handler login-js-handler)) - (format *html-stream* "parent.login_complete(~A, ~S);~%" + (format *js-stream* "parent.login_complete(~A, ~S);~%" (if (admin-p (bknr-session-user)) "true" "false") (user-login (bknr-session-user))))
@@ -84,7 +88,7 @@ (defmethod handle ((handler clients-js-handler)) (let ((clients (sort (remove "" (all-clients) :test #'equal) #'string-lessp))) - (format *html-stream* "parent.set_clients([~S~{, ~S~}]);~%" + (format *js-stream* "parent.set_clients([~S~{, ~S~}]);~%" (car clients) (cdr clients))))
(defclass edit-image-js-handler (admin-only-handler javascript-handler edit-object-handler) @@ -97,11 +101,11 @@ (defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :edit)) image) (with-query-params (client) (change-slot-values image 'client client) - (format *html-stream* "parent.image_edited()~%"))) + (format *js-stream* "parent.image_edited()~%")))
(defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :delete)) (image quickhoney-image)) (delete-object image) - (format *html-stream* "parent.image_deleted();~%")) + (format *js-stream* "parent.image_deleted();~%"))
(defclass buttons-js-handler (javascript-handler prefix-handler) ()) @@ -138,11 +142,11 @@ collect (list category subcategory (button-for-category category subcategory background-color))))))
(defmethod handle ((handler buttons-js-handler)) - (format *html-stream* "var buttons = [];~%") + (format *js-stream* "var buttons = [];~%") (loop for (category subcategory image-url) in (find-button-images (decoded-handler-path handler)) when image-url - do (format *html-stream* "buttons['~(~A/~A~)'] = ~S;~%" category subcategory image-url)) - (format *html-stream* "parent.set_button_images(buttons);~%")) + do (format *js-stream* "buttons['~(~A/~A~)'] = ~S;~%" category subcategory image-url)) + (format *js-stream* "parent.set_button_images(buttons);~%"))
(defclass upload-image-handler (admin-only-handler prefix-handler) ()) @@ -259,7 +263,9 @@ (error "invalid image size, buttons must be 208 by 208 pixels")) (let* ((image (make-store-image :name (pathname-name uploaded-file) :class-name 'store-image - :keywords (list :button (make-keyword-from-string directory) (make-keyword-from-string subdirectory))))) + :keywords (list :button + (make-keyword-from-string directory) + (make-keyword-from-string subdirectory))))) (with-http-response () (with-http-body () (html (:html
Modified: branches/trunk-reorg/projects/quickhoney/src/tags.lisp ============================================================================== --- branches/trunk-reorg/projects/quickhoney/src/tags.lisp (original) +++ branches/trunk-reorg/projects/quickhoney/src/tags.lisp Fri Feb 15 11:33:56 2008 @@ -1,7 +1,6 @@ (in-package :quickhoney.tags)
(define-bknr-tag version-and-last-change (&rest args) - (format *debug-io* "hello world: ~A~%" args) (html "v1.1 | updated " (:princ-safe (string-downcase (substitute #\Space #-
Modified: branches/trunk-reorg/projects/quickhoney/website/static/javascript.js ============================================================================== --- branches/trunk-reorg/projects/quickhoney/website/static/javascript.js (original) +++ branches/trunk-reorg/projects/quickhoney/website/static/javascript.js Fri Feb 15 11:33:56 2008 @@ -607,8 +607,10 @@ var components = document.jump_to.split("/"); document.jump_to = null; show_page(components[0]); - subdirectory(components[1]); - document.show_picture = components[2]; + if (components[1]) { + subdirectory(components[1]); + } + document.show_picture = components[2]; } }
Modified: branches/trunk-reorg/projects/quickhoney/website/templates/index.xml ============================================================================== --- branches/trunk-reorg/projects/quickhoney/website/templates/index.xml (original) +++ branches/trunk-reorg/projects/quickhoney/website/templates/index.xml Fri Feb 15 11:33:56 2008 @@ -127,7 +127,7 @@ </div> <div id="footer" class="text"> - ©1998-2006 QuickHoney Nana Rausch & Peter Stemmler. No part of + ©1998-2008 QuickHoney Nana Rausch & Peter Stemmler. No part of this website may be reproduced in any manner without permission. Programming by Hübner/Odendahl <a href="http://headcraft.de/" target="_new"> headcraft</a>