|
@@ -4,6 +4,7 @@
|
|
|
[datascript.core :as d]
|
|
[datascript.core :as d]
|
|
|
[frontend.worker.db-listener :as db-listener]
|
|
[frontend.worker.db-listener :as db-listener]
|
|
|
[frontend.worker.rtc.client-op :as client-op]
|
|
[frontend.worker.rtc.client-op :as client-op]
|
|
|
|
|
+ [frontend.worker.rtc.const :as rtc-const]
|
|
|
[logseq.db :as ldb]
|
|
[logseq.db :as ldb]
|
|
|
[logseq.db.frontend.property :as db-property]))
|
|
[logseq.db.frontend.property :as db-property]))
|
|
|
|
|
|
|
@@ -26,7 +27,7 @@
|
|
|
:db/index :db/valueType :db/cardinality})
|
|
:db/index :db/valueType :db/cardinality})
|
|
|
|
|
|
|
|
(def ^:private watched-attr-ns
|
|
(def ^:private watched-attr-ns
|
|
|
- (conj db-property/logseq-property-namespaces "logseq.class" "logseq.kv"))
|
|
|
|
|
|
|
+ (conj db-property/logseq-property-namespaces "logseq.class"))
|
|
|
|
|
|
|
|
(defn- watched-attr?
|
|
(defn- watched-attr?
|
|
|
[attr]
|
|
[attr]
|
|
@@ -72,7 +73,7 @@
|
|
|
(some-> add?->v->t (get k) first))
|
|
(some-> add?->v->t (get k) first))
|
|
|
|
|
|
|
|
(defn- entity-datoms=>ops
|
|
(defn- entity-datoms=>ops
|
|
|
- [db-before db-after e->a->add?->v->t entity-datoms]
|
|
|
|
|
|
|
+ [db-before db-after e->a->add?->v->t ignore-attr-set entity-datoms]
|
|
|
(let [e (ffirst entity-datoms)
|
|
(let [e (ffirst entity-datoms)
|
|
|
entity (d/entity db-after e)
|
|
entity (d/entity db-after e)
|
|
|
{block-uuid :block/uuid} entity
|
|
{block-uuid :block/uuid} entity
|
|
@@ -86,12 +87,15 @@
|
|
|
[retract-block-uuid t1] (some-> add?->block-uuid->t (get false) first)
|
|
[retract-block-uuid t1] (some-> add?->block-uuid->t (get false) first)
|
|
|
[retract-block-name _] (some-> add?->block-name->t (get false) first)
|
|
[retract-block-name _] (some-> add?->block-name->t (get false) first)
|
|
|
[add-block-name t2] (some-> add?->block-name->t latest-add?->v->t (get-first-vt true))
|
|
[add-block-name t2] (some-> add?->block-name->t latest-add?->v->t (get-first-vt true))
|
|
|
- [add-block-title t3] (some-> add?->block-title->t
|
|
|
|
|
- latest-add?->v->t
|
|
|
|
|
- (get-first-vt true))
|
|
|
|
|
|
|
+ [add-block-title t3] (some-> add?->block-title->t latest-add?->v->t (get-first-vt true))
|
|
|
[add-block-parent t4] (some-> add?->block-parent->t latest-add?->v->t (get-first-vt true))
|
|
[add-block-parent t4] (some-> add?->block-parent->t latest-add?->v->t (get-first-vt true))
|
|
|
[add-block-order t5] (some-> add?->block-order->t latest-add?->v->t (get-first-vt true))
|
|
[add-block-order t5] (some-> add?->block-order->t latest-add?->v->t (get-first-vt true))
|
|
|
- a->add?->v->t* (into {} (filter (fn [[a _]] (watched-attr? a)) a->add?->v->t))]
|
|
|
|
|
|
|
+ a->add?->v->t* (into {}
|
|
|
|
|
+ (filter
|
|
|
|
|
+ (fn [[a _]]
|
|
|
|
|
+ (and (watched-attr? a)
|
|
|
|
|
+ (not (contains? ignore-attr-set a)))))
|
|
|
|
|
+ a->add?->v->t)]
|
|
|
(cond
|
|
(cond
|
|
|
(and retract-block-uuid retract-block-name)
|
|
(and retract-block-uuid retract-block-name)
|
|
|
[[:remove-page t1 {:block-uuid retract-block-uuid}]]
|
|
[[:remove-page t1 {:block-uuid retract-block-uuid}]]
|
|
@@ -114,8 +118,10 @@
|
|
|
|
|
|
|
|
(defn- generate-rtc-ops
|
|
(defn- generate-rtc-ops
|
|
|
[repo db-before db-after same-entity-datoms-coll e->a->v->add?->t]
|
|
[repo db-before db-after same-entity-datoms-coll e->a->v->add?->t]
|
|
|
- (let [ops (mapcat (partial entity-datoms=>ops db-before db-after e->a->v->add?->t)
|
|
|
|
|
- same-entity-datoms-coll)]
|
|
|
|
|
|
|
+ (let [ops (mapcat
|
|
|
|
|
+ (partial entity-datoms=>ops
|
|
|
|
|
+ db-before db-after e->a->v->add?->t @rtc-const/*ignore-attrs-when-syncing)
|
|
|
|
|
+ same-entity-datoms-coll)]
|
|
|
(when (seq ops)
|
|
(when (seq ops)
|
|
|
(client-op/add-ops repo ops))))
|
|
(client-op/add-ops repo ops))))
|
|
|
|
|
|