Browse Source

fix: show custom view error

Also, display the result if custom query failed
Tienson Qin 5 years ago
parent
commit
3f2d610d60

+ 9 - 2
src/main/frontend/components/block.cljs

@@ -39,7 +39,8 @@
             [frontend.date :as date]
             [frontend.security :as security]
             [reitit.frontend.easy :as rfe]
-            [frontend.commands :as commands]))
+            [frontend.commands :as commands]
+            [lambdaisland.glogi :as log]))
 
 (defn safe-read-string
   [s]
@@ -1548,7 +1549,13 @@
            title]
           (cond
             (and (seq result) view-f)
-            (let [result (sci/call-fn view-f result)]
+            (let [result (try
+                           (sci/call-fn view-f result)
+                           (catch js/Error error
+                             (log/error :custom-view-failed {:error error
+                                                             :result result})
+                             [:div "Custom view failed: "
+                              (str error)]))]
               (util/hiccup-keywordize result))
 
             (and (seq result)

+ 5 - 1
src/main/frontend/db.cljs

@@ -537,7 +537,11 @@
                             (sort-blocks))]
         (if-let [result-transform (:result-transform q)]
           (if-let [f (sci/eval-string (pr-str result-transform))]
-            (sci/call-fn f result)
+            (try
+              (sci/call-fn f result)
+              (catch js/Error e
+                (log/error :sci/call-error e)
+                result))
             result)
           (group-by-page result)))
       result)))

+ 1 - 9
src/main/frontend/extensions/sci.cljs

@@ -11,15 +11,7 @@
 
 (defn call-fn
   [f & args]
-  (try
-    (apply f args)
-    (catch js/Error e
-      (println "Call fn: failed: " {:args args})
-      (js/console.error e)))
-  ;; (-> (apply f (bean/->js args))
-  ;;     (->js)
-  ;;     (bean/->clj))
-)
+  (apply f args))
 
 (defn eval-result
   [code]