mirror of https://github.com/logseq/logseq
fix: built-in pages shouldn't be deleted
Fixes https://github.com/logseq/db-test/issues/91. We still need to add validation before db/transact!, this will be handled in another commit.pull/11526/merge
parent
50816b8497
commit
b826fc5ba9
|
@ -713,18 +713,20 @@
|
||||||
[:pre [(seq blocks)]]
|
[:pre [(seq blocks)]]
|
||||||
(let [top-level-blocks (filter-top-level-blocks @conn blocks)
|
(let [top-level-blocks (filter-top-level-blocks @conn blocks)
|
||||||
non-consecutive? (and (> (count top-level-blocks) 1) (seq (ldb/get-non-consecutive-blocks @conn top-level-blocks)))
|
non-consecutive? (and (> (count top-level-blocks) 1) (seq (ldb/get-non-consecutive-blocks @conn top-level-blocks)))
|
||||||
top-level-blocks (get-top-level-blocks top-level-blocks non-consecutive?)
|
top-level-blocks (->> (get-top-level-blocks top-level-blocks non-consecutive?)
|
||||||
|
(remove ldb/page?))
|
||||||
txs-state (ds/new-outliner-txs-state)
|
txs-state (ds/new-outliner-txs-state)
|
||||||
block-ids (map (fn [b] [:block/uuid (:block/uuid b)]) top-level-blocks)
|
block-ids (map (fn [b] [:block/uuid (:block/uuid b)]) top-level-blocks)
|
||||||
start-block (first top-level-blocks)
|
start-block (first top-level-blocks)
|
||||||
end-block (last top-level-blocks)]
|
end-block (last top-level-blocks)]
|
||||||
|
(when (seq top-level-blocks)
|
||||||
(if (or
|
(if (or
|
||||||
(= 1 (count top-level-blocks))
|
(= 1 (count top-level-blocks))
|
||||||
(= start-block end-block))
|
(= start-block end-block))
|
||||||
(delete-block conn txs-state start-block)
|
(delete-block conn txs-state start-block)
|
||||||
(doseq [id block-ids]
|
(doseq [id block-ids]
|
||||||
(let [node (d/entity @conn id)]
|
(let [node (d/entity @conn id)]
|
||||||
(otree/-del node txs-state conn))))
|
(otree/-del node txs-state conn)))))
|
||||||
{:tx-data @txs-state}))
|
{:tx-data @txs-state}))
|
||||||
|
|
||||||
(defn- move-to-original-position?
|
(defn- move-to-original-position?
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
"Table"
|
"Table"
|
||||||
(:require [logseq.shui.table.impl :as impl]
|
(:require [logseq.shui.table.impl :as impl]
|
||||||
[dommy.core :refer-macros [sel1]]
|
[dommy.core :refer-macros [sel1]]
|
||||||
[cljs-bean.core :as bean]
|
|
||||||
[rum.core :as rum]))
|
[rum.core :as rum]))
|
||||||
|
|
||||||
(defn- get-head-container
|
(defn- get-head-container
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
(not (false? (get visible-columns (column-id column)))))
|
(not (false? (get visible-columns (column-id column)))))
|
||||||
|
|
||||||
(defn visible-columns
|
(defn visible-columns
|
||||||
[columns visible-columns]
|
[columns visible-columns']
|
||||||
(if (seq visible-columns)
|
(if (seq visible-columns')
|
||||||
(filter #(column-visible? % visible-columns) columns)
|
(filter #(column-visible? % visible-columns') columns)
|
||||||
columns))
|
columns))
|
||||||
|
|
||||||
(defn sort-rows
|
(defn sort-rows
|
||||||
|
@ -58,7 +58,9 @@
|
||||||
(sort-rows rows sorting columns))
|
(sort-rows rows sorting columns))
|
||||||
|
|
||||||
(defn rows
|
(defn rows
|
||||||
[{:keys [rows columns sorting row-filter]}]
|
[{:keys [columns sorting row-filter]
|
||||||
(let [rows' (if row-filter (filter row-filter rows) rows)]
|
:as opts}]
|
||||||
|
(let [rows' (:rows opts)
|
||||||
|
rows' (if row-filter (filter row-filter rows') rows')]
|
||||||
(cond-> rows'
|
(cond-> rows'
|
||||||
(seq sorting) (sort-rows sorting columns))))
|
(seq sorting) (sort-rows sorting columns))))
|
||||||
|
|
|
@ -221,7 +221,9 @@
|
||||||
:add-new-object! #(add-new-property-object! property set-data!)
|
:add-new-object! #(add-new-property-object! property set-data!)
|
||||||
;; TODO: Add support for adding column
|
;; TODO: Add support for adding column
|
||||||
:show-add-property? false
|
:show-add-property? false
|
||||||
:on-delete-rows (fn [table selected-rows]
|
:on-delete-rows (when-not (contains? #{:logseq.property/built-in? :logseq.property/parent}
|
||||||
|
(:db/ident property))
|
||||||
|
(fn [table selected-rows]
|
||||||
(let [pages (filter ldb/page? selected-rows)
|
(let [pages (filter ldb/page? selected-rows)
|
||||||
blocks (remove ldb/page? selected-rows)]
|
blocks (remove ldb/page? selected-rows)]
|
||||||
(p/do!
|
(p/do!
|
||||||
|
@ -235,7 +237,7 @@
|
||||||
(outliner-op/transact! tx-data {:outliner-op :save-block}))))
|
(outliner-op/transact! tx-data {:outliner-op :save-block}))))
|
||||||
(set-data! (get-property-related-objects (state/get-current-repo) property))
|
(set-data! (get-property-related-objects (state/get-current-repo) property))
|
||||||
(when-let [f (get-in table [:data-fns :set-row-selection!])]
|
(when-let [f (get-in table [:data-fns :set-row-selection!])]
|
||||||
(f {})))))}))))
|
(f {}))))))}))))
|
||||||
|
|
||||||
;; Show all nodes containing the given property
|
;; Show all nodes containing the given property
|
||||||
(rum/defcs property-related-objects < rum/reactive db-mixins/query mixins/container-id
|
(rum/defcs property-related-objects < rum/reactive db-mixins/query mixins/container-id
|
||||||
|
|
Loading…
Reference in New Issue