Commit Graph

1582 Commits (62252479eeb4bed0c4db3c0a20024b36d34425b0)

Author SHA1 Message Date
Tienson Qin fec74edc0c Revert "fix: don't set :logseq.property/built-in? for properties"
This reverts commit e5bb634a08.
2024-06-27 16:27:41 +08:00
Tienson Qin 073427d898 enhance: add backlinks and type to all pages 2024-06-27 16:27:15 +08:00
Tienson Qin 324a6f91ca Merge branch 'experiment/tanstack-table' into feat/db 2024-06-27 15:49:24 +08:00
Tienson Qin d8c94b7a2f Revert "feat(shui): add shui table & expose tanStackReact APIs"
This reverts commit e2b6623ef5.
2024-06-27 15:48:45 +08:00
Tienson Qin e5bb634a08 fix: don't set :logseq.property/built-in? for properties
We still keep :logseq.property/built-in? for built-in classes, pages
and closed values.

Reasons why this change:
1. built-in? value is a entity (which type is `checkbox` and value is
`true`), this breaks the rule that db attributes shouldn't reference
non-db-attribute blocks, it also forces us to load the built-in? value
entity first when loading the db.
2. we already have a built-in properties map, we can use it to check
whether a property is built-in.
2024-06-27 15:10:33 +08:00
Gabriel Horner b70ba087b3 fix: new graph-parser test passes with clj runner
part of LOG-3092
2024-06-26 16:14:50 -04:00
Gabriel Horner e619874dc4 enhance: add acceptance test for file to db graph import
Part of LOG-3092
2024-06-26 15:59:09 -04:00
Gabriel Horner 51a2c1425f fix: db import for very basic file
Basic file couldn't import because :block/name is no longer unique for
db graphs. Part of LOG-3176
2024-06-26 15:59:09 -04:00
Gabriel Horner 5520bc1d33 fix: import single file from CLI didn't print error
Also improved CLI error reporting so sci stack is readable and
not filled with stack fn docstrings
2024-06-26 15:59:09 -04:00
Tienson Qin b6bdc4b1d5 chore: update datascript version 2024-06-27 00:35:37 +08:00
Tienson Qin 039804d87a chore: bump upstream datascript 2024-06-27 00:26:31 +08:00
Tienson Qin a21a61fde6 fix: sorting 2024-06-26 22:26:20 +08:00
Gabriel Horner 5e5a8ee1df fix: display property names not idents for query
table and settings
2024-06-26 09:34:33 -04:00
Tienson Qin cc56ba1227 add delete support for all pages 2024-06-26 20:27:33 +08:00
Tienson Qin 5c965e5235 fix: load all pages initially
There're still some issues when loading partial pages initially,
let's improve the performance during the test.
2024-06-26 17:46:52 +08:00
charlie 119b519e2a Merge branch 'feat/db' into experiment/tanstack-table 2024-06-26 11:33:18 +08:00
charlie d278067f8c enhance(ui): support hide close button option for the shui dialog 2024-06-26 10:01:54 +08:00
Gabriel Horner c772b0cdd1 fix: migrate built-in? property to use :checkbox
Can now delete temporary :boolean type
2024-06-25 15:02:25 -04:00
Tienson Qin 2cdfaa7fdf Remove debug 2024-06-25 22:42:53 +08:00
Tienson Qin 9b259a8291 fix: shui table demo 2024-06-25 22:42:23 +08:00
Tienson Qin da602e7490 wip: shui table 2024-06-25 19:10:58 +08:00
charlie 946499ad56 enhance(ui): support auto width for the shui dialog content 2024-06-25 18:06:13 +08:00
charlie e2ff6e1990 enhance(ui): refactor classic modals with the shui dialog 2024-06-25 15:37:11 +08:00
Tienson Qin da4f9b5498 chore: remove :block/collapsed-properties 2024-06-25 10:57:44 +08:00
Gabriel Horner 3c838bc243 fix: disallow changing property cardinality from :many to :one
for existing data as it leads to invalid data. Fixes LOG-3164
2024-06-24 14:10:23 -04:00
Gabriel Horner 4fce0cb5d5 fix: sqlite.build journals should use new journal uuid format 2024-06-24 13:40:15 -04:00
Gabriel Horner 67d546850c fix: recent bugs with create-user-class-ident-from-name
This fn keeps api's assumptions and bugs with property idents only in the api ns and
prevents them from affecting all other namespaces creating properties /cc @xyhp915. Users
should not be choosing the property namespace. Doing so allows users to
overwrite logseq's built in ones which can break basic features. It also
allows users to specify a non-property namespace, which means the
property would not work in the app
2024-06-24 11:56:50 -04:00
charlie 305b7ff570 fix(api): ignore qulified keyword when create user property name 2024-06-24 18:25:26 +08:00
charlie e2b6623ef5 feat(shui): add shui table & expose tanStackReact APIs 2024-06-24 16:59:58 +08:00
charlie edd8746b5e enhance(ui): refactor the classic modal with the shui dialog & enhancements for ux 2024-06-24 16:05:41 +08:00
Tienson Qin f17289c34a fix: prefer chosen UUID value than page name
The reason is that multiple pages can share the same name
2024-06-24 12:11:15 +08:00
Gabriel Horner 0ea8a414f2 chore: move and rewrite outliner.property tests
Moved tests to be next to implementation. Rewrote some tests
so that they matched common usage of fns and rewrote some tests
so that each fn is tested independently
2024-06-23 23:47:08 -04:00
Tienson Qin 1c22c78c94 chore: remove buggy and rough template
Also, :object kinda works like template, and we also plan to
support templates on Classes.
2024-06-23 22:22:33 +08:00
Tienson Qin eb245e5a76 fix: lint 2024-06-23 17:58:15 +08:00
Tienson Qin caf1af1911 enhance: bring back inline tags support 2024-06-23 17:50:51 +08:00
Tienson Qin 797b13ac78 fix: lint and test 2024-06-21 18:09:20 +08:00
charlie 1a9ad96ad9 chore(ui): update shui demo 2024-06-21 16:22:25 +08:00
Tienson Qin 30230b38ca fix: test 2024-06-21 14:04:42 +08:00
charlie 37cff08d4a fix(ui): incorrect behavior for the shui tooltip within popups trigger 2024-06-21 14:02:25 +08:00
Tienson Qin b0c03b0003 fix: tests 2024-06-21 12:50:29 +08:00
Tienson Qin 0b38900d70 fix: blocks->vec-tree 2024-06-21 11:31:52 +08:00
Gabriel Horner d4a323805d fix: deps lints 2024-06-20 09:14:59 -04:00
Tienson Qin 74a077668c fix: add missing malli schema for :file/size 2024-06-20 20:55:57 +08:00
Tienson Qin dec56b31f0 chore: remove unused :file/handle 2024-06-20 20:53:15 +08:00
rcmerci be41c8bae7 chore: add some comments 2024-06-20 17:01:58 +08:00
rcmerci dc785a92a7 refactor: make journal-day page's uuid like this
00000001-2024-0620-0000-000000000000
2024-06-20 17:01:58 +08:00
Tienson Qin 62a2564f4d fix: add missing file/created-at attribute for db graphs 2024-06-20 16:57:38 +08:00
Tienson Qin 519f3cab3f fix: don't focus for :many property 2024-06-20 16:45:21 +08:00
Gabriel Horner eae2156f6c chore: move and add create-property-text-block tests 2024-06-19 23:01:44 -04:00
Gabriel Horner c23513eaa8 fix: non :default property reuses existing entities
Also add tests for this and a common set-block-property case
2024-06-19 22:17:03 -04:00
Tienson Qin 626e0b67e8 fix: store latest file stat
Fixes LOG-3143
2024-06-20 09:22:35 +08:00
Tienson Qin adae8ef5eb fix: get-block-and-children returns sorted blocks
Fix unit tests
2024-06-20 07:56:30 +08:00
Gabriel Horner b35f30e203 fix: circular dependency between outliner and frontend
by moving batch-tx into outliner dep. Outliner dep is
now fully independent and we are able to write unit tests
for all outliner namespaces unlike before
2024-06-19 17:21:22 -04:00
Gabriel Horner 7b787a8fb2 fix: db lint 2024-06-19 14:39:39 -04:00
Tienson Qin 71dc122a75 fix: copy block properties doesn't work
Fixes LOG-3160
2024-06-20 00:39:08 +08:00
Gabriel Horner 16248f0bd2 fix: unable to build :default property for sqlite.build
Also add tests for different built-in cases and addressed
related TODO
2024-06-18 16:29:01 -04:00
Gabriel Horner de730e236a fix: outliner lint 2024-06-18 11:03:55 -04:00
Gabriel Horner ee77145caf fix: :checkbox property not working in simple queries and rules
Also fix booleans not rendering in query table
2024-06-18 10:38:09 -04:00
Tienson Qin c3f30a9dc9 fix: lint 2024-06-18 21:37:12 +08:00
Tienson Qin 0bd6c05e69 refactor: add page outliner ops
The rule is to avoid calling worker modules from UI, all db
transactions should go through apply-outliner-ops.
2024-06-18 05:21:00 +08:00
charlie 5b0ed592f0 fix(ux): sometimes the block children can't be collapsed 2024-06-17 17:54:19 +08:00
charlie 5e8e3edc5d enhance(ui): refactor the classic modals with the shui dialog 2024-06-17 13:27:20 +08:00
Tienson Qin 96be194de5 Refactor: use last modified time to decide if file has been changed
Previously, we're using file content.

