Commit Graph

242 Commits

Author SHA1 Message Date
Gabriel Horner
a93fe4d81b Move recalculate-block-path-refs to outliner dep
Moved dependent query fns also into the outliner dep. Removed
get-block-children-ids from model as there was only one use of it after
the refactor. Also setup testing for outliner and moved in a test for it
2023-09-06 16:20:29 -04:00
Tienson Qin
c81e114a1c fix: lint 2023-06-28 15:20:22 +08:00
Gabriel Horner
75ff4db4aa Fix: circular dependencies again b/n deps <-> frontend
Breaks setup of deps/ and most tests
2023-06-27 16:39:10 -04:00
Gabriel Horner
4e99e21642 Fix commandline publishing not working e.g. bb dev:publishing
Also fix db dep having a circular dependency. frontend.* namespaces depend on deps/ dependencies
so we can't have frontend namespaces in deps/
2023-06-23 16:52:54 -04:00
Tienson Qin
029b196432 refactor: remove db/get-paginated-blocks 2023-06-20 14:06:42 +08:00
Tienson Qin
55ff7584b7 wrap-parse-block impl for db && file 2023-06-14 15:13:22 +08:00
Tienson Qin
e01846188a refactor: add frontend.db.listener 2023-05-29 17:56:35 +08:00
rcmerci
a2a8aaf93b add frontend.db.restore 2023-05-25 23:28:01 +08:00
rcmerci
8f65b3709f sort tx-data when restore graph from sqlite 2023-05-25 00:03:15 +08:00
rcmerci
a6f362550b fix restore-graph-from-sqlite 2023-05-24 21:36:45 +08:00
rcmerci
4461f06254 update sqlite schema 2023-05-24 19:10:00 +08:00
Tienson Qin
860f9cbfa3 fix: loading journal blocks twice 2023-05-24 11:41:48 +08:00
Tienson Qin
d7ae59378f fix: transact schema first 2023-05-23 23:01:47 +08:00
Tienson Qin
76046eea41 fix: clean code 2023-05-23 15:57:34 +08:00
Tienson Qin
19ca0df01b perf enhancement for loading graph from sqlite 2023-05-23 15:57:34 +08:00
Tienson Qin
a3b3c2e5d4 increase per-length for db restore 2023-05-23 15:57:34 +08:00
Tienson Qin
b158262ce6 initial load from sqlite 2023-05-23 15:57:34 +08:00
Tienson Qin
df11ccc17a db wip 2023-05-22 13:01:55 +08:00
Tienson Qin
cb7e1321c0 fix: disable reactive queries in api
close #9063
2023-04-12 23:57:05 +08:00
Gabriel Horner
5186070248 Finish migration of publishing to deps
* Frontend and cmdline version use the same fns!
* Add docstrings and db tests
* Fix bug with intermittently failing asset copies
* Move publish cli to scripts since publish-spa shouldn't have graph-parser dependency
* Fix parse-graph bug noticed while testing publishing
2023-04-09 23:13:33 +08:00
Andelf
d5d3857466 refactor(migration): add file/path migration 2023-03-28 09:14:42 +08:00
Tienson Qin
6a5b0c8199 Fix pencil not working if drawing quickly (replace tldraw's undo/redo history with logseq's) (#7786)
* fix: pencil not working if drawing quickly

* feat: mod+c mod+g to toggle grid

Co-authored-by: Konstantinos Kaloutas <konstantinos@logseq.com>
2023-02-22 23:16:52 +08:00
Gabriel Horner
17f51c7b77 Make resolve-input nbb compatible
- Brought back Xd-{before,after}-ms and tested it
- Move it to its own ns in graph-parser
- Updated nbb-logseq in deps/
- Made db-utils alias consistent
- Organized resolve-input
2023-01-07 02:49:07 -05:00
Tienson Qin
542137047c fix: UI not updated after code changes 2022-12-20 14:57:20 +08:00
Gabriel Horner
e2fe300da7 Move delete-blocks-fn to graph-parser for reuse for nbb
Also:
- Move test to a more appropriate ns - model-test isn't for testing
  higher level parse file behavior
- Delete model fns that are no longer used
- Fix tests which had incorrect target-page-content and were no longer
  testing retractAttribute
- Add options to cli ns for related nbb reuse
- Light cleanup of block deletion
2022-11-26 01:01:36 -05:00
Tienson Qin
0da1f2ce83 fix: lint warning 2022-10-18 09:51:41 +08:00
Tienson Qin
d1d28602fb fix: can't collapse/expand in the exported public graph 2022-10-18 09:49:01 +08:00
Junyi Du
0e4037ab61 Feat: new file name escaping rules (#6134)
* feat: new file name escaping for namespace

feat: new file name decoding back to page name

* test: file name sanitization

feat: use _0x to encode %

feat: don't create title property

test: extra URL encoding for escaped file names

fix: fit pdf prefix into new file name rules

fix: encoding rules on some characters

fix: handle the buggy file names imported by users

fix: pdf block ref failed to jump

fix: #6167

* fix: enhance backward compatibility

chore: title validation

test: fix namespace queries test

chore: use index version stored in config.edn instead of search.versions

* feat: convert old version graph mechanism

ui: file conversion UI

feat: rename files for conversion

feat: don't trigger conversion when title property is manually edited

fix: file conflict notification while renaming files on some OS

feat: re-index on update version

feat: clicking NO in the re-index dialog would update the index-ver flag to suppress the dialog

feat: use html entities for reserved char escaping

dev: remove unresolved vars & minor refactor

chore: move file name sanity from gp-util to fs-util, as it's for encoding only but not parsing

test: update file name tests to html entities rule

test: convert files from dir ver 3 for repo_tests

feat: convert Windows reserved file names

fix: save index version into idb instead of file

fix: decode uri of path while parsing files on mobile

fix: couple dir version and index version to ensure only re-index on converted dirs

feat: go back to url-encode for special chars

* chore: fix lint

chore: improve codebase to address Gabriel's comments

fix: remove file remnants on add conflict

fix: remove file remnants on rename conflict

chore: add test ns to nbb runner

Also fix typoed fn and remove unused code

* fix: issues of rebase PR6134 to master after file-sync merged

* feat: switchable filename format

* fix: use  go block to replace promesa for rename all with blocking

* feat: re-index after apply rename all

* ui: file conversion enhancement

* fix: merging filename format PR with master

* fix: filename format lint & CI

* ui: filename format flow

* fix: error handling on the rare internal file path confliction case

* chore: shorten component code for files-breaking-changed

* chore: fix CI

* Minor fixes per latest code review

- Remove unused page-name-order
- Update catch usage to be consistent with what's on master
- Place state fn in right place
- Wording fixes:
  - select and apply -> manual. There are no checkboxes for the user
  - Update -> Edit. We use edit for all other settings button
  - Alternatives to starting sentences with May. Not a common way to
    start a sentence
  - update outdated template comment

* ux: rename instruction update

* ux: rename instruction update (2)

* Tweak wording of conversion modal

Simplifed first paragraph and explained the page to the user in first
sentence, may isn't a common way to start sentences and updated outdated
wording

* Fix large-var warning by splitting out a piece of component

* fix: right slash on Windows; legacy format file sanitization

* fix: triple lowbar renaming fns

Co-authored-by: Gabriel Horner <gabriel@logseq.com>
2022-10-08 15:47:45 +08:00
Gabriel Horner
1f0e22275d Add ns docstrings for most ns in src/main
- Added to CI now that it passes
- Added no-doc for docstrings that don't add any more than what's in the
ns name or for ones where I didn't know the ns that well
2022-09-27 13:55:16 +08:00
Gabriel Horner
2ce6dfad41 Use catch :default for default error handling in cljs
This is considered normal practice for cljs. See
https://clojure.atlassian.net/browse/CLJS-661 for when it was introduced
and background on it
2022-09-23 02:00:55 +08:00
Tienson Qin
7fa9209e29 fix: load global config synchronously instead of relying on watcher
This commit also refreshs the shortcuts when config files has been edited.
2022-09-08 12:34:27 +08:00
Tienson Qin
30e87ec5ea fix: linked blocks are not modified when renaming a page 2022-08-23 21:23:42 +08:00
Tienson Qin
a1ca6820df Fix: broken linked references (#6105)
* enhance: clicking the refresh button if a query is slow

* fix: skip running slow queries if there's no need to refresh

* fix: linked reference filtering does not work on TASK items

close #1669

* fix: each block should have its own page as a reference when query page references

* fix: references

* fix: non consecutive blocks in query result and filtered linked references

* simplify filters logic

* fix: ref numbers

* Save both :block/refs and :block/path-refs for different usage

* fix: block refs

* enhance: move scheduled and deadlines to its own ns

* linked references performance tweaks

* mouse hover filters icon to expand the collapsed linked refs

* perf: react/refresh! once instead twice

* enhance: compute flashcards every hour instead of every 5s

* feat: macros as blocks

* feat: flashcards list

* fix: refed pages count

* fix: can't select in linked references

* fix: block editing on linked refs

* perf: editing in linked references

* enhance: update srs cards number when clicking flashcards

* Add a test for the case fixed in #6100

* Address feedbacks from Gabriel

* fix: Block Ref Indicator is missing from the references-blocks class

close #5375

* fix: referenced pages

* fix: page refs

* fix: Using filters pushed the title property to the second block

close #5845

Co-authored-by: Gabriel Horner <gabriel@logseq.com>
2022-08-04 13:03:12 +08:00
Tienson Qin
d40c0d8926 fix: WIP broken undo/redo for long page 2022-07-20 13:56:04 +08:00
Junyi Du
47f5c650f9 fix: edn import: keep block uuid; remove redundant last block
fix: json import uuid failure

enhance: improve get-all-referenced-blocks-uuid query
2022-06-24 17:11:24 +08:00
Junyi Du
0cdacc35e2 feat: import from logseq edn
feat: import edn with provided uuid

feat: overwrite page uuid; use properties in content

feat: error handling for importing

feat: support json import

chore: fix lint by splitting setup ui
2022-06-24 17:11:24 +08:00
llcc
7c8ae98911 fix save issues after iOS app re-installation (#5697)
* fix save issues after iOS app re-installation
* fix: ios installation id updates when switching graphs
* fix duplicated file-paths in db

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
2022-06-14 18:22:40 +08:00
Gabriel Horner
6608537909 Move logseq.graph-parser.db* namespaces to their own dep
Also add its own CI file
2022-06-10 15:39:11 +08:00
Gabriel Horner
83a4e62bfd Merge branch 'master' into enhance/graph-parser-part-four 2022-05-30 10:18:34 -04:00
Tienson Qin
06e932d130 refactor: listen to db changes for outliner pipeline 2022-05-30 12:16:46 +08:00
Gabriel Horner
2b48d95493 Move frontend db namespaces that graph-parser depends on
graph-parser should be independent of the app
2022-05-26 18:04:45 -04:00
Gabriel Horner
5bce219ca4 Remove unused db-type being passed to start-conn
Also removed other unused db fns
2022-05-26 18:04:45 -04:00
Gabriel Horner
11d3d5b3cd Remove unused :me/* attributes
These were removed in b3f67c69b1.
Also removed related, unused spec
2022-05-26 18:04:45 -04:00
Tienson Qin
d93911b44c Remove both unused :git/** and :project/** dict keys 2022-04-24 11:17:47 +08:00
Tienson Qin
b3f67c69b1 misc: delete both web github integration and encryption 2022-04-24 11:17:47 +08:00
Tienson Qin
403bb10b14 Fix: creating new pages from bracketing text is broken #4971
close #4971
2022-04-23 06:50:22 +08:00
Tienson Qin
904eff6d9d Core outliner operations refactoring (#4880)
* Add outliner nested transact!

Copied the code mostly from https://github.com/logseq/logseq/pull/4671
by zhiyuan

* refactor: insert-blocks

* fix: insert-blocks

* fix: move cursor to the last block when inserting

* fix: replace the current block when inserting and its content is empty

* keep only :insert-blocks

* expose only :delete-blocks

* Use existing implementations for move-nodes-up-down and

indent/outdent.

* fix editing state not updated immediately

* fix editing status

* fix: avoid recursive copy

* fix: inserting blocks after an empty block

* Implement move-blocks with insert-blocks

* fix: block left

* Implement move-blocks-up-down with move-blocks

* fix: paste text

* Implement indent-outdent-blocks with move-blocks

* fix: indent/outdent

* feat: multiple blocks drag && drop

* fix: indent/outdent blocks

* fix: drag drop

* Port unit tests for outliner.core

* enhance: open collapsed parent when indenting blocks

* refactor: block selection

* fix: indent/outdent blocks with different levels

* Add instrument on invalid outliner structure

* fix: can't write a block if the page has any outdated blocks

* fix: editing status for empty page

* fix: multiple drag & drop

* fix: drag & drop disallows moving from parents to its child

* fix: public property

* fix: can't delete first empty block

* Remove unused code

* fix: e2e tests

A workaround is to not select/highlight the block when pressing esc if it has
fenced code.

* remove unused code

* Add batch transaction test

* fix: update :block/page when dragging targets' children to another page

* Add more tests

* Simplify extract

* Replace db/get-conn with db/get-db

* Simplify extracting blocks from ast

* Code cleanup

* Code cleanup

* Add outliner core fuzzy tests

* Remove unused code

* fix: cursor not jump to the upper block when pressing Enter in the beginning

* fix: Enter in the beginning of a non-empty block

* Fix lint warnings

* Add editor random e2e tests

* Fix typo

* enhance: move some fns and add some comments

* enhance(outliner): add page-block? util

* fix: increase td width to prevent content overflow

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* First pass at file tests for file-sync

Each action usually passes by 5th try

* Fix two incorrect calls caught by tests

* More test improvements

- Easier auth setup
- subdirectory is configurable
- list graphs api also exercised

* Address cleanup from #3839

- Remove unused translation key
- Delete or TODO commented code
- Capitalize notifications to users

* fix quick capture template not working

* enhance(sync): add logout

* enhance: add logout i18n

* fix(plugin): sometimes plugin settings of gui not work when entry from app settings

* enable show-brackets? toggle for orgmode [[file:./pages/demo.org][demo]]

* fix(sync): fix unfinishable sync loop

* feature: logseq protocol; refactor persistGraph

* fix: deeplink support

* fix: broadcast persist graph on opening new graph with logseq protocol

* feat: logseq protocol open action for page-name and uuid

* fix: logseq protocol graph param validation

* ux: copy logseq URL of block

* enhance: remove the redundant 'open' from logseq protocol (v0.1)

* ux: page dropdown button for copy page URL

* chore: logseq protocol comments

* don't create new contents file when changing format

Logseq now creates a new contents file when users try to toggle the
preferred format, which causes file duplications error.

* fix pasting in src block not working on iOS

close https://github.com/logseq/logseq/issues/4914

* fix playing video goes into editing mode on iOS

* fix copy to clipboard failure on iOS

* add Podfile item

* fix mobile toolbar order not persisting after restart

* test(e2e): add test for backspace and cursor pos (#4896)

* test(e2e): add test for backspace and cursor pos
* fix(test): refine, fix wrong helper

* fix(ui): warn about illegal git commit interval

* enhance(editor): allow global git cmd shortcut

* style(settings): line-space of general/journals

* enhance(editor): accept enter in dummy block

Fix #4931

* fix editing state not updated immediately

* fix: can't write a block if the page has any outdated blocks

TODO: clean outdated blocks

* fix: editing status for empty page

* Random tree for outliner core tests

* Add pre assertions and fn docs based on Zhiyuan's suggestions

* Made some changes based on Gabriel's suggestions

* fix: tests

* fix: save current block before moving

* Updated the timeout to 100ms based on llcc's suggestion

https://github.com/logseq/logseq/pull/4880#discussion_r851966301

* api-insert-new-block! supports replace-empty-target?

* fix: replace all :reuse-last-block? usage

Co-authored-by: rcmerci <rcmerci@gmail.com>
Co-authored-by: Yue Yang <g1enyy0ung@gmail.com>
Co-authored-by: Gabriel Horner <gabriel@logseq.com>
Co-authored-by: llcc <lzhes43@gmail.com>
Co-authored-by: charlie <xyhp915@qq.com>
Co-authored-by: Junyi Du <junyidu.cn@gmail.com>
Co-authored-by: Andelf <andelf@gmail.com>
2022-04-19 11:14:38 +08:00
Junyi Du
ee2dcd8f09 enhance: remove the redundant 'open' from logseq protocol (v0.1) 2022-04-15 17:16:27 +08:00
Junyi Du
31e3617e20 feat: logseq protocol open action for page-name and uuid 2022-04-15 17:16:27 +08:00
Tienson Qin
c37b5bd622 enhance: only restore the last opened graph 2022-04-02 21:52:31 +08:00