|
|
@@ -2,11 +2,13 @@
|
|
|
(:require [cljs.core.async :refer [<! >! go chan go-loop] :as a]
|
|
|
[clojure.string :as str]
|
|
|
[frontend.components.svg :as svg]
|
|
|
+ [frontend.extensions.pdf.assets :as pdf-assets]
|
|
|
[frontend.extensions.zotero.api :as api]
|
|
|
[frontend.extensions.zotero.handler :as zotero-handler]
|
|
|
[frontend.extensions.zotero.setting :as setting]
|
|
|
[frontend.handler.notification :as notification]
|
|
|
[frontend.handler.route :as route-handler]
|
|
|
+ [frontend.state :as state]
|
|
|
[frontend.ui :as ui]
|
|
|
[frontend.util :as util]
|
|
|
[goog.dom :as gdom]
|
|
|
@@ -251,6 +253,23 @@
|
|
|
:placeholder "tag1,tag2,tag3"
|
|
|
:on-blur (fn [e] (setting/set-setting! :extra-tags (util/evalue e)))}]]]]
|
|
|
|
|
|
+ (when (util/electron?)
|
|
|
+ [:div.row
|
|
|
+ [:label.title
|
|
|
+ {:for "zotero_data_directory"}
|
|
|
+ "Zotero data directory"
|
|
|
+ [:a.ml-2
|
|
|
+ {:title "Set Zotero data directory to open pdf attachment in Logseq. Click to learn more."
|
|
|
+ :href "https://www.zotero.org/support/zotero_data"
|
|
|
+ :target "_blank"}
|
|
|
+ (svg/info)]]
|
|
|
+ [:div.mt-1.sm:mt-0.sm:col-span-2
|
|
|
+ [:div.max-w-lg.rounded-md
|
|
|
+ [:input.form-input.block
|
|
|
+ {:default-value (setting/setting :zotero-data-directory)
|
|
|
+ :placeholder "/Users/<username>/Zotero"
|
|
|
+ :on-blur (fn [e] (setting/set-setting! :zotero-data-directory (util/evalue e)))}]]]])
|
|
|
+
|
|
|
[:div.row
|
|
|
[:label.title
|
|
|
{:for "zotero_import_all"}
|
|
|
@@ -281,3 +300,31 @@
|
|
|
[:div.row
|
|
|
[:div.bg-greenred-200.py-3.rounded-lg.col-span-full
|
|
|
[:progress.w-full {:max (+ @(::total state) 30) :value @(::progress state)}] "Importing items from Zotero....Please wait..."]])])
|
|
|
+
|
|
|
+
|
|
|
+(rum/defc zotero-pdf-link
|
|
|
+ [label-text href]
|
|
|
+ [:div.zotero-pdf-link
|
|
|
+ [:a.external-link
|
|
|
+ {:href href
|
|
|
+ :target "_blank"}
|
|
|
+ label-text]
|
|
|
+ (ui/button
|
|
|
+ "annotate"
|
|
|
+ :small? true
|
|
|
+ :class "ml-1"
|
|
|
+ :on-click
|
|
|
+ (fn []
|
|
|
+ (if (str/blank? (setting/setting :zotero-data-directory))
|
|
|
+ (do
|
|
|
+ (route-handler/redirect! {:to :zotero-setting})
|
|
|
+ (notification/show! "Please setup Zotero data directory" :warn false))
|
|
|
+ (let [item-key (->> (str/split href #"/") last)
|
|
|
+ full-path
|
|
|
+ (util/node-path.join
|
|
|
+ (setting/setting :zotero-data-directory)
|
|
|
+ "storage"
|
|
|
+ item-key
|
|
|
+ label-text)
|
|
|
+ current (pdf-assets/inflate-asset full-path)]
|
|
|
+ (state/set-state! :pdf/current current)))))])
|