From 5b10541c442dd05fb1477e36d3a1e3cc6c73cc1f Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Thu, 24 Jan 2019 14:04:25 -0800 Subject: [PATCH] fixing layout stuff. --- src/cljs/auto_ap/core.cljs | 4 +- .../views/components/invoices/side_bar.cljs | 33 +++++++++++++ src/cljs/auto_ap/views/main.cljs | 48 +++++++++++-------- .../auto_ap/views/pages/paid_invoices.cljs | 11 ++++- .../auto_ap/views/pages/unpaid_invoices.cljs | 21 ++++++-- 5 files changed, 90 insertions(+), 27 deletions(-) create mode 100644 src/cljs/auto_ap/views/components/invoices/side_bar.cljs diff --git a/src/cljs/auto_ap/core.cljs b/src/cljs/auto_ap/core.cljs index d4498989..34083271 100644 --- a/src/cljs/auto_ap/core.cljs +++ b/src/cljs/auto_ap/core.cljs @@ -2,7 +2,7 @@ (:require [reagent.core :as reagent] [re-frame.core :as re-frame] [auto-ap.events :as events] - [auto-ap.views.main :refer [page] ] + [auto-ap.views.main :refer [page active-page side-bar-layout] ] [auto-ap.config :as config] [auto-ap.effects :as effects] [pushy.core :as pushy] @@ -16,7 +16,7 @@ (defn mount-root [] (re-frame/clear-subscription-cache!) - (reagent/render [page] + (reagent/render [active-page] (.getElementById js/document "app"))) (defn ^:export init [] diff --git a/src/cljs/auto_ap/views/components/invoices/side_bar.cljs b/src/cljs/auto_ap/views/components/invoices/side_bar.cljs new file mode 100644 index 00000000..8512fc44 --- /dev/null +++ b/src/cljs/auto_ap/views/components/invoices/side_bar.cljs @@ -0,0 +1,33 @@ +(ns auto-ap.views.components.invoices.side-bar + (:require [re-frame.core :as re-frame] + [reagent.core :as r] + [clojure.string :as str] + [clojure.spec.alpha :as s] + [cljs-time.core :as c] + [goog.string :as gstring] + [bidi.bidi :as bidi] + [auto-ap.routes :as routes] + [auto-ap.views.utils :refer [active-when dispatch-event bind-field horizontal-field date->str str->date pretty standard]] + [auto-ap.subs :as subs] + [auto-ap.events :as events])) + +(defn invoices-side-bar [] + (let [ap @(re-frame/subscribe [::subs/active-page])] + [:div [:p.menu-label "Type"] + [:ul.menu-list + [:li.menu-item + [:a.item {:href (bidi/path-for routes/routes :unpaid-invoices) + :class [(active-when ap = :unpaid-invoices)]} + [:span {:class "icon"} + [:i {:class "fa fa-envelope-open-o"}]] + [:span {:class "name"} "Unpaid Invoices"]]] + [:li.menu-item + [:a.item {:href (bidi/path-for routes/routes :paid-invoices) + :class [(active-when ap = :paid-invoices)]} + [:span {:class "icon"} + [:i {:class "fa fa-envelope-o"}]] + [:span {:class "name"} "Paid Invoices"]]]] + [:div {:class "compose has-text-centered"} + [:a {:class "button is-danger is-block is-bold" :href (bidi/path-for routes/routes :index) + :on-click (dispatch-event [::events/modal-status ::user-editing-vendor {:visible? true}])} + [:span {:class "compose"} "New Vendor"]]]])) diff --git a/src/cljs/auto_ap/views/main.cljs b/src/cljs/auto_ap/views/main.cljs index 12d8f75f..59790586 100644 --- a/src/cljs/auto_ap/views/main.cljs +++ b/src/cljs/auto_ap/views/main.cljs @@ -6,6 +6,8 @@ [auto-ap.subs :as subs] [auto-ap.events :as events] [auto-ap.views.utils :refer [active-when active-when= login-url dispatch-event]] + [auto-ap.views.pages.unpaid-invoices :refer [unpaid-invoices-page]] + [auto-ap.views.pages.paid-invoices :refer [paid-invoices-page]] [auto-ap.entities.clients :as clients] [auto-ap.views.pages :as pages] [auto-ap.views.components.vendor-dialog :refer [vendor-dialog]])) @@ -36,7 +38,6 @@ menu (re-frame/subscribe [::subs/menu])] (if @user [:div {:class (str "navbar-item has-dropdown " (when (get-in @menu [:account :active?]) "is-active"))} - [:a {:class "navbar-link login" :on-click (fn [e] (re-frame/dispatch [::events/toggle-menu :account]))} (:user/name @user)] [:div {:class "navbar-dropdown"} [:a {:class "navbar-item"} "My profile"] @@ -98,22 +99,19 @@ [:i {:class "fa fa-github"}]]]]]]) (defn side-bar-layout [{:keys [side-bar main ap bottom]}] - [:div - [navbar ap] - [:div {:class "columns ", :id "mail-app"} - [:aside {:class "column is-narrow aside menu hero is-fullheight"} - [:div.main.left-nav - side-bar - - ]] - [:div {:class "column messages hero is-fullheight", :id "message-feed"} - ^{:key (str "active-page-")} - [:div.inbox-messages - main]]] - [footer] - - bottom - [:div#dz-hidden]]) + (let [ap @(re-frame/subscribe [::subs/active-page])] + [:div + [navbar ap] + [:div {:class "columns ", :id "mail-app"} + [:aside {:class "column is-narrow aside menu hero is-fullheight"} + [:div.main.left-nav + side-bar]] + [:div {:class "column messages hero is-fullheight", :id "message-feed"} + ^{:key (str "active-page-")} + [:div.inbox-messages main]]] + [footer] + bottom + [:div#dz-hidden]])) (defmulti layout page->layout) @@ -205,10 +203,18 @@ :ap ap}]) (defmethod layout :blank [ap] - [:div + [:div ^{:key ap} [pages/active-page ap]]) -(defn page [] +(defmulti page (fn [active-page] active-page)) +(defmethod page :unpaid-invoices [_] + (unpaid-invoices-page)) + +(defmethod page :paid-invoices [_] + (paid-invoices-page)) + + +(defn active-page [] (let [ap (re-frame/subscribe [::subs/active-page])] - [:div - ^{:key @ap} [layout @ap]])) + [:div + ^{:key @ap} [page @ap]])) diff --git a/src/cljs/auto_ap/views/pages/paid_invoices.cljs b/src/cljs/auto_ap/views/pages/paid_invoices.cljs index 18bc7b7e..83ada64e 100644 --- a/src/cljs/auto_ap/views/pages/paid_invoices.cljs +++ b/src/cljs/auto_ap/views/pages/paid_invoices.cljs @@ -5,9 +5,12 @@ [auto-ap.events :as events] [auto-ap.views.utils :refer [dispatch-event]] [auto-ap.utils :refer [by replace-if]] + [auto-ap.views.main :refer [side-bar-layout]] [auto-ap.views.pages.check :as check] [auto-ap.views.components.invoice-table :refer [invoice-table] :as invoice-table] [auto-ap.views.components.expense-accounts-dialog :as expense-accounts-dialog] + [auto-ap.views.components.invoices.side-bar :refer [invoices-side-bar]] + [auto-ap.views.components.vendor-dialog :refer [vendor-dialog]] [auto-ap.subs :as subs])) @@ -59,7 +62,7 @@ (replace-if #(= (:id %1) (:id %2)) updated is))) (dissoc ::change-expense-accounts))}))) -(def paid-invoices-page +(def paid-invoices-content (with-meta (fn [] @@ -80,3 +83,9 @@ {:updated-event [::expense-accounts-updated]}]])) {:component-will-mount #(do (println "HERE2") (re-frame/dispatch-sync [::params-change {}])) })) +(defn paid-invoices-page [] + [side-bar-layout {:side-bar [invoices-side-bar] + :main [paid-invoices-content] + :bottom [vendor-dialog {:vendor @(re-frame/subscribe [::subs/user-editing-vendor]) + :save-event [::events/save-vendor] + :change-event [::events/change-nested-form-state [:user-editing-vendor]] :id ::user-editing-vendor}]}]) diff --git a/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs b/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs index 50c5fa33..17abca60 100644 --- a/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs +++ b/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs @@ -8,10 +8,15 @@ [auto-ap.entities.clients :as client] [auto-ap.entities.invoice :as invoice] [auto-ap.entities.vendors :as vendor] + [bidi.bidi :as bidi] + [auto-ap.views.main :refer [side-bar-layout]] + [auto-ap.routes :as routes] [auto-ap.views.components.expense-accounts-dialog :as expense-accounts-dialog] + [auto-ap.views.components.vendor-dialog :refer [vendor-dialog]] + [auto-ap.views.components.invoices.side-bar :refer [invoices-side-bar]] [auto-ap.expense-accounts :as expense-accounts] [auto-ap.entities.invoices-expense-accounts :as invoices-expense-accounts] - [auto-ap.views.utils :refer [dispatch-event bind-field horizontal-field date->str str->date pretty standard]] + [auto-ap.views.utils :refer [active-when dispatch-event bind-field horizontal-field date->str str->date pretty standard]] [auto-ap.utils :refer [by replace-if]] [auto-ap.views.pages.check :as check] [auto-ap.views.components.invoice-table :refer [invoice-table] :as invoice-table] @@ -677,9 +682,12 @@ -(def unpaid-invoices-page + + +(def unpaid-invoices-content (with-meta - (fn [] + (fn [_] + (let [{:keys [checked print-checks-shown? print-checks-loading? advanced-print-shown? vendor-filter]} @(re-frame/subscribe [::invoice-page]) current-client @(re-frame/subscribe [::subs/client]) {check-results-shown? :shown? pdf-url :pdf-url} @(re-frame/subscribe [::check-results])] @@ -769,3 +777,10 @@ ])) {:component-will-mount #(re-frame/dispatch-sync [::params-change {}]) })) + +(defn unpaid-invoices-page [] + [side-bar-layout {:side-bar [invoices-side-bar] + :main [unpaid-invoices-content] + :bottom [vendor-dialog {:vendor @(re-frame/subscribe [::subs/user-editing-vendor]) + :save-event [::events/save-vendor] + :change-event [::events/change-nested-form-state [:user-editing-vendor]] :id ::user-editing-vendor}]}])