mirror of
https://github.com/logseq/logseq.git
synced 2026-06-01 19:01:22 +00:00
Merge branch 'feat/db' into feat/repeated-tasks
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user