Tienson Qin 3 месяцев назад
Родитель
Сommit
1736691224
2 измененных файлов с 13 добавлено и 13 удалено
  1. 2 2
      clj-e2e/test/logseq/e2e/plugins_basic_test.clj
  2. 11 11
      src/main/logseq/api/editor.cljs

+ 2 - 2
clj-e2e/test/logseq/e2e/plugins_basic_test.clj

@@ -1,5 +1,6 @@
 (ns logseq.e2e.plugins-basic-test
 (ns logseq.e2e.plugins-basic-test
   (:require
   (:require
+   [clojure.set :as set]
    [clojure.string :as string]
    [clojure.string :as string]
    [clojure.test :refer [deftest testing is use-fixtures]]
    [clojure.test :refer [deftest testing is use-fixtures]]
    [jsonista.core :as json]
    [jsonista.core :as json]
@@ -319,7 +320,7 @@
                           ":logseq.class/Card"
                           ":logseq.class/Card"
                           ":logseq.class/Quote-block"
                           ":logseq.class/Quote-block"
                           ":logseq.class/Cards"}]
                           ":logseq.class/Cards"}]
-      (is (= (set (map #(get % "ident") result)) built-in-tags)))))
+      (is (set/subset? built-in-tags (set (map #(get % "ident") result)))))))
 
 
 (deftest get-all-properties-test
 (deftest get-all-properties-test
   (testing "get_all_properties"
   (testing "get_all_properties"
@@ -331,7 +332,6 @@
     (let [page "tag objects test"
     (let [page "tag objects test"
           _ (page/new-page page)
           _ (page/new-page page)
           _ (ls-api-call! :editor.insertBlock page "task 1"
           _ (ls-api-call! :editor.insertBlock page "task 1"
-                          ;; FIXME: "Doing" doesn't work here
                           {:properties {"logseq.property/status" "Doing"}})
                           {:properties {"logseq.property/status" "Doing"}})
           result (ls-api-call! :editor.get_tag_objects "logseq.class/Task")]
           result (ls-api-call! :editor.get_tag_objects "logseq.class/Task")]
       (is (= (count result) 1))
       (is (= (count result) 1))

+ 11 - 11
src/main/logseq/api/editor.cljs

@@ -106,19 +106,19 @@
     (when page
     (when page
       (sdk-utils/result->js page))))
       (sdk-utils/result->js page))))
 
 
-;; FIXME: this doesn't work because the ui doesn't have all pages
 (defn get_all_pages
 (defn get_all_pages
   []
   []
-  (let [db (conn/get-db (state/get-current-repo))]
-    (some->
-     (->>
-      (d/datoms db :avet :block/name)
-      (map #(db-utils/pull (:e %)))
-      (remove ldb/hidden?)
-      (remove (fn [page]
-                (common-util/uuid-string? (:block/name page)))))
-     (sdk-utils/normalize-keyword-for-json)
-     (bean/->js))))
+  (p/let [result (db-async/<q
+                  (state/get-current-repo)
+                  {:transact-db? false}
+                  '[:find [(pull ?page [:db/id :block/uuid :block/name :block/title :block/created-at :block/updated-at]) ...]
+                    :where
+                    [?page :block/name]
+                    [(get-else $ ?page :logseq.property/hide? false) ?hide]
+                    [(false? ?hide)]])]
+    (->> result
+         (sort-by :block/title)
+         sdk-utils/result->js)))
 
 
 (defn create_page
 (defn create_page
   [name ^js properties ^js opts]
   [name ^js properties ^js opts]