Merge branch 'feat/db' into feat/repeated-tasks

This commit is contained in:
Tienson Qin
2024-12-24 18:02:55 +08:00
8 changed files with 63 additions and 71 deletions

View File

@@ -278,14 +278,6 @@ li p:last-child,
@apply border-r;
}
i.ti {
/*
compensates the wrong top spacing in the iconfont.
See https://github.com/tabler/tabler-icons/issues/118/
*/
transform: translateY(-1px);
}
.dnd-separator {
border-bottom: 3px solid #ccc;
}

View File

@@ -210,11 +210,13 @@
(rum/defc ^:large-vars/cleanup-todo sidebar-navigations
[{:keys [default-home route-match route-name srs-open? db-based? enable-whiteboards?]}]
(let [navs (cond->> [:whiteboards :flashcards :graph-view :all-pages]
(let [navs (cond-> [:flashcards :graph-view :all-pages]
db-based?
(into [:tag/tasks :tag/assets]))
(concat [:tag/tasks :tag/assets])
(not db-based?)
(#(cons :whiteboards %)))
[checked-navs set-checked-navs!] (rum/use-state (or (storage/get :ls-sidebar-navigations)
[:whiteboards :flashcards :graph-view :all-pages :tag/tasks]))]
[:whiteboards :flashcards :graph-view :all-pages]))]
(rum/use-effect!
(fn []
@@ -233,8 +235,8 @@
:checked-navs checked-navs
:set-checked-navs! set-checked-navs!})
{:as-dropdown? false})))}
:more [:a.as-edit {:class "!opacity-60 hover:!opacity-80 relative -top-0.5 right-0"}
(shui/tabler-icon "filter-edit" {:size 15})]}
:more [:a.as-edit {:class "!opacity-60 hover:!opacity-80 relative -top-0.5 -right-0.5"}
(shui/tabler-icon "filter-edit" {:size 14})]}
[:div.sidebar-navigations.flex.flex-col.mt-1
;; required custom home page
(let [page (:page default-home)]
@@ -265,7 +267,7 @@
(cond
(= nav :whiteboards)
(when enable-whiteboards?
(when (or config/dev? (not db-based?))
(when (not db-based?)
(sidebar-item
{:class "whiteboard"
:title (t :right-side-bar/whiteboards)

View File

@@ -10,16 +10,12 @@
@apply relative;
&.on {
@apply after:content-['*'];
&:after {
content: " ";
position: absolute;
bottom: 10px;
right: 8px;
width: 7px;
height: 7px;
@apply absolute bottom-2.5 right-1 w-[7px] h-[7px] rounded-full opacity-100 text-transparent;
background-color: var(--ls-color-file-sync-pending);
border-radius: 100%;
opacity: 1;
}
&.syncing {

View File

@@ -1,57 +1,39 @@
.cp__header {
@apply shadow z-10;
@apply shadow z-10 flex items-center justify-between sticky top-0 left-0 right-0 leading-none whitespace-nowrap;
-webkit-app-region: drag;
padding-top: calc(var(--ls-headbar-inner-top-padding));
margin-top: var(--ls-win32-title-bar-height);
height: calc(var(--ls-headbar-height) + var(--ls-headbar-inner-top-padding));
display: flex;
align-items: center;
justify-content: space-between;
flex: 0 0 auto;
position: sticky;
top: 0;
left: 0;
right: 0;
line-height: 1;
white-space: nowrap;
> .l {
@apply pl-2;
@apply pl-2 h-full min-w-[var(--ls-left-sidebar-width)];
min-width: var(--ls-left-sidebar-width);
height: 100%;
align-items: center;
transition: padding-left .2s;
> div {
@apply items-center;
}
}
> .r {
align-items: center;
flex: 1;
justify-content: flex-end;
padding-right: 6px;
@apply flex flex-1 items-center justify-end pr-1.5;
}
/* To prevent header glitch on Safari */
> .l, > .r {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.button {
display: flex;
align-items: center;
justify-content: center;
@apply flex items-center justify-center;
.ti, .tie {
font-size: 20px;
@apply text-[20px];
}
}
.ui-items-container .button {
width: auto;
padding: 0 8px;
@apply w-auto py-0 px-1.5;
}
svg.warning {

View File

@@ -76,7 +76,7 @@
> .thumb {
@apply w-6 h-6 overflow-hidden flex flex-shrink-0 items-center
justify-center rounded opacity-80 dark:opacity-50;
-ml-0.5 justify-center rounded opacity-80 dark:opacity-50;
> .ui__icon {
@apply mr-0;

View File

@@ -453,6 +453,25 @@
eid (:db/id e)]
[[:db/add eid :logseq.property.class/properties :logseq.task/scheduled]]))))
(defn- deprecate-logseq-user-ns
[conn _search-db]
(let [db @conn]
(when (ldb/db-based-graph? db)
(let [db-ids (d/q '[:find [?b ...]
:where
(or [?b :logseq.user/name]
[?b :logseq.user/email]
[?b :logseq.user/avatar])]
db)]
(into
[[:db/retractEntity :logseq.user/name]
[:db/retractEntity :logseq.user/email]
[:db/retractEntity :logseq.user/avatar]]
(mapcat (fn [e] [[:db/retract e :logseq.user/name]
[:db/retract e :logseq.user/email]
[:db/retract e :logseq.user/avatar]])
db-ids))))))
(def schema-version->updates
"A vec of tuples defining datascript migrations. Each tuple consists of the
schema version integer and a migration map. A migration map can have keys of :properties, :classes
@@ -531,7 +550,8 @@
[47 {:fix replace-hidden-type-with-schema}]
[48 {:properties [:logseq.property/default-value :logseq.property/scalar-default-value]}]
[49 {:fix replace-special-id-ref-with-id-ref}]
[50 {:properties [:logseq.user/name :logseq.user/email :logseq.user/avatar]}]
[50 {:properties [:logseq.property.user/name :logseq.property.user/email :logseq.property.user/avatar]
:fix deprecate-logseq-user-ns}]
[51 {:classes [:logseq.class/Property :logseq.class/Tag :logseq.class/Page :logseq.class/Whiteboard]}]
[52 {:fix replace-block-type-with-tags}]
[53 {:properties [:logseq.task/scheduled :logseq.task/recur-frequency :logseq.task/recur-unit :logseq.task/repeated?

View File

@@ -97,10 +97,10 @@
(let [user (user-uuid->user (:block/uuid user-block))
[diff-r1 diff-r2]
(data/diff
(select-keys user-block [:logseq.user/name :logseq.user/email :logseq.user/avatar])
(select-keys user-block [:logseq.property.user/name :logseq.property.user/email :logseq.property.user/avatar])
(update-keys
(select-keys user [:user/name :user/email :user/avatar])
(fn [k] (keyword "logseq.user" (name k)))))]
(fn [k] (keyword "logseq.property.user" (name k)))))]
(or (some? diff-r1) (some? diff-r2))))
user-blocks))
(m/amb {:type :inject-users-info}
@@ -430,7 +430,7 @@
;;; subscribe state ;;;
(c.m/run-background-task
:subscribe-state
::subscribe-state
(m/reduce
(fn [_ v] (worker-util/post-message :rtc-sync-state v))
create-get-state-flow))