Fixes LOG-3161
2024-06-16 11:00:40 +08:00
Tienson Qin 54e54ebd63 fix: get-pid not works for non-built-in properties in file graphs 2024-06-15 23:20:13 +08:00
Tienson Qin b294896f8a fix: reuse page uuids when parsing files
This commit also removes `with-id?` because it's too confusing.

Fixes LOG-3143
2024-06-15 22:52:30 +08:00
Tienson Qin 4281274512 fix: graph parser tests 2024-06-15 21:08:25 +08:00
Gabriel Horner 244a86557f chore: rename :property/value to :property.value/content
property-value is widely being used to refer to the entity or value
associated with a property entity. Naming the content of a
property-entity :property/value is confusing. property-value content is
a unique name and consistent with :block/content. Also rename related
fns which had similarly confusing names
2024-06-14 18:11:20 -04:00
Gabriel Horner 04a6aa141e fix: remove unused dep from db 2024-06-14 16:56:27 -04:00
Gabriel Horner 9a8c91c0cc chore: mv logseq.db.sqlite.db into sqlite.cli
for more explicit name and purpose. Also updated outdated db readme
and removed unused fns in logseq.db.sqlite.db
2024-06-14 16:53:19 -04:00
Gabriel Horner 8ba5c15f93 fix: remove cli namespace dependency from electron namespaces
Added a :discouraged-namespace linter check for future times.
Had to add clj-kondo configs for db and outliner since they
were incorrectly inheriting the frontend config, specifically
the :discouraged-namespace linter. Also removed a 'm/=>' in outliner dep
b/c it would've created a complex clj-kondo setup for malli that
would need to be updated for both top-level clj-kondo and deps/outliner
2024-06-14 15:50:05 -04:00
Gabriel Horner 95db811f55 fix: frontend tests shouldn't depend on sqlite3
frontend.test.helper was accidentally coupled to sqlite3 via
logseq.outliner.db-pipeline. Split out sqlite3 dependent fns to
logseq.outliner.cli so it's clear this shouldn't be coupled to frontend
2024-06-14 14:41:24 -04:00
Gabriel Horner 0f122e9a7e fix: schema graph generation
Regressed with property value change. Also updated debug file and
fixed a missing built-in property ns which caused an invalid debug file
2024-06-14 11:38:14 -04:00
Tienson Qin d588df622e fix: :block/uuid not created for property value pages
Related to LOG-3124
2024-06-14 22:15:56 +08:00
Tienson Qin c7827ee268 fix: can't create alias property for file based graph 2024-06-14 21:00:32 +08:00
Tienson Qin 1858180476 fix: don't create bi-directional alias
related to LOG-3124
2024-06-14 20:00:37 +08:00
Gabriel Horner 5f2371486e fix: simple query for :number properties
also fixes deps db tests
2024-06-13 23:16:17 -04:00
Gabriel Horner 137f388edd enhance: property ref values can store their
original value optionally with :property/value.
Currently applies to :url and :number and not :default
as :default is meant to be a block and thus highly coupled
to :block/content. By introducing this, functionality that relies
on original property values automatically work e.g.
sorting by :number property for query results just works
2024-06-13 23:03:18 -04:00
Gabriel Horner 57241d0644 Revert "fix: :block/content should be string including :number properties"
This reverts commit 8a6b44bb31.
2024-06-13 21:25:21 -04:00
charlie 6c7c282a03 fix(pdf): insert keyword property value for the file based graphs 2024-06-13 17:25:05 +08:00
Tienson Qin 4d684a5ec9 fix: throw exception if calling db property fns for file graphs 2024-06-13 14:50:20 +08:00
Tienson Qin 0ce2ee42db Revert "refactor: use files instead of sqlite for electron db storage"
This reverts commit c2c5ab80aa.
2024-06-13 13:04:00 +08:00
Tienson Qin ec25550455 Revert "chore: remove unused fn"
This reverts commit 1ec30bbf1a.
2024-06-13 13:04:00 +08:00
Tienson Qin 596089f161 Revert "fix: add missing fs-extra package"
This reverts commit 032cad0318.
2024-06-13 13:04:00 +08:00
Tienson Qin 6d4f3425cd Revert "fix: nbb compatibility for mv to file db for electron"
This reverts commit 4403b5e52a.
2024-06-13 13:04:00 +08:00
Gabriel Horner 03f797fde3 fix: outliner lint and doc formatting 2024-06-12 15:24:04 -04:00
Tienson Qin 1dc72d79f2 fix: separate page/create impl for db and file graphs
Also, move rtc page create impl to its own fn.
2024-06-12 06:39:06 +08:00
Gabriel Horner 1b51d28682 fix: outliner lint 2024-06-11 16:49:14 -04:00
Gabriel Horner 4403b5e52a fix: nbb compatibility for mv to file db for electron
Followup to c2c5ab80aa
2024-06-11 16:44:19 -04:00
Gabriel Horner 0e1ada2ef6 enhance: bb task for creating graphs from EDN file
Converted inferred graph to an EDN file now that this task exists. Also
merge last of tasks.create-graph to relevant ns so that external users
can also create such tasks
2024-06-11 10:09:37 -04:00
Tienson Qin 2d3f152454 fix: simplify page delete and fix rtc issues 2024-06-11 20:23:57 +08:00
Tienson Qin 032cad0318 fix: add missing fs-extra package 2024-06-11 20:00:32 +08:00
Tienson Qin 1ec30bbf1a chore: remove unused fn 2024-06-11 19:58:54 +08:00
Tienson Qin c2c5ab80aa refactor: use files instead of sqlite for electron db storage 2024-06-11 08:30:49 +08:00
Gabriel Horner dbf263ed7c fix: unbound vars caught by lint
also updated property type for previous commit
2024-06-10 17:12:03 -04:00
Gabriel Horner 0ce4e1b65e fix: query table not displaying user property columns
Also fixed rendering property values for all property types
2024-06-10 16:05:33 -04:00
Gabriel Horner 2d1073fa5b fix: remove outdated clauses for property values
This became outedated with to property values as refs
2024-06-10 13:26:21 -04:00
Gabriel Horner 16cfb76c9b fix: update :query/result-transforms to work with db graphs
since they are the future. Leave example disabled by default as it's
not important to have :sort-by-priority enabled by default and working
for both file and db graphs
2024-06-10 12:38:40 -04:00
Gabriel Horner 04b25a9240 chore: add basic tests for sqlite.build
and added a couple db-graph specific for query-dsl. Also
moved fns in pu that should be in db-pu
2024-06-10 11:52:39 -04:00
Tienson Qin 03a0e99b65 enhance: add block-order malli schema 2024-06-09 11:39:00 +08:00
Tienson Qin 0a77ba077f fix: reuse :block/order if exists when inserting blocks from remote 2024-06-09 11:02:26 +08:00
Gabriel Horner 9636fbe7ab fix: remaining query dsl tests for db graphs
Re-enable CI step for testing query-dsl and db graphs
2024-06-07 18:02:32 -04:00
Gabriel Horner 7f3e22c8eb fix: priority filters for db graphs 2024-06-07 17:58:49 -04:00
Tienson Qin 214eefbf67 enhance: drop -page for filter properties 2024-06-08 05:33:41 +08:00
Tienson Qin b2e113d8eb refactor: db based filters
Uses properties :logseq.property.linked-references/included-pages
and :logseq.property.linked-references/excluded-pages to store filters
instead of a map.

