nice logout sitch.
This commit is contained in:
@@ -13,5 +13,6 @@
|
||||
:unpaid #{}}
|
||||
:status {:loading false}
|
||||
: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))))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::toggle-company-menu
|
||||
(fn [db [_ active-page]]
|
||||
(update-in db [:menu :active?] #(not %))))
|
||||
::toggle-menu
|
||||
(fn [db [_ which]]
|
||||
(update-in db [:menu which :active?] #(not %))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::logged-in
|
||||
(fn [db [_ token user]]
|
||||
(doto (assoc db :user (assoc user :token token))
|
||||
println)))
|
||||
(assoc db :user (assoc user :token token))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::swap-company
|
||||
@@ -85,10 +84,15 @@
|
||||
(fn [db [_ 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
|
||||
::submit-new-invoice
|
||||
(fn [{:keys [db]} [_ invoice]]
|
||||
|
||||
{:http {:method :post
|
||||
:token (-> db :user)
|
||||
: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")))
|
||||
|
||||
(defn login []
|
||||
(let [user (re-frame/subscribe [::subs/user])]
|
||||
[:a {:class "navbar-link login" :href (login-url)} (or (:name @user) "Login")]))
|
||||
(let [user (re-frame/subscribe [::subs/user])
|
||||
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 []
|
||||
(let [company (re-frame/subscribe [::subs/company])
|
||||
@@ -238,9 +248,9 @@
|
||||
[:a {:class "navbar-item", :href "../"}
|
||||
[:h1 (str "Auto-ap")]]]
|
||||
[: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 { :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)
|
||||
"All")]
|
||||
[:div {:class "navbar-dropdown"}
|
||||
@@ -257,16 +267,7 @@
|
||||
[:span]
|
||||
[:span]
|
||||
[:span]]
|
||||
[:div {:id "navMenu", :class "navbar-menu"}
|
||||
[: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"} ]]]]]]]
|
||||
[login]]]
|
||||
[:div {:class "columns", :id "mail-app"}
|
||||
[:aside {:class "column is-narrow aside menu hero is-fullheight"}
|
||||
[:div.main
|
||||
|
||||
Reference in New Issue
Block a user