mirror of https://github.com/logseq/logseq
fix: render v2 tables correctly
also added shui properties so they are built-in and editablepull/10438/head
parent
2d19eae645
commit
deb2a1aaad
|
@ -173,13 +173,16 @@
|
|||
the following keys:
|
||||
* :schema - Property's schema. Required key
|
||||
* :original-name - Property's :block/original-name
|
||||
* :attribute - Property that is saved to a datascript attribute outside of :block/properties"
|
||||
* :attribute - Property keyword that is saved to a datascript attribute outside of :block/properties
|
||||
* :visible - Boolean to indicate user can see and use this property"
|
||||
{:alias {:original-name "Alias"
|
||||
:attribute :block/alias
|
||||
:visible true
|
||||
:schema {:type :page
|
||||
:cardinality :many}}
|
||||
:tags {:original-name "Tags"
|
||||
:attribute :block/tags
|
||||
:visible true
|
||||
:schema {:type :page
|
||||
:cardinality :many}}
|
||||
:background-color {:schema {:type :default}}
|
||||
|
@ -201,6 +204,25 @@
|
|||
:logseq.order-list-type {:schema {:type :checkbox}}
|
||||
:logseq.tldraw.page {:schema {:type :map}}
|
||||
:logseq.tldraw.shape {:schema {:type :map}}
|
||||
;; color props
|
||||
:logseq.color {:schema {:type :default}
|
||||
:visible true}
|
||||
;; table-v2 props
|
||||
:logseq.table.version {:schema {:type :number}
|
||||
:visible true}
|
||||
:logseq.table.compact {:schema {:type :checkbox}
|
||||
:visible true}
|
||||
:logseq.table.headers {:schema {:type :default}
|
||||
:visible true}
|
||||
:logseq.table.hover {:schema {:type :default}
|
||||
:visible true}
|
||||
:logseq.table.borders {:schema {:type :checkbox}
|
||||
:visible true}
|
||||
:logseq.table.stripes {:schema {:type :checkbox}
|
||||
:visible true}
|
||||
:logseq.table.max-width {:schema {:type :number}
|
||||
:visible true}
|
||||
|
||||
:icon {:original-name "Icon"
|
||||
:schema {:type :map}}
|
||||
:public {:schema {:type :checkbox}}
|
||||
|
@ -208,15 +230,15 @@
|
|||
:exclude-from-graph-view {:schema {:type :checkbox}}
|
||||
:created-in-property {:schema {:type :checkbox}}})
|
||||
|
||||
(def db-user-facing-built-in-properties
|
||||
(def db-visible-built-in-properties
|
||||
"These are built-in properties that users can see and use"
|
||||
#{:alias :tags})
|
||||
(set (keep (fn [[k v]] (when (:visible v) k)) db-built-in-properties)))
|
||||
|
||||
(defonce db-built-in-properties-keys
|
||||
(set (keys db-built-in-properties)))
|
||||
|
||||
(def db-hidden-built-in-properties
|
||||
(set/difference db-built-in-properties-keys db-user-facing-built-in-properties))
|
||||
(set/difference db-built-in-properties-keys db-visible-built-in-properties))
|
||||
|
||||
(defonce db-built-in-properties-keys-str
|
||||
(set (map name (keys db-built-in-properties))))
|
||||
|
|
|
@ -376,9 +376,6 @@
|
|||
namespace-properties (->> (:block/tags block)
|
||||
(get-namespace-properties)
|
||||
(map (fn [id] [id nil])))
|
||||
built-in-properties (set/difference
|
||||
(set (map name gp-property/db-built-in-properties-keys))
|
||||
#{"alias" "tags"})
|
||||
properties (->> (concat (seq tags-properties)
|
||||
(seq alias-properties)
|
||||
(seq properties)
|
||||
|
@ -387,7 +384,7 @@
|
|||
(util/distinct-by first)
|
||||
(remove (fn [[k _v]]
|
||||
(when (uuid? k)
|
||||
(contains? built-in-properties (:block/name (db/entity [:block/uuid k])))))))
|
||||
(contains? gp-property/db-hidden-built-in-properties (keyword (:block/name (db/entity [:block/uuid k]))))))))
|
||||
new-property? (or
|
||||
(and (:*configure-show? opts)
|
||||
@(:*configure-show? opts)
|
||||
|
|
|
@ -294,9 +294,10 @@
|
|||
sort-result (sort-result result (assoc sort-state :page? page?))
|
||||
table-version (get-shui-component-version :table config)]
|
||||
(case table-version
|
||||
2 (let [result-as-text (for [row sort-result]
|
||||
2 (let [v2-columns (mapv #(if (uuid? %) (pu/get-property-name %) %) columns)
|
||||
result-as-text (for [row result]
|
||||
(for [column columns]
|
||||
(build-column-text row column)))]
|
||||
(shui/table-v2 {:data (conj [[columns]] result-as-text)}
|
||||
(shui/table-v2 {:data (conj [[v2-columns]] result-as-text)}
|
||||
(make-shui-context config inline)))
|
||||
1 (result-table-v1 config current-block sort-result sort-state columns options map-inline page-cp ->elem inline-text)))))
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
(ns frontend.shui
|
||||
"Glue between frontend code and deps/shui for convenience"
|
||||
(:require
|
||||
[frontend.date :refer [int->local-time-2]]
|
||||
[frontend.state :as state]
|
||||
[logseq.shui.context :refer [make-context]]))
|
||||
(:require
|
||||
[frontend.date :refer [int->local-time-2]]
|
||||
[frontend.state :as state]
|
||||
[frontend.handler.property.util :as pu]
|
||||
[logseq.shui.context :refer [make-context]]))
|
||||
|
||||
(def default-versions {:logseq.table.version 1})
|
||||
|
||||
|
@ -13,7 +14,7 @@
|
|||
[component-name block-config]
|
||||
(let [version-key (keyword (str "logseq." (name component-name) ".version"))]
|
||||
(js/parseFloat
|
||||
(or (get-in block-config [:block :block/properties version-key])
|
||||
(or (pu/lookup (get-in block-config [:block :block/properties]) version-key)
|
||||
(get-in (state/get-config) [version-key])
|
||||
(get-in default-versions [version-key])
|
||||
1))))
|
||||
|
|
Loading…
Reference in New Issue