New patches: [unrevert anonymous**20081206053823] addfile ./beesknees.asd hunk ./beesknees.asd 1 - +(defpackage :beesknees.system + (:use :cl :asdf)) + +(in-package :beesknees.system) + +(defsystem "beesknees" + :components + ((:module + :src + :components + ((:file "packages") + (:file "applications" :depends-on ("packages")) + (:file "frontend" :depends-on ("packages")) + (:file "site-control" :depends-on ("packages"))))) + :depends-on (:ucw :golgonooza)) adddir ./src addfile ./src/applications.lisp hunk ./src/applications.lisp 1 - +(in-package :beesknees.web) + +(defclass bee-application (standard-application + static-roots-application-mixin) + + ()) addfile ./src/frontend.lisp hunk ./src/frontend.lisp 1 - +(in-package :beesknees.web) + +(defcomponent bee-window (standard-window-component) + () + (:default-initargs + :title "The Bee's Knees" + :stylesheet '("static/css/common.css"))) + +(defcomponent dummy-component () + ()) + +(defmethod render ((self dummy-component)) + (<:p (<:strong (<:format "(~A) " (class-name (class-of self)))) + (<:as-html "Nothing to see here. Move along."))) + +(defclass bee-widget (html-block-element-mixin) + () + (:documentation "Widget component that sets css-class to class-name by default")) + +(defmethod initialize-instance :after ((c bee-widget) + &rest keys) + (setf (html-element.css-class c) + (or (getf keys :css-class) + (string-downcase (symbol-name (class-name (class-of c))))))) + +(defcomponent composite-container (html-block-element-mixin container) + () + (:default-initargs :css-class "ucw-composite-container")) + +(defmethod render ((container composite-container)) + (mapc (arnesi:compose #'render #'cdr) (container.contents container))) + +(defcomponent bee-video (bee-widget dummy-component) + ()) + +(defcomponent bee-blog (bee-widget dummy-component) + ()) + +(defcomponent bee-home (bee-widget composite-container) + () + (:default-initargs + :contents `((video . ,(make-instance 'bee-video)) + (blog . ,(make-instance 'bee-blog))))) + +(defcomponent bee-about (bee-widget dummy-component) + ()) + +(defcomponent bee-contact (bee-widget dummy-component) + ()) + +(defcomponent bee-frontend-window (bee-window) + () + (:default-initargs + :stylesheet '("static/css/frontend.css") + :body (make-instance 'tabbed-pane + :css-class "bee-frontend-pane" + :current-component-key 'home + :contents + `((home . ,(make-instance 'bee-home)) + (about . ,(make-instance 'bee-about)) + (contact . ,(make-instance 'bee-contact)))))) addfile ./src/packages.lisp hunk ./src/packages.lisp 1 - +(defpackage :beesknees.web + (:use :cl :ucw :ucw-core) + (:export + ;; Applications + #:bee-application + #:bee-frontend-application + + ;; Windows + #:bee-window + #:bee-frontend-window + + ;; Components + )) + +(defpackage :beesknees.site-control + (:use :cl :beesknees.web :ucw-core :ucw :org.unknownlamer.golgonooza.site-control) + (:export + #:start-bee-site + #:stop-bee-site + #:restart-bee-site)) addfile ./src/site-control.lisp hunk ./src/site-control.lisp 1 - +(in-package :beesknees.site-control) + +(defvar *bee-data-root* + "/home/clinton/local/var/beesknees/") + + +(defclass bee-site (ucw-site) + () + (:default-initargs + :data-root *bee-data-root*)) + +(defmethod make-entry-points ((site bee-site)) + (defentry-point "^(index.ucw|)$" (:application (find-site-application site :frontend) + :class regexp-dispatcher) + () + (call 'bee-frontend-window))) + +(defmethod start-site :before ((site bee-site)) + (let ((data-root (data-root site))) + (setf (applications site) + (list + (cons :frontend + (make-instance 'bee-frontend-application + :url-prefix "/" + :static-roots + (list `("static/" + . ,(format nil "~A~A" + data-root "wwwroot/"))))))))) + +(defun start-bee-site () + (register-site 'tee-it-up (make-instance 'bee-site))) + +(defun stop-bee-site () + (unregister-site 'tee-it-up)) + +(defun restart-bee-site () + (stop-bee-site) + (start-bee-site)) adddir ./static adddir ./static/css addfile ./static/css/common.css addfile ./static/css/frontend.css Context: Patch bundle hash: 82232be2e371d67fcac549546e8771690b466cc4