93 lines
1.6 KiB
Clojure
93 lines
1.6 KiB
Clojure
(ns auto-ap.subs
|
|
(:require [re-frame.core :as re-frame]
|
|
[clojure.string :as str]
|
|
[auto-ap.expense-accounts :refer [expense-accounts chooseable-expense-accounts]]
|
|
[goog.crypt.base64 :as base64]))
|
|
|
|
(re-frame/reg-sub
|
|
::company
|
|
(fn [db]
|
|
(get (:companies db) (:company db))))
|
|
|
|
(re-frame/reg-sub
|
|
::companies
|
|
(fn [db]
|
|
(when (:user db)
|
|
(vals (:companies db)))))
|
|
|
|
(re-frame/reg-sub
|
|
::companies-by-id
|
|
(fn [db]
|
|
(when (:user db)
|
|
(:companies db))))
|
|
|
|
(re-frame/reg-sub
|
|
::menu
|
|
(fn [db]
|
|
(:menu db)))
|
|
|
|
(re-frame/reg-sub
|
|
::modal-state
|
|
(fn [db [_ id]]
|
|
(get (:modal-state db) id)))
|
|
|
|
(re-frame/reg-sub
|
|
::token
|
|
(fn [db]
|
|
(:user db)))
|
|
|
|
(re-frame/reg-sub
|
|
::vendors
|
|
(fn [db]
|
|
(vals (:vendors db))))
|
|
|
|
(re-frame/reg-sub
|
|
::admin
|
|
(fn [db]
|
|
(:admin db)))
|
|
|
|
(re-frame/reg-sub
|
|
::user-editing-vendor
|
|
(fn [db]
|
|
(-> db :user-editing-vendor)))
|
|
|
|
(re-frame/reg-sub
|
|
::user
|
|
(fn [db]
|
|
(when (:user db)
|
|
(js->clj (.parse js/JSON (base64/decodeString (second (str/split (:user db) #"\.")))) :keywordize-keys true))))
|
|
|
|
(re-frame/reg-sub
|
|
::active-page
|
|
(fn [db]
|
|
(:active-page db)))
|
|
|
|
(re-frame/reg-sub
|
|
::pending-invoices
|
|
(fn [db]
|
|
(:pending (:invoices db))))
|
|
|
|
|
|
(re-frame/reg-sub
|
|
::status
|
|
(fn [db]
|
|
(:status db)))
|
|
|
|
(re-frame/reg-sub
|
|
::new-invoice-form
|
|
(fn [db]
|
|
(:new-invoice db)))
|
|
|
|
|
|
(re-frame/reg-sub
|
|
::expense-accounts
|
|
(fn [db]
|
|
(map (fn [[k v]] (assoc v :id k))
|
|
expense-accounts)))
|
|
|
|
(re-frame/reg-sub
|
|
::chooseable-expense-accounts
|
|
(fn [db]
|
|
(map (fn [[k v]] (assoc v :id k))
|
|
chooseable-expense-accounts)))
|