property.cljs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. (ns frontend.handler.property
  2. "Property fns for both file and DB graphs"
  3. (:require [frontend.handler.db-based.property :as db-property-handler]
  4. [frontend.handler.file-based.property :as file-property-handler]
  5. [frontend.handler.file-based.page-property :as file-page-property]
  6. [frontend.config :as config]
  7. [frontend.util :as util]
  8. [frontend.state :as state]
  9. [frontend.db :as db]))
  10. (defn remove-block-property!
  11. [repo block-id property-id-or-key]
  12. (if (config/db-based-graph? repo)
  13. (let [eid (if (uuid? block-id) [:block/uuid block-id] block-id)]
  14. (db-property-handler/remove-block-property! repo eid property-id-or-key))
  15. (file-property-handler/remove-block-property! block-id property-id-or-key)))
  16. (defn set-block-property!
  17. [repo block-id key v & opts]
  18. (if (config/db-based-graph? repo)
  19. (let [eid (if (uuid? block-id) [:block/uuid block-id] block-id)]
  20. (if (or (nil? v) (and (coll? v) (empty? v)))
  21. (db-property-handler/remove-block-property! repo eid key)
  22. (db-property-handler/set-block-property! repo eid key v opts)))
  23. (file-property-handler/set-block-property! block-id key v)))
  24. (defn add-page-property!
  25. "Sanitized page-name, unsanitized key / value"
  26. [page-name key value]
  27. (let [repo (state/get-current-repo)]
  28. (if (config/db-based-graph? repo)
  29. (when-let [page (db/pull [:block/name (util/page-name-sanity-lc page-name)])]
  30. (set-block-property! repo (:block/uuid page) key value))
  31. (file-page-property/add-property! page-name key value))))
  32. (defn set-editing-new-property!
  33. [value]
  34. (state/set-state! :editor/new-property-input-id value))
  35. (defn editing-new-property!
  36. ([]
  37. (editing-new-property! (state/get-edit-input-id)))
  38. ([input-id]
  39. (set-editing-new-property! input-id)
  40. (state/clear-edit!)))
  41. (defn remove-id-property
  42. [repo format content]
  43. (if (config/db-based-graph? repo)
  44. content
  45. (file-property-handler/remove-id-property format content)))
  46. (defn file-persist-block-id!
  47. [repo block-id]
  48. (when-not (config/db-based-graph? repo)
  49. (file-property-handler/set-block-property! block-id :id (str block-id))))
  50. (defn batch-remove-block-property!
  51. [repo block-ids key]
  52. (if (config/db-based-graph? repo)
  53. (db-property-handler/batch-remove-property! repo block-ids key)
  54. (file-property-handler/batch-remove-block-property! block-ids key)))
  55. (defn batch-set-block-property!
  56. [repo block-ids key value]
  57. (if (config/db-based-graph? repo)
  58. (if (nil? value)
  59. (db-property-handler/batch-remove-property! repo block-ids key)
  60. (db-property-handler/batch-set-property! repo block-ids key value))
  61. (file-property-handler/batch-set-block-property! block-ids key value)))
  62. (defn replace-key-with-id
  63. [repo m]
  64. (if (config/db-based-graph? repo)
  65. (db-property-handler/replace-key-with-id m)
  66. m))