every ssr page is tailwindified.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -8,7 +8,7 @@ pom.xml.asc
|
|||||||
*.class
|
*.class
|
||||||
/.lein-*
|
/.lein-*
|
||||||
/.nrepl-port
|
/.nrepl-port
|
||||||
/resources/public/js/compiled
|
resources/public/js/compiled
|
||||||
*.log
|
*.log
|
||||||
examples/
|
examples/
|
||||||
\#*\#
|
\#*\#
|
||||||
|
|||||||
BIN
resources/public/favicon.png
Normal file
BIN
resources/public/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
@@ -1570,6 +1570,18 @@ input:checked + .toggle-bg {
|
|||||||
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
|
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
|
||||||
|
--tw-space-y-reverse: 0;
|
||||||
|
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
|
||||||
|
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
|
||||||
|
}
|
||||||
|
|
||||||
|
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
|
||||||
|
--tw-space-y-reverse: 0;
|
||||||
|
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
|
||||||
|
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
|
||||||
|
}
|
||||||
|
|
||||||
.divide-y > :not([hidden]) ~ :not([hidden]) {
|
.divide-y > :not([hidden]) ~ :not([hidden]) {
|
||||||
--tw-divide-y-reverse: 0;
|
--tw-divide-y-reverse: 0;
|
||||||
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
||||||
@@ -1786,6 +1798,11 @@ input:checked + .toggle-bg {
|
|||||||
background-color: rgb(255 205 205 / var(--tw-bg-opacity));
|
background-color: rgb(255 205 205 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-blue-300 {
|
||||||
|
--tw-bg-opacity: 1;
|
||||||
|
background-color: rgb(102 196 242 / var(--tw-bg-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.bg-opacity-50 {
|
.bg-opacity-50 {
|
||||||
--tw-bg-opacity: 0.5;
|
--tw-bg-opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,8 @@
|
|||||||
[com.brunobonacci.mulog :as mu]
|
[com.brunobonacci.mulog :as mu]
|
||||||
[datomic.api :as dc]
|
[datomic.api :as dc]
|
||||||
[hiccup2.core :as hiccup]
|
[hiccup2.core :as hiccup]
|
||||||
[amazonica.aws.s3 :as s3]))
|
[amazonica.aws.s3 :as s3]
|
||||||
|
[auto-ap.ssr.components :as com]))
|
||||||
|
|
||||||
(defn fmt-amount [a]
|
(defn fmt-amount [a]
|
||||||
(with-precision 2
|
(with-precision 2
|
||||||
@@ -27,18 +28,12 @@
|
|||||||
(.setScale 2 java.math.RoundingMode/HALF_UP)
|
(.setScale 2 java.math.RoundingMode/HALF_UP)
|
||||||
(double))))
|
(double))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defn rows->maps [rows]
|
(defn rows->maps [rows]
|
||||||
(let [[headers & rows] rows]
|
(let [[headers & rows] rows]
|
||||||
(for [r rows]
|
(for [r rows]
|
||||||
(into {}
|
(into {}
|
||||||
(map vector headers r)))))
|
(map vector headers r)))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defn map->sales-order [r clients]
|
(defn map->sales-order [r clients]
|
||||||
(let [order-number (get r "Order Number")
|
(let [order-number (get r "Order Number")
|
||||||
event-date (get r "Event Date")
|
event-date (get r "Event Date")
|
||||||
@@ -136,30 +131,29 @@
|
|||||||
(stream->sales-orders s)))
|
(stream->sales-orders s)))
|
||||||
|
|
||||||
(defn page* []
|
(defn page* []
|
||||||
[:div
|
[:div.mt-4
|
||||||
[:h1.title "EZCater XLS Import"]
|
(com/card {}
|
||||||
[:div.card.block {:style {:width "500px"}}
|
[:div.px-4.py-3.space-y-4.flex.flex-col
|
||||||
[:div.card-content
|
[:h1.text-2xl.mb-3.font-bold "EZCater XLS Import"]
|
||||||
"Please go to "
|
[:p.text-sm.italic
|
||||||
[:a {:href "https://www.ezcater.com/ez_manage/reports/new" :target "_blank"} "EZCater's report page"]
|
"Please go to "
|
||||||
" to generate a new report. Then drop it below."]]
|
(com/link {:href "https://www.ezcater.com/ez_manage/reports/new" :target "_blank"} "EZCater's report page")
|
||||||
[:div#page-notification.notification.block {:style {:display "none"}}]
|
" to generate a new report. Then drop it below."]
|
||||||
[:div.card.block
|
[:div#page-notification.notification.block {:style {:display "none"}}]
|
||||||
[:div.card-content
|
[:form.bg-blue-300 {:action (bidi/path-for ssr-routes/only-routes
|
||||||
[:form {:action (bidi/path-for ssr-routes/only-routes
|
:admin-ezcater-xls)
|
||||||
:admin-ezcater-xls)
|
:method "POST"
|
||||||
:method "POST"
|
:class "dropzone"
|
||||||
:class "dropzone"
|
:id "ezcater"}]
|
||||||
:id "ezcater"}]]]
|
[:script
|
||||||
[:script
|
(hiccup/raw
|
||||||
(hiccup/raw
|
"
|
||||||
"
|
|
||||||
Dropzone.options.ezcater = {
|
Dropzone.options.ezcater = {
|
||||||
success: function (file, response) {
|
success: function (file, response) {
|
||||||
document.getElementById(\"page-notification\").innerHTML = response;
|
document.getElementById(\"page-notification\").innerHTML = response;
|
||||||
document.getElementById(\"page-notification\").style[\"display\"] = \"block\";
|
document.getElementById(\"page-notification\").style[\"display\"] = \"block\";
|
||||||
}
|
}
|
||||||
}")]])
|
}")]])])
|
||||||
|
|
||||||
(defn upload-xls [{:keys [identity] :as request}]
|
(defn upload-xls [{:keys [identity] :as request}]
|
||||||
|
|
||||||
@@ -195,8 +189,23 @@
|
|||||||
(if (= :post request-method)
|
(if (= :post request-method)
|
||||||
(upload-xls request)
|
(upload-xls request)
|
||||||
(base-page
|
(base-page
|
||||||
request
|
request
|
||||||
(page*)
|
(com/page {:nav (com/company-aside-nav)
|
||||||
|
:active-client (:client (:session request))
|
||||||
(admin-side-bar matched-route))))
|
:identity (:identity request)
|
||||||
|
:app-params {:hx-get (bidi/path-for ssr-routes/only-routes
|
||||||
|
:admin-ezcater-xls)
|
||||||
|
:hx-trigger "clientSelected from:body"
|
||||||
|
:hx-select "#app-contents"
|
||||||
|
:hx-swap "outerHTML swap:300ms"}}
|
||||||
|
(com/breadcrumbs {}
|
||||||
|
[:a {:href (bidi/path-for ssr-routes/only-routes
|
||||||
|
:admin)}
|
||||||
|
"Admin"]
|
||||||
|
[:a {:href (bidi/path-for ssr-routes/only-routes
|
||||||
|
:admin-ezcater-xls)}
|
||||||
|
"EZCater XLS Import"])
|
||||||
|
(page*))
|
||||||
|
|
||||||
|
"EZCater upload")))
|
||||||
|
|
||||||
|
|||||||
@@ -111,8 +111,7 @@
|
|||||||
(com/data-grid-card {:id "history-table"
|
(com/data-grid-card {:id "history-table"
|
||||||
:title (format "History for %s: %d" (str/capitalize best-guess-entity) entity-id)
|
:title (format "History for %s: %d" (str/capitalize best-guess-entity) entity-id)
|
||||||
:route :history-table
|
:route :history-table
|
||||||
:start 0
|
:paginate? false
|
||||||
:per-page (count history)
|
|
||||||
:total (count history)
|
:total (count history)
|
||||||
:subtitle nil
|
:subtitle nil
|
||||||
:action-buttons nil
|
:action-buttons nil
|
||||||
@@ -188,4 +187,4 @@
|
|||||||
[:div#history-table])
|
[:div#history-table])
|
||||||
[:div#inspector]
|
[:div#inspector]
|
||||||
])
|
])
|
||||||
nil)))
|
"History")))
|
||||||
|
|||||||
@@ -63,5 +63,5 @@
|
|||||||
:company)}
|
:company)}
|
||||||
"My Company"])
|
"My Company"])
|
||||||
(main-content* {:client (:client (:session request))}))
|
(main-content* {:client (:client (:session request))}))
|
||||||
nil))
|
"My Company"))
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,8 @@
|
|||||||
(update-in c [1 1 :class ] str " flex items-center p-2 pl-11 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700")])])
|
(update-in c [1 1 :class ] str " flex items-center p-2 pl-11 w-full text-base font-normal text-gray-900 rounded-lg transition duration-75 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700")])])
|
||||||
|
|
||||||
(defn left-aside- [{:keys [nav page-specific]} & children]
|
(defn left-aside- [{:keys [nav page-specific]} & children]
|
||||||
[:aside {:id "left-nav", :class "fixed top-0 left-0 pt-16 z-20 w-64 h-screen transition-transform -translate-x-full lg:translate-x-0", :aria-labelledby "left-nav" :aria-hidden "true"}
|
[:aside {:id "left-nav", :class "fixed top-0 left-0 pt-16 z-20 w-64 h-screen transition-transform -translate-x-full lg:translate-x-0", :aria-labelledby "left-nav" :aria-hidden "true"
|
||||||
|
"_" (hiccup/raw "init call initSidebarToggle()")}
|
||||||
|
|
||||||
[:div {:class "overflow-y-auto py-5 px-3 h-full bg-gray-50 border-r border-gray-200 dark:bg-gray-800 dark:border-gray-700"}
|
[:div {:class "overflow-y-auto py-5 px-3 h-full bg-gray-50 border-r border-gray-200 dark:bg-gray-800 dark:border-gray-700"}
|
||||||
nav
|
nav
|
||||||
@@ -125,6 +126,7 @@
|
|||||||
[:use {:width "30", :height "20", :transform "matrix(16 -19.968 19.968 16 256 230.4)", :xlink:href "#a"}]] "中文 (繁體)"]]]]]]
|
[:use {:width "30", :height "20", :transform "matrix(16 -19.968 19.968 16 256 230.4)", :xlink:href "#a"}]] "中文 (繁體)"]]]]]]
|
||||||
[:script {:lang "text/javascript"}
|
[:script {:lang "text/javascript"}
|
||||||
(hiccup/raw "
|
(hiccup/raw "
|
||||||
|
function initSidebarToggle() {
|
||||||
var $targetEl = document.getElementById('left-nav');
|
var $targetEl = document.getElementById('left-nav');
|
||||||
|
|
||||||
var $triggerEl = document.getElementById('left-nav-toggle');
|
var $triggerEl = document.getElementById('left-nav-toggle');
|
||||||
@@ -140,8 +142,8 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// var collapse = new Collapse($targetEl, $triggerEl, options);
|
var collapse = new Collapse($targetEl, $triggerEl, options);
|
||||||
|
}
|
||||||
")]])
|
")]])
|
||||||
|
|
||||||
(defn main-aside-nav- []
|
(defn main-aside-nav- []
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
rows)]
|
rows)]
|
||||||
|
|
||||||
(when (or paginate?
|
(when (or paginate?
|
||||||
(not (nil? paginate?)))
|
(nil? paginate?))
|
||||||
(paginator- {:start start
|
(paginator- {:start start
|
||||||
:end (Math/min (+ start per-page) total)
|
:end (Math/min (+ start per-page) total)
|
||||||
:per-page per-page
|
:per-page per-page
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
(def key->handler {:logout auth/logout
|
(def key->handler {:logout auth/logout
|
||||||
:admin-history (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/history)))
|
:admin-history (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/history)))
|
||||||
:admin-history-search (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/history-search)))
|
:admin-history-search (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/history)))
|
||||||
:admin-history-inspect (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/inspect)))
|
:admin-history-inspect (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin admin/inspect)))
|
||||||
:active-client (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin company-dropdown/active-client)))
|
:active-client (wrap-client-redirect-unauthenticated (wrap-secure (wrap-admin company-dropdown/active-client)))
|
||||||
:company-dropdown-search-results
|
:company-dropdown-search-results
|
||||||
|
|||||||
@@ -183,4 +183,4 @@
|
|||||||
(table* grid-spec
|
(table* grid-spec
|
||||||
identity
|
identity
|
||||||
(extract-params grid-spec request)))
|
(extract-params grid-spec request)))
|
||||||
nil))
|
(:title grid-spec)))
|
||||||
|
|||||||
@@ -214,4 +214,4 @@
|
|||||||
(insight-table* {:selected-client
|
(insight-table* {:selected-client
|
||||||
(-> session :client :db/id)
|
(-> session :client :db/id)
|
||||||
:identity identity})]
|
:identity identity})]
|
||||||
[:div (company-side-bar matched-route)]))
|
"Transaction Insights"))
|
||||||
|
|||||||
@@ -11,15 +11,16 @@
|
|||||||
{}
|
{}
|
||||||
hiccup))})
|
hiccup))})
|
||||||
|
|
||||||
(defn base-page [request contents side-bar-contents]
|
(defn base-page [request contents page-name]
|
||||||
(html-page
|
(html-page
|
||||||
[:html.has-navbar-fixed-top
|
[:html.has-navbar-fixed-top
|
||||||
[:head
|
[:head
|
||||||
[:meta {:charset "utf-8"}]
|
[:meta {:charset "utf-8"}]
|
||||||
[:meta {:http-equiv "X-UA-Compatible", :content "IE=edge"}]
|
[:meta {:http-equiv "X-UA-Compatible", :content "IE=edge"}]
|
||||||
[:meta {:name "viewport", :content "width=device-width, initial-scale=1"}]
|
[:meta {:name "viewport", :content "width=device-width, initial-scale=1"}]
|
||||||
[:title "Integreat"]
|
[:title (str "Integreat | " page-name)]
|
||||||
[:link {:href "/css/font.min.css", :rel "stylesheet"}]
|
[:link {:href "/css/font.min.css", :rel "stylesheet"}]
|
||||||
|
[:link {:rel "icon" :type "image/png" :href "/favicon.png"}]
|
||||||
[:link {:rel "stylesheet", :href "/css/react-datepicker.min.inc.css"}]
|
[:link {:rel "stylesheet", :href "/css/react-datepicker.min.inc.css"}]
|
||||||
[:link {:rel "stylesheet", :href "/output.css"}]
|
[:link {:rel "stylesheet", :href "/output.css"}]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user