From 37f0498ddffe2dcd25fe131d435e64b5049c9fa5 Mon Sep 17 00:00:00 2001 From: Daniel O'Connell Date: Sat, 27 Mar 2021 18:40:11 +0100 Subject: [PATCH] logout button --- frontend/resources/public/css/screen.css | 2 +- frontend/src/chicken_master/config.cljs | 7 ++++--- frontend/src/chicken_master/events.cljs | 23 ++++++++++++++++------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/frontend/resources/public/css/screen.css b/frontend/resources/public/css/screen.css index 8503bfd..601c2b0 100644 --- a/frontend/resources/public/css/screen.css +++ b/frontend/resources/public/css/screen.css @@ -247,7 +247,7 @@ html body .calendar .day .product .product-name { html body .calendar .day .product .product-amount { width: 40px; max-height: 5px; - margin-right: 10px; + display: inline-block; } html body .calendar .day .product .product-price { diff --git a/frontend/src/chicken_master/config.cljs b/frontend/src/chicken_master/config.cljs index 5724840..f122883 100644 --- a/frontend/src/chicken_master/config.cljs +++ b/frontend/src/chicken_master/config.cljs @@ -70,13 +70,14 @@ [:label {:for id} label]) [:input (merge {:name id :id id} handlers (dissoc opts :parser))] (when (and label (#{:checkbox :radio} (:type opts))) - [:label {:for id} label]) - ])) + [:label {:for id} label])])) (defn settings-options [] [:div + [:h3 "Ustawienia używtkownika"] + [:button {:type :button :on-click #(re-frame/dispatch [:chicken-master.events/log-out])} "wyloguj"] + [:h3 "Ustawienia wyglądu kalendarza"] - [:button {:type :button :on-click #(set-item! :bearer-token nil)} "wyloguj"] (input :first-day-offset "o ile dni przesunąć niedziele w lewo" {:type :number :max 7 :min 0 :parser #(js/parseInt %)}) diff --git a/frontend/src/chicken_master/events.cljs b/frontend/src/chicken_master/events.cljs index 9c449d3..8f6d2e0 100644 --- a/frontend/src/chicken_master/events.cljs +++ b/frontend/src/chicken_master/events.cljs @@ -34,15 +34,19 @@ ::initialize-db (fn [_ _] (time/update-settings config/default-settings) - (let [user (some-> js/window (.-localStorage) (.getItem :bearer-token))] - {:db (assoc db/default-db - :settings config/default-settings - :current-user user) - :dispatch [(when user ::load-db)]}))) + (let [user (some-> js/window (.-localStorage) (.getItem :bearer-token)) + user (when-not (= user "null") user) + result {:db (assoc db/default-db + :settings config/default-settings + :current-user user)}] + (if user + (assoc result :dispatch [::load-db]) + result)))) (re-frame/reg-event-fx ::load-db (fn [_ _] + (prn "loading") (time/update-settings config/default-settings) {:fx [[:dispatch [::show-from-date (time/iso-date (time/today))]] [:dispatch [::start-loading]] @@ -68,8 +72,8 @@ (re-frame/reg-event-fx ::failed-request (fn [{db :db} [_ response]] - {:db (update db :current-user #(when-not (= (:status response) 401) %)) - :fx [[:dispatch [::log-error (str response)]] + {:fx [(when (= (:status response) 401) [:dispatch [::log-out]]) + [:dispatch [::log-error (str response)]] [:dispatch [::stop-loading]]]})) (re-frame/reg-event-fx @@ -234,6 +238,11 @@ {:db (assoc db :current-user (b64/encodeString (str (user "name") ":" (user "password")))) :dispatch [::load-db]})) +(re-frame/reg-event-db + ::log-out + (fn [db _] + (config/set-item! :bearer-token nil) + (dissoc db :current-user))) (comment (re-frame/dispatch-sync [::show-stock])