Commit Graph

1508 Commits (2f50b410664e5472104bca998511eeda1bc3803c)

Author SHA1 Message Date
Gabriel Horner cfe22e4acc fix: lints 2024-05-21 16:14:05 -04:00
Gabriel Horner c9b579ae01 fix: placeholder valid for a :many property 2024-05-21 16:09:40 -04:00
Tienson Qin e49acf8256 feat: add property :object type 2024-05-21 23:30:54 +08:00
Gabriel Horner fd5b90596b chore: remove nonexistent fix-tx 2024-05-21 11:00:11 -04:00
Tienson Qin 67bd6c6da3 fix: build refs for either pages or tagged blocks (objects) 2024-05-21 21:05:02 +08:00
Tienson Qin 8d959a7c8b chore: bump datascript 2024-05-21 20:51:22 +08:00
Tienson Qin db8d0c53df fix: datascript upsert db/ident 2024-05-21 19:29:21 +08:00
Tienson Qin d31b8cd5ae fix: add property named blocks values to :block/refs
related to LOG-2819
2024-05-21 16:35:39 +08:00
charlie 685b78e2a0 fix(ux): invalid action for the block selection context menus 2024-05-21 11:26:59 +08:00
Tienson Qin ee35854498 fix: delete property value block when it's not used by other blocks 2024-05-21 07:49:33 +08:00
Gabriel Horner 33832f7941 fix: property names with invalid idents display an error notification
instead of silently failing in console. E.g. `123` as a property name
2024-05-20 17:21:56 -04:00
Gabriel Horner fa4b47d16b fix: property value names in developer cmd
and in readable-properties fn
2024-05-20 16:20:31 -04:00
Gabriel Horner 92299347da chore: rename class ident to match name
Root is also a better name than base
2024-05-20 15:55:40 -04:00
Gabriel Horner 0cfc90e0ef fix: remove :string property type as :default
does everything it used to do. Also remove component behavior specific to :string
2024-05-20 11:46:10 -04:00
Gabriel Horner c5911a571b fix: loading of classes for script-generated graphs
Lazy loading of refs for classes isn't supported in the UI yet so
no need to self-inflect this. Also can move schema graph from :string
to :default usage now
2024-05-20 10:45:27 -04:00
Gabriel Horner 47ed035d42 tweak schema as properties always have :type 2024-05-20 09:29:05 -04:00
Tienson Qin 3b975d2fad enhance: show properties configuration for classes in the sidebar 2024-05-20 18:11:14 +08:00
Tienson Qin 29de339fa1 enhance: don't show date picker for one value
Also, set hint background color when hovering property value
2024-05-20 15:31:55 +08:00
Tienson Qin e34af3412e enhance: delay creating new property until type specified 2024-05-20 13:07:21 +08:00
Tienson Qin 4a681d7193 fix: lazy load page/block embeds 2024-05-18 08:20:34 +08:00
Tienson Qin 1c88d7cb00 fix: can't convert ref-type to non-ref (checkbox) 2024-05-18 06:39:47 +08:00
Gabriel Horner efab7f403e chore: Remove unnecessary catch and rethrow for notification
Just encode notification in original exception to make conversion
as reusable as possible. Also make properties readable with :original-name
as they are case sensitive
2024-05-17 17:25:53 -04:00
Gabriel Horner a17ed389e8 fix: can't delete a closed value being used
fixes LOG-3102
2024-05-17 15:37:52 -04:00
Gabriel Horner 4907f0eb74 fix: task related commands e.g. /Doing
Was broken by adding property ref value support to batch-set-property
2024-05-17 12:40:09 -04:00
Gabriel Horner 05b96d53fa fix: display notification when trying to delete built-in choice 2024-05-17 11:07:53 -04:00
Tienson Qin a50177096e chore: remove debug 2024-05-17 21:00:57 +08:00
charlie 3e37fb6b4a fix: typo 2024-05-17 11:25:10 +08:00
Tienson Qin db721ee3f6 enhance: clear selection before closing popup 2024-05-17 11:15:15 +08:00
Gabriel Horner 3fdaf0474f fix: can't add a class schema or page property
Removed related unused upsert property code. This became unused with #11311.
Also fixed new page property not moving focus to property value
2024-05-16 17:47:49 -04:00
Gabriel Horner 35e6ad120d chore: rename pdf specific properties to logseq.property.pdf
also remove deleted property ns
2024-05-16 15:27:24 -04:00
Gabriel Horner d37df950fa fix: property rules now work with property ref values
Also remove use of :string properties in tests
2024-05-16 15:05:37 -04:00
Gabriel Horner 43dfdbe0ae fix: convert remaining built-in :string props to :default 2024-05-16 11:22:09 -04:00
rcmerci a12a0d3d30 refactor(rtc): support refactored update-op, update local db 2024-05-16 19:47:49 +08:00
Gabriel Horner 8921767b69 fix: batch-set-property working with property value refs
Fixed batch-setting background-color. With this fix was then able
to migrate order-list-type to use :default. Also cleaned up
outdated assumptions in batch fn
2024-05-15 17:37:57 -04:00
Gabriel Horner e50d3eff21 fix: setting block properties with raw value
With this fix able to convert 2 built-ins to :default. Also cleaned
up set-block-property! which had outdated assumptions
2024-05-15 16:10:02 -04:00
Gabriel Horner 2117245b28 fix: fetching built-in property values
Fixes :number properties like hl-stamp and hl-page which returned
refs instead of actual values. This will also fix it for
future usage of built-in :default props. Also fixed a db test
2024-05-15 12:23:14 -04:00
Gabriel Horner 980c88b60d fix: remove table v2 properties
Finish removal started by 82a1a18762.
Still need names in exporter so they aren't incorrectly imported
into db graphs
2024-05-15 10:25:31 -04:00
Gabriel Horner ad9dc70b9c fix: finish removing table v2 from shui dep
Followup to 82a1a18762.
Copied more useful intro from shui-graph into README
2024-05-15 10:25:31 -04:00
Gabriel Horner a70499bd8c fix: remove schema hack now that it's been fixed 2024-05-15 10:25:31 -04:00
Tienson Qin 244de2187e fix: quit batch tx mode even with errors
Also, throw errors and send notifications for apply-outliner-ops
2024-05-15 22:19:06 +08:00
Tienson Qin a689266931 fix: don't persist :block.temp/fully-loaded? 2024-05-15 20:41:17 +08:00
Tienson Qin 114c0524fa fix: handle situations when datom entity has gone or children exists 2024-05-15 10:34:34 +08:00
Tienson Qin a5a7a781eb fix: keep the last repeated datom (different value) in batch tx 2024-05-15 07:54:31 +08:00
Gabriel Horner c554627041 fix: outliner lints
While fixing large vars, fixed needless circular dependency between
create-property-text-block and set-block-property
2024-05-14 15:11:29 -04:00
Gabriel Horner 0238aff2ba fix: replace uses of :string closed with :default closed
and remove :string from closed possibilities
2024-05-14 10:34:54 -04:00
Gabriel Horner 4a7dab2763 fix: can't add or update closed values 2024-05-14 09:29:00 -04:00
Gabriel Horner 45bb11d28d fix: db tests and :op typo 2024-05-13 17:05:32 -04:00
Gabriel Horner a2a951ddcb fix: switching to another number closed value
The bug was creating a new block each time a switch was made
because existing closed values didn't have a created-from-property
2024-05-13 13:23:02 -04:00
Gabriel Horner e55927086f fix: creating :number and :url closed values from config
Also add schema hack for fully-loaded being persisted. Also
add :default property examples to example properties graph now that it's
possible
2024-05-13 12:33:31 -04:00
Tienson Qin ce4cad2cc7
Refactor/move property handler to outliner dep (#11311)
The end goal is to get rid of `db/transact!` and send outliner ops to
the db worker.

Currently, some property ops are async, set-block-property! will also
need to be async because when setting a non-ref value (e.g. a number
str "2"), we need to query whether a block with the value exists, this
unfortunately, will be an async query, so we're risking turning more
functions to async in the future which makes it hard to reason about
the implementation.
2024-05-13 18:16:21 +08:00
charlie 061700c6b1 enhance(ui): WIP optimization for the shui popup related fundamental components 2024-05-11 15:14:21 +08:00
Gabriel Horner fcf6ebd0e4 fix: page properties for :default, :number and :url
Also fix page property example in properties graph and removed
unused branches in validation
2024-05-10 16:40:42 -04:00
Gabriel Horner 64786bb258 fix: create :number and :url properties from scripts 2024-05-10 15:19:10 -04:00
Tienson Qin 11c902eb1e refactor: make all user-facing property types refs 2024-05-10 18:03:07 +08:00
Tienson Qin 4a9aa50a7d refactor: use :string type only for internal properties 2024-05-10 11:22:28 +08:00
Gabriel Horner 70d92c8f7a fix: pdf related properties for db graphs
Added to new property ns as file and file-path are too generic to be top-level.
Also fixed bugs in page creation
2024-05-09 13:38:31 -04:00
Gabriel Horner 123cb8fc42 fix: cleanup property tuple validation
Had an unnecessary entity refetch. Also move ui assumptions about :many
validation to ui as this needlessly limits what :many could store
2024-05-09 10:57:18 -04:00
Gabriel Horner 161c5c8565 Merge branch 'master' into feat/db 2024-05-09 08:41:40 -04:00
Tienson Qin 45e5cde3f9 fix: slow popup 2024-05-09 17:24:07 +08:00
Tienson Qin 339883800d fix: property tuple validation 2024-05-09 16:29:55 +08:00
charlie e9b430b1b0 enhance(ui): refactor the shui-related codes 2024-05-09 12:46:52 +08:00
Tienson Qin 61db29ceba Remove [:block/schema :cardinality]
Uses :db/cardinality instead.
2024-05-09 11:24:46 +08:00
Tienson Qin bccf999853 fix: tests 2024-05-09 08:51:49 +08:00
Tienson Qin 45f14d4b76 refactor: property/schema.properties
Replace [:block/schema :properties] with ref type property/schema.properties.

This commit also introduces :logseq.class/base so that all the other
classes will be its children.
2024-05-09 08:29:11 +08:00
Tienson Qin bb5a3364e6 fix: outdent property child block replaces its parent
Fixes LOG-3141
2024-05-09 04:36:14 +08:00
Tienson Qin 5013d34c2f chore: cleanup :block/_left usage 2024-05-09 04:36:14 +08:00
Tienson Qin d6ffd16799 fix: can't move blocks up
Fixes LOG-3140
2024-05-09 04:36:14 +08:00
Gabriel Horner 00e153e866 fix: closed value :number can also be float 2024-05-08 15:23:57 -04:00
Gabriel Horner 949d676f02 fix: number closed value not saved as its original value
A :number closed value saved as a string is problematic for a couple
reasons:
* Not storing a number by the user's intended value means a loss of any
  numeric functionality the property provides. Basic things like sorting
  by the numeric property don't work. This has caused us problems in the
  past and we invented hacky workarounds like logseq.query/nlp-date to
  compensate for this
* Creates inconsistency in how numbers are saved as non-closed values
  are not saved as string. This affects not only the validation layer
  but also creates bugs when querying for these property values as the
  querying interface is inconsistent
2024-05-08 13:49:22 -04:00
Gabriel Horner 298c37ffc7 fix: lints + schema key which shouldn't have been removed 2024-05-08 12:31:08 -04:00
Gabriel Horner 22f15a3fb3 fix: validating closed value ents
Also fix closed value membership not being checked from CLI
2024-05-08 11:47:45 -04:00
rcmerci f69094713f enhance: move missionary-util to src/main/frontend/common/ 2024-05-08 21:56:52 +08:00
Andelf da78593eb1 fix(sync): cannot delete some nested files
Close #11278
2024-05-08 16:42:41 +08:00
Gabriel Horner be9237d101 refactor: move rules deps usage into helper fn
Dries up task dependency that was copied in query-dsl
2024-05-07 22:11:27 -04:00
Gabriel Horner 489e7f3422 fix: :default-queries for db graphs
closes LOG-3042. Moved :default-queries to default-config as this allows
for any future fix to automatically update for a user. There's also a
breaking change with this config key from :block/journal? so moving this
to default-config makes the migration easier e.g. just tell users to
remove the config key
2024-05-07 18:03:50 -04:00
Tienson Qin 89afdcdd7b fix: outliner core tests 2024-05-08 01:29:23 +08:00
Tienson Qin 976e5c2f6b fix: generate n keys for fractional index 2024-05-08 00:37:17 +08:00
Tienson Qin 1cb0896e3b refactor: remove [:block/schema :values]
Some changes:
1. use :block/closed-value-property instead to record which property
this value entity belongs to.
2. use :block/content instead of [:block/schema :value].
3. :page and :date have been removed from closed-value-property-types
because there could be a page/date that's a closed value for multiple
properties, we have no idea what's the `:block/order` for a specific
property.
2024-05-07 23:33:04 +08:00
Gabriel Horner ead9f30f1b fix: typing hashtag sets heading
also remove unused var
2024-05-07 10:53:32 -04:00
Tienson Qin 4e32a5042a fix: reset *max-key when loading graph 2024-05-07 21:52:56 +08:00
Tienson Qin 308c3bcd17 fix: reset max key when generate-n-keys-between 2024-05-07 20:07:06 +08:00
Tienson Qin ee0d89ad85 refactor: replace [:block/schema :value] with :property/schema.value 2024-05-07 17:26:56 +08:00
Gabriel Horner 4c3fc530b9 fix: task rule and filter for db graphs
Part of LOG-3042
2024-05-06 16:55:45 -04:00
Gabriel Horner 4059062919 fix: block property rules for new properties structure 2024-05-06 16:40:55 -04:00
Gabriel Horner 0d95786a7f fix: remove unused db attributes from db graph schema
part of LOG-3042
2024-05-06 11:59:32 -04:00
Gabriel Horner 6a83812ae9 fix: typing TODO/DOING/etc shouldn't create marker pages for db graphs 2024-05-06 11:49:56 -04:00
Gabriel Horner 8a8dba6af8 fix: db graphs shouldn't have :block/marker at all
part of LOG-3042
2024-05-06 11:40:54 -04:00
Gabriel Horner 42e00f00d7 fix: typo and add more fix-mes left from :block/order change
/cc @tiensonqin and @RCmerci for tests to fix
2024-05-06 11:26:16 -04:00
Gabriel Horner 110813accd fix: deps and frontend lints 2024-05-06 10:45:40 -04:00
Gabriel Horner fe27ce9807 fix: remove handling file-graph specific marker 2024-05-06 09:39:02 -04:00
Gabriel Horner 719ba8cdbe Merge branch 'feat/db' into refactor/db-properties-schema 2024-05-06 08:38:32 -04:00
charlie acc9122c36 enhance(ui): refactor the cmdk-related components 2024-05-06 17:00:17 +08:00
rcmerci b0673fc850 refactor(rtc): remake async upload-graph 2024-05-05 18:20:00 +08:00
rcmerci 9bd1b41441 refactor(rtc): ws2 support s3-presign-url resp 2024-05-05 14:30:15 +08:00
rcmerci 64cd588c1a refactor(rtc): update debug ui with new-impl 2024-05-04 19:35:35 +08:00
rcmerci 2e67aed55d refactor(rtc): replace origin rtc-start&stop 2024-05-04 11:46:08 +08:00
Gabriel Horner 333490fde6 enhance: create-graph scripts can generate classes via :classes
Any script can pass a :classes config key. schema script no longer needs
to manage db ids or db idents
2024-05-03 16:24:46 -04:00
Tienson Qin 7aa3bd7d84 fix: issues of :default :one property 2024-05-03 09:59:20 +08:00
Gabriel Horner b5a8f96426 fix: publishing hl-type-area for db graphs 2024-05-02 16:15:06 -04:00
Gabriel Horner 5130ced982 fix: public queries for publishing 2024-05-02 15:53:48 -04:00
Gabriel Horner 24c48e7a87 fix: multiple fixes related to lookup-by-name
- only use it for user properties
- don't use create ident fn to lookup names
- fixed get-area-block-asset-url which didn't work for db graphs without
  the frontend
2024-05-02 15:16:03 -04:00
Tienson Qin 457a74343f refactor: no need to create parent && hidden page for :default value 2024-05-03 00:02:55 +08:00
Gabriel Horner 88e38b16f4 fix: more lints including removing dead code 2024-05-02 10:35:44 -04:00
Gabriel Horner 602b236a4c fix: graph-parser lint 2024-05-02 10:23:20 -04:00
Gabriel Horner 1dbdb16765 fix: whiteboard shapes being invalid 2024-05-02 10:01:08 -04:00
Tienson Qin 89edb3af9a fix: can't remove Many values 2024-05-02 18:03:17 +08:00
Tienson Qin d907eb7654 fix: wrong digs for fractional index 2024-05-02 14:34:38 +08:00
charlie a417c43029 Merge branch 'master' into feat/db 2024-05-02 11:29:08 +08:00
Gabriel Horner d4ecc393f0 fix: schema with :block/order changes 2024-05-01 16:47:25 -04:00
Tienson Qin 1ec4796eff refactor: replace :block/left with :block/order
Finally no need to worry about parent-left conflicts and broken chain.
With :block/order, we only need to re-compute new orders for siblings
with same order (it can happens if there're bugs in our code, or
updates from rtc), but it doesn't break UI.

Another huge potential benefit after discussing with Zhiyuan is:
Ee might be able to simplify both RTC and undo/redo, currently, we
need to handle each new op for both of them, with recently
refactorings like properties being db attributes, :block/order
is a string instead of a ref, we can handle most property value
conflicts using last-write-wins, and others (e.g. :block/parent,
property with :default type) specifically.

I haven't fixed the issues of using :block/left in RTC and undo/redo,
because we might change both soon.
2024-05-02 01:12:22 +08:00
Gabriel Horner 27ed8c7f29 enhance: allow user classes to have db idents
This allows imported and eventually user classes to have db idents.
Updated schema example graph which now imports classes as
:schema.class/X. Also fix schema properties which were removed from
the debug file and remove unused property uuids
2024-05-01 12:20:26 -04:00
Gabriel Horner 5c81b61774 fix: file graphs can't load b/c db specific attribute fetched 2024-05-01 09:07:23 -04:00
Gabriel Horner 2540bb3014 fix: type validations
:default doesn't have closed and tweak validation error messages
2024-04-30 14:14:25 -04:00
Gabriel Horner 77914fbcdf fix: db tests and lint 2024-04-30 12:31:12 -04:00
Gabriel Horner 670b46f221 fix: validate property values again
caused by property pair revert 5d4ae66d86
2024-04-30 12:25:12 -04:00
Gabriel Horner efcffd6e19 fix: rules and most db tests
caused by property pair revert 5d4ae66d86
2024-04-30 10:33:33 -04:00
Gabriel Horner a35bc9b0d6 Bump nbb-logseq version for datascript and ordered-map changes 2024-04-30 10:10:11 -04:00
rcmerci 75f69ffb48 refactor(rtc): split core by adding ns remote, client, exception
and re-impl using missionary
2024-04-30 02:08:00 +08:00
charlie e40e39c3aa enhance(ux): better highlights page name for the search result items 2024-04-29 15:56:11 +08:00
Tienson Qin 95eb0e7f4a Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-29 15:55:23 +08:00
Tienson Qin cdf546dce7 convert fractional-index js to cljs 2024-04-29 15:30:35 +08:00
Tienson Qin 723f0a5bab fix: class ordered properties 2024-04-29 12:27:18 +08:00
Tienson Qin 8275449b3c feat: drag && drop block properties 2024-04-29 11:35:11 +08:00
rcmerci 39228f4409 feat(rtc): add timeout(10s) for creating ws-connection 2024-04-29 01:43:01 +08:00
Tienson Qin dda5f2200e wip: add global :block/order for properties 2024-04-29 00:27:41 +08:00
Tienson Qin 6a976ca0e2 Deprecate more db attributes for db graphs 2024-04-28 22:29:47 +08:00
rcmerci e9f5137a86 refactor(rtc): add frontend.worker.rtc.ws2
- backoff reconnect websocket
- auto reconnect closed websocket when sending data
- support timeout when receiving data from websocket
- support cancel
2024-04-28 20:02:00 +08:00
Tienson Qin 5d4ae66d86 revert: remove :block/properties 2024-04-28 19:44:53 +08:00
Tienson Qin d0e2a0991b fix: :string could be entity for closed values 2024-04-28 18:06:50 +08:00
Tienson Qin c4e0bda579 fix: add :string to user faced and disable :default for closed value 2024-04-28 17:48:33 +08:00
Tienson Qin 6272dd112a fix: use :string instead of :default type for built-in property 2024-04-28 17:06:26 +08:00
Tienson Qin 5a8065db88 fix: template not working for file graphs 2024-04-28 15:18:45 +08:00
Tienson Qin b90eb36e83 perf: load datoms instead of pull data when app loads 2024-04-28 09:23:13 +08:00
Gabriel Horner 1b3b3afd32 fix: invalid placeholder for :date and :page 2024-04-26 09:22:46 -04:00
charlie 82a1a18762 refactor(ui): simplify the old shui codes and remove support for the table.v2 2024-04-26 16:47:53 +08:00
Gabriel Horner edca3049c0 chore: remove unused fn 2024-04-25 11:24:08 -04:00
Gabriel Horner 3681ac354b fix: move db-pipeline and datascript-report back to outliner dep
graph-parser is primarily a file graph dep that is maintained separately
from db graphs. We want to move as many namespaces out of it as
possible. Also moved differing count assertions to
their respective tests
2024-04-25 11:22:14 -04:00
Gabriel Horner cb22dca5e0 fix: db tests 2024-04-25 09:39:02 -04:00
Tienson Qin b84ea96160 fix: handle more non-consecutive cases 2024-04-25 20:39:15 +08:00
Tienson Qin 331aa50379 fix: delete blocks might be consecutive but reversed 2024-04-25 20:28:06 +08:00
Tienson Qin d82c7fa2f5 fix: tests 2024-04-25 17:33:37 +08:00
Tienson Qin b55c064305 fix: move :block/path-res calculation to dep graph-parser 2024-04-25 16:50:04 +08:00
Tienson Qin bcd04dba05 fix: file graph issues 2024-04-25 15:57:14 +08:00
Tienson Qin 349542b7b9 fix: add journal to all pages filter 2024-04-25 14:59:14 +08:00
Gabriel Horner 878d69f342 fix: graph parser tests
extract and dependent namespaces require a db now and :block/path-refs
is no longer being handled in this dep
2024-04-24 16:55:24 -04:00
Gabriel Horner c87c077d29 enhance: new classes can be case sensitive 2024-04-24 15:18:20 -04:00
Gabriel Horner 297e408f6f fix: db graphs can use case sensitive properties 2024-04-24 14:25:29 -04:00
Tienson Qin d416687b7b fix: :block/original-name shouldn't be unique
There're at least two use cases for same page original names:
1. multiple clients can create pages with the same title
2. multiple tagged blocks can have the same :block/original-name
2024-04-24 22:49:57 +08:00
Tienson Qin 706f3c76c2 fix: lazy load class and properties 2024-04-24 22:37:10 +08:00
Tienson Qin e01a771d52 fix: add journal type to malli schema 2024-04-24 20:16:23 +08:00
Tienson Qin 96bdda45fb fix: disable :block/type filter for now 2024-04-24 20:14:55 +08:00
Tienson Qin 8d9e6da41e refactor: use :block/type for journal pages instead of :block/journal?
breaking change:
removes :block/journal attribute
2024-04-24 20:12:15 +08:00
Tienson Qin 558606e18d fix: property test 2024-04-24 19:38:51 +08:00
Tienson Qin fef4e896e1 fix: use existing property pair if exists 2024-04-24 19:13:48 +08:00
Tienson Qin 6d7d4497ff fix: loading whiteboard 2024-04-24 18:19:12 +08:00
Tienson Qin 13edd74c2c fix: can't save whiteboard updates 2024-04-24 17:59:01 +08:00
Tienson Qin 0a13e436be fix: loading block property values 2024-04-24 16:53:08 +08:00
Tienson Qin 4cb2ac6a46 fix: load all classes when app starts 2024-04-24 13:37:34 +08:00
Gabriel Horner 2f0fc3c18c fix: large graph creation having blank and incorrect block counts
large graph chunking assumed a certain tx order which isn't guaranteed.
There are also some edge cases where blocks could get separated from
each other which are now fixed. Also fixed a bug with validating user
properties and made small enhancement for query script
2024-04-23 09:25:07 -04:00
Gabriel Horner 2fad540d01 chore: cleanup setting :many property values
and validating them. Setting :many property values was spread
across fns, hard to understand and needlessly validating differently.
Removed type inferring for :many as it's not possible to do this from
the UI
2024-04-22 16:30:53 -04:00
Gabriel Horner 71f01b1115 fix: load user defined closed values
they aren't lazy loaded by the UI
2024-04-22 14:16:04 -04:00
Tienson Qin 912ddd6ca2 Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-22 23:57:57 +08:00
Tienson Qin a15066c862 perf: db reload
Load as less pages && closed values as we can to avoid loading too
much data.

We already know that transacting db attributes is slow, going to
investigate it later.
2024-04-22 23:48:40 +08:00
Gabriel Horner 543677ef32 fix: outliner lint 2024-04-22 11:14:14 -04:00
Gabriel Horner 0bee9b12c0 fix: frontend lints and remove dead code 2024-04-22 11:10:16 -04:00
Gabriel Horner 1b66755876 fix: outliner lint 2024-04-22 10:50:37 -04:00
Gabriel Horner b09031579e fix: remove outdated code which was causing circular deps in db dep 2024-04-22 10:41:00 -04:00
Tienson Qin 4a0736f62b fix: property unit tests 2024-04-22 08:50:51 +08:00
Tienson Qin 5a595b1626 fix: property tests 2024-04-21 15:19:38 +08:00
Tienson Qin 44af2213ce Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-21 13:22:37 +08:00
Gabriel Horner 8f411fad42 enhance: allow user properties with other namespaces
to allow for imported properties to have a different namespace than the
one the editor generates. Update schema example graph which now imports
properties as :schema.property/X
2024-04-19 16:54:06 -04:00
Gabriel Horner 311cd13e1f enhance: closed value membership validated everywhere
Frontend and lower-level validation now validate the same.
Also simplified metadata injection
2024-04-19 14:10:16 -04:00
Gabriel Horner 449d4d3600 fix: generate schema graph with new properties
Also remove unused bindings and basic validation to graph creation
2024-04-19 10:45:30 -04:00
Tienson Qin b1bc1ca88a chore: remove debug 2024-04-19 20:17:53 +08:00
Tienson Qin 20006eafa8 fix: update :block/page when moving between pages 2024-04-19 20:16:39 +08:00
Tienson Qin 113ff4e669 fix: can't move blocks to empty page 2024-04-19 19:54:11 +08:00
rcmerci bffd1b5c8e refactor: batch-tx 2024-04-19 17:48:48 +08:00
Tienson Qin e7e5994e70 fix: batch tx counter name 2024-04-19 16:15:17 +08:00
Tienson Qin 0085accf70 refactor: batch tx
outliner-tx/transact! now operates outliner op one by one instead of
batching processing, the benefit is that we can safely rely on the ops
order, it simplifies code a lot too.
2024-04-19 16:11:42 +08:00
Tienson Qin 08c5cc18d0 refactor: simplify outliner move blocks
The new implementation doesn't rely on insert-blocks, instead, it
will move the blocks one by one, but using batch tx.
2024-04-19 16:11:42 +08:00
Gabriel Horner 0372cb6e62 fix: typing marker creates tasks e.g. DOING 2024-04-18 14:13:58 -04:00
Gabriel Horner 3f566b36de fix: basic editing of background-image property
and other future :string properties
2024-04-18 10:48:26 -04:00
Gabriel Horner 9bab096def fix: built-in string properties with internal :string type
Also fix a bug that caused numbered list to fail after first item
2024-04-18 09:06:10 -04:00
Tienson Qin f0920ac89b fix: another case of non-consecutive blocks move 2024-04-18 20:42:26 +08:00
Tienson Qin 40775e1f80 fix: move a child block to its parent's right sibling 2024-04-18 19:04:44 +08:00
Tienson Qin 2296eca383 chore: don't run fix non-consecutive when it's not needed 2024-04-18 18:43:16 +08:00
Tienson Qin 24e1aab914 fix: skip computing :block/left for non-consecutive blocks 2024-04-18 15:24:47 +08:00
Tienson Qin ca197c439a prn db transit if left/parent point to self detected 2024-04-18 14:24:53 +08:00
Tienson Qin 76248b4664 Add trace for debugging 2024-04-18 13:56:33 +08:00
Tienson Qin 9418607c50 Ensure :block/left and :block/parent not point to self 2024-04-18 13:52:05 +08:00
Gabriel Horner 390892e524 fix: build all closed value property types correctly
Fixes building of :url and :number closed value properties which
affected properties graph and would effect future built-in properties.
Also simplify translation of property values by keeping it only
in create-graph namespaces
2024-04-17 15:52:55 -04:00
charlie df046850cc enhance(shui): fix custom dropdown trigger content for the :as-child option 2024-04-17 23:28:02 +08:00
Gabriel Horner 71aa3fed7b fix and enhanced validation of property values
Fixed close value validation of url and number.
Enhanced :default, :page and :date types with stricter checks.
Closed values are now validated at the malli-schema level
2024-04-17 11:12:27 -04:00
Tienson Qin d4b2958af7 fix: add new closed value to :default type property 2024-04-17 21:18:00 +08:00
Tienson Qin 2a7e6accb0 refactor: force outliner.tree/-del to delete all children
Except the children have been moved.
2024-04-17 17:48:59 +08:00
rcmerci ffb4bd5a8f chore: update comment 2024-04-17 17:36:00 +08:00
rcmerci 6bce34524a fix: check dep-cycle in sort-coll-by-dependency 2024-04-17 17:31:54 +08:00
charlie dff255fd42 enhance(ux): WIP refactor the editor command modals with the shui components 2024-04-17 16:03:09 +08:00
Tienson Qin 1240052117 fix: undo redo
outliner.core/delete-blocks will filter top-level blocks first to
avoid deleting parent first and then children.
2024-04-17 14:54:31 +08:00
Gabriel Horner 37974a8e80 fix: built-in? not working
Also fix :entity type incorrectly allowing things to be edited as
:default when it's an internal property type. No longer need this as
:default can be used for closed :entity values
2024-04-16 14:57:43 -04:00
Gabriel Horner 0aa4bda66c fix: inlined db-based-graph? calls in db-property
Addressed fixmes for db-based-graph fns that were inlined to prevent
circular dependencies b/n db-property and sqlite-util.  Moved multi
graph fns to db-property-util and existing db-property-util to
db-property-build to address this
2024-04-16 14:43:28 -04:00
Tienson Qin bacba9db6e fix: delete property pair entities when deleting a property page 2024-04-17 01:56:34 +08:00
Gabriel Horner 6f5b744189 fix: use user-property type :default for public built-in properties
Fixes a property configuration issues since configuration works with
user-property types. Also remove :entity from UI as it is an internal
property type and we can now use :default type
2024-04-16 12:29:24 -04:00
Gabriel Horner 0853940a34 fix: closed :default values validate correctly
and values can be selected from UI. Also tweak query to expand
properties if available
2024-04-16 11:59:04 -04:00
Tienson Qin 2195c4b63a fix: convert to ref type when updating a property to closed values 2024-04-16 23:24:53 +08:00
Tienson Qin 8554e15be7 fix: closed values for default type 2024-04-16 21:04:19 +08:00
rcmerci 842efe5958 test(undo): add random outliner-ops testcase 2024-04-16 18:58:40 +08:00
rcmerci cf4e43e126 fix: remove wrong cond when delete-blocks 2024-04-16 18:58:40 +08:00
Tienson Qin 202576a862 fix: load property pairs for structured blocks 2024-04-16 16:30:03 +08:00
Tienson Qin daafe5f4e0 fix: default type values 2024-04-16 15:56:43 +08:00
Gabriel Horner 1e1a17aaf4 fix: validation of single value for a :many property
Single value of a :many property wasn't being rolled up as a set,
in CLI or in app validation
2024-04-15 17:17:24 -04:00
Tienson Qin 09f65cf842 fix: lazy load properoty value blocks 2024-04-16 00:49:29 +08:00
Gabriel Horner 236a28764b fix: new property values invalid because of placeholder
Also use cardinality in validation instead of previous hacky value-based
detection. Also disable closed-values generation so new graphs can
temporarily be valid
2024-04-15 12:22:21 -04:00
Gabriel Horner 8ec360759a enhance(dev): humanize option for validation script
also fix nil entity query results
2024-04-15 09:36:09 -04:00
Tienson Qin 4828cfa17d fix: handle situations when block values have been retracted 2024-04-15 21:05:11 +08:00
Tienson Qin fb93a35fbc fix: store text values as entities 2024-04-15 20:39:36 +08:00
Tienson Qin e19879a12a fix: cleanup property related data 2024-04-15 17:00:46 +08:00
Tienson Qin 3e0849cb16 fix: set more properties as hidden properties 2024-04-15 13:01:46 +08:00
Tienson Qin 81da3a9960 enhance: move tags and icon to properties area too 2024-04-15 12:52:53 +08:00
Tienson Qin dd0de0b45f fix: closed value icon 2024-04-15 12:11:45 +08:00
Tienson Qin 356f45b8e5 Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-15 11:38:34 +08:00
charlie 1e6a7f9010 fix(ui): close all for the shui popups 2024-04-14 11:18:11 +08:00
Tienson Qin ebe67390fa perf: no need to get all the property pairs when asking for only one 2024-04-14 08:33:53 +08:00
Tienson Qin e03b5a2322 fix: property pairs lazy load 2024-04-14 08:19:59 +08:00
Tienson Qin 47abd92155 fix: load property pairs too when lazy load a block 2024-04-14 08:13:10 +08:00
Tienson Qin 16a39c8e7b fix: tags not displayed for blocks 2024-04-14 07:56:56 +08:00
rcmerci 836cedfd7f fix(undo): sort&merge undo-ops
because maybe some ops depend-on others, e.g. insert parent first then
its children.
2024-04-13 19:53:38 +08:00
Gabriel Horner 8ac39b3cbb fix: adding new properties for some property actions
Also removed duplicate helper fn
2024-04-12 21:53:04 -04:00
Gabriel Horner b99af712b2 fix: validating user :many properties
User properties with :many cardinality were overriding each other
instead of aggregating
2024-04-12 17:33:56 -04:00
Gabriel Horner 8cbc0ac32a fix: validate property values 2024-04-12 15:27:26 -04:00
Gabriel Horner 7003903edd fix: new graph creates hidden pages all with same name '$$$' 2024-04-12 12:50:09 -04:00
Gabriel Horner 4771a97d09 fix: page-property rules to use latest schema 2024-04-12 12:29:47 -04:00
Gabriel Horner 4f3b7e7687 fix: ref checks in schema
attribute in the wrong schema and db graph only vars had file graph
keys. Also temp fix to avoid crashing ui with props
2024-04-12 12:15:59 -04:00
Gabriel Horner b2a22498ea fix: closed validation with new properties
Also fix group error reporting incorrectly and improve it by adding
:db/id
2024-04-12 11:32:03 -04:00
Gabriel Horner 354c0c1e42 fix: built-in? helper and most deps tests
Also fix validate script's count
2024-04-12 10:04:43 -04:00
Gabriel Horner 97367c3d4f fix: add timestamps to built-in property pair
Also cleanup build-initial-properties and remove unused ns
2024-04-11 18:23:52 -04:00
Gabriel Horner cbcff4bae8 fix: schema graph creation for previous properties schema
Also add db/id to query script and fix outdated case insensitive
constraint on property db idents
2024-04-11 17:46:49 -04:00
Gabriel Horner e07fd51c83 fix: new db graph creates properties correctly
Also fix basic validation
2024-04-11 17:42:51 -04:00
Tienson Qin 1a9608bda1 fix: property handler with the new properties pair storage 2024-04-12 01:17:37 +08:00
Tienson Qin 89b40b4ad8 Extends entity for new :block/properties and direct property access 2024-04-12 00:05:20 +08:00
Tienson Qin 81e5d5f68f fix: remove frontend.config usage from graph parser dep 2024-04-11 23:02:50 +08:00
Tienson Qin 00967481ad Merge branch 'refactor/db-properties-schema' into refactor/db-remove-block-name-unique 2024-04-11 20:32:12 +08:00
Tienson Qin 419eac1b16 Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-11 19:56:34 +08:00
Tienson Qin da96052908 fix: safe check db before get-pid 2024-04-11 17:18:25 +08:00
Tienson Qin e979e8158c fix: add db schema for :editor/tx-batch-mode? 2024-04-11 16:45:20 +08:00
Gabriel Horner 527dae34dc fix: class properties schema 2024-04-10 14:03:39 -04:00
Tienson Qin 7007fa7d41 fix: status and priority should be :entity type 2024-04-10 21:07:20 +08:00
Tienson Qin 8d128f420c Merge branch 'refactor/db-properties-schema' into refactor/db-remove-block-name-unique 2024-04-10 16:14:47 +08:00
Gabriel Horner 4f8d76c79f Merge branch 'feat/db' into refactor/db-properties-schema 2024-04-09 16:29:46 -04:00
Gabriel Horner a42e5f659a fix: new graphs don't create unused hidden pages for
date and page closed properties. Observed with properties graph
2024-04-09 14:53:47 -04:00