[bknr-cvs] ksprotte changed trunk/projects/bos/
BKNR Commits
bknr at bknr.net
Thu Jul 31 09:36:07 UTC 2008
Revision: 3708
Author: ksprotte
URL: http://bknr.net/trac/changeset/3708
poi image shifting works again
U trunk/projects/bos/m2/poi.lisp
U trunk/projects/bos/web/poi-handlers.lisp
Modified: trunk/projects/bos/m2/poi.lisp
===================================================================
--- trunk/projects/bos/m2/poi.lisp 2008-07-31 09:02:18 UTC (rev 3707)
+++ trunk/projects/bos/m2/poi.lisp 2008-07-31 09:36:07 UTC (rev 3708)
@@ -148,12 +148,12 @@
;;; Exchanges (nth index (poi-sat-images poi)) with
;;; (nth (1+ index) (poi-sat-images poi)).
(deftransaction poi-sat-images-exchange-neighbours (poi index)
- (check-type index (integer 0 4))
+ (check-type index (mod 6))
(multiple-value-bind (images positions)
(poi-images poi)
(declare (ignore images))
(let ((media-index-a (nth index positions))
- (media-index-b (nth (1+ index) positions)))
+ (media-index-b (nth (mod (1+ index) 6) positions)))
(rotatef (nth media-index-a (poi-media poi))
(nth media-index-b (poi-media poi))))))
Modified: trunk/projects/bos/web/poi-handlers.lisp
===================================================================
--- trunk/projects/bos/web/poi-handlers.lisp 2008-07-31 09:02:18 UTC (rev 3707)
+++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-31 09:36:07 UTC (rev 3708)
@@ -52,21 +52,14 @@
(defmethod handle-object-form ((handler edit-poi-handler)
action (poi poi))
- (with-query-params (language shift shift-by)
+ (with-query-params (language shift shift-id)
(unless language (setq language (request-language)))
(when shift
- ;; change image order
- (setq shift (find-store-object (parse-integer shift)))
- (setq shift-by (parse-integer shift-by))
- (let* ((new-images (poi-sat-images poi))
- (old-position (position shift new-images))
- (tmp (nth old-position new-images)))
- (assert (and (< -1 old-position (length new-images))
- (< -1 (+ shift-by old-position) (length new-images))))
- (setf (nth old-position new-images) (nth (+ shift-by old-position) new-images))
- (setf (nth (+ shift-by old-position) new-images) tmp)
- (with-transaction ("setf poi-sat-images")
- (setf (poi-sat-images poi) new-images))))
+ (let ((shift (parse-integer shift))
+ (shift-id (parse-integer shift-id)))
+ ;; only if this exchange has not already happened
+ (when (= shift-id (store-object-id (nth shift (poi-sat-images poi))))
+ (poi-sat-images-exchange-neighbours poi shift))))
(with-bos-cms-page (:title "Edit POI")
(content-language-chooser)
(unless (poi-complete poi language)
@@ -110,20 +103,20 @@
((:table)
(:tr
(loop for image in (poi-sat-images poi)
- for index from 1 by 1
+ for index upfrom 0
do (html (:td ((:a :href (format nil "/edit-poi-image/~a?poi=~A" (store-object-id image) (store-object-id poi)))
((:img :border "0" :src (format nil "/image/~a/thumbnail,,55,55" (store-object-id image)))))
:br
- (if (eql index 1)
+ (if (zerop index)
(html ((:img :src "/images/trans.gif" :width "16")))
- (html ((:a :href (format nil "/edit-poi/~A?shift=~A&shift-by=-1"
- (store-object-id poi)
- (store-object-id image)))
+ (html ((:a :href (format nil "/edit-poi/~A?shift=~D&shift-id=~D"
+ (store-object-id poi) (1- index)
+ (store-object-id (nth (1- index) (poi-sat-images poi)))))
((:img :border "0" :src "/images/pfeil-l.gif")))))
((:img :src "/images/trans.gif" :width "23"))
(unless (eql index (length (poi-sat-images poi)))
- (html ((:a :href (format nil "/edit-poi/~A?shift=~A&shift-by=1"
- (store-object-id poi)
+ (html ((:a :href (format nil "/edit-poi/~A?shift=~D&shift-id=~D"
+ (store-object-id poi) index
(store-object-id image)))
((:img :border "0" :src "/images/pfeil-r.gif"))))))))))
(unless (eql 6 (length (poi-sat-images poi)))
More information about the Bknr-cvs
mailing list