Sfoglia il codice sorgente

enhance: hide query builder and being able to edit query

Tienson Qin 1 anno fa
parent
commit
b19ee139ec

+ 23 - 3
src/main/frontend/components/property/value.cljs

@@ -709,6 +709,28 @@
         :on-click (fn [] (<create-new-block! block property ""))}
         :on-click (fn [] (<create-new-block! block property ""))}
        (property-empty-btn-value property)])))
        (property-empty-btn-value property)])))
 
 
+(rum/defcs query-cp <
+  (rum/local false ::show-setting?)
+  [state block property v-block]
+  [:div.flex.flex-1.flex-row.gap-1.justify-between
+   [:div.flex.flex-1 (property-normal-block-value block property v-block)]
+   (shui/button
+    {:variant :ghost
+     :size :sm
+     :class "jtrigger px-1 text-muted-foreground"
+     :title "Update query"
+     :on-click (fn [e]
+                 (shui/popup-show!
+                  (.-target e)
+                  (fn []
+                    [:div.p-4.h-64 {:style {:width "42rem"}}
+                     (let [block (db/entity (:db/id v-block))
+                           query (:block/title block)]
+                       (query-builder-component/builder query {:property property
+                                                               :block block}))])
+                  {:align :end}))}
+    (ui/icon "settings" {:size 18}))])
+
 (rum/defcs property-block-value < rum/reactive db-mixins/query
 (rum/defcs property-block-value < rum/reactive db-mixins/query
   {:init (fn [state]
   {:init (fn [state]
            (let [block (first (:rum/args state))]
            (let [block (first (:rum/args state))]
@@ -726,9 +748,7 @@
           (when v-block
           (when v-block
             (cond
             (cond
               (= (:db/ident property) :logseq.property/query)
               (= (:db/ident property) :logseq.property/query)
-              (let [query (:block/title v-block)]
-                (query-builder-component/builder query {:property property
-                                                        :block v-block}))
+              (query-cp block property v-block)
 
 
               (:block/page v-block)
               (:block/page v-block)
               (property-normal-block-value block property v-block)
               (property-normal-block-value block property v-block)

+ 6 - 3
src/main/frontend/components/query/view.cljs

@@ -21,17 +21,20 @@
          (assoc (db/entity (:db/id b)) :id (:db/id b))) result))
          (assoc (db/entity (:db/id b)) :id (:db/id b))) result))
 
 
 (defn- init-result
 (defn- init-result
-  [result]
+  [result view-entity]
   (let [result' (if (map? result)
   (let [result' (if (map? result)
                   (mapcat second result)
                   (mapcat second result)
                   result)]
                   result)]
-    (result->entities result')))
+    (->> (result->entities result')
+         (remove (fn [b] (contains?
+                          #{(:db/id view-entity) (:db/id (:logseq.property/query view-entity))}
+                          (:db/id b)))))))
 
 
 (rum/defcs query-result < rum/static mixins/container-id
 (rum/defcs query-result < rum/static mixins/container-id
   (rum/local nil ::result)
   (rum/local nil ::result)
   [state config view-entity result]
   [state config view-entity result]
   (let [*result (::result state)
   (let [*result (::result state)
-        result' (or @*result (init-result result))
+        result' (or @*result (init-result result view-entity))
         columns' (columns (assoc config :container-id (::container-id state)) result')]
         columns' (columns (assoc config :container-id (::container-id state)) result')]
     [:div.query-result.w-full.mt-1
     [:div.query-result.w-full.mt-1
      {:on-pointer-down util/stop-propagation}
      {:on-pointer-down util/stop-propagation}