Revision: 3525 Author: hans URL: http://bknr.net/trac/changeset/3525
Checkpoint buy/hey widget in partly working state.
U trunk/projects/quickhoney/src/handlers.lisp 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 18:30:26 UTC (rev 3524) +++ trunk/projects/quickhoney/src/handlers.lisp 2008-07-19 18:56:26 UTC (rev 3525) @@ -108,19 +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)) - +(defun image-keywords-from-request-parameters () + (let (retval) + (dolist (keyword *editable-keywords* retval) + (when (query-param (string-downcase (symbol-name keyword))) + (push keyword retval))))) + (defmethod handle-object-form ((handler edit-image-js-handler) (action (eql :edit)) image) (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-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)) (format *js-stream* "parent.image_edited()~%")))
@@ -233,9 +234,10 @@ ())
(defmethod handle ((handler upload-image-handler)) - (with-query-params (client spider-keywords explicit) + (with-query-params (client spider-keywords) (let ((uploaded-file (request-uploaded-file "image-file")) - (keywords (mapcar #'make-keyword-from-string (decoded-handler-path handler)))) + (keywords (append (mapcar #'make-keyword-from-string (decoded-handler-path handler)) + (image-keywords-from-request-parameters)))) (handler-case (progn (unless uploaded-file @@ -254,8 +256,7 @@ :class-name 'quickhoney-image :keywords (cons :upload keywords) :initargs (list :client client - :spider-keywords spider-keywords - :explicit (when explicit t))))) + :spider-keywords spider-keywords)))) (with-http-response () (with-http-body () (html (:html
Modified: trunk/projects/quickhoney/upgrade-stuff/import.lisp =================================================================== --- trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-19 18:30:26 UTC (rev 3524) +++ trunk/projects/quickhoney/upgrade-stuff/import.lisp 2008-07-19 18:56:26 UTC (rev 3525) @@ -4,7 +4,8 @@ (import-image name :keywords '(:type)))
(dolist (name '(#P"overlay-close.gif" - #P"hey.gif" #P"buy-print.gif" #P"buy-file.gif" #P"buy-t-shirt.gif" + #P"hey.gif" + #P"buy.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)
Modified: trunk/projects/quickhoney/website/static/javascript.js =================================================================== --- trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 18:30:26 UTC (rev 3524) +++ trunk/projects/quickhoney/website/static/javascript.js 2008-07-19 18:56:26 UTC (rev 3525) @@ -711,6 +711,8 @@
debug('subdirectory: ', subdirectory);
+ $('explicit').checked = (subdirectory == 'nudes'); + $("thumbnails").innerHTML = '';
$("directory_page").style.visibility = 'hidden'; @@ -994,7 +996,9 @@ $("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.keywords.explicit ? "checked" : null; + map(function(keyword) { + $('edit_' + keyword).checked = current_image.keywords[keyword] ? true : false; + }, ['explicit', 'buy_file', 'buy_print', 'buy_t_shirt']); show_cms_window("edit_form"); } } @@ -1214,7 +1218,7 @@
function make_image_action_button(name, action, height) { - var div = DIV(null, IMG({ src: recolored_image_path(name), width: 126, height: height })); + var div = DIV(null, IMG({ src: recolored_image_path(name), width: 127, height: height })); div.onclick = function() { action(); return false; }; return div; } @@ -1222,15 +1226,22 @@ function make_image_action_buttons() { var buttons = []; - if (1 || current_image.download_product) { - buttons.push(make_image_action_button('buy-file', make_buy_form, 22)); - } + var buyable = false; + map(function (keyword) { + if (current_image.keywords[keyword]) { + buyable = true; + buttons.push(make_image_action_button(keyword, make_buy_form, 22)); + } + }, ['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})); + } $('image_action_buttons').onmouseover = function () { var e = $('image_action_buttons'); e.style.left = '518px'; - e.style.width = '126px'; + e.style.width = '127px'; } $('image_action_buttons').onmouseout = function () { var e = $('image_action_buttons');
Modified: trunk/projects/quickhoney/website/static/styles.css =================================================================== --- trunk/projects/quickhoney/website/static/styles.css 2008-07-19 18:30:26 UTC (rev 3524) +++ trunk/projects/quickhoney/website/static/styles.css 2008-07-19 18:56:26 UTC (rev 3525) @@ -520,6 +520,13 @@ z-index: 100; }
+#image_action_buttons #buy { + z-index: 110; + position: absolute; + left: 0px; + top: 0px; +} + #overlay #hey { padding: 10px 15px 10px 10px; }
Modified: trunk/projects/quickhoney/website/templates/index.xml =================================================================== --- trunk/projects/quickhoney/website/templates/index.xml 2008-07-19 18:30:26 UTC (rev 3524) +++ trunk/projects/quickhoney/website/templates/index.xml 2008-07-19 18:56:26 UTC (rev 3525) @@ -197,7 +197,10 @@ </div> Keywords:<br /> <input type="text" id="upload_keywords" name="spider-keywords" value="" /><br /> - <input type="checkbox" name="explicit" value="1" /> Explicit<br/> + <input type="checkbox" id="explicit" name="explicit" value="1" /> Explicit<br/> + <input type="checkbox" name="buy-file" value="1"/> Sell as file<br/> + <input type="checkbox" name="buy-print" value="1"/> Sell as print<br/> + <input type="checkbox" name="buy-t-shirt" value="1"/> Sell as t-shirt<br/> </p> <p class="cms"> <input type="submit" name="upload" value="upload" /> @@ -264,9 +267,9 @@ Keywords:<br /> <input type="text" id="edit_keywords" name="spider-keywords" value="" /><br /> <input type="checkbox" id="edit_explicit" name="explicit" value="1" /> Explicit<br/> - <input type="checkbox" name="buy-file" value="1"/> Sell as file<br/> - <input type="checkbox" name="buy-print" value="1"/> Sell as print<br/> - <input type="checkbox" name="buy-t-shirt" value="1"/> Sell as t-shirt<br/> + <input type="checkbox" id="edit_buy_file" name="buy-file" value="1"/> Sell as file<br/> + <input type="checkbox" id="edit_buy_print" name="buy-print" value="1"/> Sell as print<br/> + <input type="checkbox" id="edit_buy_t_shirt" name="buy-t-shirt" value="1"/> Sell as t-shirt<br/> </p> <p class="cms"> <input type="submit" name="action" value="edit" />