implement inventory popover UI for lists not using card qualities

This commit is contained in:
Gered 2016-08-01 15:34:13 -04:00
parent cd3cb45213
commit 7a1f775d31
2 changed files with 42 additions and 6 deletions

View file

@ -117,10 +117,11 @@ div.card-title > h1 > small {
white-space: nowrap; white-space: nowrap;
} }
.inventory-container td.quantity { .inventory-container .quantity {
padding-left: 20px; padding-left: 20px;
padding-right: 20px; padding-right: 20px;
text-align: center; text-align: center;
font-size: 20px;
} }
.search-filters .form-group { .search-filters .form-group {

View file

@ -30,11 +30,9 @@
(or (not (auth/auth-required?)) (or (not (auth/auth-required?))
(auth/authenticated?))) (auth/authenticated?)))
(defvc inventory-management (defn inventory-with-qualities-management
[card-id list-id] [card-id list-id inventory list-settings]
(let [inventory (view-cursor :card-inventory card-id list-id (auth/get-username)) (let [colspan (if (can-modify-inventory?) 2 1)
inventory (group-by :quality @inventory)
colspan (if (can-modify-inventory?) 2 1)
quantity-class (if (can-modify-inventory?) quantity-class (if (can-modify-inventory?)
"quantity col-sm-1" "quantity col-sm-1"
"quantity col-sm-4")] "quantity col-sm-4")]
@ -95,6 +93,43 @@
[bs/Glyphicon {:glyph "minus"}]]]]])])) [bs/Glyphicon {:glyph "minus"}]]]]])]))
qualities))]]])) qualities))]]]))
(defn inventory-without-qualities-management
[card-id list-id inventory list-settings]
(let [{:keys [quantity]} (-> inventory (get nil) (first))]
[bs/Grid {:fluid true :class "inventory-container"}
(if (can-modify-inventory?)
[bs/Row
[bs/Col {:sm 6 :class "quantity"}
(if (> quantity 0)
[:strong quantity]
[:span.text-muted 0])]
[bs/Col {:sm 6}
[bs/ButtonGroup {:justified true}
[bs/ButtonGroup
[bs/Button {:bsStyle "success" :on-click #(on-add-card card-id nil false list-id)}
[bs/Glyphicon {:glyph "plus"}]]]
[bs/ButtonGroup
[bs/Button {:bsStyle "danger" :disabled (= 0 quantity) :on-click #(on-remove-card card-id nil false list-id)}
[bs/Glyphicon {:glyph "minus"}]]]]]]
[bs/Row
[bs/Col {:sm 12 :class "quantity"}
(if (> quantity 0)
[:strong quantity]
[:span.text-muted 0])]])]))
(defvc inventory-management
[card-id list-id]
(let [list-settings (view-cursor :list-settings list-id (auth/get-username))
inventory (view-cursor :card-inventory card-id list-id (auth/get-username))
grouped-inventory (group-by :quality @inventory)]
(if (and (not (vc/loading? list-settings))
(not (vc/loading? inventory)))
(if (:require_qualities @list-settings)
[inventory-with-qualities-management card-id list-id grouped-inventory @list-settings]
[inventory-without-qualities-management card-id list-id grouped-inventory @list-settings])
[:div.inventory-container
[:p "Loading ..."]])))
(defn inventory (defn inventory
[card-id list-id & [{:keys [num-owned owned? button-size button-style] :as opts}]] [card-id list-id & [{:keys [num-owned owned? button-size button-style] :as opts}]]
[bs/OverlayTrigger {:placement "bottom" [bs/OverlayTrigger {:placement "bottom"