Fixes LOG-3074
2024-06-08 05:28:55 +08:00
Gabriel Horner 039da828ac enhance: infer property schema and add new-pages from properties
for sqlite-build graphs. Also fixed numbered page query not working for
db graphs and related tests
2024-06-07 12:10:15 -04:00
Gabriel Horner 516192fa92 fix: db lint 2024-06-06 17:22:02 -04:00
Gabriel Horner 938dd04811 enhance: add :build/tags and :auto-create-ontology?
for tested+generated graphs. :build/tags allows easy generation of
objects as seen in fixed up inferred graph
2024-06-06 17:05:13 -04:00
Tienson Qin 9b1da32028 fix: simplify deleting refed blocks
The new implementation will replace refs of the current deleting block
with the nearby block (if exists).
2024-06-06 19:36:40 +08:00
Tienson Qin 9e5a002cf8 enhance: avoid replacing page refs if there's no special chars 2024-06-06 15:15:01 +08:00
Tienson Qin 8a6b44bb31 fix: :block/content should be string including :number properties 2024-06-06 14:53:26 +08:00
Tienson Qin fb01f99a4d fix: outliner tests 2024-06-06 07:11:09 +08:00
Gabriel Horner 62701e1b6e fix: tests with outdated datom counts
I think caused by recent macros parsing or whiteboard changes
2024-06-05 17:06:16 -04:00
Gabriel Horner 8f6f52d630 fix: sort-by filter for db graphs
Also fixed a dsl-query sorting bug where nil property values where
incorrectly being treated as greater than non-nil values. Also
fixed a bug where blocks with an explicit :block/created-at weren't
being set for sqlite-build
2024-06-05 16:57:51 -04:00
Gabriel Horner 29faedc4d0 fix: db graph tests with children, created-at properties
and journal pages
2024-06-05 14:47:38 -04:00
Gabriel Horner 916fef8336 enhance: generate any outline structure with :build/children
Already useful for testing and will be for more interesting generation
cases
2024-06-05 12:15:12 -04:00
Tienson Qin 592e2a9b26 fix: add tags when not exists 2024-06-05 22:39:55 +08:00
Tienson Qin 44366dced0 fix: removing a heading's hashtags doesn't delete
fixes LOG-3138
2024-06-05 20:01:46 +08:00
Tienson Qin a314e3469a fix: page can alias itself and then fail to load
fixes LOG-3136
2024-06-05 17:18:32 +08:00
Tienson Qin 7beebedbd2 fix: embed block macro is buggy
fixes LOG-3145
2024-06-05 14:27:13 +08:00
Tienson Qin ed97102b38 fix: can't move block up with a :default property
fixes LOG-3140
2024-06-05 14:08:57 +08:00
Gabriel Horner e7f795103d fix: simple task queries and start fixing db dsl-query tests
Tests caught that task query wasn't working. Also disabled
namaspace test and rule for db graphs since they aren't supported
there
2024-06-04 15:53:36 -04:00
Gabriel Horner 05227f475b chore: mv more tests to appropriate dep enabled by :build/journal 2024-06-04 12:02:25 -04:00
Gabriel Horner 14222a546f enhance: make journals easier to generate with :build/journal
Use it in tests that more appropriately belong in db dep.
Also did minor cleanup around page prep for page-uuids
2024-06-04 12:02:25 -04:00
Gabriel Horner 13066001cd fix: storing and querying of :number property values 2024-06-03 17:41:32 -04:00
Gabriel Horner 5ecb3fe3d4 fix: lints 2024-06-03 14:13:55 -04:00
Gabriel Horner df10beb325 enhance: add schema and validation to sqlite.build
Also renamed block-level keys that are specific to the ns to have
a :build namespace. A lot easier to read, maintain and extend later.
Also cleaned up page naming to consistently require :block/original-name
2024-06-03 12:46:53 -04:00
Gabriel Horner a67e2c8c23 chore: use easier way to build db graph test data
in rules tests
2024-06-03 12:46:53 -04:00
Gabriel Horner 2456deb097 enhance: create sqlite.build ns as a better
load-test-files helper for db graphs and deps.
Most of this ns is split off from create-graph.
Migrated pipeline-test to correct outliner dep and
moved previous pipeline-test to correct db dep
2024-06-03 12:46:53 -04:00
Tienson Qin 721a9e14ad fix: arrow color 2024-06-03 19:20:50 +08:00
Tienson Qin e7de721dde fix: broken block ref after deleting source blocks 2024-06-03 15:33:49 +08:00
Tienson Qin bce5a308bb perf: skip db storage when batch applying outliner ops 2024-06-03 14:53:06 +08:00
rcmerci 8a94b856bd enhance(rtc): add debug prn when failed to transact 2024-06-02 21:19:59 +08:00
Gabriel Horner 03167ae19c enhance: extract block content refs for generated graphs
Also update content with ids and create pages as needed
2024-05-31 17:19:25 -04:00
Gabriel Horner ec7839fcce fix: simple queries in db graphs for most property types
Also fix parse-query was being called in multiple places
without a correct default value for :db-graph? option
2024-05-30 15:54:20 -04:00
Gabriel Horner 790d0460a1 fix: remove + disable :block/macros for db graphs
part of LOG-3137
2024-05-30 11:01:37 -04:00
Tienson Qin da3929376a fix: don't extract macros from block content for db graphs 2024-05-30 21:32:45 +08:00
Tienson Qin 9ce7f5d709 fix: eager loading nested blocks for short pages 2024-05-30 20:01:31 +08:00
Tienson Qin 13b19a1b9c perf: render less blocks and improve app start time
1. load only 1 journal when app starts
2. fix can't load more journals
3. pretend all the unloaded pages as long pages to avoid more
rendering
4. don't send <get-block queries if there're already requests
2024-05-30 18:31:19 +08:00
Gabriel Horner 1dd9823fdf fix: remove alias ref to avoid recursive display bug
A page with aliases resulted in linked references recursively showing the
current page
2024-05-29 13:25:32 -04:00
Gabriel Horner a4d8e05e2f fix: esc saves a tag class with a :db/ident
Also refactor to update class tests to use correct helper
2024-05-29 11:09:09 -04:00
Gabriel Horner cc92702a98 chore: remove unused fn when setting prop values 2024-05-29 11:09:09 -04:00
Tienson Qin f4dd06f959 enhance: display tags the same way as other properties 2024-05-29 15:37:23 +08:00
Gabriel Horner effde81161 enhance: all user classes have :db/ident
This is important as a user's ontology (properties + classes) is now describable
with unique identifiers. This will allow for easy sharing and
importing of ontologies between users.
Also <create-class! now exists to create classes consistently. Will
be helpful when we want to provide some validation for classes
2024-05-28 16:52:12 -04:00
charlie 0dead80fe1 enhance(ui): support more props for the shui dialog config 2024-05-28 17:03:45 +08:00
Tienson Qin 02fcc69928 CSS tweaks 2024-05-28 03:02:22 +08:00
Tienson Qin 8de8377d4b fix: disable shortcut property when property dialog is opened 2024-05-27 23:03:24 +08:00
Tienson Qin 21e480ec3e fix: can't delete :checkbox property 2024-05-27 22:56:49 +08:00
Tienson Qin d432bb1f71 enhance: back to edit mode after setting a property
Except if the editing property is :default type
2024-05-27 21:10:00 +08:00
Tienson Qin 6ced3bff8f enhance: property editing support shortcut 2024-05-27 20:08:43 +08:00
Tienson Qin c326730ce5 fix: retract icon property when settign a closed value's icon to nil 2024-05-27 12:30:45 +08:00