Removes glimpse, adds copy ids, cleans up error stuff, and supports ledyard
This commit is contained in:
@@ -29,6 +29,9 @@
|
||||
|
||||
(str/includes? (str header) "Status")
|
||||
:ledyard
|
||||
|
||||
(str/includes? (str header) "Due Date")
|
||||
:ledyard
|
||||
|
||||
:else
|
||||
nil)]
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
:hx-boost "true"} "Import"))
|
||||
|
||||
|
||||
(when (can? (:identity request)
|
||||
#_(when (can? (:identity request)
|
||||
{:subject :invoice
|
||||
:activity :import})
|
||||
(menu-button- {:href (hu/url (bidi/path-for ssr-routes/only-routes
|
||||
|
||||
@@ -8,10 +8,13 @@
|
||||
|
||||
(defn page- [{:keys [nav page-specific client clients client-selection identity app-params request] :or {app-params {}} } & children]
|
||||
[:div#app {"_" (hiccup/raw "
|
||||
on notification from body put event.detail.value into #notification-details then add .htmx-added to #notification-holder then remove .hidden from #notification-holder then wait 30ms then remove .htmx-added from #notification-holder
|
||||
on htmx:responseError put event.detail.xhr.response into #error-details then add .htmx-added to #error-holder then remove .hidden from #error-holder then wait 30ms then remove .htmx-added from #error-holder"
|
||||
on notification from body put event.detail.value into #notification-details then add .htmx-added to #notification-holder then remove .hidden from #notification-holder then wait 30ms then remove .htmx-added from #notification-holder "
|
||||
)
|
||||
:x-data (hx/json {:leftNavShow true})
|
||||
|
||||
:x-data (hx/json {:leftNavShow true
|
||||
:showError false
|
||||
:errorDetails ""})
|
||||
"@htmx:response-error.camel" "errorDetails = $event.detail.xhr.response; showError=true;"
|
||||
}
|
||||
(navbar- {:client-selection client-selection
|
||||
:clients clients
|
||||
@@ -40,22 +43,28 @@
|
||||
[:div {:class "p-4 text-lg w-full" :role "alert"}
|
||||
[:div.text-sm
|
||||
[:pre#notification-details.text-xs]]]]]]
|
||||
[:div#error-holder.hidden
|
||||
[:div#error-holder.z-50 {:x-show "showError"
|
||||
|
||||
}
|
||||
[:div.fixed.top-0.right-0.left-0.z-30.mx-auto.max-w-screen-lg.w-screen-lg.my-0.pt-8.rounded-lg
|
||||
[:div.relative
|
||||
[:button.absolute.right-2.top-2.w-6.h-6.z-50.text-red-600
|
||||
{"_" (hiccup/raw "on click add .hidden to #error-holder")}
|
||||
{ "@click" "showError=false"}
|
||||
svg/filled-x]]
|
||||
|
||||
[:div.m-4.overflow-auto.z-30.flex.center-items.justify-center.text-red-800.bg-red-50.dark:bg-gray-800.dark:text-red-400.border-red-300.rounded-lg.border.transition-all.duration-500.fade-in.slide-up.max-h-96
|
||||
|
||||
[:div.m-4.overflow-auto.z-30.flex.center-items.justify-center.text-red-800.bg-red-50.dark:bg-gray-800.dark:text-red-400.border-red-300.rounded-lg.border.max-h-96
|
||||
{:x-show "showError"
|
||||
"x-transition:enter" "transition duration-300"
|
||||
"x-transition:enter-start" "opacity-0"
|
||||
"x-transition:enter-end" "opacity-100"}
|
||||
|
||||
[:div {:class "p-4 mb-4 text-lg w-full" :role "alert"}
|
||||
[:div.inline-block.w-8.h-8.mr-2 svg/alert]
|
||||
[:span.font-medium "Oh, drat! An unexpected error has occurred."]
|
||||
[:div.text-sm
|
||||
[:div.text-sm {:x-data (hx/json {"expandError" false})}
|
||||
[:p "Integreat staff have been notified and are looking into it. "]
|
||||
[:p "To see error details, " [:a.underline {:href "#" :data-collapse-toggle "error-details"} "click here"] "."]
|
||||
[:pre#error-details.text-xs.hidden]]]]]]
|
||||
[:p "To see error details, " [:a.underline.cursor-pointer {"@click" "expandError=true"} "click here"] "."]
|
||||
[:pre#error-details.text-xs {:x-show "expandError" :x-text "errorDetails"}]]]]]]
|
||||
(into
|
||||
[:div.p-4]
|
||||
children)]]
|
||||
|
||||
@@ -293,7 +293,8 @@
|
||||
(apply com/breadcrumbs {} (:breadcrumbs grid-spec))
|
||||
(when (:above-grid grid-spec)
|
||||
( (:above-grid grid-spec) request))
|
||||
[:div {:x-data (hx/json {:selected [] :all_selected false})
|
||||
[:div {:x-data (hx/json {:selected [] :all_selected false :type (:entity-name grid-spec)})
|
||||
"x-on:copy" "if (selected.length > 0) {$clipboard(JSON.stringify({'type': type, 'selected': selected}))}"
|
||||
"x-on:client-selected.document" "selected=[]; all_selected=false"
|
||||
"x-bind:hx-vals" "JSON.stringify({selected: $data.selected, 'all-selected': $data.all_selected})"
|
||||
:x-init "$watch('selected', s=> $dispatch('selectedChanged', {selected: s, all_selected: all_selected}) );
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
[:script {:src "https://unpkg.com/dropzone@5.9.3/dist/min/dropzone.min.js"}]
|
||||
[:link {:rel "stylesheet" :href "https://unpkg.com/dropzone@5/dist/min/dropzone.min.css" :type "text/css"}]
|
||||
[:script {:defer true :src "/js/alpine-vals.js"}]
|
||||
[:script {:defer true :src "https://cdn.jsdelivr.net/npm/@ryangjchandler/alpine-clipboard@2.x.x/dist/alpine-clipboard.js"}]
|
||||
[:script {:defer true :src "https://cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js"}]
|
||||
[:script {:defer true :src "https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"}]
|
||||
[:script {:src "https://cdn.jsdelivr.net/npm/signature_pad@4.1.7/dist/signature_pad.umd.min.js"}]
|
||||
|
||||
@@ -31,13 +31,7 @@
|
||||
["/" [#"\d+" :db/id]] {:delete ::delete
|
||||
"/unvoid" ::unvoid
|
||||
"/edit" ::edit-wizard}
|
||||
"/table" ::table
|
||||
|
||||
"/glimpse" {"" {:get :invoice-glimpse
|
||||
:post :invoice-glimpse-upload
|
||||
["/" [#"\w+" :textract-invoice-id]] {:get :invoice-glimpse-textract-invoice
|
||||
"/create" {:post :invoice-glimpse-create-invoice}
|
||||
"/update" {:patch :invoice-glimpse-update-textract-invoice}}}}})
|
||||
"/table" ::table })
|
||||
|
||||
(def legacy-routes {"" ::legacy-invoices
|
||||
"import" ::legacy-import-invoices
|
||||
|
||||
Reference in New Issue
Block a user