Changeset 3716
- Timestamp:
- 08/01/08 08:57:30 (4 months ago)
- Files:
-
- trunk/bknr/modules/album/album.lisp (modified) (1 diff)
- trunk/bknr/web/src/images/image.lisp (modified) (1 diff)
- trunk/bknr/web/src/packages.lisp (modified) (1 diff)
- trunk/bknr/web/src/rss/rss.lisp (modified) (1 diff)
- trunk/bknr/web/src/sysclasses/user.lisp (modified) (1 diff)
- trunk/projects/quickhoney/src/handlers.lisp (modified) (2 diffs)
- trunk/projects/quickhoney/src/quickhoney.asd (modified) (1 diff)
- trunk/projects/quickhoney/website/static/javascript.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/bknr/modules/album/album.lisp
r2417 r3716 7 7 (images (when user 8 8 (remove-if-not #'(lambda (image) 9 ( member user (owned-object-ownersimage)))9 (eq user (owned-object-owner image))) 10 10 (get-keyword-store-images 11 11 (make-keyword-from-string album)))))) trunk/bknr/web/src/images/image.lisp
r3430 r3716 124 124 (let ((store-image (apply #'make-object 125 125 class-name 126 :owner s (list user)126 :owner user 127 127 :timestamp (get-universal-time) 128 128 :name name trunk/bknr/web/src/packages.lisp
r3683 r3716 137 137 138 138 #:owned-object 139 #:owned-object-owner s139 #:owned-object-owner 140 140 #:store-objects-owned-by 141 141 #:store-object-owners trunk/bknr/web/src/rss/rss.lisp
r3713 r3716 180 180 transaction context.") 181 181 (:method ((channel rss-channel) item) 182 ( setf (slot-value channel 'items) (cons item (rss-channel-items channel))))182 (push item (slot-value channel 'items))) 183 183 (:method ((channel string) item) 184 184 (aif (find-rss-channel channel) trunk/bknr/web/src/sysclasses/user.lisp
r3694 r3716 191 191 192 192 (define-persistent-class owned-object (store-object) 193 ((owners :update :initform nil 194 :index-type hash-list-index 195 :index-reader store-object-owners))) 196 197 (deftransaction owned-object-remove-owner (object owner) 198 (setf (owned-object-owners object) 199 (remove owner (owned-object-owners object)))) 200 201 (deftransaction owned-object-add-owner (object owner) 202 (pushnew owner (owned-object-owners object))) 193 ((owner :update :initform nil 194 :index-type hash-index 195 :index-reader store-object-owner))) 196 197 (defmethod convert-slot-value-while-restoring ((object owned-object) (slot-name (eql 'owners)) owners) 198 (when owners 199 (unless (= 1 (length owners)) 200 (warn "object ~A has more than one owner ~S, using first" object owners)) 201 (setf (slot-value object 'owner) (car owners)))) 203 202 204 203 (defgeneric user-owns-object-p (user object)) 205 204 206 (defmethod user-owns-object-p ((user user) object)205 (defmethod user-owns-object-p ((user user) (object t)) 207 206 nil) 208 207 209 208 (defmethod user-owns-object-p ((user user) (object owned-object)) 210 ( member user (owned-object-ownersobject)))209 (eq user (owned-object-owner object))) 211 210 212 211 (define-persistent-class message-event (event) trunk/projects/quickhoney/src/handlers.lisp
r3713 r3716 137 137 "webserver@quickhoney.com" 138 138 (remove-duplicates (mapcar #'user-email 139 (or (owned-object-owner simage)139 (or (owned-object-owner image) 140 140 (list (find-user "n") (find-user "p")))))) 141 141 (cl-mime:print-mime … … 439 439 ; do nothing 440 440 ) 441 (:method :before ((image quickhoney-image)) 442 (when (owned-object-owner image) 443 (encode-object-element "owner" (user-login (owned-object-owner image)))) 444 (encode-object-element "date" (format-date-time (blob-timestamp image) :vms-style t :show-time nil)) 445 (encode-object-element "name" (store-image-name image))) 441 446 (:method ((image quickhoney-image)) 442 447 (let ((vectorp (member :vector (store-image-keywords image)))) 443 (encode-object-element "uploader" (if vectorp "Peter" "Nana"))444 448 (encode-object-element "category" (if vectorp "vector" "pixel")) 445 (encode-object-element "subcategory" "unknown") 446 (encode-object-element "date" (format-date-time (rss-item-pub-date image) :vms-style t :show-time nil)) 447 (encode-object-element "name" (store-image-name image))))) 449 (encode-object-element "subcategory" "unknown"))) 450 (:method ((item quickhoney-news-item)) 451 (encode-object-element "title" (quickhoney-news-item-title item)) 452 (encode-object-element "text" (quickhoney-news-item-text item)))) 448 453 449 454 (defmethod handle-object ((handler json-news-handler) (channel rss-channel)) trunk/projects/quickhoney/src/quickhoney.asd
r3713 r3716 34 34 (:file "imageproc" :depends-on ("config")) 35 35 (:file "json" :depends-on ("packages")) 36 (:file "handlers" :depends-on ("json" "layout" "config" "image" ))36 (:file "handlers" :depends-on ("json" "layout" "config" "image" "news")) 37 37 (:file "tags" :depends-on ("image")) 38 38 (:file "webserver" :depends-on ("handlers")) trunk/projects/quickhoney/website/static/javascript.js
r3713 r3716 247 247 DIV(null, 248 248 H1(null, item.name), 249 item.date, ' by ', item. uploader, ' | ',249 item.date, ' by ', item.owner, ' | ', 250 250 A({ href: '/index#' + item.category + '/' + item.subcategory + '/' + item.image_name }, 'permalink'), 251 251 BR(), … … 462 462 footer_hide(); 463 463 loadJSONDoc('/json-news-archive/quickhoney').addCallbacks(load_news_archive, alert); 464 // load_news();464 loadJSONDoc('/json-news/quickhoney').addCallbacks(load_news, alert); 465 465 }); 466 466
