nice logout sitch.
This commit is contained in:
@@ -13,5 +13,6 @@
|
|||||||
:unpaid #{}}
|
:unpaid #{}}
|
||||||
:status {:loading false}
|
:status {:loading false}
|
||||||
:new-invoice {}
|
:new-invoice {}
|
||||||
:menu {:active? false}
|
:menu {:company {:active? false}
|
||||||
|
:account {:active? false}}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -12,15 +12,14 @@
|
|||||||
:active-page (:handler (bidi/match-route routes/routes (.. js/window -location -pathname))))))
|
:active-page (:handler (bidi/match-route routes/routes (.. js/window -location -pathname))))))
|
||||||
|
|
||||||
(re-frame/reg-event-db
|
(re-frame/reg-event-db
|
||||||
::toggle-company-menu
|
::toggle-menu
|
||||||
(fn [db [_ active-page]]
|
(fn [db [_ which]]
|
||||||
(update-in db [:menu :active?] #(not %))))
|
(update-in db [:menu which :active?] #(not %))))
|
||||||
|
|
||||||
(re-frame/reg-event-db
|
(re-frame/reg-event-db
|
||||||
::logged-in
|
::logged-in
|
||||||
(fn [db [_ token user]]
|
(fn [db [_ token user]]
|
||||||
(doto (assoc db :user (assoc user :token token))
|
(assoc db :user (assoc user :token token))))
|
||||||
println)))
|
|
||||||
|
|
||||||
(re-frame/reg-event-db
|
(re-frame/reg-event-db
|
||||||
::swap-company
|
::swap-company
|
||||||
@@ -85,10 +84,15 @@
|
|||||||
(fn [db [_ invoice]]
|
(fn [db [_ invoice]]
|
||||||
(assoc db :new-invoice {})))
|
(assoc db :new-invoice {})))
|
||||||
|
|
||||||
|
(re-frame/reg-event-db
|
||||||
|
::logout
|
||||||
|
(fn [db [_]]
|
||||||
|
(assoc db :user nil :menu {:company {:active? false}
|
||||||
|
:account {:active? false}})))
|
||||||
|
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
::submit-new-invoice
|
::submit-new-invoice
|
||||||
(fn [{:keys [db]} [_ invoice]]
|
(fn [{:keys [db]} [_ invoice]]
|
||||||
|
|
||||||
{:http {:method :post
|
{:http {:method :post
|
||||||
:token (-> db :user)
|
:token (-> db :user)
|
||||||
:uri "/api/invoices"
|
:uri "/api/invoices"
|
||||||
|
|||||||
@@ -223,8 +223,18 @@
|
|||||||
(str "https://accounts.google.com/o/oauth2/auth?access_type=online&client_id=" client-id "&redirect_uri=" redirect-uri "&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile")))
|
(str "https://accounts.google.com/o/oauth2/auth?access_type=online&client_id=" client-id "&redirect_uri=" redirect-uri "&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile")))
|
||||||
|
|
||||||
(defn login []
|
(defn login []
|
||||||
(let [user (re-frame/subscribe [::subs/user])]
|
(let [user (re-frame/subscribe [::subs/user])
|
||||||
[:a {:class "navbar-link login" :href (login-url)} (or (:name @user) "Login")]))
|
menu (re-frame/subscribe [::subs/menu])]
|
||||||
|
[:div {:id "navMenu", :class "navbar-menu"}
|
||||||
|
[:div {:class "navbar-end"}
|
||||||
|
[:div {:class (str "navbar-item has-dropdown " (when (get-in @menu [:account :active?]) "is-active"))}
|
||||||
|
(if @user
|
||||||
|
[:a {:class "navbar-link login" :on-click (fn [e] (re-frame/dispatch [::events/toggle-menu :account]))} (:name @user)]
|
||||||
|
[:a {:class "navbar-link login" :href (login-url)} "Login"])
|
||||||
|
[:div {:class "navbar-dropdown"}
|
||||||
|
[:a {:class "navbar-item"} "My profile"]
|
||||||
|
[:hr {:class "navbar-divider"}]
|
||||||
|
[:a.navbar-item {:on-click (fn [e] (.preventDefault e) (re-frame/dispatch [::events/logout]))} "Logout"]]]]]))
|
||||||
|
|
||||||
(defn main-panel []
|
(defn main-panel []
|
||||||
(let [company (re-frame/subscribe [::subs/company])
|
(let [company (re-frame/subscribe [::subs/company])
|
||||||
@@ -238,9 +248,9 @@
|
|||||||
[:a {:class "navbar-item", :href "../"}
|
[:a {:class "navbar-item", :href "../"}
|
||||||
[:h1 (str "Auto-ap")]]]
|
[:h1 (str "Auto-ap")]]]
|
||||||
[:div {:id "navMenu", :class "navbar-menu "
|
[:div {:id "navMenu", :class "navbar-menu "
|
||||||
:on-click (fn [] (re-frame/dispatch [::events/toggle-company-menu]))}
|
:on-click (fn [] (re-frame/dispatch [::events/toggle-menu :company]))}
|
||||||
[:div.navbar-start
|
[:div.navbar-start
|
||||||
[:div { :class (str "navbar-item has-dropdown " (when (:active? @menu) "is-active"))}
|
[:div { :class (str "navbar-item has-dropdown " (when (get-in @menu [:company :active?]) "is-active"))}
|
||||||
[:a {:class "navbar-link login"} "Company: " (if @company (:name @company)
|
[:a {:class "navbar-link login"} "Company: " (if @company (:name @company)
|
||||||
"All")]
|
"All")]
|
||||||
[:div {:class "navbar-dropdown"}
|
[:div {:class "navbar-dropdown"}
|
||||||
@@ -257,16 +267,7 @@
|
|||||||
[:span]
|
[:span]
|
||||||
[:span]
|
[:span]
|
||||||
[:span]]
|
[:span]]
|
||||||
[:div {:id "navMenu", :class "navbar-menu"}
|
[login]]]
|
||||||
[:div {:class "navbar-end"}
|
|
||||||
[:div {:class "navbar-item has-dropdown is-active"}
|
|
||||||
[login]
|
|
||||||
[:div {:class "navbar-dropdown", :style {:display "none"}}
|
|
||||||
[:a {:class "navbar-item"} ]
|
|
||||||
[:a {:class "navbar-item"} ]
|
|
||||||
[:a {:class "navbar-item"} ]
|
|
||||||
[:hr {:class "navbar-divider"}]
|
|
||||||
[:div {:class "navbar-item"} ]]]]]]]
|
|
||||||
[:div {:class "columns", :id "mail-app"}
|
[:div {:class "columns", :id "mail-app"}
|
||||||
[:aside {:class "column is-narrow aside menu hero is-fullheight"}
|
[:aside {:class "column is-narrow aside menu hero is-fullheight"}
|
||||||
[:div.main
|
[:div.main
|
||||||
|
|||||||
Reference in New Issue
Block a user