160 lines
5.0 KiB
Clojure
160 lines
5.0 KiB
Clojure
(ns auto-ap.views.main
|
|
(:require
|
|
[re-frame.core :as re-frame]
|
|
[bidi.bidi :as bidi]
|
|
[auto-ap.routes :as routes]
|
|
[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.components.layouts :refer [side-bar-layout loading-layout]]
|
|
[auto-ap.views.pages.unpaid-invoices :refer [unpaid-invoices-page]]
|
|
[auto-ap.views.pages.import-invoices :refer [import-invoices-page]]
|
|
[auto-ap.views.pages.needs-activation :refer [needs-activation-page]]
|
|
[auto-ap.views.pages.transactions :refer [transactions-page]]
|
|
[auto-ap.views.pages.ledger :refer [ledger-page]]
|
|
[auto-ap.views.pages.ledger.balance-sheet :refer [balance-sheet-page]]
|
|
[auto-ap.views.pages.ledger.external-import :refer [external-import-page]]
|
|
[auto-ap.views.pages.ledger.profit-and-loss :refer [profit-and-loss-page]]
|
|
[auto-ap.views.pages.login :refer [login-page]]
|
|
[auto-ap.views.pages.payments :refer [payments-page]]
|
|
[auto-ap.views.pages.admin :refer [admin-page]]
|
|
[auto-ap.views.pages.home :refer [home-page]]
|
|
[auto-ap.views.pages.admin.clients :refer [admin-clients-page]]
|
|
[auto-ap.views.pages.admin.accounts :refer [admin-accounts-page]]
|
|
[auto-ap.views.pages.admin.rules :refer [admin-rules-page]]
|
|
[auto-ap.views.pages.admin.vendors :refer [admin-vendors-page]]
|
|
[auto-ap.views.pages.admin.excel-import :refer [admin-excel-import-page]]
|
|
[auto-ap.views.pages.admin.users :refer [admin-users-page]]
|
|
[auto-ap.views.pages.admin.yodlee :refer [admin-yodlee-page]]
|
|
[auto-ap.entities.clients :as clients]
|
|
[auto-ap.views.components.vendor-dialog :refer [vendor-dialog]]))
|
|
|
|
(defmulti page (fn [active-page] active-page))
|
|
(defmethod page :unpaid-invoices [_]
|
|
^{:key :voided}
|
|
[unpaid-invoices-page {:status :unpaid}])
|
|
|
|
(defmethod page :import-invoices [_]
|
|
(import-invoices-page ))
|
|
|
|
|
|
(defmethod page :paid-invoices [_]
|
|
^{:key :voided}
|
|
[unpaid-invoices-page {:status :paid}]
|
|
)
|
|
|
|
(defmethod page :voided-invoices [_]
|
|
^{:key :voided}
|
|
[unpaid-invoices-page {:status :voided}])
|
|
|
|
(defmethod page :invoices [_]
|
|
^{:key :all}
|
|
[unpaid-invoices-page {}])
|
|
|
|
(defmethod page :payments [_]
|
|
[payments-page])
|
|
|
|
(defmethod page :transactions [_]
|
|
(transactions-page {}))
|
|
|
|
(defmethod page :unapproved-transactions [_]
|
|
[transactions-page {:approval-status :unapproved}])
|
|
|
|
(defmethod page :approved-transactions [_]
|
|
[transactions-page {:approval-status :approved}])
|
|
|
|
(defmethod page :requires-feedback-transactions [_]
|
|
[transactions-page {:approval-status :requires-feedback}])
|
|
|
|
(defmethod page :excluded-transactions [_]
|
|
[transactions-page {:approval-status :excluded}])
|
|
|
|
|
|
(defmethod page :ledger [_]
|
|
(ledger-page))
|
|
|
|
(defmethod page :profit-and-loss [_]
|
|
(profit-and-loss-page))
|
|
|
|
(defmethod page :balance-sheet [_]
|
|
(balance-sheet-page))
|
|
|
|
(defmethod page :admin [_]
|
|
(admin-page))
|
|
|
|
(defmethod page :admin-clients [_]
|
|
(admin-clients-page))
|
|
|
|
|
|
(defmethod page :admin-rules [_]
|
|
(admin-rules-page))
|
|
|
|
(defmethod page :admin-users [_]
|
|
(admin-users-page))
|
|
|
|
(defmethod page :admin-vendors [_]
|
|
(admin-vendors-page))
|
|
|
|
(defmethod page :admin-yodlee [_]
|
|
(admin-yodlee-page))
|
|
|
|
(defmethod page :admin-accounts [_]
|
|
(admin-accounts-page))
|
|
|
|
(defmethod page :index [_]
|
|
(home-page)
|
|
)
|
|
|
|
(defmethod page :login [_]
|
|
[login-page])
|
|
|
|
(defmethod page :needs-activation [_]
|
|
[needs-activation-page])
|
|
|
|
(defmethod page :external-import-ledger [_]
|
|
[external-import-page])
|
|
|
|
(defmethod page :admin-excel-import [_]
|
|
[admin-excel-import-page])
|
|
;;
|
|
;; ;; <div id="app">
|
|
;; <nav class="navbar has-shadow">
|
|
;; <div class="container">
|
|
;; <div class="navbar-brand">
|
|
;; <a class="navbar-item" href="../">
|
|
;; <img src="/img/logo.png" />
|
|
;; </a>
|
|
;; </div>
|
|
;; </div>
|
|
;; </nav>
|
|
;; <div class="has-text-centered hero is-fullheight is-vertically-centered" id="mail-app">
|
|
;; <div class="is-vertically-centered">
|
|
;; <h1 class="title"><i class="fa fa-spin fa-spinner"></i></h1>
|
|
;; </div>
|
|
;; </div>
|
|
;; <footer class="footer">
|
|
;; <div class="container">
|
|
;; <div class="content has-text-centered">
|
|
;; <p>
|
|
;; <strong>Integreat</strong>
|
|
;; by <a href="https://github.com/">Integreat</a>.
|
|
;; </p>
|
|
;; <p>
|
|
;; <a class="icon" href="https://github.com/dansup/bulma-templates">
|
|
;; <i class="fa fa-github"></i>
|
|
;; </a>
|
|
;; </p>
|
|
;; </div>
|
|
;; </div>
|
|
;; </footer>
|
|
;; </div>
|
|
|
|
(defn active-page []
|
|
(let [ap (re-frame/subscribe [::subs/active-page])
|
|
is-loading? @(re-frame/subscribe [::subs/is-initial-loading?])]
|
|
(if is-loading?
|
|
[loading-layout]
|
|
|
|
[:div
|
|
^{:key @ap} [page @ap]])))
|